Unsere neuen Alarme ermöglichen dynamische Meldungen

Jan 25, 2021

Unsere neuen Skript-Alarme verwenden eine `alert()`-Funktion, die sowohl in Strategien als auch in Studien funktioniert und es ermöglicht, eine vollständig dynamische Nachricht zu generieren, wenn der Alarm ausgelöst wird.

Die neuen Alarme arbeiten nach einem ähnlichen Modell wie die bisherigen Strategiealarme, wobei nur ein einziger Alarm, der in der Chart-Benutzeroberfläche erstellt wird, alle Auslöser zusammenfassen kann, die durch eine beliebige Anzahl von `alert()`-Aufrufen im Skript erzeugt werden, so wie ein einzelner Strategiealarm alle Broker-Ereignisauslöser zusammenfassen würde.

Um die neuen Alarme zu erstellen:

  1. Fügen Sie so viele `alert()`-Aufrufe in Ihr Skript ein, wie Sie möchten, und schließen Sie jeden in einen `if`-Block ein, der die auslösende(n) Bedingung(en) definiert.
  2. Erstellen Sie einen Alarm für das Skript über das Dialogfeld „Alarm erstellen“ des Charts und wählen Sie einen Alarmtyp einschließlich“alert() function call”.

Bei der Verwendung in Strategien können User wählen, ob sie Alarme erstellen wollen, die nur bei `alert()`-Ereignissen, bei Orderfill-Ereignissen oder bei beiden ausgelöst werden. Es ist auch erwähnenswert, dass es keine Begrenzung für die Anzahl der Variablen gibt, die in der dynamischen Alarm-Meldung verwendet werden können und dass Platzhalter nicht mehr notwendig sind, da jede Variable, die in einem Skript verwendet wird, auch in den neuen `alert()` function calls verwendet werden kann, solange sie im String-Format vorliegt.

Im Folgenden finden Sie drei Beispiele für die Funktion `alert()`:

1) Der Skript-Alarm wird bei jedem Balken ausgelöst, und die Meldung enthält den Schlusskurs des Balkens:

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

2) Es werden die Werte von drei Indikatoren überprüft: RSI, SMA und Momentum. Der Skript-Alarm wird ausgelöst, wenn einer der Indikatoren ein bestimmtes Niveau (oder einen Preis) überschreitet, und die Meldung enthält den Namen des Indikators und seinen aktuellen Wert:

//@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) In diesem Beispiel werden die Werte eines RSI-Indikators geprüft, aber für fünf Symbole gleichzeitig. Der Alarm des Skripts wird ausgelöst, wenn der RSI ein bestimmtes Niveau für eines der Symbole überschreitet, und die Nachricht enthält das Symbol und den Indikatorwert zum Zeitpunkt der Überschreitung

//@version=4
study("alert() with multiple symbols")
f_triggerRsi(_ticker)=>
    _r = rsi(close, 7)
    _x = crossover(_r,70)
    _y = crossunder(_r,30)
    _rt = barstate.isrealtime
    [_rsi, _co, _cu, _rt_bar] = security(_ticker, timeframe.period, [_r, _x, _y, _rt])
    _msg = _ticker + ", " + timeframe.period + ": "
    if _co and _rt_bar
        _msg := _msg + "RSI (" + tostring(_rsi) + ") crossing up 70 level"
        alert(_msg,  alert.freq_once_per_bar_close)
    else if _cu and _rt_bar
        _msg := _msg + "RSI (" + tostring(_rsi) + ")  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=color.new(#9915FF,90), title="Background")

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

User des Skripts können mehr über das Erstellen von Alarmen im Help Center erfahren. Pine-Programmierer können die neuen Alarme im Pine User Manual und im Reference Manual nachlesen.

Lesen Sie über alle Aktualisierungen von Pine in den Versionshinweisen des User Manuals.

Look first Then leap

TradingView wurde für Sie entwickelt. Stellen Sie sicher, dass Sie unsere fantastischen Features optimal nutzen
Chart öffnen