1

据我了解,根据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")

这段代码: if (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%)。在第一种情况下,我无法弄清楚在许多情况下交易退出的原因。我可以提供实际交易的详细信息,但这可能是在这个论坛上解决问题的大量数据。希望您能找出这段代码中的不同之处。

4

0 回答 0