Trebuchet Bracket Engine
- Эксперты
-
Syarief Azman Bin Rosli
Здравствуйте и добро пожаловать в мой официальный профиль MQL5!
Меня зовут Шариф Азман Бин Росли (Syarief Azman Bin Rosli). Я разработчик алгоритмических торговых систем и количественный инженер с более чем десятилетним опытом создания надежных решений для MetaTrader 5 и MetaTrader 4. - Версия: 1.0
- Активации: 5
Trebuchet Bracket Engine - советник для MetaTrader 4, торгующий пробой дневного диапазона. В момент якоря (по умолчанию открытие дня) он измеряет диапазон последних N дней, ставит buy stop выше и sell stop ниже якоря на расстоянии K x диапазон, стоп-лосс - на якоре, и закрывает всё в конце дня. Не более одной сделки на сторону в день; без сетки, мартингейла, усреднения и переноса через ночь (если не отключить выход в конце дня).
Быстрый старт
- Прикрепите советник к одному графику символа (любой таймфрейм; логика использует дневные бары и часы) и включите AutoTrading и "Allow live trading".
- Начните с настроек по умолчанию: диапазон Dual Thrust за 4 дня, триггеры на 0.50 x диапазон, стоп на якоре, отсечка входа 21:00 и выход 22:00 по времени сервера, риск 1 %.
- После якоря панель показывает BRACKET ARMED, и появляются два отложенных ордера: buy stop и sell stop.
- Проверка: визуальный прогон тестера на XAUUSD M15 за две недели рисует каждую вилку и сделку.
- Push-уведомления: укажите MetaQuotes ID (Сервис > Настройки > Уведомления) и Push Notifications = true.
Как торгует
Диапазон: Range Basis Dual Thrust (max of HH-LC, HC-LL) использует N завершённых дней до сегодняшнего (Range Lookback): HH/LL - их максимум и минимум, HC/LC - наибольшее и наименьшее закрытие, диапазон = большее из HH-LC и HC-LL. Average daily range = среднее high-low этих дней; Previous day range = high-low вчерашнего дня.
Якорь: в Anchor Time фиксируется цена якоря. 00:00 использует дневное открытие (первый тик серверного дня). Другое время - открытие первого бара в это время или позже.
Триггеры: триггер покупки = якорь + Buy Trigger Distance x диапазон, триггер продажи = якорь - Sell Trigger Distance x диапазон. Если диапазон / дневной ATR (Daily ATR Period) ниже Minimum Range или выше Maximum Range, вилки в этот день нет (RANGE TOO NARROW / RANGE TOO WIDE).
Entry Orders:
- Pending stop orders: buy stop и sell stop ставятся сразу после якоря. Если триггер ближе стоп-уровня брокера, эту сторону отслеживает сам советник и входит по рынку (VIRTUAL).
- Market order on touch: без отложенных ордеров; советник покупает, когда Ask достигает триггера покупки, и продаёт, когда Bid достигает триггера продажи (пропуск, пока спред выше Max Spread for Market Entries).
Сторона, чей триггер уже пройден при установке вилки (например после перезапуска), получает MISSED и не догоняется. Каждая сторона торгуется не более раза в день, Max Trades per Day ограничивает общее число. Cancel the Opposite Order on Fill удаляет другую сторону при исполнении одной.
Stop Loss Placement:
- At the anchor: стоп на цене якоря.
- At the opposite trigger (stop and reverse): стоп покупки на триггере продажи, стоп продажи на триггере покупки, так что ложный пробой может развернуться в другую сторону.
- Range fraction from entry: вход минус (для продаж плюс) Stop Distance for Range Fraction x диапазон.
Стопы при необходимости расширяются до минимума брокера.
Выходы: Take Profit ставит цель на этом кратном R от дистанции стопа (0 = без цели). Breakeven Trigger переносит стоп на вход, когда сделка прошла столько R. В Entry Cutoff все отложенные ордера удаляются; в Day Exit Time закрываются все позиции советника, а позиция с прошлого серверного дня закрывается сразу (пусто = держать через ночь). Закрытия, удаления и изменения стопов отправляются только вне зоны заморозки и в торговую сессию, иначе повторяются.
Lot Sizing: Fixed lots торгует Fixed Lots. Risk % of balance: лоты = баланс x Risk per Trade / 100 / убыток на лот до стопа, с округлением вниз до шага и ограничением Max Lots. Ниже минимума брокера берётся минимальный лот, поэтому малые счета или золото с широкими дневными диапазонами могут рисковать больше заданного процента. Свободная маржа проверяется перед каждым ордером (NO MARGIN).
Рекомендуется: XAUUSD и GBPUSD. Малоподвижные пары вроде EURUSD дали слабые результаты с настройками по умолчанию. Время - серверное (рассчитано на серверы GMT+2/+3). Стоит оптимизировать: Range Lookback, оба расстояния триггеров, Stop Loss Placement, Day Exit Time и Maximum Range.
Кнопки панели
- [-] / [+]: свернуть в плашку (TREBUCHET и состояние) или развернуть.
- <>: переместить панель в следующий угол графика.
- PAUSE / RESUME: PAUSE удаляет отложенные ордера и блокирует новые входы (открытые позиции сопровождаются); RESUME заново ставит сегодняшнюю вилку, если она ещё действительна. Сохраняется в глобальной переменной и переживает перезапуск.
- BRACKET ON / BRACKET OFF: показать или скрыть линии на графике.
- CLOSE ALL: первый клик показывает CONFIRM?, второй в течение 4 секунд закрывает все позиции и удаляет все отложенные ордера советника на символе.
Свёрнутость, угол и линии возвращаются к входным параметрам при повторном прикреплении.
Показания панели
- Индикатор в заголовке: зелёный при активной вилке или открытой сделке, янтарный на паузе, иначе серый.
- DAY STATE: значок WAITING FOR ANCHOR, BRACKET ARMED, LONG LIVE, SHORT LIVE, PAUSED, DAY QUOTA USED, DAY DONE (после отсечки), BRACKET SPENT (обе стороны использованы), RANGE TOO NARROW, RANGE TOO WIDE или NO DAILY HISTORY; дата; время и цена ANCHOR; время CUTOFF и EXIT.
- RANGE ENGINE: период и основа; значение RANGE с обоими K; HH, LL, HC, LC; шкала диапазон / ATR от 0 до 3 с отметками обоих лимитов; отношение, лимиты и OK или причина.
- BRACKET: шкала с триггером продажи (коралловый), якорем (бронза) и триггером покупки (бирюзовый); маркер показывает Bid и окрашивается за триггером. Ниже: цены SELL, ANCHOR и BUY и расстояние до каждого триггера в пунктах. Справа: STOP AT ANCHOR, STOP+REVERSE или STOP x.xxR и цель в R.
- Строки сторон LONG и SHORT: READY, BUY STOP AT / SELL STOP AT цена, WATCHING цена (VIRTUAL), FILLED - IN TRADE, TRADED TODAY, MISSED: PRICE ALREADY BEYOND, SKIPPED: NO MARGIN или ORDER FAILED, CANCELLED: OCO, CUTOFF, QUOTA, PAUSED, MANUAL или NEW DAY, NO BRACKET TODAY.
- POSITION: FLAT или сторона, лоты, вход и плавающая прибыль; SL, TP, R и BE ([x], когда стоп в безубытке). Без позиции: TODAY сделки / максимум и DAY P/L или NEW ENTRIES PAUSED.
- ACTIVITY: три последних события со временем: BRACKET, NO BRACKET, BUY STOP / SELL STOP поставлен, BUY FILLED / SELL FILLED, STOP CANCELLED, MISSED, SKIPPED, ORDER FAILED, BREAKEVEN, CLOSED (выход дня, прошлый день, вручную), CLOSE ALL, PAUSED by user, RESUMED by user.
- Нижняя строка: TRADES, процент WIN и NET закрытой прибыли советника на символе.
Линии на графике
От якоря до выхода дня: бирюзовая линия BUY TRIGGER, коралловая SELL TRIGGER и бронзовая пунктирная ANCHOR с подписями для сегодняшнего дня; Past Days Drawn on Chart прошлых вилок тонкими линиями (серыми при фильтре). Показ на таймфреймах до H4.
Оповещения
Pop-up Alerts и Push Notifications срабатывают при установке вилки на якоре, при каждом исполнении и закрытии. Не в тестере стратегий.
Побочные эффекты
- Глобальная переменная TBE_PAUSE_<символ>_<magic> = 1 во время паузы.
- Объекты графика с префиксами TBE_P_ (панель) и TBE_Z_ (линии), удаляются вместе с советником. Таймер раз в секунду. Без файлов и DLL.
bool paused = GlobalVariableCheck("TBE_PAUSE_XAUUSD_26110901"); Входные параметры
Range Engine
- Range Lookback (4 дня), Range Basis (Dual Thrust (max of HH-LC, HC-LL); или Average daily range, Previous day range).
- Buy Trigger Distance (0.50) и Sell Trigger Distance (0.50): x диапазон.
- Daily ATR Period (14 дней), Minimum Range (0.0 x ATR, 0 = выкл.), Maximum Range (2.5 x ATR, 0 = выкл.).
Расписание
- Anchor Time (00:00 = открытие дня), Entry Cutoff (21:00), Day Exit Time (22:00, пусто = выкл.): время сервера, якорь раньше отсечки, отсечка не позже выхода.
Ордера и выходы
- Entry Orders (Pending stop orders; или Market order on touch).
- Stop Loss Placement (At the anchor; At the opposite trigger (stop and reverse); Range fraction from entry), Stop Distance for Range Fraction (0.30 x диапазон).
- Take Profit (0.0 R = только выход дня), Breakeven Trigger (0.0 R = выкл.).
- Max Trades per Day (2), Cancel the Opposite Order on Fill (false).
Управление капиталом
- Lot Sizing (Risk % of balance; или Fixed lots), Fixed Lots (0.10), Risk per Trade (1.0 %), Max Lots (5.0).
- Max Spread for Market Entries (0 пунктов = выкл.).
Исполнение
- Magic Number (26110901, свой на каждый график одного символа), Max Slippage (30 пунктов), Order Comment (Trebuchet).
Отображение и оповещения
- Show Panel (true), Draw Bracket Levels (true), Past Days Drawn on Chart (5), Start Collapsed (false), Panel Scale (1.0, 0.5-2.5).
- Pop-up Alerts (true), Push Notifications (false).
Типовые настройки
- Классическая дневная вилка (XAUUSD, GBPUSD): по умолчанию.
- Стоп и разворот: Stop Loss Placement = At the opposite trigger (stop and reverse), Max Trades per Day 2.
- Лондонская вилка: Anchor Time 08:00, Entry Cutoff 16:00, Day Exit Time 21:00, Range Basis = Average daily range, оба расстояния триггеров 0.40.
- Цель и защита: Take Profit 2.0, Breakeven Trigger 1.0, Cancel the Opposite Order on Fill true.
Примечания
- После перезапуска вилка восстанавливается по дневным барам; существующие ордера сохраняют свои стороны, пройденный триггер не догоняется.
- Отложенные ордера никогда не переходят в новый день.
- Пустое Day Exit Time допускается только вместе с Take Profit больше 0; иначе сделка могла бы закрыться только по стопу.
- Тестер использует те же правила; панель и линии видны только в визуальном режиме. Сначала тестируйте на демо-счёте.
Предупреждение о рисках
Торговля на форекс и CFD с плечом несёт высокий риск потерь. Прошлые или смоделированные результаты не гарантируют будущих. Советник не обещает прибыль; используйте только средства, которые можете позволить себе потерять.
