Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1293
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
При каждом вызове функции onCalculate он равен 0.
Делал вывод значения begin через функцию print.
В справочнике написано, что begin - "откуда начинаются значимые данные". Это мне ни о чём не говорит.
Не понимаю, за что отвечает параметр begin во втором варианте функции onCalculate.
При каждом вызове функции onCalculate он равен 0.
Делал вывод значения begin через функцию print.
В справочнике написано, что begin - "откуда начинаются значимые данные". Это мне ни о чём не говорит.
Посмотрите открытые коды индикаторов из Example.
Посмотрите открытые коды индикаторов из Example.
Я смотрел. Всегда begin = 0.
Вот, выдернул кусок кода из индикатора AMA
if(begin!=0)
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,ExtPeriodAMA+begin);
И что мне этот код должен сказать, если условие begin!=0 никогда не будет истиным?
Какую-то ерунду в итоге выдает, намного больше, чем закрытых ордеров.
Подскажите, чем пользоваться, чтобы посчитать закрытые ордера в истории. Пробовал так:
Какую-то ерунду в итоге выдает, намного больше, чем закрытых ордеров.
А в каком статусе? FILLED, CANCELED, EXPIRED, REJECTED?
А в каком статусе? FILLED, CANCELED, EXPIRED, REJECTED?
Не понял о чем вы. В справке написано так:
Возвращает количество ордеров в истории. Перед вызовом функции HistoryOrdersTotal() необходимо получить историю сделок и ордеров с помощью функции HistorySelect() или HistorySelectByPosition().
Ничего нет ни про какой статус.
Подскажите, чем пользоваться, чтобы посчитать закрытые ордера в истории. Пробовал так:
Какую-то ерунду в итоге выдает, намного больше, чем закрытых ордеров.
Не лезьте в ордера. Работайте со СДЕЛКАМИ. \
Справка:
Обязательно читаем весь раздел Свойства сделок и смотрим какие свойства могут быть у сделки. Вам конкретно нужно свойство 'DEAL_ENTRY_OUT'
ENUM_DEAL_ENTRY
Идентификатор
Описание
DEAL_ENTRY_IN
Вход в рынок
DEAL_ENTRY_OUT
Выход из рынка
DEAL_ENTRY_INOUT
Разворот
DEAL_ENTRY_OUT_BY
Закрытие встречной позицией
Теперь Вам алгоритм такой:
HistorySelect -> цикл по всем сделкам -> получение свойств сделки -> суммировать сделки 'DEAL_ENTRY_OUT'
Не лезьте в ордера. Работайте со СДЕЛКАМИ. \
Справка:
Обязательно читаем весь раздел Свойства сделок и смотрим какие свойства могут быть у сделки. Вам конкретно нужно свойство '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 возвращают одинаковые значения). А тут их оказывается в истории еще и считать вручную надо :/
Не лезьте в ордера. Работайте со СДЕЛКАМИ. \
Справка:
Обязательно читаем весь раздел Свойства сделок и смотрим какие свойства могут быть у сделки. Вам конкретно нужно свойство 'DEAL_ENTRY_OUT'
ENUM_DEAL_ENTRY
Идентификатор
Описание
DEAL_ENTRY_IN
Вход в рынок
DEAL_ENTRY_OUT
Выход из рынка
DEAL_ENTRY_INOUT
Разворот
DEAL_ENTRY_OUT_BY
Закрытие встречной позицией
Теперь Вам алгоритм такой:
HistorySelect -> цикл по всем сделкам -> получение свойств сделки -> суммировать сделки 'DEAL_ENTRY_OUT'
Это если не ФОРТС. А то ещё клиринг добавляется.
Или хотя бы увидеть код, в котором возникают такие ситуации, когда begin != 0.
Спасибо!