trail_price主要参数为开启跟踪止损、止盈止损的价钱,检测中大家采用了当年的收盘价格close,加上一个偏移 offset。如何判断多头持仓或是空头持仓的追踪止盈止损、股票止损开启价钱呢? strategy.exit函数都会要求特定一个标识,来决定应该是哪一个持仓开展实行追踪止损止盈计划单。使用 strategy.entry("test 1", strategy.long, 1)函数公式开了一个多头仓位,特定了标识为 test 1,因此在 strategy.exit函数启用时大家也传到了标签。那样Pine语言脚本制作就知道需要对标签为 test 1的多头仓位实行跟踪止损、止盈止损计划单了。
我们对多头持仓应用 trail_price主要参数时,要当价钱高过这一 trail_price价钱的时候才会开启追踪止损止盈。空头持仓则相反。
trail_offset主要参数为跟踪止损、止盈止损偏移,追踪止损止盈的时候会每时每刻纪录出现过价钱,用于动态管理追踪止盈止损线(留意,并不是开启运行追踪止损止盈个人行为细线,是实行追踪止损止盈细线)。拿本事例中开多仓以后追踪止损止盈而言,这儿便会监管市场行情发生的***价钱,当价钱减仓到间距*大价钱超出 trail_offset基本参数数值的时候就会马上强制平仓止盈止损。假如是空头仓位的追踪止损止盈,那样相反的方向。
我们可以通过这一演试编码回测表明来详细说明:
由于测试rb合约价格每跳为1元,大家增设了主要参数 offset为30即30元间距,激话追踪止损止盈计划单的价钱也为close 30。随后当市场行情价钱超出这个价位(close 30)以后就会进行实时止损止盈,纪录*高成交价。当价格低于止损止盈开启线(纪录的价格-30)时,马上强制平仓止损止盈。
追踪止损止盈开启线
能够看见对策开始实施时马上开多仓,随后增设了开启挪动止盈止损条件单的开启价钱。以后期内没有实际操作,等到价钱升高超出棕黄色线,逐渐激话追踪止盈止损条件单。逐渐纪录自此市场行情的价格,依据*高成交价动态管理止损止盈线
追踪止盈止损开启,强制平仓
可以直接看到持续保持30块的间距(即由于增设了 strategy.exit函数参数值 trail_offset=offset),动态管理追随。当价格降低跌穿蓝色线时,立即执行了强制平仓实际操作。
追踪止盈止损事例回测日志
那样就实现了一次买入、追踪止盈止损实际操作。Pine语言是否十分简单实用,有利于设计方案。我们也可以把这种止盈止损设计到对策里。比如我们有一个非常趋势策略,大家可以在对策里加入那样追踪止损止盈。
// 反方向数据信号,全平
if strategy.position_size > 0 and dir[2] < 0 and dir[1] > 0
strategy.cancel_all()
strategy.close_all()
runtime.log("发展趋势翻转,双头全平")
else if strategy.position_size < 0 and dir[2] > 0 and dir[1] < 0
runtime.log("发展趋势翻转,空单全平")
if not barstate.ishistory and findOrderIdx("open") >= 0 and state == 1
trail_price := strategy.position_size > 0 ? close offset : close - offset
strategy.exit("exit", "open", 1, trail_price=trail_price, trail_offset=offset)
runtime.log("每点价格是:", syminfo.mintick, ",现阶段close:", close, ",trail_price:", trail_price)
state := 2
tradeBarIndex := bar_index
plot(superTrendPrice, "superTrendPrice", color=dir>0 ? color.red : color.green, overlay=true)