Prism Candle Forge
- Bibliotecas
-
Syarief Azman Bin Rosli
¡Hola y bienvenido a mi perfil oficial en MQL5!
Soy Syarief Azman Bin Rosli, desarrollador de sistemas de trading algorítmico e ingeniero de software cuantitativo con más de una década de experiencia especializada en la creación de soluciones automatizadas para MetaTrader 5 y MetaTrader 4. - Versión: 1.0
- Activaciones: 5
Prism Candle Forge — Motor de Reconocimiento de Patrones de Velas para MT4
Prism Candle Forge es una biblioteca nativa de MQL4 para detectar y validar mas de 20 patrones de velas japonesas mediante analisis geometrico ponderado por ATR. Proporciona deteccion de patrones, confianza direccional, clasificacion morfologica y validacion de tendencia mediante 8 funciones exportadas para Expert Advisors, Indicadores o Scripts. Sin DLLs, sin dependencias externas, calculo puro en MQL4.
Distribuido como binario compilado (Prism_Candle_Forge.ex4). Esta descripcion es la referencia completa de la API.
Instalacion
- Descargue Prism_Candle_Forge.ex4 desde MQL5 Market.
- Coloquelo en: MQL4/Libraries/
- Agregue el bloque #import siguiente a su archivo .mq4.
- Compile su EA o Indicador. Las 8 funciones estaran disponibles.
Declaracion de Importacion (Listo para Copiar y Pegar)
#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
Referencia de la API
PCF_DetectPattern
Detecta el patron de velas mas fuerte en una barra. Reconoce 20+ patrones: Hammer, Engulfing, Morning/Evening Star, variantes Doji, Piercing Line, Dark Cloud Cover, Three White Soldiers, Three Black Crows, Harami, Tweezer, Marubozu, Hanging Man, Shooting Star.
Parametros:
- open[], high[], low[], close[]: Arrays de precios OHLC del grafico.
- bar_index: Indice de la barra a analizar dentro de limites del array.
- atr_value: Valor actual de ATR para dimensionamiento adaptativo (> 0).
- pattern_name (by ref): Nombre del patron mas fuerte detectado (ej. "Bullish Engulfing").
- confidence (by ref): Puntuacion de confianza de 0.0 (debil) a 1.0 (perfecto).
- direction (by ref): +1 para senal alcista, -1 para senal bajista.
Retorna: Numero de patrones detectados (0 si ninguno). Asigna a salida el patron de mayor confianza.
PCF_ScanMultiPattern
Escanea TODOS los patrones en una barra y devuelve resultados ordenados por confianza descendente.
Parametros:
- open[], high[], low[], close[]: Arrays de precios OHLC.
- bar_index: Barra a analizar.
- atr_value: ATR para umbrales adaptativos.
- pattern_names[] (by ref): Array para nombres de patrones (hasta max_patterns).
- confidences[] (by ref): Array para puntuaciones de confianza.
- directions[] (by ref): Array para direcciones (+1/-1).
- max_patterns: Maximo de resultados a devolver (ej. 5).
Retorna: Cantidad real de patrones encontrados (0 a max_patterns).
PCF_PatternStrength
Devuelve una puntuacion agregada de presion direccional de todos los patrones de una barra.
Parametros:
- open[], high[], low[], close[]: Arrays OHLC.
- bar_index: Indice de la barra objetivo.
- atr_value: ATR para escalado.
Retorna: Puntuacion de -100.0 (extremo bajista) a +100.0 (extremo alcista). Cero indica neutralidad.
PCF_CandleType
Clasifica una vela en uno de 8 tipos morfologicos segun proporciones relativas al ATR.
Parametros:
- open_price, high_price, low_price, close_price: Valores OHLC de la vela individual.
- atr_value: ATR para dimension relativo (si <= 0, usa umbrales absolutos).
Retorna: 1=Bull Marubozu, 2=Bear Marubozu, 3=Hammer, 4=Inverted Hammer, 5=Doji, 6=Spinning Top, 7=Standard Bull, 8=Standard Bear.
PCF_BodyRatio
Calcula relacion cuerpo-rango total de una vela para evaluar relevancia.
Parametros:
- open_price, high_price, low_price, close_price: OHLC de la vela individual.
Retorna: Ratio de 0.0 (sin cuerpo / doji) a 1.0 (marubozu). 0.0 si el rango es cero.
PCF_WickBalance
Mide asimetria direccional de las mechas de una vela.
Parametros:
- open_price, high_price, low_price, close_price: OHLC de la vela individual.
Retorna: -1.0 (solo mecha inferior, rechazo alcista) a +1.0 (solo mecha superior, rechazo bajista). 0.0 simetria.
PCF_IsTrendConfirmed
Valida contexto tendencial mediante pendiente de regresion lineal en ventana retrospectiva.
Parametros:
- close[]: Array de precios de cierre close[].
- bar_index: Barra inicial de la ventana de observacion.
- lookback_period: Numero de barras a evaluar (minimo 5).
- min_slope_pips: Pendiente absoluta minima (en pips) para confirmar tendencia.
Retorna: +1 (tendencia alcista), -1 (tendencia bajista), 0 (mercado lateral o datos insuficientes).
PCF_GetVersion
Devuelve la version de biblioteca como entero para compatibilidad.
Retorna: 100 (representa la version 1.00).
Ejemplo de Integracion Funcional
#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); }
Arquitectura
Las 8 funciones son sin estado (stateless) e independientes. Cada llamada realiza analisis geometrico y estadistico puro sobre arrays OHLC, sin estado persistente, sin objetos de grafico, timers ni red. Umbrales relativos a ATR garantizan deteccion precisa en todos los activos y temporalidades sin ajustar parametros.
Compatibilidad
- Plataforma: Solo MetaTrader 4
- Probador de estrategias: Totalmente compatible (backtest y optimizacion)
- Dependencias: Ninguna (cero DLLs)
- Sin objetos graficos, timers ni carga visual — puro motor de calculo
- Thread Safety: Stateless; seguro para multiples graficos simultaneos
