January 25, 2021
Nasze nowe alerty umożliwiają wysyłanie dynamicznych wiadomości

Nasze nowe alerty skryptowe wykorzystują funkcję `alert()`, która działa zarówno w strategiach jak i wskaźnikach i pozwala na wygenerowanie w pełni dynamicznej wiadomości, gdy alert zostanie uruchomiony.

Nowe alerty działają w podobny sposób co ostatnie alerty strategii, gdzie pojedynczy alert utworzony w interfejsie wykresu może agregować wszystkie wyzwalacze generowane przez dowolną liczbę wywołań funkcji `alert()` w skrypcie, w ten sam sposób, w jaki pojedynczy alert strategii agregowałby wszystkie wyzwalacze zdarzeń brokera.

Aby utworzyć nowe alerty:

  1. Uwzględnij w skrypcie tyle wywołań funkcji `alert()` ile chcesz, dołączając każde z nich do bloku `if` definiującego warunki wyzwalające.
  2. Utwórz alert dla skryptu za pomocą okna dialogowego „Utwórz alert” na wykresie i wybierz typ alertu, który zawiera „wywołanie funkcji alert ()”.

Poniżej znajdują się trzy przykłady użycia funkcji `alert()`:

1) Alert skryptu jest wyzwalany na każdym słupku, a wiadomość zawiera cenę zamknięcia słupka:

//@version=4
study("Simple alert() example")
plot(close)
alert("Close = " + tostring(close), alert.freq_once_per_bar_close)

2) Sprawdzane są wartości trzech wskaźników: RSI, SMA i Momentum. Alert skryptu zostanie uruchomiony, jeśli któryś ze wskaźników przekroczy określony poziom (lub cenę), a wiadomość będzie zawierała nazwę wskaźnika i jego aktualną wartość.

//@version=4
study("alert() with multiple indicators", overlay=true)
f_triggerSma()=>
    _s  = sma(close, 14)
    _co = crossover(close, _s)
    _cu = crossunder(close, _s)
    if _co
        alert("Price (" + tostring(close) + ") crossing up SMA (" + tostring(_s) + ")", alert.freq_once_per_bar)
    else if _cu
        alert("Price (" + tostring(close) + ") crossing down SMA (" + tostring(_s) + ")", alert.freq_once_per_bar)
f_triggerRsi()=>
    _r  = rsi(close, 7)
    _co = crossover(_r, 70)
    _cu = crossunder(_r, 30)
    if _co
        alert("RSI (" + tostring(_r) + ") crossing up 70 level", alert.freq_once_per_bar)
    else if _cu
        alert("RSI (" + tostring(_r) + ") crossing down 30 level", alert.freq_once_per_bar)
f_triggerMom()=>
    _m  = mom(close, 14)
    _co = crossover(_m, 0)
    _cu = crossunder(_m, 0)
    if _co
        alert("Momentum (" + tostring(_m) + ")  crossing up 0 level", alert.freq_once_per_bar)
    else if _cu
        alert("Momentum (" + tostring(_m) + ")  crossing down 0 level", alert.freq_once_per_bar)

plot(sma(close, 14), "SMA")
f_triggerSma()
f_triggerRsi()
f_triggerMom()

3) W tym przykładzie sprawdzane są wartości jednego wskaźnika RSI, ale na pięciu symbolach jednocześnie. Alert skryptu zostanie uruchomiony, jeśli RSI przekroczy określony poziom dla któregokolwiek z symboli, a wiadomość będzie zawierała symbol i wartość wskaźnika w momencie przekroczenia.

//@version=4
study("alert() with multiple symbols")
f_triggerRsi(_ticker)=>
    _r = rsi(close, 7)
    _x = crossover(_r,70)
    _y = crossunder(_r,30)
    [_co, _cu] = security(_ticker, timeframe.period, [_x, _y])
    _msg = _ticker + ", " + timeframe.period + ": "
    if _co
        _msg := _msg + "RSI (" + tostring(_r) + ") crossing up 70 level"
        alert(_msg,  alert.freq_once_per_bar_close)
    else if _cu
        _msg := _msg + "RSI (" + tostring(_r) + ")  crossing down 30 level"
        alert(_msg,  alert.freq_once_per_bar_close)

plot(rsi(close, 7), "RSI", color=#8E1599)
band1 = hline(70, "Upper Band", color=#C0C0C0)
band0 = hline(30, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")

f_triggerRsi(syminfo.tickerid)
f_triggerRsi("NASDAQ:MSFT")
f_triggerRsi("FX:EURUSD")
f_triggerRsi("NASDAQ:TSLA")
f_triggerRsi("NASDAQ:PYPL")

Ten skrypt pokazuje, jak używać funkcji `alert()` w strategii, aby generować wiadomości alertu zawierające zlecenia dla silnika egzekucji zewnętrznego dostawcy.

Użytkownicy skryptów mogą dowiedzieć się więcej na temat tworzenia alertów w Centrum Pomocy. Programiści Pine mogą przeczytać o nowych alertach Instrukcji Obsługi skryptu Pine oraz Dokumentacji języka skryptowego Pine.

Przeczytaj o wszystkich aktualizacjach języka Pine na stronie Informacje o Wersji.

Najszybszy sposób na śledzenie rynków

Otwórz wykres