Prism Candle Forge
- Kütüphaneler
- Sürüm: 1.0
- Etkinleştirmeler: 5
Prism Candle Forge — MT4 için Mum Grafiği Formasyon Tanıma Motoru
Prism Candle Forge, ATR ağırlıklı geometrik analizle 20'den fazla Japon mum formasyonunu tespit edip doğrulayan yerel bir MQL4 kütüphanesidir. Expert Advisor, Gösterge veya Script'lerden çağrılabilen 8 dışa aktarılan fonksiyonla formasyon tanıma, yönlü güven puanı, morfoloji sınıflandırması ve trend doğrulaması sağlar. DLL yok, harici bağımlılık yok, saf MQL4 hesaplamasıdır.
Derlenmiş ikili dosya (Prism_Candle_Forge.ex4) olarak dağıtılır. Bu açıklama tam API referansınızdır.
Kurulum
- Prism_Candle_Forge.ex4 dosyasını MQL5 Market'ten indirin.
- Dosyayı şu dizine kopyalayın: MQL4/Libraries/
- Aşağıdaki #import bloğunu .mq4 kaynak dosyanıza ekleyin.
- EA veya Göstergenizi derleyin. 8 fonksiyonun tümü kullanıma hazırdır.
İçe Aktarma Bildirimi (Kopyalamaya Hazır)
#import "Prism_Candle_Forge.ex4" int PCF_DetectPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_name, double &confidence, int &direction); int PCF_ScanMultiPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_names[], double &confidences[], int &directions[], int max_patterns); double PCF_PatternStrength(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value); int PCF_CandleType(double open_price, double high_price, double low_price, double close_price, double atr_value); double PCF_BodyRatio(double open_price, double high_price, double low_price, double close_price); double PCF_WickBalance(double open_price, double high_price, double low_price, double close_price); int PCF_IsTrendConfirmed(const double &close[], int bar_index, int lookback_period, double min_slope_pips); int PCF_GetVersion(); #import
API Referansı
PCF_DetectPattern
Belirtilen çubuktaki en güçlü mum formasyonunu tespit eder. 20+ formasyonu tanır: Hammer, Engulfing, Morning/Evening Star, Doji çeşitleri, Piercing Line, Dark Cloud Cover, Three White Soldiers, Three Black Crows, Harami, Tweezer, Marubozu, Hanging Man, Shooting Star.
Parametreler:
- open[], high[], low[], close[]: Grafikten alınan OHLC fiyat dizileri.
- bar_index: Analiz edilecek çubuğun dizi sınırları dahilindeki indeksi.
- atr_value: Uyarlanabilir eşikler için geçerli ATR değeri (> 0).
- pattern_name (by ref): En güçlü formasyonun adını alır (ör. "Bullish Engulfing").
- confidence (by ref): 0.0 (zayıf) ile 1.0 (mükemmel) arasında güven puanı.
- direction (by ref): +1 (boğa/yükseliş), -1 (ayı/düşüş).
Dönüş Değeri: Tespit edilen formasyon sayısı (yoksa 0). Çıkış parametrelerine en güvenilir formasyonu atar.
PCF_ScanMultiPattern
Tek çubuktaki TÜM mum formasyonlarını tarar ve güven puanına göre azalan sırada döndürür.
Parametreler:
- open[], high[], low[], close[]: OHLC fiyat dizileri.
- bar_index: Analiz edilecek çubuk.
- atr_value: Uyarlanabilir eşikler için ATR.
- pattern_names[] (by ref): Formasyon adlarını alan dizi (max_patterns boyutuna kadar).
- confidences[] (by ref): Güven puanlarını alan dizi.
- directions[] (by ref): Yönleri alan dizi (+1/-1).
- max_patterns: Döndürülecek maksimum sonuç sayısı (ör. 5).
Dönüş Değeri: Bulunan formasyon sayısı (0 ile max_patterns arası).
PCF_PatternStrength
Bir çubuktaki tüm formasyonları birleştirerek toplam yönlü baskı puanını döndürür.
Parametreler:
- open[], high[], low[], close[]: OHLC dizileri.
- bar_index: Hedef çubuk indeksi.
- atr_value: Ölçeklendirme için ATR.
Dönüş Değeri: -100.0 (aşırı düşüş) ile +100.0 (aşırı yükseliş) arasında puan. Sıfır nötrdür.
PCF_CandleType
Tek bir mumu ATR gövde ve fitil oranlarına göre 8 morfolojik tipten birine sınıflandırır.
Parametreler:
- open_price, high_price, low_price, close_price: Tek bir mumun OHLC değerleri.
- atr_value: Göreli boyutlandırma için ATR (<= 0 ise mutlak eşikler kullanılır).
Dönüş Değeri: 1=Bull Marubozu, 2=Bear Marubozu, 3=Hammer, 4=Inverted Hammer, 5=Doji, 6=Spinning Top, 7=Standard Bull, 8=Standard Bear.
PCF_BodyRatio
Bir mumun gövdesinin toplam aralığına oranını hesaplar. Mum önemini filtrelemede kullanılır.
Parametreler:
- open_price, high_price, low_price, close_price: Tek mum OHLC.
Dönüş Değeri: 0.0 (gövde yok / doji) ile 1.0 (tam gövde / marubozu) arası oran. Aralık sıfırsa 0.0.
PCF_WickBalance
Bir mumun fitillerinin yönlü asimetrisini ölçer.
Parametreler:
- open_price, high_price, low_price, close_price: Tek mum OHLC.
Dönüş Değeri: -1.0 (tamamen alt fitil, boğa tepkisi) ile +1.0 (tamamen üst fitil, ayı tepkisi). 0.0 simetriktir.
PCF_IsTrendConfirmed
Geriye dönük pencerede doğrusal regresyon eğimiyle trend bağlamını doğrular. Trend yönündeki formasyonları filtreler.
Parametreler:
- close[]: Kapanış fiyatı dizisi close[].
- bar_index: İnceleme penceresinin başlangıç çubuğu.
- lookback_period: Değerlendirilecek çubuk sayısı (minimum 5).
- min_slope_pips: Trend için gerekli minimum mutlak eğim (pip).
Dönüş Değeri: +1 (yükseliş trendi), -1 (düşüş trendi), 0 (yatay piyasa veya yetersiz veri).
PCF_GetVersion
Kütüphane sürümünü çalışma zamanı uyumluluk kontrolü için tamsayı olarak döndürür.
Dönüş Değeri: 100 (sürüm 1.00).
Çalışan Entegrasyon Örneği
#property strict #import "Prism_Candle_Forge.ex4" int PCF_DetectPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_name, double &confidence, int &direction); double PCF_PatternStrength(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value); int PCF_CandleType(double open_price, double high_price, double low_price, double close_price, double atr_value); int PCF_GetVersion(); #import void OnTick() { double o[], h[], l[], c[]; ArrayCopyRates(o, Symbol(), 0); int copied = CopyOpen(Symbol(), 0, 0, 100, o); CopyHigh(Symbol(), 0, 0, 100, h); CopyLow(Symbol(), 0, 0, 100, l); CopyClose(Symbol(), 0, 0, 100, c); double atr = iATR(Symbol(), 0, 14, 1); string pat_name; double conf; int dir; int count = PCF_DetectPattern(o, h, l, c, 1, atr, pat_name, conf, dir); if(count > 0) Print("Pattern: ", pat_name, " Confidence: ", conf, " Direction: ", dir); double strength = PCF_PatternStrength(o, h, l, c, 1, atr); Print("Aggregate Strength: ", strength); int candle = PCF_CandleType(o[1], h[1], l[1], c[1], atr); Print("Candle Type: ", candle); }
Mimari
8 fonksiyonun tümü durumsuz (stateless) ve bağımsızdır. Her çağrı, kalıcı durum, grafik nesnesi, zamanlayıcı veya ağ erişimi olmaksızın sağlanan OHLC dizileri üzerinde saf geometrik ve istatistiksel analiz gerçekleştirir. ATR uyarlanabilir eşikleri, tüm enstrümanlarda ve zaman dilimlerinde parametre ayarı gerekmeden doğru tespit sağlar.
Uyumluluk
- Platform: Yalnızca MetaTrader 4
- Strateji Test Cihazı: Tam uyumlu (geriye dönük test ve optimizasyon)
- Harici Bağımlılıklar: Yok (sıfır DLL)
- Grafik nesnesi yok, zamanlayıcı yok, görsel yük yok — saf hesaplama motoru
- İş Parçacığı Güvenliği: Tüm fonksiyonlar durumsuzdur (stateless); çoklu grafikte güvenlidir
