Переход позиций через 0:00 при работе банком. Как идентифицировать? Нужна помощь зала. - страница 8

 
Vladimir Simakov:
Что вы все с магиком носитесь? Оберните каждую позицию в класс и на тике не ищите ее, а просто отслеживайте. Если она вдруг закрылась, то анализируем причину закрытия. Если причина ролловер, то ищем новую и меняем поля класса на актуалные. Для организации повторного старта после сбоев пишем всю необходимую информацию в отдельный файл (ну не люблю я глобальные переменные терминала).

А можно привести пример с кодом?

Для конкретной "причины" - rollover.

Если и не пример, то куда глянуть и где почитать, чтоб понять, как это сделать.

 
Oldman_Evgeny:

А можно привести пример с кодом?

Для конкретной "причины" - rollover.

Если и не пример, то куда глянуть и где почитать, чтоб понять, как это сделать.

Самому писать. Я Вам направление показал, а дальше сами уже. Для ролловера всегда думал, что идентификатор позиции сохраняется, надо потестить будет.

 
Сейчас на работе, тут из последего под мт5 ничего нет, а под мт4 примерно так выглядит. Из одной из работ.
Файлы:
COrder.mqh  19 kb
 
Vladimir Simakov:
Что вы все с магиком носитесь? Оберните каждую позицию в класс и на тике не ищите ее, а просто отслеживайте. Если она вдруг закрылась, то анализируем причину закрытия. Если причина ролловер, то ищем новую и меняем поля класса на актуалные. Для организации повторного старта после сбоев пишем всю необходимую информацию в отдельный файл (ну не люблю я глобальные переменные терминала).

Хранить в файле данные, которые можно получить с торгового сервера - нонсенс. Кроме переноса на другие ПК, может случиться потеря/порча файла.

 
Andrey Khatimlianskii:

Хранить в файле данные, которые можно получить с торгового сервера - нонсенс. Кроме переноса на другие ПК, может случиться потеря/порча файла.

Вот вам вводная по мт4. У вас сеточный робот, который, в том числе, осуществляет частичные закрытия и close by, то есть, для хранения критичной для аварийного перезапуска информации остается только magiс, который int и все. а теперь представте, что для рестарта, вам в памяти надо разложить информацию о цепочках ордеров сетки, да которые еще и не линейные, а с ветвлением и как вы это сделаете? Про глобальные переменные терминала знаю, но это тоже костыль с преобразованием к double и да, тоже порча файла с той же вероятностью.

 
Vladimir Simakov:

Вот вам вводная по мт4. У вас сеточный робот, который, в том числе, осуществляет частичные закрытия и close by, то есть, для хранения критичной для аварийного перезапуска информации остается только magiс, который int и все. а теперь представте, что для рестарта, вам в памяти надо разложить информацию о цепочках ордеров сетки, да которые еще и не линейные, а с ветвлением и как вы это сделаете? Про глобальные переменные терминала знаю, но это тоже костыль с преобразованием к double и да, тоже порча файла с той же вероятностью.

А при чем здесь этот сеточный динозавр к простому переоткрытию на ролл-овере?

Я же не сказал, что файлы вообще не нужны, просто не нужно их использовать там, где мейджика хватает с головой.

 
Andrey Khatimlianskii:

А при чем здесь этот сеточный динозавр к простому переоткрытию на ролл-овере?

Я же не сказал, что файлы вообще не нужны, просто не нужно их использовать там, где мейджика хватает с головой.

Так и писал о них как о инструменте.
 
Vladimir Simakov:
Так и писал о них как о инструменте.
В ответ на проблему с ролловером)
Ок
 
Andrey Khatimlianskii:
В ответ на проблему с ролловером)
Ок

С magic еще одна засада есть - пользователь. Пять экземпляров роботов и у всех один magic, настройки только разные, и крик в поддержку: БАААГ!

 
Andrey Khatimlianskii:

А при чем здесь этот сеточный динозавр к простому переоткрытию на ролл-овере?

Я же не сказал, что файлы вообще не нужны, просто не нужно их использовать там, где мейджика хватает с головой.

Как "мейджика хватает с головой" на переоткрытии при ролловере?

Мейджик становится нулем и всё...

Причина обращения: