【问题标题】:Why my trades are not getting triggered as often as the indicator shows signal on the chart?为什么我的交易没有像指标在图表上显示的信号那样频繁地被触发?
【发布时间】:2022-11-20 20:29:46
【问题描述】:

我创建了一个指标,然后想用它来测试策略,但我的交易只有 2 或 3,而指标在图表中显示这么多,不确定我做错了什么?

strategy('AMI short', overlay = true)

ema5 = ta.ema(close,100)
rsi = ta.rsi(close, 14)
plot(ema100, linewidth = 2, color = color.yellow)


currentcrossbelow = close < low[1]
previousdetachedabove = low[1] > ema100[1]


shortSignal = currentcrossbelow and previousdetachedabove and high < high[1]
bgcolor(shortSignal ? color.new(color.red, 40) : na)

SL = 0.05
TP = 0.10


shortStop = strategy.position_avg_price*(1+SL)
shortProfit = strategy.position_avg_price*(1-TP)

if shortSignal
    strategy.entry('Short', strategy.short, 1)
if strategy.position_avg_price > 0
    strategy.exit('closeShort', stop = shortStop, limit = shortProfit)

【问题讨论】:

    标签: pine-script pinescript-v5 algorithmic-trading


    【解决方案1】:

    这是因为只要shortSignaltrue,您的bgcolor 就会指示信号。但是,这并不意味着它将进入交易。

    默认情况下,您将只有一个未平仓头寸。这意味着,如果您已经在某个位置,即使您的sellSignaltrue,它也会进入一个新位置。

    如果你想在同一个方向有多个订单,你应该增加pyramiding号。

    您可以通过您的strategy() 调用或从属性选项卡执行此操作。

    strategy('AMI short', overlay = true, pyramiding=99)
    

    【讨论】:

      【解决方案2】:

      首先查看 strategy 定义。
      如果您进入空头头寸,该头寸将保持原样,直到它以某种方式关闭(在您的情况下退出)。

      您的退出条件不会经常得到满足。
      此外,您可能希望允许金字塔式("pyramiding (const int) 同一方向允许的最大进场数量。如果值为0,则同一方向只能开一个进场单,拒绝额外的进场单。这个设置也可以在策略的“设置/属性”选项卡。可选。默认值为 0。”).但这取决于您的喜好。
      例如。 strategy("My strategy", pyramiding=3)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        相关资源
        最近更新 更多