Pine Script Bölüm 4: Strateji Yazımı ve Strategy Tester Derinlemesine
Bu bölüm, Pine Script’in en kritik aşamalarından biri olan strateji geliştirme üzerine yoğunlaşır.
Artık yalnızca indikatör değil, gerçek bir al–sat sistemi geliştirmeye başlıyoruz.
Bu bölümde:
- strategy() yapısı
- strategy.entry(), strategy.exit()
- Stop-loss ve take-profit emirleri
- Pozisyon kontrolü
- Backtest optimizasyonu
- Strategy Tester metriklerinin analiz edilmesi
- Zamanlama, slipaj, komisyon ayarları
- Profesyonel backtest prensipleri
- Pine Script ile örnek strateji sistemi
hepsini derinlemesine işleyeceğiz.
1. Strateji Oluşturma Temeli
İlk adım bir strateji tanımlamaktır:
//@version=5
strategy("Basit Strateji", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.05)
Parametreler:
- overlay: grafiğin üzerine mi çizilecek
- initial_capital: başlangıç sermayesi
- commission: işlem maliyetleri
2. strategy.entry() ile İşlem Açmak
Long pozisyon açma:
strategy.entry("Long", strategy.long)
Short pozisyon:
strategy.entry("Short", strategy.short)
Koşullu örnek:
longSignal = ta.crossover(ta.sma(close, 20), ta.sma(close, 50))
shortSignal = ta.crossunder(ta.sma(close, 20), ta.sma(close, 50))
if longSignal
strategy.entry("Long", strategy.long)
if shortSignal
strategy.entry("Short", strategy.short)
3. strategy.exit() ile İşlem Kapatmak
Stop-loss ve take-profit tanımlama:
strategy.exit("Exit", "Long", stop=low - 50, limit=high + 100)
Oran bazlı stop-loss:
strategy.exit("SLTP", "Long", stop=close * 0.98, limit=close * 1.03)
4. Pozisyon Kontrolü
Pozisyon açık mı?
strategy.position_size > 0
Pozisyon yönünü almak:
strategy.position_size
5. Strategy Tester Metrik Analizi
Strategy Tester en kritik metriği sunar:
- Net kâr
- Toplam işlem
- Kazanç oranı
- Max Drawdown
- Sharpe Ratio
- Sortino Ratio
- Ortalama işlem süresi
- Kümülatif performans grafiği
Bu ekran TradingView üzerinden açılır:
https://sancoqhub.com/go/tradingview
6. Gelişmiş Backtest Ayarları
Slipaj ayarı:
strategy.slippage(3)
Komisyon ayarı:
strategy.commission.percent
İşlem yönü:
strategy.long
strategy.short
7. Gelişmiş Strateji Örneği
Tam fonksiyonel bir EMA stratejisi:
//@version=5
strategy("EMA Crossover", overlay=true)
fast = ta.ema(close, 20)
slow = ta.ema(close, 50)
longSignal = ta.crossover(fast, slow)
shortSignal = ta.crossunder(fast, slow)
if longSignal
strategy.entry("Long", strategy.long)
if shortSignal
strategy.entry("Short", strategy.short)
strategy.exit("TP/SL", "Long", stop=close*0.97, limit=close*1.03)
strategy.exit("TP/SL", "Short", stop=close*1.03, limit=close*0.97)
plot(fast, color=color.green)
plot(slow, color=color.red)
8. Optimizasyon (En Güçlü Backtest Aşaması)
Pine Script doğrudan optimize etmez, ancak akıllı input ayarlarıyla “manual optimize” yapılabilir.
Örneğin:
len1 = input.int(20, "Hızlı Ortalama")
len2 = input.int(50, "Yavaş Ortalama")
9. Premium ile Backtest Avantajları
Premium hesap ile:
- Daha fazla grafik
- Daha yüksek bar sayısı
- Daha fazla indikatör kombinasyonu
- Daha fazla layout
Strateji testini geniş veriyle çalıştırmak için önerilir:
https://sancoqhub.com/go/tradingview
10. Sonuç
Bu bölümde Pine Script strateji yazımını profesyonel seviyede ele aldık.
Bir sonraki bölümde otomasyon için Alarm & Webhook entegrasyonu işlenecek.