Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1855
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Подскажите. Поставил вопрос в тупик.
iOpen как считается-то по Аску или Бид?
Дело в том, чтобы сравнить цену открытия на сегодня с ценой открытия на вчера возникает видимо спрэдовая колизия и потом далее в коде начинаются траблы. торгуется либо только баи или селлы из-за того, что в какие-то дни цены по iOpen некорректные.
Подскажите. Поставил вопрос в тупик.
iOpen как считается-то по Аску или Бид?
Дело в том, чтобы сравнить цену открытия на сегодня с ценой открытия на вчера возникает видимо спрэдовая колизия и потом далее в коде начинаются траблы. торгуется либо только баи или селлы из-за того, что в какие-то дни цены по iOpen некорректные.
График строится по цене Bid
Ребят подскажите пожалуйста.
Пишу мультивалютный советник, все работает как запланировано, кроме открытия ордеров. Подскажите в чем ошибка.
Не выдает ошибок никаких, просто не открывает ордер
Ребят подскажите пожалуйста.
Пишу мультивалютный советник, все работает как запланировано, кроме открытия ордеров. Подскажите в чем ошибка.
Не выдает ошибок никаких, просто не открывает ордер
Возвращаемое значение
Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Вам даже компилятор пишет что Ордерсенд должна быть проверена.
Покупка делается по Ask. Но может сработать и с Bid, если проскальзывание будет не меньше спреда, что может усложнить поиск этого бага.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Sergey Dymov, 2022.01.14 18:03
Ребят подскажите пожалуйста.
Пишу мультивалютный советник, все работает как запланировано, кроме открытия ордеров. Подскажите в чем ошибка.
Не выдает ошибок никаких, просто не открывает ордер
Обратили внимание где ошибка?
https://docs.mql4.com/ru/trading/ordersend
Примечание
При открытии рыночного ордера (OP_SELL или OP_BUY) в качестве цены открытия могут использоваться только самые последние цены Bid (для продажи) или Ask (для покупки). Если операция проводится по финансовому инструменту, отличному от текущего, то для получения последних котировок по этому инструменту необходимо воспользоваться функцией MarketInfo() с параметром MODE_BID или MODE_ASK.
Нельзя использовать расчетную либо ненормализованную цену. Если запрашиваемой цены открытия не было в ценовом потоке, либо запрашиваемая цена не нормализована в соответствии с количеством знаков после десятичной точки, то будет сгенерирована ошибка 129 (ERR_INVALID_PRICE). Если запрашиваемая цена открытия сильно устарела, то независимо от значения параметра slippage будет сгенерирована ошибка 138 (ERR_REQUOTE). Если же запрашиваемая цена устарела, но еще присутствует в ценовом потоке, то ордер открывается по текущей цене и только в том случае, если текущая цена попадает в диапазон price+-slippage.
...
Также для робота желательно задать уникальный magic.
Насколько я знаю, Ask и Bid уже нормализованы. Подобный вопрос уже поднимался и противоречий не было.
Про магик и приведению к digits стоплоса и профита, возможно и уместно, но задумка автора не известна.
Насколько я знаю, Ask и Bid уже нормализованы. Подобный вопрос уже поднимался и противоречий не было.
Про магик и приведению к digits стоплоса и профита, возможно и уместно, но задумка автора не известна.
На сколько я знаю в документации ни слова об этом. Так что лучше перестраховаться. Хуже точно не будет.
Относительно СЛ и ТП то они являются расчётными. И поэтому их обязательно следует нормализировать в соответствии со значением digits.
Привет друзья.
Добрый день.
Как получить время открытия второго и последующих ордеров ведь OpenOrderTime() выдает только первый, а также как получить цену открытия второго и последующих ордеров, т.к. аналогом OpenOrderPrice() выдает также цену первого