保持敬畏之心
交易是一场持久战

Pine Script(59):strategy()函数的参数设置指南(二)

#Pine Script入门教学

写策略就像造车,strategy()里的参数就是发动机、悬挂、刹车系统的出厂调校。调校得好,策略才能在回测中跑出接近真实世界的成绩,调校得差,回测再漂亮也是空中楼阁。

今天学长就分享一套我的标准,帮你从一开始就打造一个专业级的回测环境。

  • title:这是策略的大名,也是唯一必填的参数。建议名字要简短且具有描述性,比如“黄金5分钟突破策略”。
  • overlay:设为true,策略的绘图就会直接显示在主图K线上。如果你的策略像MACD一样需要在下方独立显示,就把它设为false或直接不写。
  • pyramiding:金字塔加仓。如果你需要加仓,就把这个值设得足够大,比如10或20。它是一个硬性上限,设小了会阻碍你代码里的加仓逻辑。
  • default_qty_type / default_qty_value:默认仓位大小。如果你的策略逻辑里没有复杂的资金管理,用这两个参数来设定一个标准手笔非常方便。
  • margin_long / margin_short:保证金。如果你想在无杠杆、纯现货的环境下,测试策略本身逻辑的优劣,请把这两个参数都设为100。

下面是区分专业回测和业余回测的分水岭:

  • initial_capital:初始资金。别用默认的100万,设一个你实盘时真正会投入的金额,比如25000。
  • currency:账户货币。建议设成你交易账户的结算货币,这样回测能自动考虑汇率影响,结果更精确。
  • slippage:滑点。真实交易中,市价单和止损单的成交价往往不会那么理想。对于流动性好的品种(如EURUSD),设置1-2个ticks的滑点是起码的尊重。
  • commission_type / commission_value:手续费。参照你经纪商的费率来设置。强烈建议所有回测都包含手续费! 不计成本的回测,会让你高估策略的盈利能力,甚至一个本来亏损的策略,看起来也能盈利。
  • backtest_fill_limits_assumption:限价单成交模拟。设置1-2个点,意味着价格需要穿过你的挂单价1-2个点才能成交,这更贴近真实情况。
  • max_lines_count / max_labels_count / max_boxes_count:这三个参数限制了策略能画多少线、标签和方框。默认都是50,对于复杂策略来说常常不够用。

下面是一个应用了上述推荐设置的strategy()函数模板。你可以把它作为你所有新策略的起点,再根据具体情况微调。

//@version=6
strategy(title="我的策略", 
    overlay=true, 
    pyramiding=10,
    default_qty_type=strategy.cash, 
    default_qty_value=7500,
    margin_long=100, 
    margin_short=100,
    initial_capital=25000, 
    currency=currency.EUR,
    backtest_fill_limits_assumption=2, 
    slippage=1,
    commission_type=strategy.commission.cash_per_order, 
    commission_value=2,
    max_lines_count=500, 
    max_labels_count=500, 
    max_boxes_count=500)

总结

不存在一套能适用于所有情况的最佳设置,一个好的配置,永远是你根据自己的策略逻辑、交易的品种特性和真实的交易成本综合考量的结果。这份指南的目的,是给你一套专业的框架,让你告别那些过于乐观、脱离实际的回测,真正开始严肃地、科学地评估你的交易策略。

赞(0)
未经允许不得转载:图道交易 » Pine Script(59):strategy()函数的参数设置指南(二)
分享到

评论 抢沙发

登录

找回密码

注册