inputint InpMA_ma_period = 25; // Параметры МА inputint InpMA_ma_shift = 0; // MA PRICE_HIGH and PRICE_LOW: horizontal shift inputENUM_MA_METHOD InpMA_ma_method = MODE_SMA; // MA PRICE_HIGH: smoothing type int handle_MA;
intOnInit()
{
handle_MA=iCustom(m_symbol.Name(),Period(),"MA",InpMA_ma_period,InpMA_ma_shift,InpMA_ma_method,PRICE_CLOSE);
}
voidOnTick()
{
double MA_price=0.0;
MA_price=iCustomGet(handle_MA,0,0);
Print("MA_price",MA_price);
}
//Получаем данные кастом МАdouble iCustomGet(int handle,constint buffer,constint index)
{
double Custom[1];
//--- reset error code ResetLastError();
//--- fill a part of the iCustom array with values from the indicator buffer that has 0 index if(CopyBuffer(handle,buffer,index,1,Custom)<0)
{
//--- if the copying fails, tell the error code PrintFormat("Failed to copy data from the iCustom indicator, error code %d",GetLastError());
//--- quit with zero result - it means that the indicator is considered as not calculated return(0.0);
}
return(Custom[0]);
}
intiMA(
string symbol, // имя символа ENUM_TIMEFRAMES period, // период int ma_period, // период усреднения int ma_shift, // смещение индикатора по горизонтали ENUM_MA_METHOD ma_method, // тип сглаживания ENUM_APPLIED_PRICE applied_price // тип цены или handle
);
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как...
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Deberías poner una bandera para comprobar si el valor ha cambiado, para no tener que tirar deOnInit en cada tick
Así:
Gracias, ha funcionado.
Por lo que entiendo, tengo que hacerIndicatorRelease
¿Porque el viejo cálculo sigue colgado en el gráfico? Al menos en el probador.
¿Entonces el código es así?
Gracias, está funcionando.
Según tengo entendido, también tendré que realizar elIndicatorRelease
¿Porque el antiguo cálculo sigue colgado en el gráfico? Al menos en el probador.
¿Entonces el código es así?
Y añadir al código:
¿Cómo hacer que mi MA personalizada se extraiga del indicador RSI en lugar del precio?
Recibo datos de MA personalizados a través deiCustomGet.
Quiero hacerun indicador compuesto (indicador de indicador).
Ejemplos para mt4
https://www.mql5.com/ru/forum/110186
https://www.mql5.com/ru/code/22638
¿Cómo hacer que mi MA personalizada se extraiga del indicador RSI en lugar del precio?
Recibo datos de MA personalizados a través deiCustomGet.
Quiero hacerun indicador compuesto (indicador de indicador).
Ejemplos para mt4
https://www.mql5.com/ru/forum/110186
https://www.mql5.com/ru/code/22638
Qué tal esto:iMA
Qué tal esto:iMA
Gracias, justo lo que necesito
A esto:
El compilador responde: posible pérdida de datos debido a la conversión de tipos
Pregunta: ¿Cuál es la forma correcta de hacerlo? (para que el compilador no maldiga)
A esto:
El compilador responde: posible pérdida de datos debido a la conversión de tipos
Pregunta: ¿cuál es la forma correcta de hacerlo? (para que el compilador no maldiga)
El compilador no maldice, pero le advierte que está tratando de poner double en int.
A esto:
El compilador responde: posible pérdida de datos debido a la conversión de tipos
Pregunta: ¿Cuál es la forma correcta de hacerlo? (para que el compilador no maldiga)
El compilador no maldice, pero advierte que estás tratando de poner double en int.
Me quedé perplejo por casi lo mismo.
Esto se debe a esta int ... Según recuerdo SymbolInfoInteger solía devolver tipo int y ahora de repente devuelve long
Me estaba preguntando casi lo mismo.
que es debido a esta int ... Según recuerdo SymbolInfoInteger solía devolver tipo int y ahora de repente devuelve long
Siempre devuelve long - mira los identificadores de la propiedad SymbolInfoInteger()