MT4, MT5 ve cTrader'da Forex stratejilerinin backtesti: modelleme, Walk-Forward ve ileri teknikler

MT4, MT5 ve cTrader'da profesyonel bir Forex backtesti nasıl kurulur: tick verileri, geçmiş veri kalitesi, Walk-Forward analizi, metrikler, emir yürütme simülasyonu ve dayanıklılık kontrolü.

||
Güncellendi

📖 Forex'te backtesting: stratejiler nasıl test edilir ve Walk-Forward analizi neden gerekir

Backtesting, işlem kurallarını geçmiş veriler üzerinde çalıştırarak stratejinin sermaye riske edilmeden geçmişte nasıl davranacağını anlamaktır. Algoritmik trading bağlamında backtesting, demo ve gerçek hesap başlangıcından önce zorunlu bir aşamadır.

Bu materyalin amacı, MT4, MT5 ve cTrader'da profesyonel bir Forex backtestinin nasıl kurulacağını göstermektir: modelleme modlarını seçmek, tick doğruluğuna ulaşmak, Walk-Forward analizi yapmak, metrikleri yorumlamak, yürütmeyi simüle etmek ve Monte Carlo ile dayanıklılığı kontrol etmek.

Backtesting: geçmiş veriler üzerinde işlemlerin simülasyonu ve getiri/risk metriklerinin hesaplanması.

Algoritmik trading: kodda programlanmış, biçimlendirilmiş kurallara göre işlem yapma.

Tick verileri: fiyatın en küçük değişimlerinin (tick-by-tick) doğru zamanla kaydedilmiş sırası.

Walk-Forward analizi (WFA): dayanıklılığı ölçmek için “bir pencerede optimizasyon → sonraki pencerede test (OOS) → pencereyi kaydırma” döngüsü.

Monte Carlo: sonuç dağılımını ve kuyruk risklerini değerlendirmek için rastgele senaryolar serisi (işlem sırasını karıştırma, maliyet varyasyonları).

🧭 Backtesting nedir ve neden belirleyicidir

Backtesting stratejinin geçmiş piyasadaki işlemlerini simüle edip temel göstergeleri hesaplamaktır. Demo/gerçek hesap öncesinde fikirler için kalite filtresi ve kod mantığını kontrol etme yöntemidir.

  • Hipotez testi: zayıf fikirleri hızlı elemek ve güçlü olanlara odaklanmak.
  • Kod teşhisi: giriş/çıkışların görsel doğrulaması mantık hatalarını yakalamaya yardım eder.
  • Metrikler: Max Drawdown, PF, Sharpe, işlem beklentisi, yıllara göre istikrar.
  • Disiplin: geçmişle doğrulanmış kuralları psikolojik olarak sürdürmek daha kolaydır.

Max Drawdown: equity zirvesinden yüzde olarak maksimum düşüş.

PF (Profit Factor): toplam kârın toplam zarara oranı.

Sharpe Ratio: riske göre normalize edilmiş getiri (getiri volatilitesi).

İşlem beklentisi (Expectancy): işlem başına ortalama kâr = WinRate × AvgWin − (1 − WinRate) × AvgLoss.

Geçmiş sonuçlar geleceği garanti etmez. Backtest, forward-test (yeni veri/demo üzerinde kontrol) ve yürütme kontrolüyle tamamlanır.

⚙️ MT4, MT5 ve cTrader'da backtesting yaklaşımları

Platformlar modelleme doğruluğu, çoklu sembol desteği, optimizasyon hızı ve geliştirme rahatlığı bakımından farklıdır.

Çoklu sembol desteği: tek bir danışman ve tek bir çalıştırma içinde birden fazla sembolün eşzamanlı test edilmesi/işlenmesi.

MT4: sınırlamaları olan klasik

  • Tester: görsel mod var, ancak çoklu sembol backtest yok (her çalıştırmada 1 sembol).
  • Modelleme: “sadece açılış fiyatları”, “kontrol noktaları”, “tüm tickler”. Dış tick olmadan kalite çoğu zaman ≤90% olur.
  • Hız: sıralı çalıştırmalar, dağıtık optimizasyon yok.

✅ Artılar

  • Basit geliştirme ortamı, çok sayıda hazır Expert Advisor.
  • Hızlı deneyler için düşük giriş eşiği.

❌ Eksiler

  • Tek çalıştırmada çoklu sembol testi yok.
  • Tick doğruluğu dış içe aktarma ve geçmişin manuel hazırlanmasını gerektirir.

MT5: profesyonel standart

  • Çoklu sembol desteği: tek bir danışman bir süreç içinde birkaç sembolü test edebilir.
  • Tickler: gerçek tickler ve broker spreadi desteği; “Her tick”, “1-Minute OHLC”, “Açılışlar” modları.
  • Optimizasyon: çok iş parçacığı, genetik algoritma, uzak ajanlar ve bulut.
  • Forward-opt: geçmişin eğitim bölümü ve OOS olarak yerleşik ayrılması.

1-Minute OHLC: bir dakikalık mumun dört fiyatına göre modelleme (Open/High/Low/Close); daha hızlıdır, fakat dar stoplarda daha kabadır.

Genetik algoritma: sezgisel optimizasyon — en iyi kombinasyonların seçildiği parametre setlerinin “evrimi”.

OOS (Out-of-Sample): optimizasyondan sonra seçilmiş parametrelerin test edildiği, örnek dışı geçmiş bölümü.

✅ Artılar

  • Ticklerde “kutudan çıktığı gibi” yüksek modelleme doğruluğu.
  • Forward ve genetik algoritma dahil hızlı optimizasyonlar.

❌ Eksiler

  • Kod doğruluğu ve olay modeli konusunda daha sıkı gereksinimler.

cTrader: C# esnekliği ve Market Replay

  • Dil: C# (Automate/cAlgo), güçlü tip sistemi ve .NET ekosistemi.
  • Veriler: “Tick data from server”, sabit veya rastgele spread.
  • Deneyim: Market Replay — eğitim ve görsel doğrulama için piyasayı elle yeniden oynatma.
  • Performans: sıralı çalıştırma; optimizasyon — yeni sürümlerde paralel.

✅ Artılar

  • Güçlü C# yığını ve kullanışlı Market Replay.
  • Yürütme ve spread için esnek özelleştirme.

❌ Eksiler

  • Çok sembollü sistemler manuel sinyal mimarisi gerektirir.

🧪 Modelleme modları ve ne zaman kullanılacağı

Mod seçimi, mum içi hareketlere (ticklere) duyarlılığa ve dar SL/TP seviyelerine bağlıdır (stop-loss/take-profit).

Tick: her fiyat değişiminin ve spreadin modellemesi (scalping/HFT için maksimum doğruluk).

OHLC: mumun dört fiyatına göre modelleme; daha hızlıdır, fakat dar stoplarda daha kabadır.

HFT: yürütme gecikmesinin kritik olduğu yüksek frekanslı mantık.

“Her tick” (tick-by-tick)

Her fiyat değişimini ve spreadi en gerçekçi şekilde simüle eder. Scalping ve HFT mantığı için gereklidir.

  • Artılar: doğru giriş/çıkışlar, stopların ve slippage'in uygun değerlendirilmesi.
  • Eksiler: yüksek yük ve tick kalitesine güçlü bağımlılık.

Ana nokta: tetikleyiciler mum içinde çalışıyorsa “ticklerle” test edin; aksi halde sonuç şişirilir.

OHLC/1-Minute

Dakikalık mumların Open/High/Low/Close fiyatlarına göre modelleme. Orta vade ve fikirlerin hızlı kaba filtresi için uygundur.

  • Artılar: çok hızlı.
  • Eksiler: dar stoplarda ve intraday formasyonlarda bozulmalar.

Görsel mod / Market Replay

Grafikte işlemleri adım adım izleme (MT4/MT5) veya piyasayı yeniden oynatma (cTrader) — hata ayıklama ve eğitim için kullanışlıdır.

  • Artılar: giriş mantığı, trailing ve filtreler açıkça görülür.
  • Eksiler: toplu çalıştırmalardan daha yavaş; sonradan “geleceğe bakma” riski.

📊 Modelleme kalitesi ve veri kaynakları

Güvenilirlik, giriş verilerinin kalitesiyle sınırlıdır. “Girdi çöpse çıktı da çöptür”. Önce geçmiş, sonra optimizasyon.

  • Tickler: MT5/cTrader için broker tickleri; MT4 için dış ticklerin içe aktarılması ve tester formatına dönüştürülmesi.
  • Zaman dilimi ve seanslar: tek zaman dilimi, bar boşlukları ve tekrarlarının kontrolü.
  • Maliyetler: gerçek/rastgele spread, komisyon ve slippage'i modelleyin.
  • Kontrol: zaman sırasını doğrulamak için işlemsiz “kuru çalıştırma”.
Hızlı başlangıç: MT5'te “ticklerle” test

Açın Strateji Test Cihazı → danışmanı (EA) seçin → “Her tick” modu → tick kaynağı “Borsa/broker” → komisyon/spread belirleyin → “Görselleştirme”yi açın → Başlat. Forward optimizasyon için optimizasyon ayarlarında OOS bölümünü etkinleştirin.

🧼 Dürüst backtest için veri pipeline'ı

Her şeyi veri belirler. Optimizasyonlardan önce geçmişin tam, zaman dilimine göre tutarlı ve “boşluklar” ile tekrarlardan temiz olduğundan emin olun.

  1. Güvenilir bir kaynaktan veya brokerdan tick/dakika verisi içe aktarın.
  2. Zaman dilimini ve işlem seansları takvimini normalize edin.
  3. Anomalileri temizleyin: tekrarlar, sıfır barlar, aşırı “spike”lar.
  4. Spread/komisyonu modelleyin, fiyat/hacim yuvarlama kurallarını belirleyin.
  5. Zamanın monotonluğunu kontrol etmek için işlemsiz “kuru test” yapın.

Uyumluluk: MT5 ve cTrader — tick verisi önceliklidir; MT4 — tick içe aktarımıyla. Karışık kaynaklarda tek zaman dilimi kullanın ve yaz saati geçiş kurallarını kaydedin.

Dataset “pasaportu” tutun: kaynak, derinlik, zaman dilimi, indirme tarihi ve dosya hash'i — tekrarlanabilirliği kolaylaştırır.

⚡ Yürütme modellemesi: emirler, spread, gecikmeler

İdeal yürütme sonuçları şişirir. Gerçekçi varsayımlar ekleyin: emir türü, spread filtresi, slippage ve rastgele gecikmeler.

Spread: Bid ile Ask arasındaki fark; haberlerde/düşük likiditede genişler.

Slippage: piyasa ivmesi veya gecikme nedeniyle beklenenden kötü fiyattan yürütme.

Gecikme: ağ/terminal/sunucu toplam latansı; HFT/haberler için kritiktir.

Bileşen Model Öneri
Emir türü Market/Limit/Stop Scalping — spread filtresiyle limit; trend — market kabul edilebilir.
Spread Sabit veya rastgele Tarihsel aralıktaki rastgele spread daha gerçekçidir.
Slippage Simetrik veya yanlı Market emirleri için negatif sapma ekleyin.
Gecikme Rastgele 10-300 ms Haberlerde ve en yüksek volatilite saatlerinde geçerlidir.

Gerçek hesabı planlarken backteste göre kâra %5-15 “yürütme indirimi” ve Max Drawdown'a +%20-30 ekleyin.

⏩ Walk-Forward analizi (WFA)

Walk-Forward dayanıklılığı değerlendirmek için aşamalı “bir pencerede optimizasyon → sonraki pencerede test (OOS) → pencereyi kaydırma” döngüsüdür.

WFA: takvime göre yeniden eğitimle in-sample (eğitim bölümü) ve out-of-sample (kontrol bölümü) parçalarının dönüşümlü kullanımı.

OOS: seçilmiş parametrelerin test edildiği, önceden çalışılmamış geçmiş bölümü.

Rolling vs Anchored: kayan pencere ile büyüyen pencere karşılaştırması (daha az overfit riski).

  1. Geçmişi bölün: ör. 12-18 ay optimizasyon ve 3-6 ay test.
  2. İlk pencerede parametreleri optimize edin ve en iyi seti sabitleyin.
  3. Bu seti sonraki pencerede (OOS) test edin.
  4. Pencereleri kaydırın ve döngüyü geçmişin sonuna kadar tekrarlayın.
  5. OOS sonuçlarını birleştirin, istikrarı ve drawdown aralığını değerlendirin.

Pratik WFA şemaları

Rolling window — hızlı adaptasyon; Anchored — daha az aşırı öğrenme, ama daha yüksek atalet.

Ana nokta: parametre sayısını sınırlayın ve tüm pencerelerde aynı kuralları kullanın; aksi halde karşılaştırma geçersiz olur.

🎲 Stratejinin Monte Carlo kontrolü

Monte Carlo sonuç dağılımını ve risk “kuyruklarını” gösteren rastgele senaryolar serisidir (işlemleri karıştırma, spread/slippage varyasyonları).

Karıştırma senaryoları

Getiri ve drawdown aralığını değerlendirmek için 200-1000 alternatif geçmiş simüle edin.

  • Reshuffle: aynı PnL (kâr/zarar)ile işlem sırasının rastgele permütasyonu.
  • Noise: slippage ve spread üzerine ±%25-50.
  • Gap test: haber kaynaklı sert düşüşleri taklit eden nadir aşırı tickler.

Ana nokta: sadece medyana değil, 5-10. persentillere bakın — güvenlik payı zirveden daha önemlidir.

💻 Örnek: hareketli ortalama kesişimi (MA Cross)

MQL5 ve cTrader için C# üzerinde eğitim amaçlı mantık. Gerçek işlemde volatilite filtreleri ekleyin ATR, risk yönetimi ve yürütme kontrolü.

🧪Mini rehber: örneği nasıl yeniden üretirsiniz

1) MT5'te EA oluşturun ve aşağıdaki kodu yapıştırın. 2) Test cihazında “Her tick”i seçin ve komisyon/spread girin. 3) Başka sembol/TF üzerinde kontrol edin ve PF/DD'yi karşılaştırın (profit factor / maks. drawdown).

MQL5 (MT5)

#property strict

input int FastMAPeriod = 20;

input int SlowMAPeriod = 50;

#include <Trade/Trade.mqh>
CTrade trade;

int hFast, hSlow;



int OnInit(){

  hFast = iMA(_Symbol, PERIOD_CURRENT, FastMAPeriod, 0, MODE_SMA, PRICE_CLOSE);

  hSlow = iMA(_Symbol, PERIOD_CURRENT, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE);

  return(INIT_SUCCEEDED);

}



void OnTick(){

  double fast[], slow[];

  if(CopyBuffer(hFast,0,0,2,fast)<2 || CopyBuffer(hSlow,0,0,2,slow)<2) return;

  bool crossUp   = (fast[1] <= slow[1]) && (fast[0] > slow[0]);

  bool crossDown = (fast[1] >= slow[1]) && (fast[0] < slow[0]);

  if(crossUp)   { trade.PositionClose(_Symbol); trade.Buy(0.1); }

  if(crossDown) { trade.PositionClose(_Symbol); trade.Sell(0.1); }

}

C# (cTrader Automate)

using cAlgo.API; using cAlgo.API.Indicators;

[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]

public class MACrossBot : Robot {

  [Parameter("Fast", DefaultValue = 20)] public int Fast { get; set; }

  [Parameter("Slow", DefaultValue = 50)] public int Slow { get; set; }

  private MovingAverage maF, maS;

  protected override void OnStart(){

    var series = MarketData.GetSeries(TimeFrame);

    maF = Indicators.MovingAverage(series.Close, Fast, MovingAverageType.Simple);

    maS = Indicators.MovingAverage(series.Close, Slow, MovingAverageType.Simple);

  }

  protected override void OnBar(){

    bool crossUp   = maF.Result.Last(1) <= maS.Result.Last(1) && maF.Result.LastValue >  maS.Result.LastValue;

    bool crossDown = maF.Result.Last(1) >= maS.Result.Last(1) && maF.Result.LastValue <  maS.Result.LastValue;

    if(crossUp)   { ClosePositions(TradeType.Sell); ExecuteMarketOrder(TradeType.Buy, SymbolName, 10000); }

    if(crossDown) { ClosePositions(TradeType.Buy);  ExecuteMarketOrder(TradeType.Sell, SymbolName, 10000); }

  }

}

Örnek basitleştirilmiştir: trend filtresi, ATR ile boyut hesabı, komisyon/slippage hesaba katma ve yeterli money-management yoktur. Sonuç çıkarmadan önce bu öğeleri ekleyin.

🧪 Mini vakalar: farklı fikirler nasıl davranır

Açıklayıcı örnekler sezgi oluşturur: fikrin nerede kazandığı ve maliyet/piyasa rejimleri yüzünden nerede zorlandığı. Değerler demonstratiftir — kendi değerlerinizle değiştirin.

Breakout London (EURUSD M15)

Londra'nın ilk 2 saatinde Asya aralığının kırılması, sabit SL/TP, spread filtresi.

  • Güçlü yanlar: trend rejimi, yüksek işlem beklentisi.
  • Zayıf yanlar: haberlere ve slippage'e duyarlılık.

Mean Reversion (USDJPY M5)

Fiyat VWAP ve/veya BBseviyesinden uzaklaştığında ortalamaya dönüş, kademeli çıkış.

  • Güçlü yanlar: yatay piyasa, çok işlem, düzgün equity (hesap değeri eğrisi).
  • Zayıf yanlar: maliyetler büyüdüğünde “bin kesikle ölüm”.

MA Cross (H1)

ATR filtresi ve ATR×2 trailing-stop ile SMA 20/50 kesişimi.

  • Güçlü yanlar: parametrelerin yakın paritelere taşınabilirliği.
  • Zayıf yanlar: testere piyasalar ve uzun yatay dönemler PF'yi düşürür.
Strateji Senaryo PF Max DD Sharpe İşlem
Breakout London Tickler + rastgele spread 1.6 18% 1.1 480
Mean Reversion Tickler + komisyon×1.2 1.4 12% 1.3 1200
MA Cross OHLC → tickler (doğrulama) 1.3 20% 1.0 260
Sonuç: maliyetlere duyarlı stratejiler spread ve zaman filtresi gerektirir. Ticklerde PF/Sharpe farkları OHLC'ye göre daha belirgin olur.

🌗 Piyasa rejimleri ve strateji davranışı

Geçmişi trend, yatay ve haber pencereleriolarak ayırın. Metrikleri ayrı değerlendirin ve açma/durdurma kurallarını ayarlayın.

Trend rejimi

Filtreler: ADX>25, kanal kırılımları, MA'nın pozitif eğimi.

  • Öneriler: TP'yi genişletmek, geri çekilmelere duyarlılığı azaltmak.
  • Riskler: tükenmiş trendde yanlış kırılımlar.

Yatay rejim

Düşük volatilite (ATR aralığın alt kısmında), ADX<15, sık ters yönlü hareketler.

  • Öneriler: TP'yi kısaltmak, mean-reversion kullanmak, spread filtresi.
  • Riskler: maliyetler istatistiksel avantajı “yer”.

Haber pencereleri

Yüksek ATR, spread genişlemesi, gapler.

  • Öneriler: ara vermek, spread filtresi, haber sonrası gecikmeli girişler.
  • Riskler: slippage, sık stoplar.

Ana nokta: ekonomik takvim ile ATR/spread limitlerinin birleşimi çoğu zaman Sharpe'ı artırır.

📋 MT4 vs MT5 vs cTrader — Forex için karşılaştırma

Çok sembollü sistemlerle çalışırken doğruluk, hız ve kullanım rahatlığını etkileyen temel farklar.

Kriter MT4 MT5 cTrader
Modelleme doğruluğu Dış ticklerle %99'a kadar; aksi halde ≤90% Broker tickleri; yüksek doğruluk Tick data from server; esnek spread ayarı
Hız/optimizasyon Sıralı çalıştırmalar Çok iş parçacığı, bulut ajanları, genetik Sıralı çalıştırma; optimizasyon — paralel
Çoklu sembol Hayır (1 sembol/test) Evet (bir EA — birkaç sembol) API/sinyal mimarisi üzerinden
Görsel test Görsel mod Görselleştirme + gelişmiş analitik Market Replay
Raporlar/metrikler Temel set Gelişmiş raporlar/grafikler Ayrıntılı istatistik/equity

🔍 Sonuçların yorumlanması: temel metrikler

Değerlendirme kapsamlı olmalıdır: getiriyi risk ve dayanıklılıkla birleştirin, işlem sayısını ve kârın zaman içindeki dağılımını kontrol edin.

Maksimum düşüş (Max Drawdown)

Bakiye/equity'nin zirveden en büyük düşüşü, yüzde olarak. Ne kadar düşükse o kadar iyidir; yıllık getiriyle karşılaştırın (ör. CAR/MDD).

Profit Factor (PF)

Toplam kârın toplam zarara oranı. Değerler > 1 — potansiyel olarak kârlı, > 1.5 — iyi, > 2 — mükemmel, ancak dönemlere göre istikrar önemlidir.

Sharpe Ratio

Riske göre normalize edilmiş getiri (getiri volatilitesi). Daha yüksek — daha istikrarlı; referans — > 1, “düzgün” sistemlerde 1.5-2seviyesine daha yakın.

İşlem beklentisi (Expectancy)

İşlem başına ortalama kâr: Expectancy = WinRate × AvgWin − LossRate × AvgLoss. Pozitif olmalı ve yeterli işlem sayısıyla doğrulanmalıdır.

Equity: açık pozisyonlar dahil hesap değeri eğrisi (bakiyeden farklı olarak).

PF: PF = Gross Profit / Gross Loss; işlem sayısı ve Max DD ile birlikte bakmak faydalıdır.

Sharpe: (Mean Return − Rf) / StdDev(Return); burada Rf risksiz faiz oranıdır.

Expectancy: = WinRate × AvgWin − (1 − WinRate) × AvgLoss; ≥ 200-300 işlem örneğinde kontrol edin (intraday için daha fazla).

CAR/MDD: yıllık getiri (Compound Annual Return) ile maksimum drawdown oranı.

Metriklerin yıllar/çeyrekler boyunca istikrarını kontrol edin ve “yürütme indirimi” (spread/komisyon/slippage) kullanın; aksi halde PF ve Sharpe şişer.

🗺️ Parametre dayanıklılık haritası

İki temel parametreyi ızgara üzerinde değiştirin ve metrikleri kaydedin. Maksimumun küçük bir “adasını” değil, dayanıklılık platosunuarıyoruz.

Deney tasarımı

  • Izgara: iki parametrede 15×15 nokta (örneğin Fast/Slow MA periyotları).
  • Metrikler: PF, Max DD, Sharpe, CAR/MDD, işlem sayısı.
  • Kriterler: PF ≥ 1.3, DD ≤ 25%, işlem ≥ 200.

Ayar kararı

Parametreleri “plato”nun kenarından değil ortasından seçin — piyasa rejimi değiştiğinde etkinliği koruma ihtimali daha yüksektir.

⚠️ Tipik tuzaklar ve nasıl kaçınılır

Aşırı optimizasyon (overfitting)

  • Çok fazla parametre veya dar aralıklar stratejiyi gürültüye uydurur.
  • Çözüm: parametre limiti, Walk-Forward, OOS kontrolü, Monte Carlo.

Yürütmeyi yok saymak

  • Spread/komisyon/gecikmeler hesaba katılmadan PF ve Sharpe neredeyse her zaman şişirilir.
  • Çözüm: rastgele spread, slippage ve gecikmeler, sonuçlara “indirim”.

“Kirli” veriler ve zaman dilimleri

  • Boşluklar, tekrarlar ve yanlış zaman dilimi intraday mantığı bozar.
  • Çözüm: veri pipeline'ı, tek zaman dilimi, tick önceliği.

🧰 Backtesting için DevOps: tekrarlanabilirlik ve deney kaydı

Bir strateji, sonucu tekrar üretilebildiğinde değerlidir. Veri sürümleri, sabit ayarlar ve standart rapor gerekir.

  • Veri sürümleme: indirme tarihi, kaynak, derinlik, dosya hash'i.
  • Deney konfigürasyonu: semboller, TF, tarihler, komisyonlar, spread/gecikmeler, seed (rastgele sayı üretecinin başlangıç değeri).
  • Rapor şablonu: metrik özeti, equity/drawdown grafikleri, PnL dağılımı (kâr/zarar), hassasiyet.
  • Artefaktlar: işlem logları, serileştirilmiş parametreler, danışman (EA) / cBot sürüm pasaportu (cTrader botu).

Tek tıkla tekrar çalıştırmak için “çalıştırma maketi” — JSON/YAML konfigürasyonu — saklayın.

🧮 Optimizasyon yöntemleri: grid, genetik, Bayes

Optimizasyon, getiri ve risk arasında en iyi dengeye sahip parametreleri aramaktır. Hesaplama süresini ve sonucun dayanıklılığını dikkate alın.

Yöntem Öz Ne zaman daha iyi Riskler
Grid Search Parametrelerin tam ızgara taraması Az parametre ve dar sınırlar Uzun sürer, “ızgaraya uyum” riski
Genetik optimizasyon Kombinasyonların evrimsel seçimi (mutasyon/çaprazlama) Orta/büyük parametre sayısı Kriter kontrolü ve erken durdurma gerekir
Bayes (TPE) TPE ile “parametreler → metrik” modeli Pahalı çalıştırmalar, karmaşık yüzeyler Uygulaması daha zor, yerel maksimum riski

Kaba grid → genetik → WFA/Monte Carlo doğrulaması. Maksimum PF'yi değil, istikrarlı platoyu seçin.

🛡️ Risk yönetimi ve pozisyon büyüklüğü

Risk yönetimi sermaye eğrisini giriş noktasından daha güçlü etkiler. Pozisyon büyüklüğü volatiliteye ve sermayeye bağlı olmalıdır.

Fixed-fractional ve volatilite bazlı risk

Her işlemde sermayenin sabit bir kısmını riske eder ve stopu ATR ile normalize ederiz.

  • Pratik: SL'den lot hesabıyla işlem başına %0.5-2 risk (stop-loss).
  • ATR normalizasyonu: farklı volatilitede aynı parasal risk.

Ana nokta: riski backtestte tam modelleyin; aksi halde gerçek drawdown'lar tatsız sürpriz olur.

Risk sınırlayıcılar

Günlük/haftalık zarar limitleri, stop serisinden sonra molalar, spread genişliği veya ATR sıçramalarında stop-trading.

  • Arka arkaya N zararlı işlemden sonra mola.
  • Aşırı spread veya anormal ATR durumunda kapatma.

🧩 Strateji portföyü: çeşitlendirme ve korelasyon

Düşük korelasyonlu birkaç bağımsız strateji equity'yi yumuşatır ve drawdown'ı azaltır.

  • Türler: trend, mean-reversion, breakout, farklı TF/semboller.
  • Seçim: günlük PnL'in düşük korelasyonu (kâr/zarar), tamamlayıcı piyasa rejimleri.
  • Kontrol: eşzamanlı riskler ve enstrüman kümeleri için limitler.

Strateji korelasyon matrisi kurun ve sadece ayrı stratejileri değil tüm portföyü test edin.

🧨 “Ya olursa” senaryoları: maliyet ve koşul stres testi

Stratejinin yürütme kötüleşmesi, volatilite artışı ve haber kapatmaları karşısında nasıl dayanacağını kontrol edin.

Senaryo Değişiklik Beklenen etki
Komisyon ↑ ×1.5 Sık işlem yapan stratejilerde PF düşer — işlemleri filtreleyin
Spread ↑ +30% Daha kötü entry/exit, daha fazla stop, Sharpe düşüşü
Gecikme ↑ +150 ms İvmede daha kötü yürütme — bufferları artırın
Haberler — off Yayınların etrafında −1 saat Daha az işlem, fakat zarar kuyruklarının yumuşaması

❓ Sorular ve cevaplar (FAQ)

“%99” modelleme kalitesi nasıl elde edilir?
Brokerın tick kotasyonlarını kullanın (MT5/cTrader) veya özel araçlarla MT4'e tick aktarın. Spread, komisyon ve gerçekçi slippage'i mutlaka dikkate alın.
Backtest ile forward-test arasındaki fark nedir?
Backtest geçmiş verilerde, forward ise ayarlamaya katılmamış yeni verilerde yapılır. Forward, optimizasyon sonrası ayarların dayanıklılığını doğrular.
Forex stratejisi için hangi geçmiş dönemi almak gerekir?
Intraday/swing için minimum 2-3 yıl, günlük sistemler için 5-10 yıl. Farklı rejimleri (trend/yatay/haberler) kapsamak önemlidir.
Görsel mod ve Market Replay neden gerekir?
Giriş/çıkış mantığını gösterir, stratejiyi, trailing'i ve filtreleri grafikte hata ayıklamaya yardım eder; mantık hatası riskini azaltır.
Backtesting için MT4, MT5 yoksa cTrader mı seçilmeli?
Maksimum doğruluk ve hız — MT5; esnek C# ve kullanışlı Market Replay — cTrader; MT4 — hazır altyapı ve tick verisiyle çalışma becerisi varsa minimalist seçenek.
Backtestte komisyon ve swaplar nasıl hesaba katılır?
Komisyonu tester ayarlarında belirleyin veya kodda hesaplayın. Swaplar için brokerın gerçek oranlarını kullanın ve yükseltilmiş maliyetlerle senaryo çalıştırın.
Stratejinin dayanıklı olduğu nasıl anlaşılır?
Walk-Forward'da istikrarlı sonuçlar, Monte Carlo'da dar dağılım, hassasiyet haritasında plato ve komşu parite/TF'lere taşınabilirlik.

✅ Demo/gerçek hesap başlatma check-list'i

  • “Pasaportlu” dataset: kaynak, derinlik, zaman dilimi, indirme tarihi, hash.
  • Test konfigürasyonu: semboller, TF, tarihler, maliyetler, gecikmeler, seed.
  • Rastgele spread ve slippage ile son “tick” çalıştırması.
  • Parametre limitiyle optimizasyon ve WFA üzerinde doğrulama.
  • Monte Carlo: ≥ 200 senaryo, dağılım kuyruklarının kontrolü.
  • Dayanıklılık haritası: platodan parametre seçimi.
  • Kontrol bölümlerinde giriş/çıkışların görsel doğrulaması.
  • Pozisyon büyüklüğü: işlem başına risk ve ATR normalizasyonu.
  • Sınırlayıcılar: günlük/haftalık zarar limiti, molalar.
  • Aşırı spread/ATR durumunda stop-trading.
  • İşlem loglarıyla ≥ 2-4 hafta demo izleme.
  • Demo vs backtest karşılaştırması: sapmalar plan dahilinde.
  • Yürütme kötüleşirse “ya olursa” planı.
  • Portföy: mevcut stratejilerle korelasyon kontrolü.
  • Riskin aşamalı artırıldığı gerçek hesap yayın planı.
🛡️ Strateji testi için güvenilir brokerlar
Backtest teoridir, ancak yürütme kalitesi brokera bağlıdır. Trustpilot sıralamasındaki en iyileri karşılaştırın ve şeffaf koşullara sahip bir platform seçin.

“Forex” konusunu daha ayrıntılı inceleyin

Bu bölümde ilgili analizleri, pratik rehberleri ve incelemeleri bulabilirsiniz.

“Forex” bölümünü aç