Само собой выносится. А вот по поводу iTime(Symbol(),Periods,0) вопроса не понял. Если работаем на H1, то как из 3-х
вызовов может быть возвращен другой вариант.
Само собой выносится. А вот по поводу iTime(Symbol(),Periods,0) вопроса
не понял. Если работаем на H1, то как из 3-х вызовов может быть
возвращен другой вариант.
Если ты ожидаешь одинаковый результат, зачем функцию 3 раза вызываешь?
Если на границе часа функция может вернуть разные результаты,
такую ошибку в большом коде практически невозможно отловить.
Возможно, это и не ответит на тему ветки, но я бы так писать всуравно
не стал.
А вообще, в чем основная идея? нужно, чтобы при перекомпиляции
никогда не открывались ордера?
Как эксперт сможет послать ордер в случае длительного реквота(около минуты), если эксперт посчитает что текущий бар уже не новый? Или я ошибаюсь в логике?
Вопрос всем: как узнать время получения ошибки, перерыл документацию не нашел.
komposter писал (а):
Если объявлять static datetime New_Time=0;, первый запуск всегда будет возвращать
новый бар.
Была фраза, что iTime(Symbol(),Periods,0) вынесли в инит(). может, пора новый
текст выложить? чтобы не путаться.
Добавил проверку на ошибки и функцию проверки есть ли ордер
по валюте. А то уже пошли вопросы про реквоты и т.д.
Я кароче по логике никак не могу понять.
Бар мы узнаём при инициализации, с приходом нового тика проверяем
не обновился ли бар, если бар не новый, то
New_Bar = false;
и значит
if (New_Bar == false){
Comment("ЖДЁМ ОТКРЫТИЯ НОВОГО БАРА");
return(0);
должно выполняться. Но проскакивает же этот момент.
Все больше ни у кого нет никаких мыслей.
Ткните ктонибудь в мою ошибку. Она у меня в эксперте проявляется
очень редко, но тем неменее есть, а я ей не вижу.
Прям как слепой. ДАЙТЕ ПРОЗРЕТЬ.
Проверку закоментировал в ините. Подкачка в данном случае не
критична вообще. Бары есть все.
Выставление ордера так и происходит.
у меня последний вариант не выставляет ордеров.
раз 30 перекомпилировал. висит одновременно на трёх графиках
евро, фунт и йена. таймфреймы ставил минута, 30 и час
только я comment на print заменил.
Само собой выносится. А вот по поводу iTime(Symbol(),Periods,0) вопроса не понял. Если работаем на H1, то как из 3-х вызовов может быть возвращен другой вариант.
static datetime New_Time=0;
Само собой выносится. А вот по поводу iTime(Symbol(),Periods,0) вопроса не понял. Если работаем на H1, то как из 3-х вызовов может быть возвращен другой вариант.
Если на границе часа функция может вернуть разные результаты, такую ошибку в большом коде практически невозможно отловить. Возможно, это и не ответит на тему ветки, но я бы так писать всуравно не стал.
А вообще, в чем основная идея? нужно, чтобы при перекомпиляции никогда не открывались ордера?
Если объявлять static datetime New_Time=0;, первый запуск всегда будет возвращать новый бар.
Была фраза, что iTime(Symbol(),Periods,0) вынесли в инит(). может, пора новый текст выложить? чтобы не путаться.
Как эксперт сможет послать ордер в случае длительного реквота(около минуты), если эксперт посчитает что текущий бар уже не новый? Или я ошибаюсь в логике?
Вопрос всем:
как узнать время получения ошибки, перерыл документацию не нашел.
Пример:
double errcode=GetLastError();
if(errcode==135) { RefreshRates() ;}
Как/чем узнать время поступления ошибки 135
Если объявлять static datetime New_Time=0;, первый запуск всегда будет возвращать новый бар.
Была фраза, что iTime(Symbol(),Periods,0) вынесли в инит(). может, пора новый текст выложить? чтобы не путаться.
Я кароче по логике никак не могу понять.
Бар мы узнаём при инициализации, с приходом нового тика проверяем не обновился ли бар, если бар не новый, то
New_Bar = false;
и значит
if (New_Bar == false){
Comment("ЖДЁМ ОТКРЫТИЯ НОВОГО БАРА");
return(0);
должно выполняться. Но проскакивает же этот момент.
Все больше ни у кого нет никаких мыслей.
Ткните ктонибудь в мою ошибку. Она у меня в эксперте проявляется очень редко, но тем неменее есть, а я ей не вижу.
Прям как слепой. ДАЙТЕ ПРОЗРЕТЬ.
вставлять в init(), кроме того, при вызове iTime(), нужно проверять такую ошибку, как подкачку данных
Проверку закоментировал в ините. Подкачка в данном случае не критична вообще. Бары есть все.
Выставление ордера так и происходит.
Проверку закоментировал в ините. Подкачка в данном случае не критична вообще. Бары есть все.
Выставление ордера так и происходит.
раз 30 перекомпилировал. висит одновременно на трёх графиках евро, фунт и йена. таймфреймы ставил минута, 30 и час
только я comment на print заменил.