Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1036

 
Evgeny Dyuka:
Вы пишите "Закрытая позиция (это когда нет позиции, и говорить о ней как о чём-то осязаемом - бесполезно - нет её) - результат исполнения сделки на выход из рынка". Получается что в истории нет такой единой сущности, а есть набор событий - ордер->сделка (открытие), ордер->сделка (закрытие) и у этого всего нет единого названия.
Я просто не могу решить банальную задачу - надо обратиться к этой последней сущности (по тикиту наверно) и собрать о ней информацию - время открытия/закрытия, объем и т.д. Предположим, что это нечно открывалось одним ордером и закрывалось тоже одним. Получается надо из HistoryOrderTotal брать последние два и из них стороить какой то анализ? А вдруг у них тикеты разные...
Как такое обращение к истории решено на практике?

Попробуйте разобраться со структурой MqlTradeTransaction. Получив из истории последний ордер или сделку можно собрать в массив все ордера и/или сделки которые участвовали в формировании позиции. Таким образом из этих сделок можно собрать всю информацию о позиции.

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
  • www.mql5.com
Например, при отсылке рыночного ордера на покупку он обрабатывается, для счета создается соответствующий ордер на покупку, происходит исполнение ордера, его удаление из списка открытых, добавление в историю ордеров, далее добавляется соответствующая сделка в историю и создается новая позиция. Все эти действия являются торговыми транзакциями...
 
Evgeny Dyuka:
Вы пишите "Закрытая позиция (это когда нет позиции, и говорить о ней как о чём-то осязаемом - бесполезно - нет её) - результат исполнения сделки на выход из рынка". Получается что в истории нет такой единой сущности, а есть набор событий - ордер->сделка (открытие), ордер->сделка (закрытие) и у этого всего нет единого названия.
Я просто не могу решить банальную задачу - надо обратиться к этой последней сущности (по тикиту наверно) и собрать о ней информацию - время открытия/закрытия, объем и т.д. Предположим, что это нечно открывалось одним ордером и закрывалось тоже одним. Получается надо из HistoryOrderTotal брать последние два и из них стороить какой то анализ? А вдруг у них тикеты разные...
Как такое обращение к истории решено на практике?

Идентификатор позиции всегда равен тикету самого первого её ордера - приказа на открытие этой позиции, и за время её существования он (идентификатор) никогда не меняется (в отличии от тикетов). Поэтому, чтобы найти все ордера и сделки конкретной позиции, ищите их по идентификатору позиции - они все точно будут принадлежать искомой позиции.

У ордера это ORDER_POSITION_ID, у сделки это DEAL_POSITION_ID, ну и у позиции это POSITION_IDENTIFIER

 
Artyom Trishkin:

Идентификатор позиции всегда равен тикету самого первого её ордера - приказа на открытие этой позиции, и за время её существования он (идентификатор) никогда не меняется (в отличии от тикетов). Поэтому, чтобы найти все ордера и сделки конкретной позиции, ищите их по идентификатору позиции - они все точно будут принадлежать искомой позиции.

У ордера это ORDER_POSITION_ID, у сделки это DEAL_POSITION_ID, ну и у позиции это POSITION_IDENTIFIER

понятно, прояснилось немного
 
Alexey Viktorov:

Попробуйте разобраться со структурой MqlTradeTransaction. Получив из истории последний ордер или сделку можно собрать в массив все ордера и/или сделки которые участвовали в формировании позиции. Таким образом из этих сделок можно собрать всю информацию о позиции.

mql4 приучил к простоте, в 5м конечно все правильно, но уже легко в тему не войдешь
 
Привет друзья!Помогите решить проблемку с индюком. Индикатор показывает корректные данные только после обновления страницы. Если не обновлять страницу, то он висит на одном уровне без изменения не в зависимости от скачков цен.Ниже прикрепляю индюк и скрины до и после обновления страницы. p.s. на скринах нужно смотреть последние 30-40 баров!
Файлы:
TrailCD.mq5  6 kb
Si-6.19M1.png  63 kb
1Si-6.19M1.png  64 kb
 
Дайте ссылочку на пример реализации этого трейлингстопа , а то написано все умно, а как на практике нам простым смертным не понятно.
 
Evgeny Dyuka:
Дайте ссылочку на пример реализации этого стоплоса , а то написано все умно, а как на практике нам простым смертным не понятно.

При помощи Мастера MQL5 сгенерируйте любой советник. При выборе опций отметьте что нужен Трейлинг. Вот и получится пример.

 
Vladimir Karputov:

При помощи Мастера MQL5 сгенерируйте любой советник. При выборе опций отметьте что нужен Трейлинг. Вот и получится пример.

супер! спасибо
 

Здравствуйте!

Есть стиль рисования draw_none, буфер отображается в окне данных, но не рисуется на графике.

Есть обратное свойство, в окне данных не отображается, а на графике выводиться?

 
SEM:

Здравствуйте!

Есть стиль рисования draw_none, буфер отображается в окне данных, но не рисуется на графике.

Есть обратное свойство, в окне данных не отображается, а на графике выводиться?

Есть. PLOT_SHOW_DATA

Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
При создании пользовательского индикатора можно указать один из 18 типов графического построения (способа отображения на главном окне графика или в подокне графика), значения которых указаны в перечислении ENUM_DRAW_TYPE. В зависимости от стиля рисования, может потребоваться от одного до четырех буферов значений (отмеченных как...
Причина обращения: