Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Telegram üzerinde bulun!
Fan sayfamıza katılın
Kodu ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Kodu beğendiniz mi? MetaTrader 5 terminalinde deneyin
Görüntülemeler:
28
Derecelendirme:
(8)
Yayınlandı:
\MQL5\Include\HybridMicrostructure\
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

Hybrid Microstructure EA, M1 zaman diliminde XAUUSD (Altın) için özel olarak tasarlanmış, gelişmiş ve yüksek frekanslı bir scalping Uzman Danışmanıdır. Gecikmeli OHLC matematiklerine dayanan geleneksel göstergelerin aksine, bu EA, Tick Seviyesinde Mikro Yapı Dinamikleri temelinde çalışır; tick hızını, hacim ağırlıklı ortalama fiyat (VWAP) sapmalarını ve kurumlar tarafından gerçekleştirilen likidite süpürme reddi (stop avı) hareketlerini izler.

Geriye Dönük Test:


Deterministik yerel kurallar ile uyarlanabilir zeka arasındaki boşluğu doldurmak için, emir yürütülmeden önce nihai bir gerçeklik denetleyicisi görevi görmek üzere hem dahili ağırlıklı puanlama motorunu hem de harici OpenAI uyumlu yerel AI API'sini (Python/FastAPI aracılığıyla) destekleyen bir AI Köprü Karar Katmanı içerir.

Temel Özellikler:

  • Tick Mikro Yapı Motoru: Gerçek zamanlı tick hız pencerelerini ve halka tampon VWAP sapmalarını hesaplayarak gecikmeli göstergeleri atlar.
  • Likidite Yakalama ve Geri Dönüş Koruması: Perakende stop-loss emirlerinin aşırı VWAP bantlarının ötesine sürüklenmesini bekler ve yalnızca fiyatın geri dönüşü/reddi onaylandığında girişleri tetikler.
  • Çift Motorlu AI Köprüsü: Çok faktörlü karar doğrulama için deterministik bir yerel puanlama matrisi ve isteğe bağlı bir yerel AI web uç noktası ( /analyze ) entegre eder.
  • Çoklu Oturum ve Oynaklık Filtreleri: Tehlikeli rollover dönemlerini atlayarak, işlemleri aktif işlem oturumlarıyla (Asya, Londra, Orta Doğu) sınırlar.
  • Gelişmiş Risk ve Para Yönetimi: Dinamik ATR/Sabit Stop-Loss, Break-Even ve Trailing Stop koruması ile Sabit Lot veya Risk Yüzdesi (Bakiye/Özkaynak Yüzdesi) boyutlandırmasını destekler.


1. Kod Yapısı ve İş Akışı:

  • OnTick() : Spread kontrollerini, gerçek zamanlı tik tampon güncellemelerini, VWAP hesaplamalarını ve likidite alma durum makinelerini yürüten ana döngüdür.
  • CalculateTickVWAP() : 500 tick'lik bir halka tamponundan hacim ağırlıklı ortalama fiyatı ve standart sapma bantlarını dinamik olarak hesaplar.
  • AIBridge_Confirm() : Çoklu zaman dilimi trendlerini (H1, M15, M5), M1 yapısını ve hız metriklerini değerlendirerek son filtre görevi gören karar ağ geçidi.
  • AIBridge_LocalScore() : Ölçülen piyasa verilerine dayalı olarak deterministik ağırlıklı bir puan (0,0 ile 1,0 arası) hesaplar.
  • AIBridge_WebCall() : Canlı piyasa verilerini katı bir JSON yüküne paketler ve yerel bir Python/FastAPI sunucusuyla eşzamansız olarak iletişim kurar.
  • SecureProfits() : MT5 TRADE_ACTION_SLTP isteklerini kullanarak otomatik Break-Even ve Trailing Stop değişikliklerini güvenli bir şekilde yönetir.


2. İşlem Akışı:

  1. Tik Alımı ve Filtreleme: Gelen tikleri, izin verilen maksimum spread, aktif işlem saatleri ve minimum M1 ATR volatilitesi açısından doğrular.
  2. Mikro Yapı Takibi: Tick hızındaki ivmeyi ve VWAP bant genişlemelerini (+/- StdDev) değerlendirmek için sürekli olarak bir halka tampon oluşturur.
  3. Tetikleme ve AI Doğrulama: Bir likidite dalgası dış bantları aştığında ve ardından ani bir geri çekilme reddi meydana geldiğinde, bağlam AI Köprü Katmanına gönderilir.
  4. Karar ve Yürütme: Yerel puanlama veya harici AI modeli işlemi onaylarsa (yüksek güven düzeyinde ALLOW=YES), ExecuteTrade() dinamik risk tabanlı lot büyüklüğünü hesaplar ve emri optimal doldurma modlarını (IOC / FOK) kullanarak gönderir.


Bu EA, OpenAI stilinde (`messages`, `role: system` ve `role: user` içeren) bir JSON yüküyle HTTP POST istekleri göndermek üzere tasarlanmıştır ve `decision`, `confidence` ve `reason` içeren bir JSON yanıtı bekler.

Bu MT5 isteklerine milisaniyeler içinde yanıt verebilen bir Yerel AI API’si (yerel sunucu) oluşturmak için ideal programlama dili, FastAPI çerçevesini kullanan Python’dur. FastAPI, hafiftir, ışık hızındadır ve MT5’ten gelen yüksek frekanslı verileri işlemek için mükemmel bir seçimdir.

Aşağıda tam Python sunucu kodu yer almaktadır. Daha sonra bu motora gerçek bir Makine Öğrenimi modelini (TensorFlow, Scikit-Learn veya hatta yerel bir LLM için Ollama gibi) entegre edebilirsiniz.


1. Python Ortamının Kurulumu

Bilgisayarınızda Python'un kurulu olduğundan emin olun. Terminal'i veya Komut İstemi'ni açın ve şu iki temel kütüphaneyi yükleyin:

pip install fastapi uvicorn

2. Python API Kodu (local_ai_bridge.py)

Bilgisayarınızda local_ai_bridge.py adlı bir dosya oluşturun ve aşağıdaki kodu kopyalayın: (Python)

from fastapi import FastAPI, Request
from pydantic import BaseModel
from typing import List, Optional
import json
import uvicorn

app = FastAPI(title="MT5 AI Microstructure Bridge")

# --- VERİ MODELLERİ (MQL5 veri formatıyla uyumlu) ---
class Message(BaseModel):
    role: str
    content: str

class AIRequest(BaseModel):
    model: str
    temperature: float
    response_format: Optional[dict] = None
    messages: List[Message]

# --- ANA UÇ NOKTASI (/analyze) ---
@app.post("/analyze")
async def analyze_market(payload: AIRequest):
    """
    This endpoint receives tick and microstructure data from MT5,
    analyzes the data, and returns a BUY/SELL/WAIT decision.
    """
    
    # 1. MT5 tarafından gönderilen "user" mesajından JSON verilerini ayıklayın
    user_content = "{}"
    for msg in payload.messages:
        if msg.role == "user":
            user_content = msg.content
            break
            
    try:
        facts = json.loads(user_content)
    except json.JSONDecodeError:
        return {"decision": "WAIT", "confidence": 0.0, "reason": "Invalid JSON format"}

    # 2. Piyasa verilerini derlemek
    order_type = facts.get("order_type", "WAIT")
    high_velocity = facts.get("high_velocity", False)
    snapback_pips = facts.get("snapback_pips", 0.0)
    min_snapback = facts.get("min_snapback_pips", 2.0)
    deviation_z = facts.get("deviation_z", 0.0)
    
    mtf = facts.get("mtf", {})
    m1_structure = facts.get("m1_structure", {})

    # 3. Yapay Zeka / Karar Verme Algoritması (Daha sonra bir makine öğrenimi modeliyle değiştirilebilir)
    # Bu, karar mantığına dair basit bir örnektir
    
    confidence = 0.0
    decision = "WAIT"
    reason = ""

    # EA’nın SATIŞ onayı talep ettiği durumdaki mantığı değerlendirin
    if order_type == "SELL":
        score = 0
        
        # Geri tepme ve hızı doğrula
        if snapback_pips >= min_snapback and high_velocity:
            score += 0.4

        # Aşırı sapmayı doğrula (aşırı alım durumu)
        if deviation_z > 2.0:
            score += 0.3

        # MTF hizalamasını doğrula (en azından H1 veya M15 düşüş eğilimi göstermelidir)
        if mtf.get("h1_down") or mtf.get("m15_down"):
            score += 0.2

        # M1 reddi doğrulama (uzun üst fitil)
        if m1_structure.get("upper_wick_ratio", 0.0) >= 0.2:
            score += 0.1

        confidence = score
        if confidence >= 0.70:
            decision = "SELL"
            reason = "High velocity drop, MTF align, Z-Score high"
        else:
            reason = f"Score only {confidence:.2 f}, lacking momentum"

    # EA’nın ALış onayı talep ettiği durumdaki mantığı değerlendirin
    elif order_type == "BUY":
        score = 0
        
        # Geri tepme ve hızı doğrula
        if snapback_pips >= min_snapback and high_velocity:
            score += 0.4

        # Aşırı sapmayı doğrula (deviation_z, MQL5’te zaten yöne göre düzeltilmiştir)
        if deviation_z > 2.0:
            score += 0.3

        # MTF hizalamasını doğrula (en azından H1 veya M15’in yükseliş eğiliminde olması gerekir)
        if mtf.get("h1_up") or mtf.get("m15_up"):
            score += 0.2

        # M1 reddi doğrulama (uzun alt fitil)
        if m1_structure.get("lower_wick_ratio", 0.0) >= 0.2:
            score += 0.1

        confidence = score
        if confidence >= 0.70:
            decision = "BUY"
            reason = "High velocity bounce, MTF align, Z-Score high"
        else:
            reason = f"Score only {confidence:.2 f}, lacking momentum"

    # 4. JSON yanıtını MT5’e geri gönderin
    return {
        "decision": decision,
        "confidence": round(confidence, 2),
        "reason": reason[:60]  # MT5 için nedeni en fazla 60 karakterle sınırlayın
    }

if __name__ == "__main__":
    # MQL5’teki InpAIEndpoint parametresiyle uyumlu olarak 8787 numaralı bağlantı noktasında yerel sunucuyu başlatın
    print("AI Bridge Server is running on http://127.0.0.1:8787")
    uvicorn.run(app, host="127.0.0.1", port=8787)

3. Sunucuyu Çalıştırma ve MT5'e Bağlanma

  1. Terminali açın ve Python dosyasının bulunduğu klasöre gidin.
  2. Aşağıdaki komutu çalıştırın:
  3. Sunucu başlayacak ve [http://127.0.0.1:8787](http://127.0.0.1:8787) adresinde dinleme moduna geçecektir.
  4. MetaTrader 5 platformunda, [http://127.0.0.1](http://127.0.0.1) URL'sini izin verilen WebRequest URL'leri listesine eklediğinizden emin olun:
    1. Araçlar -> Seçenekler -> Uzman Danışmanlar'a gidin.
    2. "Listelenen URL'ler için WebRequest'e izin ver" seçeneğini işaretleyin.
    3. [http://127.0.0.1](http://127.0.0.1) URL'sini listeye ekleyin.
  5. EA'nızı çalıştırın. EA artık Python API'sine gerçek zamanlı veriler gönderecektir; Python, bu verileri Python işlevindeki parametrelere göre analiz edecek ve MT5'e AL/SAT/BEKLE komutlarını geri gönderecektir.

Bu Python mimarisi son derece ölçeklenebilir. Gelecekte, bu fiyat hareket geçmişini bir veritabanında (makine öğrenimi eğitim verileri için) depolamak veya bir tahmin modeline (XGBoost veya Random Forest gibi) bağlamak isterseniz, yukarıdaki kodda 3 numaralı yorumla işaretlenmiş bölümü değiştirmeniz yeterlidir—YAPAY ZEKA / KARAR ALGORİTMASI—ile işaretlenmiş bölümü değiştirmeniz yeterlidir.

Başarılı olursa, Print Expert şu şekilde görünecektir:



Creating a Python file (.py) is actually very simple. Essentially, a Python file is just a standard text file (like a .txt file) with its extension changed to .py.

MetaTrader 5'i (genellikle Windows üzerinde çalışır) kullanarak, local_ai_bridge.py dosyasını oluşturmanın en kolay 3 yolu şunlardır:

Yöntem 1: Not Defteri'ni Kullanma (En Hızlı ve Ek Uygulama Yüklemeye Gerek Yok)

Bu, Windows işletim sisteminde en hızlı yöntemdir:

  1. Windows'un yerleşik Not Defteri uygulamasını açın.
  2. Daha önce (yukarıda) verdiğim FastAPI Python kodunun tamamını kopyalayın. [2. Python API Kodu (local_ai_bridge.py)]
  3. Kodu boş bir Not Defteri belgesine yapıştırın.
  4. Dosya menüsünü tıklayın > Farklı Kaydet...
  5. Bu dosyayı kaydetmek istediğiniz klasörü seçin (örneğin, Belgeler klasöründe veya Masaüstünde AI_MT5 adında yeni bir klasör oluşturun).
  6. ÇOK ÖNEMLİ: "Kayıt türü" bölümünde, ayarı "Metin Belgeleri (*.txt)" yerine "Tüm Dosyalar (*.*)" olarak değiştirin.
  7. Dosya adı alanına tam olarak şunu yazın: local_ai_bridge.py
  8. Kaydet'i tıklayın. Bitti!

Dosyayı Oluşturduktan Sonra Ek İpuçları:

Dosyayı çalıştırmak için, `local_ai_bridge.py` dosyasının bulunduğu klasörde Komut İstemi'ni (CMD) açtığınızdan emin olun, ardından dosyayı çalıştırmak için şu komutu yazın:

python local_ai_bridge.py

Başarılı olursa, CMD pencerenizde Uvicorn/FastAPI sunucusunun çalıştığını belirten bir metin görüntülenir.

//-------------------------


Python'un `local_ai_bridge.py` dosyasını çalıştırabilmesi için Terminal'in bu dosyayla aynı klasörde "bulunması" gerekir. Windows'ta bunu yapmanın en kolay üç yolu şunlardır (tercih ettiğiniz birini seçin):

Yöntem 1: Dosya Gezgini "Adres Çubuğu" Hilesi (En Kolay ve En Hızlı)

Bu, çok pratik olduğu için programcılar arasında en sevilen püf noktalarından biridir:

  1. Dosya Gezgini'ni açın (genellikle dosya ve klasörleri görüntülediğiniz ekran).
  2. Daha önce local_ai_bridge.py dosyasını kaydettiğiniz klasöre gidin.
  3. Üstteki Adres Çubuğuna (klasör konumunu gösteren uzun alan, örneğin C:\Users\YourName\Documents\AI_MT5) bir kez sol tıklayın.
  4. Adres metni mavi renkle vurgulanacaktır. Metni silin, ardından şunu yazın: cmd
  5. Klavyedeki Enter tuşuna basın.
  6. Hemen o klasörün içinde konumlandırılmış siyah bir ekran (Komut İstemi) açılacaktır.

Yürütme Adımları (Terminal zaten doğru klasörde açıksa)

Doğru klasörde siyah veya mavi pencere açıldığında, AI robotunu başlatmak için Python'a bir komut vermeniz yeterlidir.

  1. Şu komutu yazın:
    1. python local_ai_bridge.py
  2. Enter tuşuna basın.

Kütüphanelerin (fastapi ve uvicorn) kurulumu başarılı olduysa, "AI Bridge Server is running on http://127.0.0.1:8787" yazısı veya "Uvicorn running on..." ifadesini içeren bir mesaj göreceksiniz.


Aşağıdaki gibi:

AI Bridge Sunucusu http://127.0.0.1:8787 adresinde çalışıyor

BİLGİ: Sunucu işlemi başlatıldı [4168]

BİLGİ: Uygulamanın başlatılmasını bekliyor.

BİLGİ: Uygulama başlatma işlemi tamamlandı.

BİLGİ: Uvicorn, http://127.0.0.1:8787 adresinde çalışıyor (Çıkmak için CTRL+C tuşlarına basın)

Metin şunu gösteriyor:

  1. Başlatma Başarılı: EA, 10,0 Pip çarpanına sahip XAUUSD sembolünü başarıyla algıladı (3 basamaklı/5 basamaklı broker'ı doğru şekilde algıladı).
  2. AI Bridge Aktif: AIBridge v1.1 modülü HYBRID modunda başarıyla yüklendi, yerel uç noktaya [http://127.0.0.1:8787/analyze](http://127.0.0.1:8787/analyze) bağlandı ve anahtar yetkilendirmesinin gerekli olmadığı (anonim) tespit edildi; bu durum yerel Python sunucumuz için uygundur.
  3. Çoklu Zaman Çerçevesi ve Kilitli Yapı: Trend göstergeleri (H1, M15, M5) ve M1 Kapalı Mum yapısı, piyasayı izlemeye hazırdır.

Bu Gösterge Ne Anlama Geliyor?

Bu, EA ve yerel Python sunucumuzun artık yan yana çalıştığı ve etkileşime hazır olduğu anlamına gelir. EA artık “kör” değildir — bir emri yerine getirip getirmemeye (WAIT) karar vermeden önce Altın M1 zaman dilimindeki her Likidite Tarama ve Hız sinyalini filtreleyen bir “yerel beyin”e sahiptir.

Ardından, grafik hareketlerini izlemeniz veya bir demo ya da canlı hesapta ileriye dönük testler yapmanız yeterlidir. Sweep koşulları ve tick hızı gereksinimleri karşılandığında, `[AI] SELL HYBRID ... ALLOW=YES` veya `NO` gibi karar günlükleri günlüğünüzde gerçek zamanlı olarak görünecektir.


Strateji Test Aracı Görselleştirmesi:



MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/76331

Wolfe Wave Dashboard Wolfe Wave Dashboard

Birden fazla sembolü ve zaman dilimini otomatik olarak tarayan, en son geçerli Wolfe Wave formasyonlarını (yükseliş/düşüş) tespit eden, bunları etkileşimli bir gösterge panelinde görüntüleyen ve tek tıklamayla grafiği açarak formasyonun tam olarak çizilmesini sağlayan profesyonel MQL5 göstergesi (ayrı pencere).

Heiken Ashi ATR Blend Heiken Ashi ATR Blend

Heiken Ashi ATR Blend combines smoothed Heiken Ashi candles, ATR-based volatility filtering, and fast/slow EMA trend confirmation to identify potential trend-change signals.

Position sizing from risk, using the broker's own tick value and volume step Position sizing from risk, using the broker's own tick value and volume step

Position size from a risk amount, computed from the symbol's real tick value, tick size and volume step rather than an assumed pip value. It always rounds volume down, and when your risk is smaller than the minimum lot it says so and reports what that lot actually costs. No terminal state, so the sizing logic is testable offline - a 41-assertion test script is included.

Fisher Transform Indicator Fisher Transform Indicator

İstatistiksel temel ilkelerden yola çıkılarak geliştirilmiş bir Fisher Dönüşümü osilatörü — fiyatı sınırlı bir aralığa normalize eder, ardından logaritmik bir dönüşüm uygulayarak geleneksel osilatörlere özgü kademeli dönüşler yerine keskin ve net ters dönüş sinyalleri üretir. İç özyinelemeli durum, geriye dönük testlerde güvenilir ve doğru bir davranış sağlamak için uygun hesaplama tamponları aracılığıyla yönetilir. "Yeni Başlayanlar İçin Özel Göstergeler Oluşturma" başlıklı makale dizisinden.