Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 113
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Hay varias formas de obtener los precios actuales:
1. Para cualquier símbolo: si quiere obtener precios actuales garantizados, llame a SymbolInfoDouble() con los identificadores correctos antes de utilizarlos.
2. Para el símbolo actual, también puede obtener los precios actuales a través de las variables predefinidas Bid y Ask. Pueden quedar desfasados, por lo que si se está ejecutando OnTick(), debería refrescarlos con RefreshRates().
"posible pérdida de datos debido a la conversión de tipos"
¿Cómo puedo superar esta advertencia?
Advertencia del compilador:
"posible pérdida de datos debido a la conversión de tipos"
¿Cómo puedo superar esta advertencia?
Es necesario conocer los tipos exactos de los valores devueltos por las funciones y utilizar la conversión explícita. https://www.mql5.com/ru/docs/basis/types/casting
No tiene una plantilla completa: probablemente no ha configurado los búferes de los indicadores en el asistente, donde se escribirán los datos calculados.
Pero el principio básico para la mayoría de los indicadores es el siguiente:
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
if(rates_total<1) return(0); // проверка достаточности данных для расчёта индикатора, если не достаточно - выходим
// если для расчёта требуются некое количество баров слева от индекса цикла, ...
// ... то проверять нужно это количество, а не 1
//--- Действия для полного перерасчёта индикатора
int limit=rates_total-prev_calculated; // количество посчитанных уже баров
if(limit>1) { // если количество больше 1, значит имеем новые данные, и нужно полностью пересчитать индикатор
limit=rates_total-1; // задаём количество требуемых для расчёта баров равным количеству баров в истории,
// если для расчёта требуются некое количество баров слева от индекса цикла, ...
// ... то это количество тоже нужно вычесть из rates_total чтобы не выйти за пределы массива
// так же тут нужно при необходимости произвести инициализацию буферов индикатора
}
//--- Основной цикл индикатора
for(int i=limit; i>=0; i--) {
// тут выполняем нужные расчёты и записываем их результат в нужные буферы, например:
ExtMapBuffer[i]=(open[i]+high[i]+low[i]+close[i])/4.0; // Выведем на график среднюю цену каждой свечи (OHLC/4.0)
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Artem, el compilador dio un error: 'ExtMapBuffer' - identificador no declarado
Por eso he puesto este tope. Debería volver a crear la plantilla, pero debería ser más responsable de esta simple acción y preguntarse: "¿Pero qué me pide el asistente y qué necesita?
Hola! Hace unos cuatro meses empecé a estudiar MQL4 usando el tutorial de Kovalev. También tengo vídeos. Veo el vídeo y estudio el tutorial, repito los códigos que se utilizan allí. entiendo que esto es un asunto muy serio y se necesita tiempo para dominarlo. pero se exactamente que necesito practica. necesito tareas simples y escribirlas y que alguien las revise entonces podre ir mas lejos! otro problema es que el libro y los videos han sido actualizados, incluso repito el codigo del libro, lo compilo, me da errores, parezco una oveja en la nueva puerta...... esa es la tristeza!
Lee la documentación por una vez. El libro de texto está desfasado en algunos puntos. La documentación le ayudará a ello. En cuanto a las tareas - resolver las mismas tareas que se describen en el libro de texto. Lee el problema, mira la solución, repítelo. Y así sucesivamente hasta que le cojas el tranquillo. Es mejor tomar las tareas lo más cerca posible de las que quieres aprender a implementar tú mismo.
Todo, por supuesto, en mi opinión.
A mí me compila bien.
Bien, ¿quieres explicar por qué esos objetos no se diferencian?
Si cambia el tipo de objeto, las propiedades se colapsarán con 2 etiquetas o líneas de tendencia
Lee la documentación por una vez. El libro de texto está desfasado en algunos puntos. La documentación le ayudará a ello. En cuanto a las tareas - resolver las mismas tareas que se describen en el libro de texto. Lee el problema, mira la solución, repítelo. Y así sucesivamente hasta que le cojas el tranquillo. Es mejor tomar las tareas lo más cerca posible de las que quieres aprender a implementar tú mismo.
Todo, por supuesto, en mi opinión.
Gracias.
Bien, ¿quieres explicar por qué esos objetos no se diferencian?
Si cambia el tipo de objeto, las propiedades se colapsarán con 2 etiquetas o líneas de tendencia