khorosh: А если в советнике какие-то операции выполняются по ценам открытия, то надо добавить выделенное красным цветом, чтобы не пропустить момент.
Согласен, советникам, которые работают по ценам открытия, обязательно надо передать первый тик нового бара - не важно значительно или незначительно отличаются цены между тиками. Однако такая конструкция
&& TimeCurrent()!=Time[0]
ненадежно отлавливает начало нового бара.
Тогда уж так (изменения выделены красным цветом):
// Выход, если котировки Bid/Ask изменились незначительно внутри текущего бара ...if (MathAbs(Bid-nBid)<nDelta && MathAbs(Ask-nAsk)<nDelta && !IsNewBar()) return;
// ...//+------------------------------------------------------------------+//| Определить появление нового бара на текущем графике//+------------------------------------------------------------------+bool IsNewBar()
{ bool ok=false;
staticdatetime dLastTime=0; // последнее известное время открытия текущего бараdatetime dNewTime=Time[0]; // время открытия текущего бараif (dNewTime>dLastTime) {dLastTime=dNewTime; ok=true;}
return(ok);
}
Согласен, советникам, которые работают по ценам открытия, обязательно надо передать первый тик нового бара - не важно значительно или незначительно отличаются цены между тиками. Однако такая конструкция
ненадежно отлавливает начало нового бара.
Тогда уж так (изменения выделены красным цветом):
Eugene Myzrov:
Согласен, советникам, которые работают по ценам открытия, обязательно надо передать первый тик нового бара - не важно значительно или незначительно отличаются цены между тиками. Однако такая конструкция
ненадежно отлавливает начало нового бара.
Тогда уж так (изменения выделены красным цветом):
Можно и так, только лишняя пользовательская функция добавляется. А может для надёжности моего дополнения сделать так?
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Тогда уж надо учесть изменения не только Bid-котировок, но и Ask:
у вас не такой ноутбук?
А есть смысл бид и аск отдельно считать? в тестере все равно не сработает
у вас не такой ноутбук?
Toshiba модель SATELLITE A200-29L. Когда на одном инструменте нормально, а я на 6 работаю.
Согласен, советникам, которые работают по ценам открытия, обязательно надо передать первый тик нового бара - не важно значительно или незначительно отличаются цены между тиками.
Однако такая конструкция
&& TimeCurrent()!=Time[0]ненадежно отлавливает начало нового бара.
Тогда уж так (изменения выделены красным цветом):
Как так не сработает?! В тестере также как и в реале доступны для обработки обе цены и Bid и Ask.
А вы свои эксперты только для тестера делаете?
Согласен, советникам, которые работают по ценам открытия, обязательно надо передать первый тик нового бара - не важно значительно или незначительно отличаются цены между тиками.
Однако такая конструкция
ненадежно отлавливает начало нового бара.
Тогда уж так (изменения выделены красным цветом):
Согласен, советникам, которые работают по ценам открытия, обязательно надо передать первый тик нового бара - не важно значительно или незначительно отличаются цены между тиками.
Однако такая конструкция
ненадежно отлавливает начало нового бара.
Тогда уж так (изменения выделены красным цветом):
Можно и так, только лишняя пользовательская функция добавляется. А может для надёжности моего дополнения сделать так?