在实时K线BAR阶段直接下一个买入单开多持仓。然后立即下一个计划平仓单,给这个计划平仓单设置跟踪止盈/止损参数。因为我们只测试一次开仓、然后计划单平仓,所以代码中我设计了一个isTrade变量标记,执行一次之后就赋值true,下次就不会再次进入这个开仓、平仓逻辑了。然后使用plot函数画图记录各个时刻的一些数据,便于观察。
实现跟踪止损、止盈的语句主要是:
strategy.exit("exit 1", "test 1", 1, trail_price=close+offset, trail_offset=offset)
1、trail_price参数为触发跟踪止损、止盈的价格,测试中我们使用了当时的收盘价close,加上一个偏移量offset。怎么区分多头持仓还是空头持仓的跟踪止盈、止损触发价格呢?strategy.exit函数会要求指定一个标签,来确定是对哪个仓位进行执行跟踪止损止盈计划单。我们使用strategy.entry("test 1", strategy.long, 1)函数开了一个多头仓位,指定了标签为test 1,所以在strategy.exit函数调用时我们也传入了这个标签。那么Pine语言脚本就知道是要对这个标签为test 1的多头仓位执行跟踪止损、止盈计划单了。
当对多头持仓使用trail_price参数时,是当价格高于这个trail_price价格时才会触发跟踪止损止盈。空头持仓则反之。
2、trail_offset参数为跟踪止损、止盈偏移量,跟踪止损止盈时会时时刻刻记录出现过的最高/最低价格,用来动态调整跟踪止盈止损线(注意,不是触发启动跟踪止损止盈行为的线,是执行跟踪止损止盈的线)。拿本例子中开多仓之后跟踪止损止盈来说,这里就会监控行情出现的最高价格,当价格回撤到距离最高价格超过trail_offset参数设置的值时就会立即平仓止盈止损。如果是空头仓位的跟踪止损止盈,那么方向相反。