如何在达到目标或止损或条件时退出交易视图中的策略

时间:2018-12-18 16:39:16

标签: pine-script

据我了解,根据https://www.tradingview.com/study-script-reference/上的pine脚本参考手册 函数strategy.exit中的参数仅用于下订单 这就是文档所说的 “订单的条件。如果条件为'true',则放置订单。如果条件为'false',则什么都不会发生(具有相同ID的先前放置的订单不会被取消)。默认值为'true'。 “

这意味着在满足条件时不一定必须执行该命令。例如,如果我有一个条件,即当RSI小于30时我将退出交易,并且如果我有

strategy.exit("IdOfThisOrder","EntryOrderID", when=rsilessthan30, profit=100,loss=50) 

(这意味着我的获利目标为100个镐,止损为50个报价) 然后,假设既没有达到利润目标,也没有止损,则仅下订单,并且将不执行该订单。

如果我必须在RSI <30时退出该头寸,那么我实际上将必须对此进行测试,然后致电strategy.close

if rsi<30
  strategy.close("EntryOrderID")

另外,我还必须取消现有订单,这意味着

if rsi<30
  strategy.cancel("IdOfThisOrder")
  strategy.close("EntryOrderID")

实际上,目标和利润将由strategy.exit处理,而其他条件则由strategy.close

处理

这似乎有点复杂,也许我听不懂用法。有时我得到的结果并没有完全停止,所以我想了解如何将它们一起使用

我环顾四周,找不到任何示例。有人可以请教吗?谢谢您的回答

回答第一条评论: 这段代码:

if (shortentercondition )
    strategy.entry("Tech1", strategy.short)
    strategy.exit("Exit","Tech1",profit=profittarget,stop=sl_level)

if ( shortclosecondition )
    strategy.cancel("Exit")
    strategy.close("Tech1")

和此代码:     如果(shortentercondition)         strategy.entry(“ Tech1”,strategy.short)         // strategy.exit(“ Exit”,“ Tech1”,profit = profittarget,stop = sl_level)

if ( shortclosecondition or proftconditionmet or slconditionmet)
    // strategy.cancel("Exit")
    strategy.close("Tech1")
在我的情况下,

应该等效。但是第一个给我亏损(大约-10%),第二个给我利润(大约20%)。在第一种情况下,我无法弄清在许多情况下退出交易的原因。我可以提供实际交易的详细信息,但是可能需要大量数据才能通过此论坛进行故障排除。希望您能指出该代码中的区别。

0 个答案:

没有答案