а при использовании функции в эксперте, он перестает работать в тестере, подскажите пожалуйста причину, код взят из статьи 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? Как ограничить количество отложенных ордеров? Была ли выполнена торговая операция на этом баре или это было на предыдущем? Если торговый робот не может сделать подобные проверки, то любая прибыльная торговая система может превратиться в проигрышную. В этой статье показаны примеры проверок, которые пригодятся в любом эксперте.
При компиляции кода, появляется сообщение: possible loss of data due to type conversion на строчке
а при использовании функции в эксперте, он перестает работать в тестере, подскажите пожалуйста причину, код взят из статьи https://www.mql5.com/ru/articles/22
На счёт Тестера не подскажу. А про "... type conversion":
Интересно ,но у меня тоже есть похожее.Заполнение массива double данными double.Выдает такое же предупреждение на этой строке.
Возможно дело в неоднозначности интерпретации констант (0,0,13). CopyBuffer имеет три варианта вызова. Попробуйте подставить в качестве параметров переменные нужного типа, или используйте явное преобразование типа для констант.
Спасибо попробую.Преобразование уже пробовал.Явное преобразование проходит , если хендл машки перевожу через (int).Но это меня естественно не устраивает :-)
Karlson: Спасибо попробую.Преобразование уже пробовал.Явное преобразование проходит , если хендл машки перевожу через (int).Но это меня естественно не устраивает :-)
intiMA(
string symbol, // имя символаENUM_TIMEFRAMES period, // периодint ma_period, // период усредненияint ma_shift, // смещение индикатора по горизонталиENUM_MA_METHOD ma_method, // тип сглаживанияENUM_APPLIED_PRICE applied_price // тип цены или handle
);
У меня вот тоже несколько вопросов. Где модули сигналов пересечения средних скользящих? Где сигналы alligatora? И ещё. У каждого индикатора по несколько видов сигналов. Как сделать так что бы допустим MACD принимал только сигналы пересечения нулевого уровня?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Алекс, подскажите, как мне определенную цену например m_rates[1].low сравнить с m_rates[0].close
m_rates[1].low=m_rates[0].close правильно ли это будет и вообще m_rates[0].close это последняя цена еще не закрытого бара?
и вообще чем правильнее воспользоваться, чтобы с барами последними "повозиться" не используя индикаторы? (CopyRates, CopyHigh)
Алекс, подскажите, как мне определенную цену например m_rates[1].low сравнить с m_rates[0].close
m_rates[1].low=m_rates[0].close правильно ли это будет и вообще m_rates[0].close это последняя цена еще не закрытого бара?
и вообще чем правильнее воспользоваться, чтобы с барами последними "повозиться" не используя индикаторы? (CopyRates, CopyHigh)
вы правильно написали что для работы с ценовыми данными вне индикаторов - надо использовать CopyRates или CopyHigh/Low/Close и т.д.
примеры найдете в справке или в кодебазе.
При компиляции кода, появляется сообщение: possible loss of data due to type conversion на строчке
а при использовании функции в эксперте, он перестает работать в тестере, подскажите пожалуйста причину, код взят из статьи https://www.mql5.com/ru/articles/22
При компиляции кода, появляется сообщение: possible loss of data due to type conversion на строчке
а при использовании функции в эксперте, он перестает работать в тестере, подскажите пожалуйста причину, код взят из статьи https://www.mql5.com/ru/articles/22
Интересно ,но у меня тоже есть похожее.Заполнение массива double данными double.Выдает такое же предупреждение на этой строке.
Интересно ,но у меня тоже есть похожее.Заполнение массива double данными double.Выдает такое же предупреждение на этой строке.
Спасибо попробую.Преобразование уже пробовал.Явное преобразование проходит , если хендл машки перевожу через (int).Но это меня естественно не устраивает :-)
Понял ошибку.Нужен int.
Благодарю.