下单的多个停止出口订单

时间:2019-07-03 23:34:46

标签: pine-script tradingview-api

在交易视图策略中,我输入一个条目并有条件设置止损。同时,我想要一个固定价格的止损订单,但是当我放置两个strategy.exit()命令时,实际上只使用了一个,因为这两个命令都是“ stop”类型的。但是可以通过调用strategy.exit()并为其指定相同的ID来用另一个订单替换退出订单。因此,我的想法是将一个出口替换为另一个出口,并在适合时将其返回,以使同时只有一个出口订单处于活动状态。

比方说,我有一个策略,条件是进入某个价格的某个位置,例如conditionEnterenterPrice,在进入时我也知道止损{{1} },因此我可以设置:

stopLossPrice

现在,如果满足if conditionEnter strategy.entry(id="longEnter", long=true, qty=1, limit=enterPrice strategy.exit(id="longExit", from_entry="longEnter", qty_percent=100, stop=stopLossPrice) ,我将其替换为:

conditionTrailingStopLoss

其中if conditionTrailingStopLoss strategy.exit(id="longExit", from_entry="longEnter", qty=strategy.position_size * 0.2, trail_price=priceToTriggerTrailingStopLoss, trail_offset=100) 等于或低于收盘价,因此立即设置止损并以100个价格跳动价格。请注意,即使执行该指令,也只会退出当前位置的五分之一。

正如预期的那样,尾随止损退出订单的位置将擦除原始的止损退出订单-当使用不同的ID时,甚至是正确的。我想等到尾随止损执行(被执行),然后再次下达止损出口订单。但是如何确定执行时间?

我尝试了一些尝试

priceToTriggerTrailingStopLoss

看到已经执行了一些退出,但是我从未看到两个命令都被执行。改变命令的顺序确实会影响忽略其中两个之一。如果在上面的代码中,我将if strategy.position_size < strategy.position_size[1] strategy.exit(id="longEnter", long=true, qty=1, limit=enterPrice strategy.exit(id="longExit", from_entry="longEnter", qty_percent=100, stop=stopLossPrice) 更改为完全不同的内容,那么三个退出指令都不会执行!

那么有人可以在这里帮忙吗?我的意思是希望有一个固定止损和一个尾随止损并不是很希望,它必须以某种方式起作用,对吧?

编辑:如果我在图表中向后滚动,我确实确实看到有时执行了一个,有时执行了另一个退出订单,但是对于相同的进入顺序却永远都不会执行。

1 个答案:

答案 0 :(得分:0)

我找到了一种解决方案,也可以使用strategy.order()命令来设置止损订单,如下所示:

if conditionEnter
    strategy.entry(id="longEnter", long=true, qty=1, limit=enterPrice
    strategy.order(id="stopLossLong", long=strategy.short,qty=strategy.position_size, limit=syminfo.mintick, stop=stopLossPrice)