在TradingView中,配置一个策略有两种方式:一是在strategy()
函数里用代码写死,二是利用图表界面上的手动设置。
手动设置有两大好处,也是专业策略开发者频繁使用它的原因:一是高效调试,想快速测试某个参数的改变对策略有什么影响,手动调一下就行,无需修改和保存代码;二是灵活应用,同一个策略,你可以在欧美图表上用A配置,在黄金图表上用B配置,手动设置让这一切变得轻而易举。
下面,学长就带你了解这个基础的功能配置,看看每个设置开关究竟是干什么用的。
首先,你需要打开策略的“属性”面板。三种最快的方法如下:
- 将鼠标悬停在图表左上角的策略名称上,点击出现的三-个点(…)图标,在菜单中选择“设置”:
- 在策略名称上直接右键单击,从菜单中选择“设置”:
- 在策略名称上双击,直接一步到位。
打开后,我们会看到“属性”标签页里的所有设置:
这些设置包括:初始资金、基础货币、订单大小、加仓、手续费、验证限价单的价格、滑点多头/空头仓位的保证金、订单成交后/逐笔实时重新计算等等
接下来,学长给大家逐一拆解每个设置的作用。
- 初始资金:设定回测开始时的本金。学长建议千万别用默认的100万,填入一个你真实交易时会使用的金额,比如10000或5000。
- 基础货币:指定策略用哪种货币来计算盈亏和报告绩效,选择“默认”则使用图表品种自身的计价货币。
- 订单大小:配置策略的默认下单规模。这里有三种资金管理模式:
- 合约:固定手数交易,比如每次开仓0.1手。
- USD (或你的基准货币):固定价值交易,比如每次开仓价值5000美元的仓位。
- %权益:按固定百分比,比如每次用资金的2%开仓,一种动态的开仓方式。
- 加仓:设定在同一方向上最多能开多少笔仓位。设为1,则禁止加仓;设为5,则最多允许在盈利方向上加仓到5笔订单。
- 多头/空头仓位的保证金:设定开仓需要冻结的保证金比例。如果你想在无杠杆的环境下测试策略的纯粹表现,请把多头和空头都设为100%。
避坑指南:下面这组参数是区分专业回测和自嗨式回测的关键,任何忽略成本的测试都是在自欺欺人。
- 手续费:定义每笔交易的成本。你可以按成交额百分比、每手固定费用或每笔订单固定费用来设置,尽量参照你经纪商的真实手续费来填写。
- 滑点:为市价单和止损单增加几个点的滑点成本。这是为了模拟真实世界中因买卖价差导致的不利成交。
- 验证限价单的价格:为限价单核对价格,可以理解为限价单的滑点。默认值为0,意味着价格一触碰到挂单价就成交,这在现实中几乎不可能,设为1或更高,则要求价格必须穿透你的挂单价指定的ticks数才能成交,让回测结果更保守、更可信。
- 订单成交后重新计算:勾选后,策略会在订单成交后,立即在当前K线内部额外计算一次。这让策略反应更迅速,不必等到K线收盘,适合需要高精度、即时反应的策略。
- 逐笔实时重新计算:学长严重警告!这是头号回测杀手! 勾选后,策略只在实时行情中才会像指标一样根据每个tick重新计算,但在历史回测中,它依然是每根K线收盘才计算一次。这导致了回测行为和实时行为的严重不一致,其回测结果极有可能没有参考价值。如果对此功能不熟悉,绝不要勾选这个选项来评估一个策略!
最后,一个关键问题:如果我在代码的strategy()
函数里设置了初始资金为1万,又在手动设置里改成了5万,哪个会生效?
答案是:手动设置永远优先!
手动设置会覆盖代码里的任何对应设置,这正是它强大的地方:我们可以用代码设定一套默认参数标准,然后用手动设置进行各种灵活的临时修改和测试。