MT5’te kod yazmadan bir MACD Expert Advisor’ı, bir Start düğümü, iki MACD bloğu — biri ana çizgiyi, diğeri sinyal çizgisini okuyan —, ikisi arasında bir Cross koşulu ve bir emir bloğu yerleştirerek oluşturursunuz. MQL5’i sunucu üretip derliyor ve elinize gerçek bir .ex5 veriyor. On beş dakika, sözdizimi yok.
Sonra da dosyanın bir değeri olup olmadığına karar veren kısım geliyor. Bu tarifin ölçülmüş bir kaydı var ve en gurur okşayıcı rakamı, en az güvenmeniz gereken rakam.
Ne inşa edeceksiniz
Tek bir paritede, MACD çizgisi sinyal çizgisinin üstüne çıktığında alan ve altına indiğinde satan, sabit bir stop ve hedef taşıyan tek pozisyonlu bir EA — gerçek bir .ex5 dosyasına derlenmiş olarak. Sekiz blok.
Bu sayının iki bloğu tek bir sebeple var: MACD gösterge bloğu her seferinde tek bir çizgi döndürüyor.
Başlamadan önce: MACD neyi bildirir ve siz hangi çizgiyi okuyorsunuz
Doğrulanmış e-posta adresi olan ücretsiz bir hesaba (tasarlamak ücretsizdir ve giriş gerektirmez; .ex5 olarak derlemek gerektirir), yaklaşık on beş dakikaya ve bir MetaTrader 5 terminaline ihtiyacınız var.
MACD, hızlı bir hareketli ortalamadan yavaş olanı çıkarır, sonra o farkı bir kez daha ortalar. Yani ana çizgi iki ortalamanın birbirinden ne kadar uzaklaştığını ölçer, sinyal çizgisi de o ölçümün yumuşatılmış hâlidir. Bir MACD kuralının söyleyebileceği her şey, iki ortalama arasındaki mesafe hakkında bir ifadedir — ki bu da onu, osilatör kılığına girmiş bir trend aracı yapar ve kendisini kuran iki ortalamanın gecikmesini birden devralır.
Builder’ın MACD bloğu şu ayarları açar:
| Blok ayarı | Varsayılan | Neyi belirler |
|---|---|---|
fast_ema | 12 | Daha hızlı ortalama. Aralık 1–999 |
slow_ema | 26 | Daha yavaş olanı. İkisi arasındaki açıklık, sinyalin ta kendisi |
signal_period | 9 | Siz karşılaştırmadan önce farkın ne kadar yumuşatıldığı |
line | MODE_MAIN | Bu bloğun hangi çizgiyi çıkardığı — MODE_MAIN ya da MODE_SIGNAL |
applied_price | PRICE_CLOSE | Hesaplamayı hangi fiyatın beslediği |
shift | 0 | 0 oluşmakta olan bar, 1 son kapanan bar |
timeframe | geçerli grafik | M1’den MN1’e kadar herhangi biri, grafikten bağımsız okunur |
line, akışınızın şeklini değiştiren satır. İki değerli bir seçim olduğu için bir blok size bir çizgi verir. Dolayısıyla sinyal çizgisi kesişimi iki MACD bloğu ister; sıfır çizgisi kesişimi ise bir blok artı bir sabitle karşılaştırma ister.
Adım adım: MACD EA’yı Builder’da kurun
- EA Builder’ı açın ve galeriden
macd_signalşablonunu yükleyin ya da kendiniz kurmak için boş tuvalle başlayın. - Utility paletinden bir Start düğümü yerleştirin. Start olmadan doğrulama, inşayı
EAB-E202ile durdurur. - Bir MACD bloğu ekleyin ve
linedeğeriniMODE_MAINbırakın. İlk kurulumda 12/26/9’a dokunmayın ki sonucunuz aşağıdaki temelle karşılaştırılabilir kalsın. - Aynı periyotlara sahip ikinci bir MACD bloğu ekleyin ve
linedeğeriniMODE_SIGNALyapın. Aynı gösterge, aynı ayarlar, farklı çıktı — insanların atladığı adım bu ve atlamak, akışlarının bir çizgiyi kendisiyle karşılaştırmasının sebebi. - İkisini birden bir Cross koşuluna bağlayın. Cross iki girdi alır ve birinin diğerini bu barda kesip kesmediğini sorar;
cross_typedeğericrossoverya dacrossunderolduğu için alış ve satış tarafları tersine çevrilmiş tek bir koşul değil, iki ayrı koşuldur. - Her koşulu kendi Open Buy / Open Sell bloğuna bağlayın. Bir göstergeyi doğrudan bir emre bağlamak
EAB-E205ile geri çevrilir — ham bir değer bir karar değildir. - Riski Settings sekmesinde belirleyin. Ortak varsayılanlar 50 pip stop, 100 pip hedef ve sabit
0.01lottur; geçerli bir stop’u olmayan bir akış, inşa edilmeden önceCRITICALpreflight teşhisi üretir. - Measure’a basın ve sonucu panelin yazdırdığı çıtaya karşı okuyun: kâr faktörü en az 1,2, en az 60 işlem, düşüş %20’den kötü değil.
- Compile .ex5’e basın, dosyayı File > Open Data Folder üzerinden
MQL5/Expertsiçine taşıyın, Navigator’ı yenileyin ve bir hesabın yakınına gitmeden önce Strategy Tester’da test edin.
- Start düğümü
- MACD bloğu, line = MODE_MAIN
- MACD bloğu, line = MODE_SIGNAL
- Cross — alış için crossover, satış için crossunder
- Open Buy ve Open Sell
- Zarar durdur ve kâr al
- .ex5 olarak derleyin
Bunun yerine sıfır çizgisi sürümünü istiyorsanız, ikinci MACD bloğunu silin ve Cross yerine Compare koyun; operatörleri > < >= <= == != ve offset varsayılanı 0’dır. “MACD ana çizgisi sıfırın üstünde”, hızlı ortalamanın yavaş olanın üstünde olduğunu söyleyen bir ifadedir — iki çizginin birbirine değmesinden çok daha nadir ve çok daha geç gelen bir olay. Palet ayrıca, ana çizgi eksi sinyal farkını doğrudan tek bir değer olarak veren OsMA bloğunu da taşıyor; yani bir histogram kuralı iki blok yerine bir blokla kurulur.
MACD giriş, çıkış ve parametre ayarları
| Ayar | Şablon değeri | Oynatmak ne yapar |
|---|---|---|
fast_ema | 12 | Düşüğü daha erken tepki verir ve çok daha sık keser; kazanma oranından önce işlem sayısı değişir |
slow_ema | 26 | Yükseltmek, hızlı çizginin kat etmesi gereken açıklığı genişletir; sinyaller daha geç ve daha seyrek gelir |
signal_period | 9 | Karşılaştırma çizgisi üzerindeki yumuşatma. Kısası daha çok kesişim demektir, çoğu da gürültü |
line | MODE_MAIN | Bir ince ayar düğmesi değil — hangi kuralı kurduğunuza karar veriyor |
shift | 0 | Yalnızca kapanan barlarda karar vermek için 1 yapın |
| Zarar durdur | 50 pip (ortak varsayılan) | Aranan aralık 30–80 idi |
| Kâr al | 100 pip (ortak varsayılan) | Aranan aralık 60–250 idi |
Gecikme üzerine, ki bu göstergeye yöneltilecek dürüst şikâyet odur. Buradaki her değer, bir üçüncüsünün üzerine yığılmış iki ortalamanın çıktısı. Dolayısıyla bir kesişim, bir hareketin çoktan gerçekleştiğini bildiren bir rapordur — soru yalnızca ne kadar geç olduğu. fast_ema değerini kısaltmak erkenlik satın alır ve bedelini yanlış kesişimlerle öder; slow_ema değerini uzatmak güvenilirlik satın alır ve bedelini hareketten sonra gelen girişlerle öder. Şablonun kendi kaydı nereye düştüğünü gösteriyor: bir yılda 698 işlem, aynı koşullar altında ölçülen on üç trend ve momentum şablonu içindeki ikinci en yüksek sayı. Bu, sürekli tetiklenen bir tasarım demektir ve sürekli tetiklenmek, kısa gecikmenin bedelidir.
Aramanın neye dokunduğu ve neye dokunmadığı. Kayıtlı parametre araması yalnızca stop ile hedefi oynattı — H1’de üç pencere boyunca SL30-80 × TP60-250, 12 kombinasyon. fast_ema, slow_ema ya da signal_period değerlerini hiç değiştirmedi. Yani bu sayfadaki hiçbir şey, 12/26/9’un doğru, yanlış ya da iyileştirilebilir olduğu iddiasını desteklemiyor. Desteklediği şey çok daha dar ve çok daha yararlı: hiçbir stop ve hedef kombinasyonu bu tasarımı kurtarmadı.
MACD EA’yı backtest edin
Bu, yeniden çalıştırma değil, Builder’ın kendi ölçülmüş kaydı ve karşılaştırmadaki her şablon aşağıdaki tek koşul kümesini paylaşıyor. Nasıl test ediyoruz sayfası, o kayıtların tabi tutulduğu standardı anlatıyor.
macd_signal temeli | Değer |
|---|---|
| Kâr faktörü | 0,93 |
| İşlem | 698 |
| Maksimum düşüş | -%1,05 |
| Net | -93,93 |
| Kâr faktörüne göre komşuluğundaki sırası | 13 içinde 8. |
| İşlem sayısına göre komşuluğundaki sırası | 13 içinde 2. |
| Measure panelinin kendi geçme çıtasını aşıyor | hayır |
| Test koşulları | |
|---|---|
| Deney kimliği | EXP-MACD-RECIPE-BASELINE-001 |
| Üst deney | EXP-BUILDER-TEMPLATE-BASELINE-001 |
| Sembol / zaman dilimi | USDJPYm M5 |
| Dönem | 2025-06-01 – 2026-06-09 |
| Model | M1 OHLC (Model=1) |
| Depozito | 10,000 |
| Ortam | Exness MT5 |
| Temel ölçüm | 2026-06-18 |
| Son doğrulama | 2026-08-25 |
Arama sonucu tek bir satırdan fazlasını hak ediyor. Galerideki sekiz şablon kayıtlı bir parametre araması taşıyor ve sekizinin sekizi de no_robust_edge ile bitti. Ama iki farklı biçimde başarısız oldular ve bu fark, ortak hükümden daha önemli. İkisi hiçbir zaman kazanan bir ayar üretmedi, üzerine uydurulduğu dönemin içinde bile. macd_signal, örneklem dışında 1,0’ı aşan bir ayar üreten tek şablon — en geniş hedefte 1,14 ile 1,15 — ve sonra bir önceki pencerede 0,74 ile 0,77 aldı. Manifestonun buna kendi verdiği ad rejime bağımlı.
Bunun test etmek hakkında ne ima ettiğini okuyun. Verinizi bir kez ikiye bölüp ilk yarıda uydurmuş ve ikinci yarıda kontrol etmiş olsaydınız, bu şablon size geçer bir sonuç uzatacaktı. Onu yakalayan tek şey, aramanın hiç görmediği üçüncü bir dönemi kontrol etmek oldu. Bu, walk-forward analizi için somut tek bir vakada verilmiş bir argüman ve aşırı uyum hakkındaki her genel uyarıdan daha değerli.
MACD komşuları arasında nerede duruyor, hepsi yukarıdaki tek koşul bloğu altında ölçülmüş hâlde:
| Şablon | Blok | Kâr faktörü | Düşüş | İşlem |
|---|---|---|---|---|
ma_perfect_order_trend | 10 | 1,07 | -%0,36 | 305 |
mtf_osc_filter | 27 | 1,04 | -%0,64 | 187 |
consecutive_bars_momentum | 7 | 1,03 | -%0,36 | 377 |
ao_ama_trend | 14 | 0,97 | -%0,95 | 239 |
adx_trend | 12 | 0,96 | -%0,76 | 534 |
multi_tf_trend | 15 | 0,96 | -%0,51 | 247 |
ma_crossover | 9 | 0,95 | -%0,84 | 420 |
macd_signal | 8 | 0,93 | -%1,05 | 698 |
ma_slope_trend | 7 | 0,92 | -%1,00 | 478 |
mtf_adx_filter | 14 | 0,92 | -%0,84 | 343 |
elder_ray | 9 | 0,90 | -%1,34 | 529 |
pitch_trail_trend | 9 | 0,77 | -%1,61 | 467 |
dynamic_sl_trend | 9 | 0,68 | -%1,62 | 708 |
O on üçü kendi medyan işlem sayıları olan 420’de ikiye bölün; iki yarı temiz biçimde ayrılıyor. Daha az işlem yapan altısı, 283 işlemde ortalama 1,00 kâr faktörü ve -%0,61 düşüş verdi. Daha çok işlem yapan altısı 569 işlemde ortalama 0,86 ve -%1,23 verdi — hem daha kötü sonuç hem iki katı derinlik. 1,0’ın üstündeki üç tasarımın üçü de sakin yarıda duruyor. MACD ise yoğun olanda.
Bu, tek bir kurulum altındaki on üç tasarımın betimlemesidir, bir yasa değil: giriş mantığı, düğüm sayısı ve çıkışlar da farklı, dolayısıyla sıklığın sebep olduğu kanıtlanmış değil. Ama önünüzdeki örüntü bu ve hazır gelen MACD şablonu bu örüntünün yanlış tarafında.
Kaçınılması gereken yaygın hatalar
Bir örneklem dışı geçişe inanmak. Bu şablonun göstermek için var olduğu hata tam da bu. Ayrı tutulmuş tek bir dönem tek bir örneklemdir ve bir momentum kuralı, piyasa o sırada trend ettiği için tek bir örneklemi kazanabilir. Bir rakama inanmadan önce, aramanın hiç görmediği üçüncü bir pencereyi test edin.
Bir çizgiyi kendisiyle karşılaştırmak. İki MACD bloğu da MODE_MAIN bırakılırsa, Cross koşulu birebir aynı değerleri karşılaştırır ve hiç tetiklenmez — ya da yuvarlama yüzünden tetiklenir. İşlem sayısının neden sıfır olduğunu merak etmeden önce her iki bloktaki line ayarını kontrol edin.
Bir kesişimi öngörü diye okumak. MACD, bir ortalamanın iki ortalamasıdır. Bir kesişim, hareketin birkaç bardır çoktan sürmekte olduğunu bildirir. Tasarım kararı, gecikmeyi kabul edip etmemek değil, ne kadarını kabul ettiğinizdir.
Sermaye eğrisi düzgün görünene kadar stop ve hedefi uydurmak. Kayıtlı arama bunu 12 kombinasyon ve üç pencere boyunca sistematik olarak zaten yaptı ve no_robust_edge bildirdi. Kendi elle yaptığınız ince ayar sistematik bir aramayı yeniyorsa, ince ayardan şüphelenin.
Momentum filtrelerini üst üste yığmak. Yukarıdaki bileşim, o içgüdünün ölçülmüş hâli: birazcık daha kötü bir kâr faktörü için 3,76 kat düşüş.
Onu başka bir EA’nın yanında ayırmadan çalıştırmak. Tek bir hesaptaki her EA’nın kendi sihirli numarası olmalıdır; yoksa bir EA’nın çıkışları diğerinin pozisyonlarını kapatır.
Sonraki adımlar ve varyasyonlar
MACD’yi ne zaman kullanmamalı. Bir yatay bantta iki ortalama tekrar tekrar kesişir ve her kesişim gürültüdür — üstelik hızlı tetiklenen bir varsayılan, tam olarak yatay bandın cezalandırdığı şeydir. Kuralı düz dönemlerde durduracak bir koşulu ifade edemiyorsanız, ya böyle bir koşul ekleyin ya da iki ortalamanın ayrışmasına bağlı olmayan bir fikre geçin.
Denenmeye değer varyasyonlar, kanıt sırasına göre. Önce sıfır çizgisi sürümünü deneyin: bir blok daha basit ve çok daha seyrek tetikleniyor, komşuluğun sakin yarısı da 1,0’ın üstündeki her sonucun bulunduğu yer. Sonra aynı kuralı, MACD bloğunun içindeki daha yüksek bir timeframe üzerinde deneyin; bu, grafiğe hiç dokunmadan sinyali yavaşlatır. Ancak ondan sonra periyotlara dokunun — ve her seferinde tek birini değiştirin.
Sonra düzgünce test edin. Measure paneli bar seviyesinde ve yaklaşıktır; bir hüküm değil, bir filtredir. MT5’te backtest nasıl yapılır gerçek bir çalışmayı baştan sona yürütüyor, raporun iki düşüş rakamından hangisine inanmak gerektiği dahil. RSI EA nasıl oluşturulur ise karşıt arıza biçimine sahip kardeş tarif — onun araması hiçbir yerde kazanmadı, bu da onu reddetmeyi kolaylaştırıyor ve bundan daha az öğretici kılıyor. Kod yazmadan MT5 EA oluşturma daha geniş blok sözcük dağarcığını kapsıyor, backtest rehberleri de bu sayfanın savunduğu walk-forward adımına daha derin giriyor.
Belgelenmiş bir kaydın neye benzediğini ayarlamak için de, yayımlanan EA’ların her biri eksiksiz bir kapanmış işlem listesi ve bir çalışma manifestosu taşıyor. Kendinizinki dahil herhangi bir stratejiye güvenmeden önce bunlardan birini yukarıdaki tabloyla karşılaştırın.