【问题标题】:Pine Script - Buy/Sell indicator for TradingView that meets multiple conditionsPine Script - 满足多个条件的 TradingView 买入/卖出指标
【发布时间】:2021-12-24 19:02:23
【问题描述】:

我正在尝试使用 EMA、MACD 和 Supertrend 这三个指标为 TradingView 构建买入/卖出指标。

  • 条件 1:快速 EMA 跨越慢速 EMA。
  • 条件 2:MACD 线高于信号线。
  • 条件 3:超级趋势处于上升趋势中。
  • 条件 4:前一个信号必须是“卖出”。

我正在尝试添加满足所有三个条件的“购买”标签(绘图形状),反之亦然。但它不起作用。除了“购买”标签,一切似乎都正常。

我的代码:

//@version=5
indicator('SuperTrend + MACD + EMA', overlay=true)

src = close
fast_ema = ta.ema(src, 9)
slow_ema = ta.ema(src, 18)

fast_macd = ta.ema(src, 12)
slow_macd = ta.ema(src, 26)
macd = fast_macd - slow_macd
signal = ta.ema(macd, 9)
hist = macd - signal

// Deternine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

// Buy only if the buy signal is triggered and we are not already long
LONG = not isLong and fast_ema > slow_ema and macd > signal

// Sell only if the sell signal is triggered and we are not already short
SHORT = not isShort and fast_ema < slow_ema and macd < signal

if LONG
    isLong := true
    isShort := false
    isShort

if SHORT
    isLong := false
    isShort := true
    isShort

// Supertrend Calculation
atr = 3 * ta.atr(10)
longStop = hl2 - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = hl2 + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and close > shortStopPrev ? 1 : dir == 1 and close < longStopPrev ? -1 : dir


// Line Plots
bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(dir == 1 ? longStop : na, title='Up Trend Line', style=plot.style_linebr, linewidth=1, color=color.new(color.green, 0))
downTrend = plot(dir != 1 ? shortStop : na, title='Down Trend Line', style=plot.style_linebr, linewidth=1, color=color.new(color.red, 0))

//Fill Background
fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false, title='Uptrend Background')
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false, title='Downtrend Background')

//Bar Colour
barcolor(dir == 1 and isLong ? color.green : dir != 1 and isShort ? color.red : color.blue)

// Buy/Sell Label Plots
confirmLONG = not isLong and fast_ema > slow_ema and macd > signal and longStop
confirmSHORT = not isShort and fast_ema < slow_ema and macd < signal and shortStop
plotshape(confirmLONG, title='Buy Label', style=shape.labelup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0))
plotshape(confirmSHORT, title='Sell Label', style=shape.labeldown, location=location.abovebar, size=size.normal, text='Sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0))

【问题讨论】:

    标签: pine-script moving-average pinescript-v5 pine-editor


    【解决方案1】:

    您可以更改条件和绘图,而不是使用 isLongisShort 等变量,如下所示:

    // Buy/Sell Label Plots
    confirmLONG = fast_ema > slow_ema and macd > signal and longStop
    confirmSHORT = fast_ema > slow_ema and macd > signal and longStop
    plotshape(not confirmLONG[1] and confirmLONG, title='Buy Label', style=shape.labelup, location=location.belowbar, size=size.normal, text='Buy', textcolor=color.new(color.white, 0), color=color.new(color.green, 0))
    plotshape(not confirmSHORT[1] and confirmSHORT, title='Sell Label', style=shape.labeldown, location=location.abovebar, size=size.normal, text='Sell', textcolor=color.new(color.white, 0), color=color.new(color.red, 0))
    

    这应该可以解决您的主要问题,但您的 confirmSHORT 变量是 confirmLONG 的副本,可能是复制/粘贴错误。

    【讨论】:

    • 谢谢,但它仍然不符合上述条件。此外,即使之前的信号是“买入”,我也会收到“买入”信号。对于“买入”信号,前一个信号必须是“卖出”,反之亦然。附言我已经纠正了我的复制/粘贴错误。
    • 您能否附上屏幕截图并显示您希望买入和卖出信号出现的位置?请确保代码、交易所、时间范围和日期在屏幕截图中可见。
    • 请看这个:prnt.sc/24o2072
    猜你喜欢
    • 1970-01-01
    • 2022-12-03
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 2021-09-22
    • 2019-01-16
    相关资源
    最近更新 更多