¿Qué indicadores usas? ¿Son indicadores que vienen con Metatrader o son indicadores personalizados (Custom Indiors)?
Si son indicadores que vienen con Metatrader, cada uno tiene su propioa forma para obtener el valor del indicador, por ejemplo, el ADX:
Code:
double iADX( string symbol, int timeframe, int period, int applied_price, int mode, int shift)
Por ejemplo, podrías utilizar este indicador en un expert advisor de este modo:
Code:
double var_adx = iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0);
double var_adx_1 = iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,1);
if(var_adx > var_adx_1) {
//???lo que sea
}
Si es un indicador personalizado y necesitas obtener su valor en un expert advisor se utiliza la función iCustom() y se necesitar el archivo ex4 (no el mql4).
Code:
double iCustom( string symbol, int timeframe, string name, ???, int mode, int shift)
La diferencia con las funciones específicas de cada indicador es que en la función iCustom() debes poner el nombre del indicador (string name) y todos los parámetros declarados como variables externas del indicador personalizado puestos en el mismo orden y del mismo tipo. También hay que saber cuántos buffer tiene el indicador y cual de ellos nos interesa.
Por ejemplo, tengo un indicador personalizado que se llama ???Indicador???, y tiene dos variables externas, ambas de tipo entero (integer), y el buffer que me interesa es el número cero:
Code:
int param1 = 4;
int param2 = 8;
double valor_indi = iCustom(NULL,0,param1,param2,0,0);
Puedes ver las funciones de cada indicador aquí: Technical Indiors - MQL4 Reference
Y los detalles de la función iCustom() aquí: iCustom - Technical Indiors - MQL4 Reference