y al utilizar la función en el Asesor Experto, deja de funcionar en el probador, por favor dígame la razón, el código está tomado del artículo https://www.mql5.com/ru/articles/22
//+------------------------------------------------------------------+//| CheckLastBar.mq5 |//| Copyright 2010, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2010, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property version "1.00"//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---if(isNewBar())
{
PrintFormat("Новый бар: %s",TimeToString(TimeCurrent(),TIME_SECONDS));
}
}
//+------------------------------------------------------------------+//| Возвращает true, если появился новый бар для пары символ/период |//+------------------------------------------------------------------+bool isNewBar()
{
//--- в статической переменной будем помнить время открытия последнего бараstaticdatetime last_time=0;
//--- текущее времяdatetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);
//--- если это первый вызов функцииif(last_time==0)
{
//--- установим время и выйдем
last_time=lastbar_time;
return(false);
}
//--- если время отличаетсяif(last_time!=lastbar_time)
{
//--- запомним время и вернем true
last_time=lastbar_time;
return(true);
}
//--- дошли до этого места - значит бар не новый, вернем falsereturn(false);
}
//+------------------------------------------------------------------+
Можно ли торговать этим инструментом в понедельник? Хватит ли денег на открытие позиции? Какой размер убытка мы получим, если сработает Stop Loss? Как ограничить количество отложенных ордеров? Была ли выполнена торговая операция на этом баре или это было на предыдущем? Если торговый робот не может сделать подобные проверки, то любая прибыльная торговая система может превратиться в проигрышную. В этой статье показаны примеры проверок, которые пригодятся в любом эксперте.
Al compilar el código, aparece un mensaje: posible pérdida de datos debido a la conversión de tipo en la línea
y al utilizar la función en el Asesor Experto, deja de funcionar en el probador, por favor dígame la razón, el código está tomado del artículohttps://www.mql5.com/ru/articles/22
No estoy seguro del probador. Sobre "... conversión de tipo":
Interesante, pero yo también tengo uno similar.Rellenar un array doble con datos dobles.Da el mismo aviso en esta línea.
Tal vez sea la interpretación ambigua de las constantes (0,0,13). El CopyBuffer tiene tres variantes de llamada. Intente sustituir las variables de tipo necesario como parámetros o utilice la conversión de tipo explícita para las constantes.
Gracias, lo probaré. Ya he probado la conversión, la conversión explícita pasa, si traduzco un manejador de máscara con (int), pero eso no me conviene desde luego :-)
Karlson: Gracias, lo intentaré. Ya he probado la conversión, la conversión explícita pasa, si traduzco un manejador de máscara a través de (int), pero eso no me conviene, claro :-)
intiMA(
string symbol, // имя символаENUM_TIMEFRAMES period, // периодint ma_period, // период усредненияint ma_shift, // смещение индикатора по горизонталиENUM_MA_METHOD ma_method, // тип сглаживанияENUM_APPLIED_PRICE applied_price // тип цены или handle
);
Yo también tengo algunas preguntas. ¿Dónde están los módulos de señal de cruce de medias móviles? ¿Dónde están las señales de aligatora? Una cosa más. Cada indicador tiene varios tipos de señales. ¿Cómo hacer que el MACD acepte sólo señales de cruce de cero?
Alex, ¿puedes decirme cómo comparar m_rates[1].low con m_rates[0].close?
m_rates[1].low=m_rates[0].close ¿será correcto y en general, m_rates[0].close es el último precio de la barra que aún no está cerrada?
y en general, ¿cuál es la forma correcta de tratar la última barra sin utilizar indicadores?(CopyRates, CopyHigh)
Alex, ¿cómo puedo comparar m_rates[1].low con m_rates[0].close?
m_rates[1].low=m_rates[0].close ¿será correcto y en general, m_rates[0].close es el último precio de la barra que aún no está cerrada?
y en general, ¿cuál es la forma correcta de tratar la última barra sin utilizar indicadores? (CopyRates, CopyHigh)
usted escribió correctamente que debería usar CopyRates o CopyHigh/Low/Close, etc. para trabajar con datos de precios fuera de los indicadores.
Puedes encontrar ejemplos en la ayuda o en la base de código.
Al compilar el código, aparece un mensaje: posible pérdida de datos debido a la conversión de tipo en la línea
y al utilizar la función en el Asesor Experto, deja de funcionar en el probador, por favor dígame la razón, el código está tomado del artículo https://www.mql5.com/ru/articles/22
Al compilar el código, aparece un mensaje: posible pérdida de datos debido a la conversión de tipo en la línea
y al utilizar la función en el Asesor Experto, deja de funcionar en el probador, por favor dígame la razón, el código está tomado del artículohttps://www.mql5.com/ru/articles/22
Interesante, pero yo también tengo uno similar.Llenar un array doble con datos dobles. Da la misma advertencia en esta línea.
Interesante, pero yo también tengo uno similar.Rellenar un array doble con datos dobles.Da el mismo aviso en esta línea.
Gracias, lo intentaré. Ya he probado la conversión, la conversión explícita pasa, si traduzco un manejador de máscara a través de (int), pero eso no me conviene, claro :-)
Me equivoqué. Necesito un int.
Gracias.