PHP Code:
//@version=6
strategy("SİSTEM: NİHAİ GÖLGE SÜVARİ (Tüm Kesişimler)", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.04)
// ==========================================
// 1. BACKTEST TARİH AYARLARI
// ==========================================
grp_tarih = "--- TEST TARİHİ AYARLARI ---"
start_year = input.int(2024, title="Başlangıç Yılı", group=grp_tarih)
start_month = input.int(1, title="Başlangıç Ayı", minval=1, maxval=12, group=grp_tarih)
start_day = input.int(1, title="Başlangıç Günü", minval=1, maxval=31, group=grp_tarih)
end_year = input.int(2026, title="Bitiş Yılı", group=grp_tarih)
end_month = input.int(12, title="Bitiş Ayı", minval=1, maxval=12, group=grp_tarih)
end_day = input.int(31, title="Bitiş Günü", minval=1, maxval=31, group=grp_tarih)
start_time = timestamp(start_year, start_month, start_day, 0, 0)
end_time = timestamp(end_year, end_month, end_day, 23, 59)
in_test_window = time >= start_time and time <= end_time
// ==========================================
// 1.5 STRATEJİ SEÇİCİ (TÜM KOMBİNASYONLAR)
// ==========================================
grp_strateji = "--- TETİKÇİ (HIZLI 1) KESİŞİMLERİ ---"
secilen_strateji = input.string("Kesişim 3: Hızlı 1 x Yavaş 1 (Altın Vuruş)", title="Kesişim Stratejisi", options=[
"Kesişim 1: Hızlı 1 x Hızlı 2 (Mikro Scalp)",
"Kesişim 2: Hızlı 1 x Hızlı 3 (Öncü Kopuş)",
"Kesişim 3: Hızlı 1 x Yavaş 1 (Altın Vuruş)",
"Kesişim 4: Hızlı 1 x Yavaş 2 (Derin Vuruş)",
"Kesişim 5: Hızlı 1 x Yavaş 3 (Makro Vuruş)",
"Kesişim 6: Hızlı 3 x Yavaş 1 (Tam Gövde Geçişi)",
"Kusursuz Hizalanma"], group=grp_strateji)
// ==========================================
// 2. OTONOM VİTES (Motor Ayarları)
// ==========================================
string tf = timeframe.period
string mod_ismi = ""
float s_start_dyn = na, float s_inc_dyn = na, float s_max_dyn = na
int sm_fast = na, int sm_slow = na
if tf == "1" or tf == "3" or tf == "5"
mod_ismi := "DAR VADİ (1-5dk)"
s_start_dyn := 0.1, s_inc_dyn := 0.1, s_max_dyn := 0.2
sm_fast := 7, sm_slow := 14
else if tf == "15" or tf == "30" or tf == "45"
mod_ismi := "GENİŞ OVA (15-45dk)"
s_start_dyn := 0.05, s_inc_dyn := 0.05, s_max_dyn := 0.2
sm_fast := 4, sm_slow := 9
else
mod_ismi := "OKYANUS (1s+ Trend)"
s_start_dyn := 0.02, s_inc_dyn := 0.02, s_max_dyn := 0.2
sm_fast := 2, sm_slow := 5
// ==========================================
// 3. MTK-1-2-3 PSAR MOTORU VE 6 AYNA NEHRİ
// ==========================================
float s_slow_1 = ta.sar(0.02, 0.02, 0.2)
float s_slow_2 = ta.sar(0.015, 0.015, 0.15)
float s_slow_3 = ta.sar(0.01, 0.01, 0.1)
float s_fast_1 = ta.sar(0.08, 0.05, 0.2)
float s_fast_2 = ta.sar(0.01, 0.05, 0.2)
float s_fast_3 = ta.sar(0.04, 0.04, 0.2)
f_mirror(_sar, _sm) =>
float _delta = math.abs(close - _sar)
float _raw = close > _sar ? close + _delta : close - _delta
_sm > 1 ? ta.hma(_raw, _sm) : _raw
// Yavaş Aynalar
float m_slow_1 = f_mirror(s_slow_1, sm_slow)
float m_slow_2 = f_mirror(s_slow_2, sm_slow)
float m_slow_3 = f_mirror(s_slow_3, sm_slow)
// Hızlı Aynalar
float m_fast_1 = f_mirror(s_fast_1, sm_fast) // İnce Sarı (Tetikçi)
float m_fast_2 = f_mirror(s_fast_2, sm_fast) // İnce Mavi
float m_fast_3 = f_mirror(s_fast_3, sm_fast) // İnce Kırmızı
// ==========================================
// 4. STRATEJİ MANTIKLARI (TÜM KOMBİNASYONLAR)
// ==========================================
bool is_locked = barstate.isconfirmed
// Kesişim 1: Hızlı 1 x Hızlı 2
bool cross1_buy = ta.crossover(m_fast_1, m_fast_2) and is_locked
bool cross1_sell = ta.crossunder(m_fast_1, m_fast_2) and is_locked
// Kesişim 2: Hızlı 1 x Hızlı 3
bool cross2_buy = ta.crossover(m_fast_1, m_fast_3) and is_locked
bool cross2_sell = ta.crossunder(m_fast_1, m_fast_3) and is_locked
// Kesişim 3: Hızlı 1 x Yavaş 1
bool cross3_buy = ta.crossover(m_fast_1, m_slow_1) and is_locked
bool cross3_sell = ta.crossunder(m_fast_1, m_slow_1) and is_locked
// Kesişim 4: Hızlı 1 x Yavaş 2
bool cross4_buy = ta.crossover(m_fast_1, m_slow_2) and is_locked
bool cross4_sell = ta.crossunder(m_fast_1, m_slow_2) and is_locked
// Kesişim 5: Hızlı 1 x Yavaş 3
bool cross5_buy = ta.crossover(m_fast_1, m_slow_3) and is_locked
bool cross5_sell = ta.crossunder(m_fast_1, m_slow_3) and is_locked
// Kesişim 6: Hızlı 3 x Yavaş 1 (Tam Gövde)
bool cross6_buy = ta.crossover(m_fast_3, m_slow_1) and is_locked
bool cross6_sell = ta.crossunder(m_fast_3, m_slow_1) and is_locked
// Kusursuz Hizalanma
bool align_buy = (m_fast_1 > m_fast_2) and (m_fast_2 > m_fast_3) and (m_fast_3 > m_slow_1) and (m_slow_1 > m_slow_2) and (m_slow_2 > m_slow_3) and is_locked
bool align_sell = (m_fast_1 < m_fast_2) and (m_fast_2 < m_fast_3) and (m_fast_3 < m_slow_1) and (m_slow_1 < m_slow_2) and (m_slow_2 < m_slow_3) and is_locked
bool hizalanma_al = align_buy and not align_buy[1]
bool hizalanma_sat = align_sell and not align_sell[1]
// ==========================================
// 5. YÜRÜTME (FİLTRE SEÇİMİ)
// ==========================================
bool final_buy = false
bool final_sell = false
if secilen_strateji == "Kesişim 1: Hızlı 1 x Hızlı 2 (Mikro Scalp)"
final_buy := cross1_buy, final_sell := cross1_sell
else if secilen_strateji == "Kesişim 2: Hızlı 1 x Hızlı 3 (Öncü Kopuş)"
final_buy := cross2_buy, final_sell := cross2_sell
else if secilen_strateji == "Kesişim 3: Hızlı 1 x Yavaş 1 (Altın Vuruş)"
final_buy := cross3_buy, final_sell := cross3_sell
else if secilen_strateji == "Kesişim 4: Hızlı 1 x Yavaş 2 (Derin Vuruş)"
final_buy := cross4_buy, final_sell := cross4_sell
else if secilen_strateji == "Kesişim 5: Hızlı 1 x Yavaş 3 (Makro Vuruş)"
final_buy := cross5_buy, final_sell := cross5_sell
else if secilen_strateji == "Kesişim 6: Hızlı 3 x Yavaş 1 (Tam Gövde Geçişi)"
final_buy := cross6_buy, final_sell := cross6_sell
else
final_buy := hizalanma_al, final_sell := hizalanma_sat
if in_test_window
if final_buy
strategy.entry("Süvari LONG", strategy.long)
if final_sell
strategy.entry("Süvari SHORT", strategy.short)
// ==========================================
// 6. GÖRSELLEŞTİRME VE ATMOSFER
// ==========================================
bool all_fast_below = (close > s_fast_1) and (close > s_fast_2) and (close > s_fast_3)
bool all_fast_above = (close < s_fast_1) and (close < s_fast_2) and (close < s_fast_3)
color core_color = all_fast_below ? color.new(color.green, 90) : all_fast_above ? color.new(color.red, 90) : color.new(color.yellow, 90)
float dist_1 = math.abs(close - s_fast_1) * 0.5
p1_top = plot(close + dist_1, display=display.none)
p1_bot = plot(close - dist_1, display=display.none)
fill(p1_top, p1_bot, color=core_color)
plot(m_slow_1, "Ayna Yavaş 1", color=color.new(color.yellow, 20), linewidth=2)
plot(m_slow_2, "Ayna Yavaş 2", color=color.new(color.blue, 20), linewidth=2)
plot(m_slow_3, "Ayna Yavaş 3", color=color.new(color.red, 20), linewidth=2)
plot(m_fast_1, "Ayna Hızlı 1 (Tetikçi)", color=color.new(color.yellow, 0), linewidth=1)
plot(m_fast_2, "Ayna Hızlı 2", color=color.new(color.blue, 0), linewidth=1)
plot(m_fast_3, "Ayna Hızlı 3", color=color.new(color.red, 0), linewidth=1)
plotshape(final_buy, "AL", shape.labelup, location.belowbar, color.lime, text="AL", textcolor=color.black, size=size.small, offset=-1)
plotshape(final_sell, "SAT", shape.labeldown, location.abovebar, color.red, text="SAT", textcolor=color.white, size=size.small, offset=-1)
// ==========================================
// 7. GÖZ HİZASI (HUD) PANELİ
// ==========================================
var label hud_label = na
if barstate.islast
// Menü ismini HUD'a sığacak şekilde kısaltma
string short_strat = ""
if secilen_strateji == "Kesişim 1: Hızlı 1 x Hızlı 2 (Mikro Scalp)"
short_strat := "Hızlı 1 x Hızlı 2"
else if secilen_strateji == "Kesişim 2: Hızlı 1 x Hızlı 3 (Öncü Kopuş)"
short_strat := "Hızlı 1 x Hızlı 3"
else if secilen_strateji == "Kesişim 3: Hızlı 1 x Yavaş 1 (Altın Vuruş)"
short_strat := "Hızlı 1 x Yavaş 1"
else if secilen_strateji == "Kesişim 4: Hızlı 1 x Yavaş 2 (Derin Vuruş)"
short_strat := "Hızlı 1 x Yavaş 2"
else if secilen_strateji == "Kesişim 5: Hızlı 1 x Yavaş 3 (Makro Vuruş)"
short_strat := "Hızlı 1 x Yavaş 3"
else if secilen_strateji == "Kesişim 6: Hızlı 3 x Yavaş 1 (Tam Gövde Geçişi)"
short_strat := "Hızlı 3 x Yavaş 1"
else
short_strat := "Hizalanma"
string hud_text = "â– SÜVARİ HUD â–\n" +
"Zemin: " + mod_ismi + "\n" +
"Motor: " + short_strat
if na(hud_label)
hud_label := label.new(bar_index - 8, close, text=hud_text, color=color.new(color.black, 40), textcolor=color.white, style=label.style_label_right, textalign=text.align_left)
else
label.set_xy(hud_label, bar_index - 8, close)
label.set_text(hud_label, hud_text)
bu kalıp...birden fazla kombinasyonu...seçmeli...backtest yapar...
Yer İmleri