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

 
Не понимаю, за что отвечает параметр begin во втором варианте функции onCalculate.
При каждом вызове функции onCalculate он равен 0.
Делал вывод значения begin через функцию print.
В справочнике написано, что begin - "откуда начинаются значимые данные". Это мне ни о чём не говорит.
 
MisterRight:
Не понимаю, за что отвечает параметр begin во втором варианте функции onCalculate.
При каждом вызове функции onCalculate он равен 0.
Делал вывод значения begin через функцию print.
В справочнике написано, что begin - "откуда начинаются значимые данные". Это мне ни о чём не говорит.

Посмотрите открытые коды индикаторов из Example.

 
Mikhail Mishanin:

Посмотрите открытые коды индикаторов из Example.

Я смотрел. Всегда begin = 0.

Вот, выдернул кусок кода из индикатора AMA

if(begin!=0)

      PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,ExtPeriodAMA+begin);


И что мне этот код должен сказать, если условие  begin!=0 никогда не будет истиным?

 
Подскажите, чем пользоваться, чтобы посчитать закрытые ордера в истории. Пробовал так:

HistorySelect(0,TimeCurrent());

Alert("Количество ордеров в истории:  ",HistoryOrdersTotal());
Какую-то ерунду в итоге выдает, намного больше, чем закрытых ордеров.
 
leon_17:
Подскажите, чем пользоваться, чтобы посчитать закрытые ордера в истории. Пробовал так:

Какую-то ерунду в итоге выдает, намного больше, чем закрытых ордеров.

А в каком статусе? FILLED, CANCELED, EXPIRED, REJECTED?

 
JRandomTrader:

А в каком статусе? FILLED, CANCELED, EXPIRED, REJECTED?

Не понял о чем вы. В справке написано так:

Возвращает количество ордеров в истории. Перед вызовом функции HistoryOrdersTotal() необходимо получить историю сделок и ордеров с помощью функции HistorySelect() или HistorySelectByPosition().


Ничего нет ни про какой статус.

Документация по MQL5: Торговые функции / HistorySelect
Документация по MQL5: Торговые функции / HistorySelect
  • www.mql5.com
HistorySelect - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
leon_17:
Подскажите, чем пользоваться, чтобы посчитать закрытые ордера в истории. Пробовал так:

Какую-то ерунду в итоге выдает, намного больше, чем закрытых ордеров.

Не лезьте в ордера. Работайте со СДЕЛКАМИ. \

Справка: 

Обязательно читаем весь раздел Свойства сделок и смотрим какие свойства могут быть у сделки. Вам конкретно нужно свойство 'DEAL_ENTRY_OUT'

ENUM_DEAL_ENTRY

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

Описание

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

Выход из рынка

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_OUT_BY

Закрытие встречной позицией


Теперь Вам алгоритм такой:

HistorySelect -> цикл по всем сделкам -> получение свойств сделки -> суммировать сделки 'DEAL_ENTRY_OUT'

 
Vladimir Karputov:

Не лезьте в ордера. Работайте со СДЕЛКАМИ. \

Справка: 

Обязательно читаем весь раздел Свойства сделок и смотрим какие свойства могут быть у сделки. Вам конкретно нужно свойство 'DEAL_ENTRY_OUT'

ENUM_DEAL_ENTRY

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

Описание

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

Выход из рынка

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_OUT_BY

Закрытие встречной позицией


Теперь Вам алгоритм такой:

HistorySelect -> цикл по всем сделкам -> получение свойств сделки -> суммировать сделки 'DEAL_ENTRY_OUT'


Спасибо! Путаюсь я пока в разделении этих понятий: позиция, ордер, сделка... особенно между ордером и сделкой (HistoryOrdersTotal и HistoryDealsTotal возвращают одинаковые значения). А тут их оказывается в истории еще и считать вручную надо :/ 

 
Vladimir Karputov:

Не лезьте в ордера. Работайте со СДЕЛКАМИ. \

Справка: 

Обязательно читаем весь раздел Свойства сделок и смотрим какие свойства могут быть у сделки. Вам конкретно нужно свойство 'DEAL_ENTRY_OUT'

ENUM_DEAL_ENTRY

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

Описание

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

Выход из рынка

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_OUT_BY

Закрытие встречной позицией


Теперь Вам алгоритм такой:

HistorySelect -> цикл по всем сделкам -> получение свойств сделки -> суммировать сделки 'DEAL_ENTRY_OUT'

Это если не ФОРТС. А то ещё клиринг добавляется.

 
Очень хочется получить ответ на свой вопрос по поводу параметра begin в функции onCalculate
Или хотя бы увидеть код, в котором возникают такие ситуации, когда begin != 0.
Спасибо!
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5