Magic number для позиции

 

Magic number для позиции (смотри ORDER_EXPERT)
(кстати! в справке бы ссылкой сделать куда смотреть... ;)))

Вне сомнений, "институт" магика полезная вещь.
Но недостаточная для учёта в новой платформе мт5.

Уже на этапе разделения понятия сделка и позиция как Божий день стало ясно
что нужен ещё один механизм "внетикетного" учёта происходящего в торговле.

Для чего наверное в десятый раз предлагаю ввести нечто, условно назовём как GlobalMagic (ГМ)
формируемый строго на сервере и доступный юзеру лишь для чтения (извлечения) и позволяющий
ориентироваться в пространстве и времени значительно, можно сказать неимоверно значительно, чем сейчас.

Идеология назначения ГМ весьма проста:
В отсутствии позиции первый же ордер, в том числе и отложенный, "резервирует" номер ГМ по номеру своего тикета.
Как только сработает отложенный, либо позиция откроется рыночным, позиции присваивается (назначается) "резервист".

Если не очень понятно, можно подробней сие обсудить...

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

АП!

В дальнейшем, всем ордерам участвовавшим в "построении" позиции присваивается ГМ этой позиции.
Подчёркиваю, в дальнейшем! т.е. сразу же как ордер был принят и совершена сделка, а не ДО как в обычном магике.

 

В общем мысль понял, но хочется технических деталей и примеров как это будет использоваться.

Приведите несколько разных практических примеров на основе развития ситуация по шагам 1-2-3-4-5 и тд.

 
Renat:

В общем мысль понял, но хочется технических деталей и примеров как это будет использоваться.

Приведите несколько разных практических примеров на основе развития ситуация по шагам 1-2-3-4-5 и тд.

ок!

Ситуасьон №1
Открыта позиция которая имеет ГМ.
Выборкой из истории сформируем "табличку" сделок что уже "отучавствовали",
а из текущих, открытых, те, что сейчас...
Далее работа с "табличкой", а по сути массивом, ограничена лишь фантазией кодера.
Главное то, что простой конструкцией сформированной на сервере лишь ГМ-ком увидим структуру позиции.

if(dealGM==GM) {blah-blah-blah;}
Ситуасьон №2
На основании ГМ текущих позиций можно рассчитать предыдущий результат ДО их открытия,
как всех, так и отдельно взятой, т.е. наглядно видеть реальный текущий "вклад" на состояние баланса.
Ибо текущий профит с момента открытия позиции не всегда соответствует прибыльности всего трейда...
Например в течении держания позиции были закрытия части убытка скажем на 100 баксов, а текущий профит 25,
что в реальности соответствует убытку 75 и профит по всему трейду мы начнём получать лишь начиная от 100.

ЗЫ: всех, имеется ввиду позиции по разным инструментам

 
ГМ, если представить образно, это своего рода шампур с номером.
На который нанизываются сделки приобретая такой же номер ДГМ что и шампур.
Поэтому каждый кусочек мяса как уже съеденный, так еже и ожидающий своей участи
имеет честь гордится тем что принадлежал шампуру номер ГМ !
;)))
ЗЫ: ДГМ это свойство deal ГМ назначаемое сервером сделке о причастности к позиции номер ГМ
и соответственно имеет тот-же номер что и ГМ позиции...
Вызывется дополнением DEAL_GLOBMAGIC или DEAL_POSMAGIC, не суть важно.
Лишь напомню что это свойство только для чтения...

Таким образом, все сделки от самой первой открывшей позицию, до самой последней что её закрыла
повязаны одним номером...
 

А в какой конкретно момент меняется этот ГМ? В момент, когда поза стала нулем?

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

Я правильно понял?


 
Renat:

А в какой конкретно момент меняется этот ГМ? В момент, когда поза стала нулем?

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

Я правильно понял?


Так точно!
 
Renat:

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

ГМ по идеологии краеугольный камень отсчёта.
Поэтому вести инкрементную базу нет никакой нужды,
а присваивать ГМ-у номер тикета впервые открывшего позицию.

И в будущем уже плясать от него, так как он уже известен
long PM=PositionGetInteger(POSITION_POSMAGIC);
! сорри, тут вырисовался более удобный и общий для всех енум POSMAGIC
взамен ГлобалМагик, что не совсем был верен...



 
Теперь мысль понятна - обсудим в понедельник.
 
Renat:
Теперь мысль понятна - обсудим в понедельник.
Спасибо!
Буду ждать результатов...
 

А если ввести POSITION_TICKET (если его еще нет) или сделать чтобы POSITION_MAGIC не изменялся на всем протяжении жизни позиции (в том числе и при перевороте)?