Fan sayfamıza katılın
- Görüntülemeler:
- 19
- Derecelendirme:
- Yayınlandı:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
Genel Bakış
Bu Uzman Danışman, Dr. Daniel Alexandre Bloch'un " RMA ile Sistematik Ticaret Üzerine Bir Kurs" adlı çalışmasında tanıtılan Göreceli Hareketli Ortalama (RMA) çerçevesini kullanarak işlem yapar. Makalede yer alan dört çapraz stratejinin tamamını, Uyarlanabilir Çapraz Çıkış stratejisiyle birlikte uygular ve her giriş ve çıkış, fiyat yerine fraktil uzayında ifade edilir.
Temel varsayım, bir fiyat penceresinin ortalama olarak değil, bir dağılım olarak daha fazla bilgi içerdiğidir. Her çubukta RMA, W kapanışından oluşan takip eden pencereyi alır, bunları kendi ortalamalarına göre getiriler olarak yeniden ifade eder ve en yenisinin bu dağılım içinde [0, 1] aralığında bir fraktil olarak hangi sırada yer aldığını bildirir. Makalenin amacı, bu sıralamanın dağılımın uç değerleri arasındaki salınımlarından yararlanmaktır: minimumdan maksimuma doğru ilerlerken uzun pozisyon, tersine döndüğünde ise kısa pozisyon alınır. Bir fraktil bir mesafe değil bir sıralama olduğundan, 0,9 gibi bir eşik değeri her sembolde ve her volatilite rejiminde aynı anlama gelir; kuralları taşınabilir kılan da budur.
EA'nın kendi matematiksel hesaplaması yoktur. Tüm hesaplamalar, EA'nın iCustom aracılığıyla yüklediği ve her kapanan çubukta CopyBuffer ile okuduğu eşlik eden RMA_Engine göstergesinde gerçekleştirilir. Bu ayrım kasıtlıdır ve sahip olunması gereken iki avantaj sağlar: Tek bir hesaplama olduğu için EA, belirli bir çubukta fraktilin ne olduğu konusunda grafikle çelişemez; kurallar hiçbir zaman emre müdahale etmez, bu sayede bir brokerın müdahalesi olmadan bir komut dosyası aracılığıyla geçmiş veriler üzerinde tekrar uygulanabilir.
Nasıl İşlem Yapılır
Dört aşama. Strateji, pencerenin kendi dağılımındaki geçişleri takip eder. Bir uç değere ulaşılması bir tarafı tetikler; bu, stratejinin köken testidir ve fraktil daha sonra geçiş yönünde bir quantile aralığını geçtiğinde giriş tetiklenir. Tetikleyici uç değer değil, geçişin kendisidir; dolayısıyla giriş, geçiş boyunca herhangi bir noktada tetiklenebilir. İsimler pozisyonu değil, fiyat hareketini tanımlar:
- Uzun-çapraz-ters. Fraktil, maksimum seviyeden ayrılır ve minimum seviyeye doğru iner. EA, kısa pozisyon açarak bu düşüşten yararlanır.
- Short-cross-reverse. Bunun tam tersi durumdur. Fraktil minimumdan ayrılır ve maksimuma doğru yükselir; bu durumda uzun pozisyon açılır.
- Long-cross-revert. Maksimumda başlayan bir düşüş, minimuma ulaşmadan önce tekrar yukarı doğru döner. EA, bu hareketi takip ederek maksimuma doğru uzun pozisyon açar.
- Kısa-çapraz-geri dönüş. Minimumdan başlayan bir yükseliş, maksimuma ulaşmadan önce tekrar aşağıya döner; bu hareket, kısa pozisyonla takip edilir.
Bu dört durum, kısmi bir hareketin çözülebileceği her iki yönü de kapsar. Her açık pozisyon, adlandırılmış bir bacağa aittir ve hangi çıkış testinin geçerli olacağına ve bir ters dönüşün neye dönüşeceğine karar veren de bu bacağın kendisidir; bu nedenle, aynı fraktil okuma bir pozisyonu kapatırken diğerini açık tutar.

Tek bir dağılımdaki dört bacak: ters bacaklar bir uçtan diğer uca tam bir geçiş yapar; geri dönüş bacakları ise bir geçiş uzak uca ulaşmadan geri döndüğünde devreye girer.
Uyarlanabilir çıkış. Rejim dedektörünün önem kazandığı nokta budur. Makale, iki temel çıkış tanımlar ve ardından bunların arasında seçim yapan üçüncü bir çıkış tanımlar:
- Tam Dağılım Geçişi. Geçişin tamamlandığını varsayar; dolayısıyla bir tarafın çıkışı, diğer tarafın girişiyle çakışır. Maksimum seviyeden alınan bir kısa pozisyon, ancak fraktil gerçekten minimum seviyeye ulaşıp yukarı dönünce kapatılır ve bu dönüşün kendisi diğer yönde yeni bir işlemin başlangıcı olduğu için, çıkış doğrudan bu yeni işleme dönüşür.
- Ekstremum Geri Dönüş Tetikleyicisi. Uzak uç değer hakkında herhangi bir varsayımda bulunmaz. Pozisyon, takip ettiği hareketin durduğuna dair ilk somut kanıtla kapatılır: ters yönde bir dizi quantile aralığı adımı, medyan bölgeyi geriye doğru geçme veya tek başına anlamlı olacak kadar büyük tek bir adım.
- Uyarlanabilir Çaprazlama Çıkışı. Makaledeki kural ve EA’nın uyguladığı yöntem şudur: genişleme ve geçiş sırasında, kısmi geçişlerin olası olduğu durumlarda geri dönüş tetikleyicisi kullanılır; daralma tespit edildiğinde ise tam çaprazlamaya geçilir. Geri dönüş aşamaları her koşulda daima geri dönüş tetikleyicisini kullanır.
Seri uzunluğu testi, geri dönüş tetikleyicisinin gürültü nedeniyle devreye girmesini engeller. Fraktil aynı yönde hareket etmeye devam ederken işaretli bir aralık adımları serisi birikir ve yön değiştiğinde sıfırlanır; dolayısıyla “iki aralık geriye gitme”, hareketin sadece duraklamış değil, gerçekten yön değiştirmiş olduğu anlamına gelir.
Güvenli çıkış. Her iki strateji çıkışının da üzerinde ve öncesinde, ters hareket kontrolü yer alır. Ortalamaya dönüş pozisyonu, yapısı gereği bir süreliğine “offside” konumundadır; dolayısıyla “offside” olmak çıkış testi olamaz; asıl uyarı işareti, “offside” konumunda olmak ve fraktilin giderek daha da “offside” konumuna doğru ilerlemesini izlemektir. Bu durum, medyanın yanlış tarafında düşük bir D_k değerinin tam olarak ifade ettiği şeydir ve bu, minimum kâr ayarını tamamen göz ardı eden tek çıkış noktasıdır; çünkü burada bir hedefi kaydetmeye çalışılmıyor, aksine pozisyon aleyhine dönmüş bir eğilime daha fazla katkıda bulunmaktan kaçınılmaya çalışılıyor.
Zarar durumunda tetiklendiğinde, fraktil medyanı tekrar geçene kadar aynı taraftan yeniden girişi de engeller; böylece strateji, piyasaya aynı zararlı işlemi hemen tekrar sunamaz. O anda aralık genişliyorsa, EA bunun yerine ters tarafta pozisyon alır; çünkü sürekli başarısız olan bir ortalamaya dönüş sinyali, daha iyi bir fiyattan ziyade bir trendin kanıtıdır. Bu iki trend takip etme aşaması, sistemin simetrik olmayan tek parçasıdır.
Önerilen Kurulum
| Ayar | Önerilen değer | Not |
|---|---|---|
| Sembol | EURUSD | Geliştirme ve test aracı. Fraktil ölçeği kendiliğinden normalleşir, bu nedenle kurallar yeniden kalibrasyon gerektirmeden diğer sembollere de uygulanabilir, ancak aşağıdaki ayarlar yalnızca burada test edilmiştir. |
| Grafik zaman aralığı | H2 | Test zaman aralığı. Pencere çubuklarla ölçülür, bu nedenle aynı W değerine sahip daha kısa bir zaman aralığı, basitçe daha kısa bir piyasa aralığını ifade eder. H2'de ortalama tutma süresi yaklaşık bir gündü. |
| Hesap türü | Netleştirme veya riskten korunma | EA, bir seferde en fazla bir pozisyon tutar ve pozisyonu kapatıp yeniden açarak tersine çevirir; bu nedenle her iki hesap türü de uygundur. |
| Ön koşul | RMA_Engine derlenmelidir | EA'yı eklemeden önce Indicators\RMA\RMA_Engine.mq5 dosyasını derleyin. .ex5 dosyası yoksa iCustom çağrısı başarısız olur ve EA, dosyanın adını belirten bir mesajla başlatılmayı reddeder. |
| Geçmiş verileri gereklidir | W artı rejim geriye dönük verileri | EA, motorun henüz yanıt veremediği herhangi bir çubukta durur; bu nedenle, kısa bir geçmiş, yanlış sinyaller üretmek yerine sinyallere mal olur. |
Temel Özellikler
Makaleye sadık
- Dört çapraz stratejinin tümü, basitleştirilmiş bir çift değil, iki ters bacak ve iki geri dönüş bacağı şeklinde uygulanmıştır.
- Uyarlanabilir Çaprazlama Çıkışı, makalede belirtildiği gibi, rejime göre Tam Dağılım Çaprazlaması ile Ekstremum Geri Dönüş Tetikleyicisi arasında geçiş yapar.
- Fraktil, makalenin ekinde tanımlandığı şekliyle, pencerenin basit ampirik CDF'sidir. Makalenin metni ile eki arasında uyuşmazlık olması durumunda, ek önceliklidir ve bu uyuşmazlık sessizce düzeltilmek yerine kaynakta belgelenir.
Tek bir yerde, tek bir hesaplama
- Kuralların okuduğu her sayı, CopyBuffer aracılığıyla RMA_Engine'den gelir; böylece grafik ve işlemler birbirinden sapmaz. Senkronizasyonu sağlamak için matematiğin ikinci bir uygulaması yoktur.
- Kurallar, asla OrderSend'i çağırmayan, pozisyon okumayan veya çıktı almayan bir sınıfta bulunur. Bu sınıfa on alanlı bir bar yapısı verilir ve bir talimat döndürülür; bu da stratejinin bir broker olmadan test edilebilir olmasını sağlar.
- Emir verme, kayıt tutma ve risk yönetimi, aynı nedenden ötürü kurallardan ayrı tutulan ayrı bir sınıfta yer alır.
Yalnızca nihai verilere dayalı kararlar
- Tamponlar 1. konumdan okunur, asla 0'dan okunmaz. Sıfır çubuğu hala oluşmaktadır ve her kural, kapanışı kesinleşmiş bir çubuk için yazılmıştır.
- Bir ısınma çubuğu, geçmişteki bir boşluk veya henüz hesaplama yapmamış bir motor, hepsi aynı sonucu verir: bu çubukla ilgili karar verilmez. Eksik bir okumadan hiçbir sonuç çıkarılmaz.
- Hesabın açık olup olmadığı, üzerinde herhangi bir işlem yapılmadan önce belirlenir; bu nedenle bir çubuk ya çıkış çubuğu ya da giriş çubuğudur, asla her ikisi birden olamaz.
Gerçek bir brokerdan geçen işlem
- Bir "kapat ve ters çevir" emri, ters işlem yapılması gereken anda brokerdan pozisyonu kapatmasını ister ve broker her zaman ilk denemede buna uymayabilir. Reddedilen kapatma emirleri, iptal edilmez; yerine, doldurulana kadar her tikte yeniden denenir ve bir ters çevirme işlemi, halen açık olan bir pozisyonun üzerine asla eklenmez.
- Giriş, talep edilen fiyat üzerinden değil, fiilen gerçekleşen fiyat üzerinden kaydedilir; böylece kayma, çıkış kurallarını ve optimizasyon puanını belirleyen pip rakamlarına yansımaz.
- Lot büyüklüğü, sembolün minimum, maksimum ve adım değerleriyle sınırlandırılır.
- Açık pozisyon, global değişkenlere kaydedilir; böylece terminalin yeniden başlatılmasından sonra da devam eden bir pozisyon, yetim bir pozisyon olarak değil, gerçekte olduğu gibi bir işlem olarak yeniden ele alınır.
Operasyonel kontroller
- Pip cinsinden isteğe bağlı sabit stop loss ve kar alma, gece yarısını geçen bir pencereyi doğru şekilde işleyen isteğe bağlı bir seans filtresi ve isteğe bağlı bir seans sonu düzleştirme. Bunlar, çerçevenin bir parçası olmaktan ziyade dağıtım kontrolleridir: makale, sinyalle ilgilenir ve risk kapsamını operatöre bırakır.
- Mevcut fraktili, rejimi ve bacağı gösteren, giriş ve çıkış işaretçileri içeren isteğe bağlı bir grafik üstü durum bloğu ile her reddi ve nedenini günlüğe kaydeden ayrıntılı bir mod. Her ikisi de varsayılan olarak kapalıdır, bu nedenle EA sessizce işlem yapar.
- İşlem sayısının karekökü ve kazanma oranı ile ağırlıklandırılmış net pip değerini döndüren özel bir optimizasyon kriteri; böylece, işlem sayısının tamamen baskın olmasına izin vermeden, aynı net sonuçta dört yüz işlemlik bir seri, kırk işlemlik bir seriden daha üst sırada yer alır. On işlemden az olan seriler sıfır puan alır.
Geriye Dönük Test Sonuçları
EURUSD, H2 üzerinde, 01.05.2025'ten 26.07.2026'ya kadar, yaklaşık on dört aylık tek bir test, %100 gerçek tick verileriyle, 1:500 kaldıraç oranında 10.000 USD depozito kullanılarak gerçekleştirilmiştir.
| Metrik | Değer |
|---|---|
| Toplam net kâr | 10.000 depozito ile 362,51 |
| Toplam işlem sayısı | 138 |
| Kâr faktörü | 1,15 |
| Sharpe oranı | 0,82 |
| Maksimum öz sermaye düşüşü | 463,87 (%4,52) |
| Kârlı işlemler | %46,38 |
| Ortalama kazanç / ortalama kayıp | 42,80 / -30,82 |
| Uzun / kısa kazanç oranı | %46,58 / %46,15 |
Kazanç oranı yarıdan biraz daha azdır ve sistem, ortalama kazanç ortalamadan daha büyük olduğu için kârlı kalmaktadır; bu, tersine dönüşlerin devam etmesine izin veren bir ortalama geri dönüş stratejisinin getiri profilidir. Uzun ve kısa pozisyonlar, yapısı gereği simetrik olan bir çerçeveden beklendiği gibi neredeyse aynı performansı göstermektedir.

Test dönemi boyunca sermaye eğrisi: tek bir şanslı seriye değil, hafif düşüşlerle istikrarlı bir performansa işaret ediyor.

Ayarları, işlem istatistiklerini, bakiye ve sermaye eğrilerini gösteren, test için hazırlanan tam Strateji Test Raporu.
Kurulum ve Dosya Yapısı
Bir Uzman Danışman, bir zorunlu gösterge, bir isteğe bağlı panel ve yedi başlık dosyası. Düzen önemlidir: Uzman Danışman, motoru RMA\RMA_Engine göreceli yolu üzerinden yükler ve başlık dosyaları <RMA\...> biçiminde eklenir; bu nedenle her dosya kendi RMA alt klasöründe bulunmalıdır. Uzman Danışman'dan önce göstergeleri derleyin.
| Dosya | Rol | Açıklama |
|---|---|---|
| Experts\RMA\RMA.mq5 | Orkestratör | Tüm girişler, iCustom çağrısı, her çubuk için motor durumunun okunması ve sinyal motoru, işlem yöneticisi ile ekranın çalışma sırası. Kendi strateji mantığını içermez. |
| Göstergeler\RMA\RMA_Engine.mq5 | Gerekli gösterge | Her RMA serisini hesaplar ve on dokuz tampon yayınlar. Bu gösterge olmadan EA başlatılamaz. |
| Göstergeler\RMA\RMA_Panel.mq5 | İsteğe bağlı panel | Motorun 0-1 ekseninde okunamayan seriler için, bir grup motor tamponunu kendi ölçeğine sahip bir alt pencereye yansıtır. Yalnızca görüntüleme amaçlıdır. |
| Include\RMA\RmaTypes.mqh | Ortak sözlük | Rejim ve durumlar arası sıralamalar ile tampon haritası. EA, motor ve panellerin üzerinde anlaştığı tek nokta. |
| Include\RMA\RmaCore.mqh | Sayısal çekirdek | SMA, RMA ailesi, normalleştirilmiş getiri dağılımı ve fraktil fonksiyonu. |
| Include\RMA\RegimeDetector.mqh | Rejim sınıflandırması | Eğim, z-skoru ve varyasyon katsayısı ile doğrulanmış Göreceli Ekstremum Oranlarından elde edilen genişleme, daralma ve iki geçiş durumu. Çıkış kuralını seçen budur. |
| Include\RMA\AdverseMonitor.mqh | Yön tutarlılığı | d_med_w, medyan merkezli fraktil ve D_k, son adımlarının yukarı yönlü payı. Güvenlik çıkışına besler. |
| Include\RMA\SignalEngine.mqh | Kurallar | Hazırlama, dört giriş ayağı, üç çıkış ve bunlar arasındaki uyarlanabilir geçiş, güvenlik çıkışı, yeniden giriş bloğu ve tersine dönüş. Bir çubuk alır, bir talimat döndürür, başka hiçbir şeye dokunmaz. |
| Include\RMA\TradeManager.mqh | Yürütme | Emir verme, lot sabitleme, stop ve hedefler, pozisyon senkronizasyonu, yeniden denenen kapatma, seans kontrolleri, bacak kalıcılığı, pip hesaplama ve optimizasyon puanı. |
| Include\RMA\RmaDisplay.mqh | Grafik Üzerindeki Durum | Durum bloğu ile giriş ve çıkış işaretçileri. Etiketler bir kez oluşturulur ve yerinde güncellenir; böylece yinelenen nesneler ve yeniden çizim titremesi olmaz. |
Giriş Parametreleri
Dokuz giriş grubu. İlk ikisi motora iletilir ve motorun hesaplamalarını değiştirir; geri kalanlar ise kuralları, emirleri ve ekranı yönetir.
| Grup | Anahtar parametreler | Varsayılanlar |
|---|---|---|
| Pencere | InpWindowSize, InpSmoothingPeriod | 106 çubuk, 10 |
| Rejim algılama | InpEpsilonLow, InpEpsilonHigh, InpSlopeThreshold, InpRegimeLookback, InpVariationRatioLow, InpZScoreExpansion, InpRangeHistoryLookback | 0,15, 3,0, 0,0001, 20, 0,1, 1,0, 100 |
| Olumsuz hareket | InpUseAdverseExit, InpAdverseLookback, InpAdverseThresholdDown, InpAdverseThresholdUp | true, 10 çubuk, 0,3, 0,7 |
| Girişler | InpEntryUpperThreshold, InpEntryLowerThreshold, InpEntryMinDiff, InpCloseThreshold | 0,9, 0,1, 0,0 (herhangi bir dönüş sayılır), 0,1 |
| Çıkışlar | InpExitTargetUpper, InpExitTargetLower, InpExitProfitMinPips | 0,0, 0,0 (her ikisi de sıfır olduğunda ekstremum mantığı seçilir), 0,0 (kapalı) |
| Ticaret | InpLotSize, InpMagicNumber, InpTradeComment | 0,1 lot, 20251230, "RMA" |
| Risk | InpStopLossPips, InpTakeProfitPips, InpUseTimeFilter, InpStartHour, InpEndHour, InpEODClosePositions | 0 (yok), 0 (yok), false, 8, 20, false |
| Grafikte | InpShowDisplay, InpAttachEngine, InpShowPanels, InpPanelAdverse, InpPanelRmaValues, InpShowRegimeBand, InpVerbose | varsayılan olarak hepsi kapalıdır, bu nedenle EA sessizce işlem yapar |
Araştırma Temeli
Uygulama aşağıdaki gibidir:
- Daniel Alexandre Bloch, RMA ile Sistematik İşlem Yapma Kursu, SSRN'de mevcuttur.
Makale, çerçeveye ve mekanizmalarına katkıda bulunur: fraktil temsil, dört çapraz strateji ve rejime göre bunlar arasında seçim yapan Uyarlanabilir Çapraz Çıkış. Elimizdeki versiyonda Sonuçlar bölümü gelecekteki çalışmalar olarak bırakıldığından, makale bir performans geçmişi sunmamaktadır. Sunulan değer, her enstrümanda aynı anlama gelen bir ölçekte ifade edilen bir strateji ve makalenin amaçladığı gibi, diğer semboller ve zaman dilimlerinde ya da varlık başına kalibre edilmiş pencere ile kendi testleriniz için bir temeldir.
Eşlik eden bir makale ise matematiksel temelleri ortaya koyar, her modülün uygulanışını adım adım inceler ve dört ayağın her birini ile çıkış mantığını ayrıntılı olarak açıklar: MQL5'te Bloch'un Göreceli Hareketli Ortalama (RMA) Çerçevesi Uygulaması.
MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/75473
Session Scalping Zones
MetaTrader 5 için Seans Tabanlı Scalping Göstergesi. Asya seansının en yüksek ve en düşük seviyelerini otomatik olarak işaretler; ardından fiyat bu seviyeleri kırdığında veya yeniden test ettiğinde Londra seansının açılışında scalping sinyalleri üretir. Gösterge, dinamik seans aralıklarını çizer, uyarılar ve anlık bildirimler gönderir ve isteğe bağlı trend, hacim ve zaman filtreleri içerir. Herhangi bir sembol için M1, M5 ve M15 grafiklerinde çalışır.
Market Session Separator Indicator
Marks the start/end of up to three trading sessions (Asian, London, New York, or any custom windows) with vertical separators and/or shaded background boxes, repeated daily across a rolling recent window. Purely visual — no calculations, no signals, just clean session boundaries.
IronHawk Fibonacci Structure Map
Free MT5 indicator that automatically maps Fibonacci levels across multiple timeframes and highlights confluence zones, market structure, premium/discount areas and key price reactions.
RSI Histogram
Bu, MetaTrader 5 için geliştirilmiş ve “RSI Histogram” olarak adlandırılan bir MQL5 özel göstergesidir. Standart RSI çizgisini ayrı bir pencerede gösterir; ayrıca, aynı RSI değerlerinin momentumuna göre renk değiştiren, renk kodlu bir histogram versiyonunu da sunar: