Особенности языка mql5, тонкости и приёмы работы - страница 206

 
Vladimir Pastushak:
Как узнать тейк профит и стоп лосс у позиции в истории?

DEAL_OUT содержит эти поля.

 
fxsaber:

DEAL_OUT содержит эти поля.

DEAL_ENTRY_OUT ?  как именно получить эти поля?

 
fxsaber:

Есть открытая позиция с нулевыми СЛ и ТП далее мы модифицируем позицию и СЛ !=0 и ТП != 0 далее закрываем позицию принудительно руками, совой не важно, но не по цене тейка или стопа....

Как найти эти уровни СЛ и ТП ?  Сейчас никак, и докажи потом кому либо что поза была закрыта иначе...

Логичным было бы видеть Ордер/Приказ на изменение/модификацию позиции и сделку в результате которой позиция была изменена с указанными СЛ и ТП...

 
Vladimir Pastushak:

Есть открытая позиция с нулевыми СЛ и ТП далее мы модифицируем позицию и СЛ !=0 и ТП != 0 далее закрываем позицию принудительно руками, совой не важно, но не по цене тейка или стопа....

Как найти эти уровни СЛ и ТП ?  Сейчас никак, и докажи потом кому либо что поза была закрыта иначе...

Скриншот из Терминала или инвест-доступ.

Логичным было бы видеть Ордер/Приказ на изменение/модификацию позиции и сделку в результате которой позиция была изменена с указанными СЛ и ТП...

Поля DEAL_SL/DEAL_TP.

 
fxsaber:

Скриншот из Терминала или инвест-доступ.

Поля DEAL_SL/DEAL_TP.

Позы закрывает советник, у поз есть СЛ и ТП, вот в истории по сделкам, ордерам не возможно получить СЛ и ТП

DEAL_ENTRY_OUT  говорит что сделка сделана Експертом. 

Я уже все вдоль и поперек проверил и ордера и сделки, нет возможности узнать уровни СЛ и ТП позиции если позиция была закрыта иначе...

 
Vladimir Pastushak:

Я уже все вдоль и поперек проверил и ордера и сделки, нет возможности узнать уровни СЛ и ТП позиции если позиция была закрыта иначе...

DEAL_SL/DEAL_TP - это будущее решение.

 

Не знаю, было или нет:

Структуры и классы могут содержать самих себя в виде статического поля. Это можно использовать в случаях, когда класс содержит статические поля - указатели на объекты, которые нужно удалить при завершении программы. Пример:

class A
  {
   int               a;
  };

class CRecurs
  {
public:
   int               a;
   static A *        element;
   static CRecurs    s;
                     CRecurs(void) { Print(__FUNCSIG__, " ", EnumToString(CheckPointer(element))); }
                    ~CRecurs(void) { delete element; Print(__FUNCSIG__, " ", EnumToString(CheckPointer(element)));  }
  };
static A* CRecurs::element = new A;
static CRecurs CRecurs::s;

void OnStart() {}

Результат:

CRecurs::CRecurs() POINTER_DYNAMIC
CRecurs::~CRecurs() POINTER_INVALID

(CRecurs можно объявить как struct  с тем же результатом).

Также можно создать статический метод, возвращающий ссылку на свой же класс (т.е. на это статическое поле).

 
mktr8591:

Не знаю, было или нет:

Структуры и классы могут содержать самих себя в виде статического поля. Это можно использовать в случаях, когда класс содержит статические поля - указатели на объекты, которые нужно удалить при завершении программы. Пример:

Результат:

(CRecurs можно объявить как struct  с тем же результатом).

Также можно создать статический метод, возвращающий ссылку на свой же класс (т.е. на это статическое поле).

Статические поля/методы отличаются от глобальных (::) только областью видимости.

 
fxsaber:

Статические поля/методы отличаются от глобальных (::) только областью видимости.

Да.


Пример использования из жизни - в библиотеке Virtual класс VIRTUAL содержит static const VIRTUAL_DELETE VirtualDelete;

Его можно заменить на  static const VIRTUAL static_Virtual;

(и конечно  перенести деструктор в VIRTUAL) .