Скачать MetaTrader 5

Пользовательские свойства ордера

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114282
Forex Trader  
Раз речь идёт уже об MT5 вот такая мысль на рассмотрение. При сопровождении ордеров меня часто интересуют характеристики, отсутствующие среди стандартных свойств ордера. Поскольку на данный момент в MQL структур нет, приходится делать так: на каждое свойство заводится массив(один из массивов содержит мой ID ордера), при установке ордера делается resize всех массивов и записываютя нужные характеристики, соответственно после закрытия ордера его характеристики удаляются, то есть всё, что выше по индексу переписывается на индекс ниже, после чего снова можно сделать resize, в сторону уменьшения. То есть довольно громоздко всё. Если бы у ордера было зарезервировано какое-то количество полей, заполняемых пользователем (то есть свойств объекта "ордер") всё было бы значительно проще. Понятно, что в такой идеологии эти свойства нет нужды выводить за пределы локальной машины, то есть для серверной стороны безразлично, есть у ордеров такой довесок в терминале, или нет. Ну а о том, чтобы просто создавать свойства ордера при необходимости, я даже мечтать не смею :)
Forex Trader
114282
Forex Trader  
Был недавно разговор об этом на форуме, там, где речь про МагикНумбер.
Понятно, что в такой идеологии эти свойства нет нужды выводить за пределы локальной машины, то есть для серверной стороны безразлично, есть у ордеров такой довесок в терминале, или нет.

как это серверу безразлично?! Ордера хранятся на сервере , а это значит,что изменяя поля ордеров, вы будете дергать сервер.
MetaQuotes Software Corp.
Модератор
185953
MetaQuotes Software Corp.  
А чем не устраивает MagicNumber?

Как я многократно повторял - мы принципиально не разрешим произвольно менять в ордере что-то, не относящееся к самому трейдингу.
Forex Trader
114282
Forex Trader  
как это серверу безразлично?! Ордера хранятся на сервере , а это значит,что изменяя поля ордеров, вы будете дергать сервер.

Пусть это будет отдельный объект, просто при создании ордера он должен автоматически создаваться в терминале(и только в терминале) и как-то связываться с данным ордером (по тикету, например). Ну а после удаления(закрытия) ордера автоматически удаляться. Речь фактически идёт о том, чтобы избавить пользователя от описанных в первом посте громоздких манипуляций. Ну и, кстати, вынос их из MQL в CPP (или на чём пишется исходный код терминала) может дать и прибавку в быстродействии.
По крайней мере, раз подобный вопрос поднимался, эта тема интересует не только меня.
Forex Trader
114282
Forex Trader  
А чем не устраивает MagicNumber?
Как я многократно повторял - мы принципиально не разрешим произвольно менять в ордере что-то, не относящееся к самому трейдингу.

MagicNumber только один, этого мало. К тому же он имеет тип int, то есть числа double в нём не запомнить.
Forex Trader
114282
Forex Trader  
И ещё: MagicNumber нельзя менять, а при сопровождении может возникнуть нужда изменить характеристику.
Forex Trader
114282
Forex Trader  
Пожалуй нужны примеры применения, больше людей сможет судить было ли бы им это полезно.
Один тип использования - для управления. Например, я работаю по каналам, одновременно существуют несколько каналов разных временных масштабов, каждому присваивается ID. При установке ордера я запоминаю ID канала, на котором ставился ордер (в соответствующем пользовательском свойстве). Теперь, если этот канал разрушился, я путём изменения другого пользовательского свойства ордера перевожу его в класс "закрыть при первом удобном случае" - для этого класса, допустим, делается отдельный алгоритм, уже не связанный с происхождением ордера.
Другой тип использования - для сбора статистики. Например, в процессе существования ордера я отслеживаю максимальную просадку отдельного ордера и после его закрытия записываю в файл. Потом смотрю распределение просадок ордеров и принимаю решение о величинне стоплосса. Для мало-мальски объёмного алгоритма это значительно быстрее, чем оптимизировать стоплосс в тестере.
Forex Trader
114282
Forex Trader  
А если взять на вооружение глобальные переменные?
Forex Trader
114282
Forex Trader  
А если взять на вооружение глобальные переменные?

Дело даже не в том, что их придётся создавать/удалять вручную, а в том, что нужны именно структуры. Потому что минимальное число свойств, имеющих практический смысл - 2 (ID ордера и интересующая характеристика/признак).
Forex Trader
114282
Forex Trader  
....
ticket=OrderTicket();
GlobalVariableSet("ID"+ticket,Value);
Forex Trader
114282
Forex Trader  
A потом цикл по глобальным переменным с парсингом имён и их сортировкой каждый раз? Нет, лучше через набор массивов, там индекс объединяет соответствующие элементы всего набора.
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий