Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ordercache.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Краткий обзор
О программе
[{"text":"Библиотека ordercache.mqh представляет собой заголовочный файл для MetaTrader 5, предназначенный для кеширования данных об открытых ордерах и позициях. Она позволяет советникам централизованно получать информацию о количестве открытых позиций по текущему символу, не вызывая repeatedly стандартные функции терминала на каждом тике."},{"text":"Внутренняя логика работы основана на глобальных массивах, которые обновляются только при смене текущего бара, что снижает вычислительные затраты. Диапазон магических номеров определяется параметром baseMagic и охватывает значения от baseMagic*10 до baseMagic*10+9."},{"text":"Библиотека содержит макросы совместимости с MQL4, но основной код ориентирован на MQL5, где для работы с открытыми позициями используются функции PositionsTotal, PositionSelectByTicket и PositionGetInteger. Количество движков по умолчанию задаётся константой ENGINE_COUNT равной 10."}]
Функцияvoid BuildSharedOrderCache(datetime currentBar, int baseMagic)
Формирует кеш открытых ордеров и позиций по текущему символу в диапазоне магических номеров от baseMagic*10 до baseMagic*10+9, сохраняя результаты в глобальные массивы для последующего быстрого доступа.
Функцияint CountEAOpenOrders()
Возвращает общее количество открытых ордеров советника, полученное из ранее построенного кеша.
Функцияbool HasOtherEngineTrade(int myMagic, int baseMagic)
Проверяет, есть ли открытые сделки у других движков (экспертных советников), кроме того, к которому принадлежит указанный магический номер myMagic.
Функцияint GetEngineOrderCount(int engineIndex)
Возвращает количество кешированных ордеров для конкретного движка по его индексу в диапазоне от 0 до ENGINE_COUNT-1.
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.