Ошибки, баги, вопросы - страница 515

 
Интересует формула расчета суммарной усредненной позиции для ордеров одного направления с учетом спреда. К сожалению не нашел по поиску. Заранее спасибо.
 
Konstantin83:
Вопрос: Из какого раздела можно скачать справочник MQL5 в chm или pdf файл? Ссылка https://www.mql5.com/files/docs/mql5_russian.chm рабочая, а вот из какого раздела скачивать? Раньше было из раздела "Документация", а сейчас там только он-лайн докуметация.

А разве из раздела Документации на сайте (https://www.mql5.com/ru/docs) недоступны ссылки?


 
Rosh:
Сделка живет только в момент проведения транзакции, поэтому ничего меняться/обнуляться не может. Может имеется ввиду магик ордера на закрытие позиции? При ручной торговли магик не проставляется ордерам, равно как и сделкам, на основе которых они проводятся.

Последовательность такая:

  1. поставлен отложенный ордер экспертом с заданным ненулевым магиком
  2. ордер сработал, позиция открылась
  3. эта позиция была вручную закрыта
Вопрос: будет ли у этой закрытой сделки ненулевой магик или он будет нулевой?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Dima_S:

Последовательность такая:

  1. поставлен отложенный ордер экспертом с заданным ненулевым магиком
  2. ордер сработал, позиция открылась
  3. эта позиция была вручную закрыта
Вопрос: будет ли у этой закрытой сделки ненулевой магик или он будет нулевой?

Ответ: Свойства сделок

Сделка является отражением факта совершения торговой операции на основании ордера, содержащего торговый приказ. Каждая сделка описывается свойствами, позволяющими получить информацию о ней. Для чтения значений свойств используются функции вида HistoryDealGet...(), возвращающие значения из соответствующих перечислений.

Для функции HistoryDealGetInteger()

ENUM_DEAL_PROPERTY_INTEGER

Идентификатор

Описание

Тип

DEAL_ORDER

Ордер, на основание которого выполнена сделка

long

DEAL_TIME

Время совершения сделки

datetime

DEAL_TYPE

Тип сделки

ENUM_DEAL_TYPE

DEAL_ENTRY

Направление сделки – вход в рынок, выход из рынка или разворот

ENUM_DEAL_ENTRY

DEAL_MAGIC

Magic number для сделки (смотри ORDER_MAGIC)

long

DEAL_POSITION_ID

Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции.

long

 

Такой вариант тоже был опробован:

deal_order = ( long )HistoryDealGetInteger( deal_ticket, DEAL_ORDER );
deal_magic = ( ulong )HistoryOrderGetInteger( deal_order, ORDER_MAGIC );
Результат - тоже возвращается нулевое значение.
 
Interesting:

Как я понимаю там перед получением свойств определенной сделки нужно нее выбрать при помощи - HistoryDealSelect

HistoryDealSelect

Выбирает в истории сделку для дальнейших обращений к ней  через соответствующие функции. Возвращает true при успешном завершении функции. Возвращает false при неудачном завершении функции. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

bool  HistoryDealSelect(
   ulong  ticket     // тикет сделки
   );

Параметры

ticket

[in]  Тикет сделки

Возвращаемое значение

Возвращает true в случае успеха, иначе false.

Не совсем правильно понимаете.

HistoryDealGetTicket также выбирает сделку.

 
Dima_S:

Не совсем правильно понимаете.

HistoryDealGetTicket также выбирает сделку.

Да нет, Вы всё правильно делаете. Просто при установке ордера (совершении сделки) вручную, Magic не устанавливается(по умолчанию = 0). Он для того и придуман, чтобы советник мог отличить свои собственные операции от всех остальных. Если хотите связать все операции по позиции, советника и ручные, используйте POSITION_IDENTIFIER, он для всех сделок будет один.

 
Valmars:

То есть, хотите сказать, что при такой последовательности операций:

  1. поставлен отложенный ордер экспертом с заданным ненулевым магиком
  2. ордер сработал, позиция открылась
  3. эта позиция была вручную закрыта

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

 
Dima_S:

То есть, хотите сказать, что при такой последовательности операций:

  1. поставлен отложенный ордер экспертом с заданным ненулевым магиком
  2. ордер сработал, позиция открылась
  3. эта позиция была вручную закрыта

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


Магик сделки определяется магиком ордера, в результате исполнения которого она была осуществлена. А вручную посылая запрос на совершение сделки (ордер), Вы разве можете установить магик ? Да, результирующая сделка в истории будет с нулевым магиком. Его можно получить и он будет равен 0 (что и означает, что магик не установлен).

Может, мы о разном говорим ? В приведённой Вами последовательнгости будут две сделки, первая ордер сработал, сделка с установленным в ордере магиком, вторая - при ручном закрытии позиции, её магик равен 0.
 
Valmars:

Магик сделки определяется магиком ордера, в результате исполнения которого она была осуществлена. А вручную посылая запрос на совершение сделки (ордер), Вы разве можете установить магик ? Да, результирующая сделка в истории будет с нулевым магиком. Его можно получить и он будет равен 0 (что и означает, что магик не установлен).

Может, мы о разном говорим ? В приведённой Вами последовательнгости будут две сделки, первая ордер сработал, сделка с установленным в ордере магиком, вторая - при ручном закрытии позиции, её магик равен 0.
Предлагаете использовать идентификатор позиции?
Причина обращения: