Bu strateji, aşağıda gösterilen ön tanımlı değerler ile kapanış değeri ve iki hareketli ortalama değeri kullanılarak oluşturulmuştur:
Bu ayarlar, stratejinin "Ayarlar/Özellikler" sekmesinde değiştirilebilir.
Strateji aşağıda belirtilen esaslar dahilinde çalışır:
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Niteya
//@version=5
// Bu strateji şablonu sadece eğitim amaçlı olarak verilmiştir. Yatırım kararlarınızda kullanmayınız.
strategy("Niteya Strategy Moving Average", shorttitle='Niteya MA', overlay=true, commission_value=0.04, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=10000)
ma_type = input.string(title='MA type', defval='EMA', options=['EMA', 'SMA']) // Hareketli ortalama türü seçimi
// Hareketli ortalama uzunlukları seçimi
ma_length1 = input(20, 'MA Length1')
ma_length2 = input(50, 'MA Length2')
is_ma_line = input.bool(defval=false, title="MA Çizgisi") // Hareketli ortalama çizgisinin grafiğe çizilip çizilmeyeceğinin seçimi
ma_src = close // Hareketli ortalama kaynak değerinin atanması
// Hareketli ortalama değerlerinin alınması
ma_1 = ma_type=='EMA' ? ta.ema(ma_src, ma_length1) : ta.sma(ma_src, ma_length1)
ma_2 = ma_type=='EMA' ? ta.ema(ma_src, ma_length2) : ta.sma(ma_src, ma_length2)
line_width = 2 // Çizgi kalınlığı
// Hareketli ortalama değerlerinin grafiğe çizimi
plot(is_ma_line ? ma_1 : na, title="MA src1", color=color.blue, linewidth=line_width)
plot(is_ma_line ? ma_2 : na, title="MA src2", color=color.orange, linewidth=line_width)
// Long ve Short koşulların hesabı
ma_long = ta.crossover(ma_1, ma_2) // Kısa hareketli ortalama değeri uzun hareketli ortalama değerini yukarı doğru keserse true, aksi takdirde false
ma_short = ta.crossunder(ma_1, ma_2) // Kısa hareketli ortalama değeri uzun hareketli ortalama değerini aşağı doğru keserse true, aksi takdirde false
entry_long = ma_long ? true : false // Long işleme giriş değerinin kontrolü
entry_short = ma_short ? true : false // Short işleme giriş değerinin kontrolü
if entry_long and strategy.opentrades==0 // Long koşul gerçekleşmisse ve açılmış bir işlem yoksa long işlem aç
strategy.entry('long', strategy.long, comment='BUY')
if strategy.opentrades>0 and entry_short // Short koşul gerçekleşmisse ve açılmış bir işlem varsa long işlemi kapat
strategy.close('long', comment='SELL')
Yukarıdaki strateji ile ilgili bir uygulama aşağıdaki grafikte gösterilmektedir: