EA geliştirme & Builder beginner 12 dk okuma

Kod yazmadan MT5'te MACD EA oluşturma (ve en iyi sonucunun neden en tehlikelisi olduğu)

Kod yazmadan MT5'te MACD EA oluşturma: tarayıcıda bloklardan bir MACD kesişim Expert Advisor'ı kurun, gerçek bir .ex5 dosyasına derleyin ve rakamlarını dürüstçe okuyun. Sizi en çok endişelendirmesi gereken sonuç da burada: Builder'ın kendi parametre araması, örneklem dışında 1,14 alan bir MACD ayarı buldu — aynı ayar bir önceki pencerede 0,74'e çöktü.

Yayınlandı · İncelendi

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ılanNeyi belirler
fast_ema12Daha hızlı ortalama. Aralık 1–999
slow_ema26Daha yavaş olanı. İkisi arasındaki açıklık, sinyalin ta kendisi
signal_period9Siz karşılaştırmadan önce farkın ne kadar yumuşatıldığı
lineMODE_MAINBu bloğun hangi çizgiyi çıkardığıMODE_MAIN ya da MODE_SIGNAL
applied_pricePRICE_CLOSEHesaplamayı hangi fiyatın beslediği
shift00 oluşmakta olan bar, 1 son kapanan bar
timeframegeçerli grafikM1’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

  1. EA Builder’ı açın ve galeriden macd_signal şablonunu yükleyin ya da kendiniz kurmak için boş tuvalle başlayın.
  2. Utility paletinden bir Start düğümü yerleştirin. Start olmadan doğrulama, inşayı EAB-E202 ile durdurur.
  3. Bir MACD bloğu ekleyin ve line değerini MODE_MAIN bırakın. İlk kurulumda 12/26/9’a dokunmayın ki sonucunuz aşağıdaki temelle karşılaştırılabilir kalsın.
  4. Aynı periyotlara sahip ikinci bir MACD bloğu ekleyin ve line değerini MODE_SIGNAL yapı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.
  5. İ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_type değeri crossover ya da crossunder olduğu için alış ve satış tarafları tersine çevrilmiş tek bir koşul değil, iki ayrı koşuldur.
  6. Her koşulu kendi Open Buy / Open Sell bloğuna bağlayın. Bir göstergeyi doğrudan bir emre bağlamak EAB-E205 ile geri çevrilir — ham bir değer bir karar değildir.
  7. Riski Settings sekmesinde belirleyin. Ortak varsayılanlar 50 pip stop, 100 pip hedef ve sabit 0.01 lottur; geçerli bir stop’u olmayan bir akış, inşa edilmeden önce CRITICAL preflight teşhisi üretir.
  8. 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.
  9. Compile .ex5’e basın, dosyayı File > Open Data Folder üzerinden MQL5/Experts iç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
Sinyal çizgisi tarifinin neden iki MACD bloğuna ihtiyacı var, sıfır çizgisi tarifinin neden yok

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ğeriOynatmak ne yapar
fast_ema12Düşüğü daha erken tepki verir ve çok daha sık keser; kazanma oranından önce işlem sayısı değişir
slow_ema26Yükseltmek, hızlı çizginin kat etmesi gereken açıklığı genişletir; sinyaller daha geç ve daha seyrek gelir
signal_period9Karşılaştırma çizgisi üzerindeki yumuşatma. Kısası daha çok kesişim demektir, çoğu da gürültü
lineMODE_MAINBir ince ayar düğmesi değil — hangi kuralı kurduğunuza karar veriyor
shift0Yalnızca kapanan barlarda karar vermek için 1 yapın
Zarar durdur50 pip (ortak varsayılan)Aranan aralık 30–80 idi
Kâr al100 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 temeliDeğer
Kâr faktörü0,93
İşlem698
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şıyorhayır
Test koşulları
Deney kimliğiEXP-MACD-RECIPE-BASELINE-001
Üst deneyEXP-BUILDER-TEMPLATE-BASELINE-001
Sembol / zaman dilimiUSDJPYm M5
Dönem2025-06-01 – 2026-06-09
ModelM1 OHLC (Model=1)
Depozito10,000
OrtamExness MT5
Temel ölçüm2026-06-18
Son doğrulama2026-08-25
1,14Kayıtlı aramanın bulduğu en iyi örneklem dışı kâr faktörü
0,74Aynı ayarın bir önceki pencerede aldığı sonuç
13 içinde 8.MACD şablonunun, aynı şekilde ölçülen trend ve momentum tasarımları arasındaki sırası

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:

ŞablonBlokKâr faktörüDüşüşİşlem
ma_perfect_order_trend101,07-%0,36305
mtf_osc_filter271,04-%0,64187
consecutive_bars_momentum71,03-%0,36377
ao_ama_trend140,97-%0,95239
adx_trend120,96-%0,76534
multi_tf_trend150,96-%0,51247
ma_crossover90,95-%0,84420
macd_signal80,93-%1,05698
ma_slope_trend70,92-%1,00478
mtf_adx_filter140,92-%0,84343
elder_ray90,90-%1,34529
pitch_trail_trend90,77-%1,61467
dynamic_sl_trend90,68-%1,62708

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.

Sıkça sorulan sorular

MACD sinyal çizgisi kesişimi ile sıfır çizgisi kesişimi arasındaki fark nedir?
Bunlar farklı sorulardır ve Builder içinde farklı tesisat isterler. Sinyal çizgisi kesişimi, MACD çizgisinin kendi 9 periyotluk ortalamasını kesip kesmediğini sorar; yani biri MODE_MAIN, diğeri MODE_SIGNAL olarak ayarlanmış iki MACD bloğunun bir Cross koşulunu beslemesi gerekir. Sıfır çizgisi kesişimi ise momentumun işaret değiştirip değiştirmediğini sorar; yani MODE_MAIN üzerinde tek bir MACD bloğu ve 0 ile bir Compare yeter. Sinyal çizgisi sürümü çok daha sık ve çok daha erken tetiklenir; sıfır çizgisi sürümü nadiren ve geç tetiklenir. Hazır gelen şablon sinyal çizgisi biçimini kullanıyor ve bütün komşuluğunun ikinci en yoğun tasarımı.
Bir EA için en iyi MACD ayarları hangileridir?
Bu sayfadaki hiçbir şey size bunu söyleyemez ve bunu açıkça yazmaya değer. Builder'ın MACD bloğu kapanış fiyatı üzerinde 12/26/9 varsayılanını kullanıyor ve bu şablon üzerindeki kayıtlı parametre araması yalnızca stop ile hedefi oynattı — 3 pencere boyunca SL30-80 ve TP60-250 üzerinden 12 kombinasyon. fast_ema, slow_ema ya da signal_period değerlerini bir kez bile değiştirmedi. En iyi periyot kümesini veren her yazı, bir ölçümü değil bir tercihi aktarıyordur. Aramanın gerçekten ortaya koyduğu şey şu: hiçbir stop ve hedef kombinasyonu bu tasarımı sağlam hale getirmedi.
MACD kesişim stratejisi kârlı mı?
Buradaki haliyle değil. Bir yıl boyunca USDJPY M5 üzerinde ölçüldüğünde Builder'ın macd_signal şablonu 698 işlemde 0,93 kâr faktörüyle kapanıyor — aynı koşullar altında ölçülen on üç trend ve momentum şablonu içinde ikinci en yoğun tasarım ve sonuca göre on üç içinde sekizinci. Daha yararlısı şu: kayıtlı araması örneklem dışında 1,14 ile 1,15 arasına ulaşan bir ayar buldu, o ayar da daha eski pencerede 0,74 ile 0,77'ye düştü. Dürüst yanıt bu: kârlı görünen sonuçlar var ve rejimler değişince ayakta kalmadılar.
MACD EA'mı filtrelemek için daha fazla gösterge eklemeli miyim?
Yardımcı olduğunu varsaymadan önce bileşimin gerçekte ne yaptığına bakın. Galeride tam olarak bu şablonu içeren bir bileşim var — macd_signal artı bir CCI seviye kuralı artı Elder Ray — ve aynı koşullar altında, tek başına MACD'nin 0,93'üne karşılık 0,91 kâr faktörüyle kapandı; üstelik 2.016 işlem boyunca 3,76 kat düşüşle. Üç parçanın üçü de aynı fiyatın momentum okumaları olduğu için çeşitlenmek yerine aynı anda hemfikir olup birlikte tetiklenme eğilimindeler. Bir filtre, girişinizle zaman zaman anlaşmazlığa düştüğünde işe yarar; aynı fikrin üç sürümü bunu yapmaz.