Как в mql4 ордера объединять в группы? - страница 2

 
Ihor Herasko:

Простой, но и непонятный. Какое-то время не открывался терминал - вся информация утеряна

4 недели с момента последнего обращения - это вам не 'какое-то' время :)
 
Alexander Puzanov:
4 недели с момента последнего обращения - это вам не 'какое-то' время :)

Мгновение в жизни Вселенной))
 

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

Например ордер с магиком 10 и локирующий ордер с магиком 11. 

Если надо открыть новый ордер создаете новый динамический экземпляр класса который уже будет работать с магиком 20 и локирующим 21. Если все ордера закрыты экземпляр класса уничтожается.

Получится что то типа "мини эксперта" в эксперте. Где каждый мини эксперт работает с конкретным ордером.

Таким образом получим систему не зависящую от перезагрузок терминала и ордера будут объединены в группы.

 
На мой взгляд, локирование имеет смысл исключительно для ручной торговли, как удобная "отметка о закрытом ордере". Для робота же - разумнее просто преобразовать ТС так, чтобы она работала без всяких локов, чисто с переоткрытием позиций.
 
Да ребята, загрузили так загрузили. Я не супер программист, классы и записи в фаил для меня темный лес, если можно куски кода или в справку ткните, чтоб я начал рыть))
 
Vitalii Ananev:

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

Например ордер с магиком 10 и локирующий ордер с магиком 11. 

Если надо открыть новый ордер создаете новый динамический экземпляр класса который уже будет работать с магиком 20 и локирующим 21. Если все ордера закрыты экземпляр класса уничтожается.

Получится что то типа "мини эксперта" в эксперте. Где каждый мини эксперт работает с конкретным ордером.

Таким образом получим систему не зависящую от перезагрузок терминала и ордера будут объединены в группы.


Есть какой то пример по классам, чтоб можно было мне от него оттолкнуться?
 
Artyom Trishkin:

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


Запись пары в файл может быть?

Залокировали тикет 5 тикетом 10 - записали в файл "5-10;"
залокировали тикет 10, тикетом 11 - вписали в файл "10-11;".
Закрыли тикет 5 - удалили из файла "5-10" - осталось в файле "10-11;"

Или, если было в файле 5-10; 10-11; и был закрыт 10, то все пары разрушены, и необходимо удалить все записи из файла с вхождением 10 - т.е., удалить все записи - нет парных.

Ну и читаем из файла строки для определения парных.

Первое, что приходит в голову ...


Можно какой-то пример по записям в фаил или в справку ткните на худой конец, я не супер программист, тяжело мне так сходу въехать))) 
 
Artem Onopin:

Можно какой-то пример по записям в фаил или в справку ткните на худой конец, я не супер программист, тяжело мне так сходу въехать))) 

Артём, я балдею... ткнуть в справку??? А почитать заголовки разделов??? Тут всё и решается, там и примеры кодов есть...

простите, для mql4 так-же всё есть.

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Файловые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artem Onopin:

Можно какой-то пример по записям в фаил или в справку ткните на худой конец, я не супер программист, тяжело мне так сходу въехать))) 
Вот тут почитайте о работе с файлами. С примерами всё есть.
 
Artem Onopin:

Всем привет! Вопрос такой, как объединить ордера в группы, для дальнейшей работы с ними.

Может, как то можно, маркировать ордера при их открытии.

Именно маркировать при открытии.  Магик=1 это первая группа, Магик=2  это вторая и так далее.

если на одном счету много советников на одной валютной паре и надо их различать по магику свои и чужие ордера, то так:

Параметр Магик=100 для первого советника, 200 для второго и так далее. А ордера советник открывает Магик+1, Магик+2 ... т.е. Магик+Группа

различать так: Если OrderMagic() > Магик  && OrderMagic() < (Магик+100) ...

Например 201, 202, ... больше 200 но меньше 300 это все второго робота

массивы, классы, файлы, GlobalVariableS - теория программирования, нам вряд ли по зубам...

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