Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 2803
- Рейтинг:
- Опубликован:
- 2021.03.29 15:51
- Обновлен:
- 2024.12.26 10:29
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Торговые сделки и исполненные ордера (включая удаленные после частичного исполнения) имеют идентификатор POSITION_ID, который позволяет сопоставить соответствующую запись в торговой истории с интересующей торговой позицией (текущей или закрытой).
Штатный вариант работы с такими сделками/ордерами реализован через функцию HistorySelectByPosition. К сожалению, он медленный. В некоторых ситуациях это настолько критично, что можно просто не дождаться выполнения, например, скрипта, собирающего торговую статистику.
Данная библиотека позволяет избежать проблем со скоростью, при этом не изменяя удобство работы с торговой историей.
Пример.
// Вычисление суммарных балансовых операций двумя способами. #include <fxsaber\TradesID\TradesID.mqh> // Быстрая работа с POSITION_ID TRADESID TradesID; // Объект для работы с историей. void OnStart() { // Получили сделки с нулевым POSITION_ID if (HistorySelectByPosition(0)) { double Deposit = 0; // и пробежались по ним. for (int i = HistoryDealsTotal() - 1; i >= 0; i--) Deposit += HistoryDealGetDouble(HistoryDealGetTicket(i), DEAL_PROFIT); Print(Deposit); } double Deposit = 0; ulong Deals[]; // Тикеты сделок. // Получили сделки с нулевым POSITION_ID и пробежались по ним. for (int i = TradesID.GetDealsByID(0, Deals) - 1; i >= 0; i--) Deposit += HistoryDealGetDouble(Deals[i], DEAL_PROFIT); Print(Deposit); }
В этом примере показано, как происходит работа с библиотекой.
Суть.
Внутри произведена классификация тикетов по POSITION_ID. Соответственно, доступ к так преобразованной информации очень быстрый.
Производительность.
К исходнику библиотеки идет скрипт, который демонстрирует разницу в скорости штатного подхода и предложенного. При большой торговой истории разница на многие порядки.

Советник-утилита. Ищет самую большую и самую маленькую цены на заданном количестве баров. По найденным ценам выставляет Стоп лосс

Индикатор ищет подобные свечи

Паттерн V на индикаторе iBands (Bollinger Bands, BB)

На основе кода ( Hull moving average ) - в одном окне два индикатора 'Hull moving average' и буфер Arrow в месте пересечения индикаторов