Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
....
Очень важно запрограммировать все возможные ситуации, формируя логику работы и для нештатных случаев явно, а не "как получится".
Однин вопрос почему Простак ? )))
Всем огромное спасибо, есть еще одна ключевая функция OpenPosition(...) которую хотелось бы разобрать, но это в другой ветке https://www.mql5.com/ru/forum/1445.
Когда Вы запрашиваете состояние позиции, торговая база терминала может быть в необновленном состоянии (например, при раннем старте или реконнекте к счету) и тогда значение таймаута даст вам время подождать обновления данных.
Значение в 100 миллисекунд конечно мало, разумно ставить секунды 3. В 99.9% случаев ответ будет выдаваться мгновенно без задержек, но при реконнектах подождать 3 (в максимуме) имеет смысл.
сделал 3 сек.
PF 0 Trades 03:05:48 '92879' : instant sell 0.20 EURUSD at 1.29393 sl: 1.39393 tp: 1.19393
GP 0 Trades 03:05:48 '92879' : accepted instant sell 0.20 EURUSD at 1.29393 sl: 1.39393 tp: 1.19393
MO 0 Trades 03:05:49 '92879' : order #1057787 sell 0.20 EURUSD at 1.29393 done
DG 0 Trades 03:05:49 '92879' : deal #1130745 sell 0.20 EURUSD at 1.29393 done (based on order #1057787)
KF 0 Trades 03:05:52 '92879' : instant sell 0.10 EURUSD at 1.29392 sl: 1.39392 tp: 1.19392
DS 0 Trades 03:05:52 '92879' : accepted instant sell 0.10 EURUSD at 1.29392 sl: 1.39392 tp: 1.19392
JO 0 Trades 03:05:54 '92879' : order #1057788 sell 0.10 EURUSD at 1.29392 done
RG 0 Trades 03:05:54 '92879' : deal #1130746 sell 0.10 EURUSD at 1.29392 done (based on order #1057788)
и опять 0.2 лота. придеться разбираться с кодом simpleton, т.к. этот код всетаки не надежен
сделал 3 сек.
Вы неправильно понимаете timeout в этой функции. Это сугубо внутренне технический параметр синхронизации доступа к базе сделок.
Грубо говоря, представьте, что timeout всегда равен нулю - он Вам никогда (с вероятностью 99.9%) не поможет даже если выставить 100 000 мсек.
Так как же всётаки отследить, что происходит с отправленными торговыми заявками.
Что то тут разработчики не доработали или не хотят объяснять как это всё должно работать, типа догадайся сам.
Функция OnTrade() - это хорошо, но помоему она не доработана.
Предположим эксперт отправил несколько заявок на сервер и еще сработали стопы по другим позициям и открылся отложенный ордер.
Сервер начинает отвечать ( т.е. генерирует событие Trade и запускает функцию OnTrade() ), значит что то случилось с моими ордерами или заявками или с запросами. А что случилось - это большой секрет, догадайся сам.
Неужели так сложно сделать, чтобы вместе с событием Trade в функцию OnTrade() передавалась информация о том что произошло ( типа структуры MqlTradeResult )?
Что то тут разработчики не доработали или не хотят объяснять как это всё должно работать, типа догадайся сам.
Этот момент сейчас активно обсуждаем.
Ради удобства использовании функции OnTrade мы будет передавать параметр с деталями транзакции. Причем на каждую транзакцию будем вызов OnTrade.
Вы неправильно понимаете timeout в этой функции. Это сугубо внутренне технический параметр синхронизации доступа к базе сделок.
Грубо говоря, представьте, что timeout всегда равен нулю - он Вам никогда (с вероятностью 99.9%) не поможет даже если выставить 100 000 мсек.
Функцию PositionSelect (и ряд аналогичных) уже модифицировали, убрав таймаут - теперь он автоматически равен 3 сек.
Мы по ошибке вынесли сугубо внутренний параметр наружу.
Изменены описания следующих торговых функций:
- PositionSelect
- OrderSelect
- HistoryOrderSelect
- HistoryDealSelect
Убран параметр timeout, в следующем билде он не потребуется. Нужно будет перекомпилировать свои советники, если вы использовали эти функции (после обновления терминала).Этот момент сейчас активно обсуждаем.
Ради удобства использовании функции OnTrade мы будет передавать параметр с деталями транзакции. Причем на каждую транзакцию будем вызов OnTrade.
Вот это будет здорово. С нетерпением буду ждать.
А то собрался советника писать для чемпионата, а как обрабатывать торговые операции ( чтобы не нарваться на ошибки и дисквалификацию ) так и не понял.
Однин вопрос почему Простак ? )))