Работа эксперта в режиме свопирования методом переоткрытия позиций

 
Последнее время многие ДЦ стали переходить на такой тип свопа - он не начисляется на открытую позу, а позиция закрывается и после полуночи открывается с новой ценой. Цена открытия от закрытия отличается на тот самый своп. При этом Magic Number позиции, если она открыта советником, теряется и советник после полуночи не может найти свои позиции. Понятно, не проблема, если на текущей валюте нет других сделок и работает только один советник. Но что делать, если на одной валюте разные советники или есть позы, выставленные вручную?

У меня пока одна идея как эксперту вернуть свои позы - записывать текущее состояние в файл, скажем, после 23 на каждом тике в обычные дни, или после 22 в пятницу. Но все же этот метод довольно спорный в плане стабильности работы да и громоздкий в реализации. Может кто сталкивался с подобным или просто имеет другой взгляд на ситуацию?
 
Так запоминай цену открытия, сдвигай на стоп и вперед :-) еще можешь запомнить лот и др. параметры оредра, например можешь сделать какой нибудь своеобразный стоплосс или тейкпрофит, если ими не пользуешся :-) т.е. какую нить универсальную метку для ордеров одного советника :-)
 

Можно попробовать опозновать ордера через комментарий, если ДЦ их не меняет

 
dimontus:
Так запоминай цену открытия, сдвигай на стоп и вперед :-) еще можешь запомнить лот и др. параметры оредра, например можешь сделать какой нибудь своеобразный стоплосс или тейкпрофит, если ими не пользуешся :-) т.е. какую нить универсальную метку для ордеров одного советника :-)

Я об этом и написал, что можно через запись в файл работать. Для каждого советника просто свой файл будет. Это ясно. Где-то в прошлом году слышал о другом подходе, но в тот момент вопрос еще не интересовал и поэтому не разобрался в сути. Теперь вот не могу найти.
 
Zebra:

Можно попробовать опозновать ордера через комментарий, если ДЦ их не меняет


После закрытия позиций комментарии изменяются:

comment - Текст комментария ордера. Последняя часть комментария может быть изменена торговым сервером.
 
Мне кажется, что нет устойчивового решения этой проблемы средствами MQL. Если это результат работы кода торгового сервера, то разработчики должны учесть это и доработать торговый сервер, чтобы идентификаторы MAGIC не терялись при ролл-оверах.

Возможно сначала требует обратиться в тех поддержку данного ДЦ и уточнить у них этот нюанс. Возможно это проблема настройки отдельно взятого сервера ДЦ.
 

Мне кажется можно без файлов обойтись - посмотреть в истории N последних ордеров с самым большим временем закрытия, найти соответсвие через размер лота стоплосс и тейкпрофит и т.д. и т.п.

 
Integer:

Мне кажется можно без файлов обойтись - посмотреть в истории N последних ордеров с самым большим временем закрытия, найти соответсвие через размер лота стоплосс и тейкпрофит и т.д. и т.п.

Нет, без файлов или глобальных переменных (выживающих перезагрузку терминала) обойтись нельзя, т.к. при перезапуске терминала или эксперта информация о последних ордерах будет утеряна и все пойдет наперекосяк.

Но даже если задействовать файлы или глобальные переменные, то всегда будет вероятность конфликта, если на терминале работает несколько экспертов. Поэтому такое решение считать стабильным, на мой взгляд, нельзя.
 

Что вы запишите в файл? Тикет - не нужен, он будет другим. Цену открытия, закрытия, сл/тп - их посмотреть в истории. Начался новый день - имеется несколько открытых ордеров неизвестно к чему относящихся. Смотрим в истории такоеже количество ордеров самых последних закрытых.

 
В такой ситуациии изменяются все параметры оредера, кроме двух: стоплосс и тейпрофит... по ним можно найти нужный ордер...
 
Integer:

Что вы запишите в файл? Тикет - не нужен, он будет другим. Цену открытия, закрытия, сл/тп - их посмотреть в истории. Начался новый день - имеется несколько открытых ордеров неизвестно к чему относящихся. Смотрим в истории такоеже количество ордеров самых последних закрытых.


  Немного по-другому. Я ведь не могу знать какие именно уровни стопов и профитов должны быть "моими".
В файл я запишу тикеты текущих ордеров, которые принадлежат советнику. А после свопа пробегусь по истории закрытых поз на наличие записанных тикетов, сравню их с открытыми позами, как и было указано, по стопу и профиту.  В найденных "своих" позах поставлю метку в поле Comment (до закрытия это поле изменяться не будет). То есть советник будет определять свои позы по магику и 
коментам.
Для каждого советника будет свой файл, чтобы не возникало конфликтов доступа к файлу.

Хотя лично мне такой вариант не очень нравится, ведь далеко не всегда знаешь, когда закончатся текущие сутки у того или иного брокера (хотя тоже можно вынести входной параметр, в котором юзер сам выставит конец суток для текущего дня). Да к тому же целый час обновлять файл на каждом тике как-то некрасиво. Но, видимо, придется к такому варианту прибегнуть. Выходит, пока никто ничего лучше не придумал.
Причина обращения: