Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброго времени суток!
Проверьте, пожалуйста, корректность функции, которая должна определять: находится ли открытая позиция в "заморозке".
В особенности, не перемудрил ли я с Ask/Bid?
Да нет, там всё правильно отработалось на сервере (демо-счёт MQ). То есть, стопы сработали в момент моего отсутствия связи. Но, когда я подключился, рынок был уже закрыт. В окне Обзор Рынка было зафиксировано время последнего тика перед тем, как связь у меня была отключена. Запрашивая историю сделок указывая в качестве второго значения TimeCurrent(), я получал не всю историю. Хотя в Справке для TimeCurrent() сказано, что:
То есть, я так понимаю, что эта функция при наличии связи должна вернуть значение последнего прихода котировки одного из находящихся в окне Обзор Рынка инструмента с сервера даже, если был обрыв связи и соединение произошло, когда рынок был уже закрыт. В моём случае это не произошло и я получал соответственно не всю историю. Вот должна ли происходить синхронизация времени в Обзор Рынка с сервером при закрытом рынке или нет я не знаю, об этом в Справке не написано.
В таком случае, если нужна вся история можно просто приплюсовывать число побольше, на сутки вперёд и это будет гарантом, что все сделки будут выбраны. :)
А в тестере баг с функцией HistoryDealsTotal() и проявляется он в режиме Визуализации. Время там правильно моделируется. Просто в некоторых случаях помогает костыль.
Да, вспомнил суть, что был обрыв связи. Похоже на то, что терминал начинает сверку и докачку истории только при поступлении тика по инструменту, а выходные их нет. Можно, конечно, обновить графики вручную, тогда и последнее время сервера обновится. А если в автомате, то фиксировать обрыв связи и, если она восстановилась в уикэнд, запускать функцию проверки и загрузки истории, CheckLoadHistory(). Использовать таймер.
Вообще, с терминалом иногда происходят "удивительные" вещи. Вот вчера, ноут работал через телефон в качестве модема. Мультивалютный эксперт работал в режиме слежения (автоторговля отключена). Отошёл на 15 минут вместе с телефоном, вернулся, подключил связь. Терминал восстановил связь с сервером. Казалось бы, докачать пропущенные котировки - раз плюнуть. Но терминал начал яростно докачивать историю - что же ещё? При этом всё замерло: обзор рынка, вкладка торговля, графики. Телефон 3G не поддерживает, а работает по EDGE, так что процедура затянулась. Когда подошло в 20 MB, решил проверить, а можно ли в таком состоянии чего-нибудь торгануть вручную? Попробовал закрыть позицию, получил отказ из-за отсутствия связи и на этом закачка прекратилась. После восстановления связи всё заработало нормально. Вот выдержка из лога терминала:
OK 0 Network 09:45:09 '709704': authorized on MetaQuotes-Demo through Access Point Singapore
IR 0 Network 09:45:09 '709704': previous successful authorization performed from 77.35.11.181 on 2012.03.04 06:10:12
KP 0 Network 09:45:12 '709704': terminal synchronized with MetaQuotes Software Corp.
GI 0 Experts 09:45:12 expert Fractals_ (EURUSD,H1) loaded successfully
OI 0 Trades 10:43:29 '709704' : deal #8671794 sell 0.10 GBPJPY at 129.268 done (based on order #9494984) // Эту сделку совершил эксперт, работающий на другом компьютере
RM 0 Trades 10:51:22 '709704' : deal #8671842 sell 0.10 USDJPY at 81.586 done (based on order #9495037) // Аналогично
KL 1 Network 12:00:38 '709704': connection to MetaQuotes-Demo lost // Ушёл
IE 0 Network 12:16:15 '709704': authorized on MetaQuotes-Demo through Access Point Hong Kong // Пришёл
IS 0 Network 12:16:15 '709704': previous successful authorization performed from 80.83.239.67 on 2012.03.04 23:45:03
OS 0 Network 12:16:18 '709704': terminal synchronized with MetaQuotes Software Corp. // Связь восстановлена
IQ 0 Trades 12:18:12 '709704' : deal #8672388 sell 0.10 GBPCHF at 1.44540 done (based on order #9495596) // Эту сделку совершил эксперт, работающий на другом компьютере
DF 0 Trades 12:35:37 '709704' : instant buy 0.10 EURGBP at 0.83422 // Пробую закрыть позицию вручную, до этого шла закачка истории
IN 2 Trades 12:35:44 '709704' : failed instant buy 0.10 EURGBP at 0.83422 [Request rejected due to absence of network connection] // Отказ
JP 1 Network 12:35:44 '709704': connection to MetaQuotes-Demo lost
EI 0 Network 12:36:00 '709704': authorized on MetaQuotes-Demo through Access Point Hong Kong
IG 0 Network 12:36:00 '709704': previous successful authorization performed from 80.83.239.67 on 2012.03.05 02:16:12
PG 0 Network 12:36:08 '709704': terminal synchronized with MetaQuotes Software Corp. // Связь восстановлена, далее нормальная работа
MS
Да, вспомнил суть, что был обрыв связи. Похоже на то, что терминал начинает сверку и докачку истории только при поступлении тика по инструменту, а выходные их нет. Можно, конечно, обновить графики вручную, тогда и последнее время сервера обновится. А если в автомате, то фиксировать обрыв связи и, если она восстановилась в уикэнд, запускать функцию проверки и загрузки истории, CheckLoadHistory(). Использовать таймер.
...
Подключился к серверу AlpariFS-MT5 для тестирования эксперта в других условиях. Тип исполнения изначально был EXECUTION_MARKET - Исполнение ордеров по рынку. Посредством своих торговых панелей открывал/закрывал позиции успешно. Затем обнаружил, что Стакан цен доступен в контекстном меню графика. Открыл его и обнаружил, что операции Buy/Sell можно произвести. В качестве теста произвёл покупку и там же в Стакане цен закрыл позицию. После этого тип исполнения счёта изменился на EXECUTION_EXCHANGE - Биржевое исполнение. Это выясняется с помощью MQL5 и также в выпадающем списке окна Ордер (F9) есть только два варианта: Биржевое исполнение и Отложенный ордер. Попытка авторизоваться заново или перезагрузить терминал не исправило проблему. И сейчас тип исполнения на демо-счёте так и остался EXECUTION_EXCHANGE.
Я связался со службой поддержки Альпари, описал проблему и уточнил:
//---
Анатолий | 17:55
Я правильно понимаю, что на демо-счетах для MT5 на текущий момент, должен быть вариант EXECUTION_MARKET?
Sergey | 17:56
Да, верно.
//---
Похоже, что это баг.
В справке нет описания некоторых идентификаторов:
ORDER_FILLING_FOK, ORDER_FILLING_IOC и ORDER_FILLING_RETURN есть, а ORDER_FILLING_AON и ORDER_FILLING_CANCEL нет, хотя ведут они все к одному и тому же списку с описанием.
Они уже упразднены, из индексов удалим тоже.
Спасибо.
//---
Такой вопрос возник. Доступен ли сейчас конкурсный сервер для тестов с теми же ограничениями, как на конкурсе (Volume Limit 15 lot / Volume Max 5 lot)? Попробовал подключиться к старому счёту, но соединение с сервером не производится. Пробежался по всем серверам, где доступен Metatrader 5 для торговли, но нигде не нашёл ограничение на совокупный объём (Volume Limit), а нужно протестировать. Или достаточно в принципе будет ответа на вопрос, на примере с конкурсными значениями:
Есть открытая позиция и её объём 14 lot. Если я попытаюсь выставить отложенный ордер объёмом 2 lot, запрос будет отклонён? Или ордер будет установлен в указанном объёме, но исполнится в итоге частично, то есть 1 lot при условии, что позиция останется в том же объёме (14 lot).
И наоборот. Есть установленный отложенный ордер 14 lot. При попытке открыть позицию объёмом 2 lot запрос будет отклонён?
Попытаю здесь счастье, а то на "Чайниках" молчание...
Будьте добры, разъясните, пожалуйста: https://www.mql5.com/ru/forum/3775/page113#comment_160125. Интересует также программное вычисление нужных расчётов.
Доброго дня.
Как обратиться к значению встроенного индикатора iADX ? А именно, к его значению заданное кол-во баров назад ? В mql4 это осуществлялось при помощи задания параметра shift.
Уже спасибо.