January 25, 2021
Yeni Alarmlarımız Dinamik Mesajlar İçerebiliyor

Yeni komut dosyası alarmlarımız, hem stratejilerde hem de çalışmalarda çalışan ve alarm tetiklendiğinde tamamen dinamik bir mesajın oluşturulmasına izin veren bir “alert()” işlevi kullanır.

Yeni alarmlar, son strateji alarmlarına benzer bir model kullanarak çalışır; burada grafik kullanıcı arabiriminde oluşturulan yalnızca bir alarm, komut dosyasındaki herhangi bir sayıda “alert()” çağrısı tarafından oluşturulan tüm tetikleyicileri bir tek strateji alarmı, tüm aracı kurum olay tetikleyicilerini toplayacaktır.

Yeni alarmları oluşturmak için:

  1. Komut dosyanıza istediğiniz kadar “alert()” çağrısı ekleyin, her birini tetikleme koşullarını tanımlayan bir “if” bloğu içine alın.
  2. Grafiğin “Alarm Oluştur” iletişim kutusunu kullanarak komut dosyası için bir alarm oluşturun ve “alert() işlev çağrısı” dahil bir alarm türü seçin.

Stratejilerde kullanıldığında, kullanıcılar yalnızca “alert()” olaylarında, emir verme olaylarında veya her ikisinde tetikleyen alarmlar oluşturmayı seçebilirler. Ayrıca, dinamik alarm mesajında ​​kullanılabilecek değişkenlerin sayısında bir sınırlama olmadığını ve artık yer tutucuların gerekli olmadığını hatırlamakta fayda var, çünkü bir komut dosyasında kullanılan herhangi bir değişken yeni “alert()” işlevinde de kullanılabilir. dize biçiminde olduğu sürece çağrılar.

Aşağıda “alert()” işlevine ilişkin üç örnek verilmiştir:

1) Komut dosyası alarmı her çubukta tetiklenir ve mesaj çubuğun kapanış fiyatını içerir:

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

2) Üç göstergenin değerleri kontrol edilir: RSI, SMA ve Momentum. Göstergelerden herhangi biri belirli bir seviyeyi (veya fiyatı) geçerse komut dosyası alarmı tetiklenecek ve mesaj, göstergenin adını ve mevcut değerini içerecektir.

//@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) Bu örnekte, bir RSI göstergesinin değerleri kontrol edilir, ancak aynı anda beş sembol üzerinde. RSI herhangi bir sembol için belirli bir seviyeyi geçerse kod alarmı tetiklenecektir ve mesaj geçiş anında sembolü ve gösterge değerini içerecektir.

//@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")

Bu komut dosyası, bir üçüncü taraf yürütme motoru için siparişleri içeren alarm mesajları oluşturmak için bir stratejide “alert()” ‘i nasıl kullanabileceğinizi gösterir.

Komut dosyası kullanıcıları, Yardım Merkezi’nde alarm oluşturma hakkında daha fazla bilgi edinebilir. Pine kodlayıcılar, Pine Kullanım Kılavuzu ve Referans Kılavuzundaki yeni alarmları okuyabilir.

Kullanım Kılavuzumuzun Sürüm Notlarında Pine ile ilgili tüm güncellemeleri okuyun.

Piyasaları takip etmenin en hızlı yolu

Grafiği Açın