Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 705
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Видимо я не совсем точно объяснил проблему. Дело в том, что есть открытый ордер GBPUSD (не отложенный), цена открытия - 1,61029. Я в скрипте делаю запрос к этому ордеру ф-ей OrderSelect, а функция OrderOpenPrice, как я понимаю, должна вернуть реальное значение цены открытия этого самого ордера(1,61029), а возвращает округленное до 4 знака после запятой значение - 1,6103. Испытано на разных ордерах с разными ценами открытия - результат один и тот же: последней цифры нет.
Для этого есть DoubleToStr(), которая напишет с Digits реальными, а так будет писать с 4-мя! Смотрите Документацию наверху слева, там всё найдёте и узнаете много + учебник!
Вот так:
Для этого есть DoubleToStr(), которая напишет с Digits реальными, а так будет писать с 4-мя! Смотрите Документацию наверху слева, там всё найдёте и узнаете много + учебник!
Вот так:
Спасибо большое! А учебник я читаю, и по ходу советник пишу.
И еще вопрос: какой наиболее простой способ узнать, что данный ордер закрыт(по тиккету)? Использовать функцию OrderCloseTime, или есть для этой цели спец. функция?
Спасибо большое! А учебник я читаю, и по ходу советник пишу.
И еще вопрос: какой наиболее простой способ узнать, что данный ордер закрыт(по тиккету)? Использовать функцию 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 в данном случае игнорируется. Только по времени закрытия больше/равно нулю можно определить из какого списка ордер выбран. Ну уж эти-то азы стыдно не знать ;)
по тикету практически никогда не искал, больше по индексу, может и стыдно, да что поделаешь ;)
а вот поиск нужного тикета там в коде не привели, может он неправильно его ищет а потом жалуется что код не работает...
по тикету практически никогда не искал, больше по индексу, может и стыдно, да что поделаешь ;)
а вот поиск нужного тикета там в коде не привели, может он неправильно его ищет а потом жалуется что не код работает...