Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 59

 
A100:
В некоторых платформах есть возможность привязки 1 (иногда 2-х) ОСО ордеров. В МТ4/5 я программно реализую цепочку связанных ордеров (иногда достаточно сложную) и считаю это более удобным вариантом
Чем исполнение на сервере, например?
 
Silent:
Чем исполнение на сервере, например?

В исполнении на сервере меньше гибкости и не факт, что больше надежности

Исполнению на сервере нет альтернативы только в промежутке между котировочным и торговым временем  

 
A100:

Исполнению на сервере нет альтернативы только в промежутке между котировочным и торговым временем  

...и когда вам вырубают интернет.

Сейчас, конечно, обеспечить стабильную работу ПК не сложно (не дорого), но все равно решения на стороне клиента не могут конкурировать с исполнением на сервере. 

Насколько я понимаю, брокеры не хотят брать на себя ответственность за исполнение, и МК их поддерживают. 

 
Yedelkin:

Получается, что вопрос сводится к тому, каким именно образом удалить отложенный ордер, не являющийся SL- или ТР-ордером, при наступлении определённых событий (в частности, при срабатывании ТР-ордера у открытой позиции).

На данный момент удалить такой отложенный ордер можно только  принудительно с помощью отправки соответствующего запроса "Delete Pending Order". Т.е. приходится отслеживать на стороне терминала наступление соответствующих событий и отправлять запрос. Но, в отличие от Вашего варианта, в запросе требуется указание всего двух полей, одно из которых - request.order.

В указанной Вами ситуации могли бы помочь OCO-ордера ("One Cansels Other(s)" - "один отменяет другой"): на уровне ТР был бы выставлен отложенный ордер, объём которого равен объёму открытой позиции, на уровне SL был бы выставлен отложенный ордер с объёмом, необходимым по замыслу автора для "переворота" позиции. При срабатывании одного из этих OCO-ордеров второй удалялся бы автоматически на стороне сервера. Однако, на протяжении всего времени существования этого форума, разработчики платформы категорически не соглашаются вводить какие-либо дополнительные виды ордеров, в том числе и OCO-ордера.

Спасибо за рекомендации. В моем случае решил, что проще всего воспользоваться сроком действия ордера, т.е.: 

.........
request.type_time =ORDER_TIME_DAY; 
........
Не понятно как задать срок на 2 дня ?
 
Crucian:
Не понятно как задать срок на 2 дня ?

datetime                      expiration

к текущей дате прибавить 2 дня или 60*60*24*2 секунд

 
komposter: ...и когда вам вырубают интернет. ... решения на стороне клиента не могут конкурировать с исполнением на сервере. 
Не лишайте коллегу иллюзий :)
 
Crucian: В моем случае решил, что проще всего воспользоваться сроком действия ордера... Не понятно как задать срок на 2 дня ? 
request.type_time =ORDER_TIME_SPECIFIED;     // есть ещё ORDER_TIME_SPECIFIED_DAY - там, наверное, всё по аналогии
request.expiration=TimeTradeServer()+172800; // 172800 - количество секунд за период в два дня, TimeTradeServer() - момент оформления запроса
 

Как на графике тестера, после тестирования вывести текст над сделками? Или вообще как сделать, чтобы на графике тестера после тестирования отображались бы какие-то дополнительные объекты, кроме уже имеющихся?

Я пытался вставить их в функции OnDeinit(), но что-то ничего не выводится. 

 
ANG3110:

Как на графике тестера, после тестирования вывести текст над сделками? Или вообще как сделать, чтобы на графике тестера после тестирования отображались бы какие-то дополнительные объекты, кроме уже имеющихся?

Я пытался вставить их в функции OnDeinit(), но что-то ничего не выводится. 

После того, как тест завершён перейдите на вкладку Результаты, нажмите правую кнопку и в контекстном меню выберите Открыть график. Откроется график со всеми сделками и на нём можно создавать любые объекты и применять для анализа любые индикаторы.
 

tol64:
После того, как тест завершён перейдите на вкладку Результаты, нажмите правую кнопку и в контекстном меню выберите Открыть график. Откроется график со всеми сделками и на нём можно создавать любые объекты и применять для анализа любые индикаторы.

Это как-то через задницу, у меня в МТ4 после теста сразу на выводящемся графике подписывалась и прибыль одной сделки и баланс и если нужно и другое. Все это просто делалось путем вставки в deinit() советника дополнительного include. А в МТ5 можно ли вывести что-то в виде текста, через OnDeinit? Или и здесь это отключено и опять сплошная халтура для удобства разработчиков во вред пользователю?
Причина обращения: