Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 705
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо большое! А учебник я читаю, и по ходу советник пишу.
И еще вопрос: какой наиболее простой способ узнать, что данный ордер закрыт(по тиккету)? Использовать функцию OrderCloseTime, или есть для этой цели спец. функция?
В переменной ticket должен храниться номер тикета проверяемого ордера
В переменной ticket должен храниться номер тикета проверяемого ордера
если ордер закрыт, разве его не в истории надо искать (MODE_HISTORY)?
В переменной ticket должен храниться номер тикета проверяемого ордера
Спасибо.
Ещё такой вопрос. В советнике есть блок, который должен удалять отложенные ордера, в зависимости от закрытия рыночных ордеров:
OrderSelect(T1,SELECT_BY_TICKET);
datetime cls1;
cls1=OrderCloseTime(); // время закрытия 1 ордера
OrderSelect(T2,SELECT_BY_TICKET);
datetime cls2;
cls2=OrderCloseTime(); //время закрытия 2 ордера
Alert(cls1," ",cls2);
if(cls1==0 && cls2==0) //если оба ордера открыты
return(0);
else
CLS++; // флаг закрытия одного из ордеров
if(cls1>0 && CLS==1) //удаление отложенных ордеров в зависимости от того какой ордер закрыт
OrderDelete(T3);
if(cls2>0 && CLS==1)
OrderDelete(T4);
return(0);
}
Блок почему-то не работает(отложенные ордера не закрывает), а Alert всегда выдает "0 0". Специально закрывал один из открытых ордеров, но ничего не происходило. Такое ощущение как будто советник не видит, что ордер уже закрыт и обрабатывает устаревшие данные. В чём может быть проблема?
Спасибо.
Ещё такой вопрос. В советнике есть блок, который должен удалять отложенные ордера, в зависимости от закрытия рыночных ордеров:
Блок почему-то не работает(отложенные ордера не закрывает), а Alert всегда выдает "0 0". Специально закрывал один из открытых ордеров, но ничего не происходило. Такое ощущение как будто советник не видит, что ордер уже закрыт и обрабатывает устаревшие данные. В чём может быть проблема?
Где тикет ордера выясняется? И откуда OrderCloseTime если ордер ещё активен (во всяком случае, выбор его среди активных по коду происходит)?
если ордер закрыт, разве его не в истории надо искать (MODE_HISTORY)?
Да перестань буянить. Pool в данном случае игнорируется. Только по времени закрытия больше/равно нулю можно определить из какого списка ордер выбран. Ну уж эти-то азы стыдно не знать ;)
по тикету практически никогда не искал, больше по индексу, может и стыдно, да что поделаешь ;)
а вот поиск нужного тикета там в коде не привели, может он неправильно его ищет а потом жалуется что код не работает...
по тикету практически никогда не искал, больше по индексу, может и стыдно, да что поделаешь ;)
а вот поиск нужного тикета там в коде не привели, может он неправильно его ищет а потом жалуется что не код работает...
Всем спасибо за помощь! Ошибка была в локальных переменных тиккетов. Что ж поделать, я - нуб.
Уважаемые программисты, буду очень благодарен, если вы сможете отладить мой советник для нового билда 670. Этот советник был написан для меня и работал прекрасно со старыми версиями, но на новой версии МТ4 он не работает. Пытался компилировать -- выдаёт 100 ошибок. Сам с этим не справлюсь.
Кстати, не буду иметь ничего против, если кому-то советник будет в помощь ...... только буду рад :-)
Советник прилагается.
Заранее спасибо.