Условие оповещения TradingView Pine, основанное на изменении цвета - PullRequest
0 голосов
/ 11 января 2020

Я пытаюсь добавить alertcondition к этому pinescript, просто чтобы предупредить меня, если цвет сценария ATR изменился с зеленого на красный и с красного на зеленый.

//Crée par J.Dow
    //Double SuperTrend ATR, Le type ATR calcule la volatilité à partir de l'Average True Range (ATR), il est idéal pour le FOREX

    study(title = "Double SuperTrend ATR", shorttitle = "Double SuperTrend ATR", overlay = true)

    //Mode
    Factor=input(title="Super Trend", defval=3, minval=1,maxval = 100)
    ATR=input(title="ATR", defval=12, minval=1,maxval = 100)


    //Super Trend ATR 1
    Up=hl2-(Factor*atr(ATR))
    Dn=hl2+(Factor*atr(ATR))

    TUp=close[1]>TUp[1]? max(Up,TUp[1]) : Up
    TDown=close[1]<TDown[1]? min(Dn,TDown[1]) : Dn

    Trend = close > TDown[1] ? 1: close< TUp[1]? -1: nz(Trend[1],1)

    Tsl1 = Trend==1? TUp: TDown
    Tsl2 = Trend==1? TDown: TUp

    linecolor = Trend == 1 ? green : red



    //Affichage
    P1 = plot(Tsl1, color = linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-1")
    P2 = plot(Tsl2, color = linecolor , style = line , linewidth = 1,title = "SuperTrend ATR-2")
    fill(P1, P2, color = linecolor == red ? red : green)

greenColor = (Trend == 1)
alertcondition(condition=greenColor, title="Buy", message="green buy")
redColor = (Trend != 1)
alertcondition(condition=redColor, title="Sell", message="red sell")

Я выдумал, как сделать оповещение для каждого цвета, но как я могу поместить его в одно предупреждение, которое уведомляет об изменении цвета, с сообщением «цвет изменен», для пример.

Ответы [ 2 ]

0 голосов
/ 13 января 2020

Насколько я понимаю, вы хотите обнаружить только изменение цвета, которое на самом деле является переменной тренда, изменяющейся от 1 до не (1) или наоборот. Я рекомендую:

change_detection_flag = Trend != Trend[1]
alertcondition(change_detection_flag,title="Change",message="color changed")

Обратите внимание, что это не выглядит, был ли он раньше зеленым, а теперь красным, и не был красным раньше и теперь зеленым - как было запрошено.

0 голосов
/ 13 января 2020

Когда Тренд отличается от предыдущего Тренд , вы можете установить предупреждение. Измените это в конце кода

greenColor = Trend == 1 and Trend[1] != 1
alertcondition(greenColor, title="Buy", message="green buy")
redColor = Trend != 1 and Trend[1] == 1
alertcondition(redColor, title="Sell", message="red sell")
...