Открыть на GitHub

Схема стратегии с учётом комиссии по каждому исполнению

Эта схема торгует по подтверждённым возвратам часового CCI(30) через пороговые уровни одной рыночной заявкой фиксированного объёма и показывает учёт комиссии для каждого наблюдаемого исполнения. Новые сигналы ограничивает пауза в четыре свечи, учебный слой процентной защиты может закрыть позицию, а в один журнал поступают расчётный сбор за исполнение и накопленная комиссия движка стратегии.

Обзор стратегии

  • Завершённые часовые свечи поступают в CommodityChannelIndex 30. Индикатор выдаёт каждое значение, включая значения до полного формирования его периода.
  • Для покупки нужны предыдущий CCI < -100 и текущий CCI >= -100. Для продажи нужны предыдущий CCI > 100 и текущий CCI <= 100.
  • Ветка покупки также требует Position <= 0, ветка продажи — Position >= 0, а обе ветки требуют готовности четырёхсвечной паузы.
  • Каждый принятый сигнал отправляет ровно одну рыночную заявку фиксированного Volume. Из нулевой позиции она открывает указанную сторону; против единичной позиции она закрывает её до нуля и не открывает другую сторону тем же сигналом.
  • Защита позиции добавлена как явный учебный слой с тейк-профитом 1% и фиксированным стоп-лоссом 0,7%. Она проверяет только закрытия завершённых свечей и пропускает закрытие свечи, на которой уже была отправлена сигнальная заявка.
  • Для каждого наблюдаемого исполнения рассчитывается один условный сбор по формуле Trade.Price × Trade.Volume × Commission Rate % / 100. График показывает CCI, заявки, исполнения и оба ряда комиссии, а форматированные сообщения о комиссии записываются в единый поток журнала.

Правила входа и выхода

  • Вход в лонг: Когда предыдущий CCI ниже -100, текущий CCI возвращается к -100 или выше, Position <= 0 и пауза завершена, отправляется одна рыночная покупка Volume. Из нулевой позиции она открывает лонг; против единичного шорта она только закрывает шорт до нуля.
  • Вход в шорт: Когда предыдущий CCI выше 100, текущий CCI возвращается к 100 или ниже, Position >= 0 и пауза завершена, отправляется одна рыночная продажа Volume. Из нулевой позиции она открывает шорт; против единичного лонга она только закрывает лонг до нуля.
  • Выход: Противоположный допустимый сигнал CCI может обнулить единичную позицию одной рыночной заявкой фиксированного объёма. Независимо от него учебный слой защиты может закрыть отслеживаемую позицию по тейк-профиту 1% или фиксированному стоп-лоссу 0,7%; на его ценовой вход поступают только завершённые закрытия свечей без сигнальной заявки.

Параметры

Параметр По умолчанию Описание
Candles 01:00:00 Часовой таймфрейм; только завершённые свечи управляют решениями CCI, приращением паузы и проверками цены для защиты.
CCI Length 30 Период CommodityChannelIndex; кубик выдаёт значения, не ожидая полного формирования индикатора.
Lower Level -100 Нижний порог CCI. Возврат вверх через -100 создаёт условие покупки.
Upper Level 100 Верхний порог CCI. Возврат вниз через 100 создаёт условие продажи.
Cooldown 4 Число завершённых свечей после исполнения, необходимое до следующей допустимой сделки по сигналу.
Commission Rate % 0.04 Процентная ставка, используемая только в отображаемой формуле для исполнения Trade.Price × Trade.Volume × rate / 100.
Take Profit % 1 Благоприятное процентное движение для учебного слоя защиты позиции.
Stop Loss % 0.7 Неблагоприятное процентное движение для фиксированного, не скользящего стопа учебного слоя защиты.
Volume 1 Фиксированное количество каждой сигнальной заявки на покупку или продажу.

Детали диаграммы

  • Кубик Свечи выдаёт завершённые часовые свечи. Их закрытие сохраняется для защиты, а кубик Индикатор считает CCI 30 с отключённым фильтром сформированных значений. Посвечные флаги удерживают все четыре сравнения предыдущего и текущего CCI с уровнями до финального импульса решения.
  • Текущая позиция формирует ограничения Position <= 0 и Position >= 0. Счётчик паузы начинается с 4, увеличивается с ограничением сверху перед решением каждой свечи и сбрасывается в 0 при каждом прямом исполнении сигнальной заявки и при исполнении защиты. Поэтому завершённые свечи 1, 2 и 3 после исполнения заблокированы, а свеча 4 уже допустима.
  • Два кубика Регистрация заявки отправляют рыночные покупки и продажи фиксированного Volume. Прямой выход исполнения каждого кубика обновляет защиту и сбрасывает паузу; отдельный кубик Trades for order наблюдает за зарегистрированной Order и выдаёт поток сигнальных исполнений для условного расчёта комиссии и графика.
  • Оба прямых потока сигнальных исполнений поступают в Защиту позиции, поэтому её внутреннее состояние позиции возвращается к нулю после закрытия по сигналу. Её собственный выход исполнения не подаётся обратно на этот вход. Шлюз отсутствия сигнала передаёт сохранённое завершённое закрытие для проверки защиты, только если на этой свече не сработала ни одна сигнальная заявка.
  • Для каждого наблюдаемого исполнения покупки, продажи или защиты конвертеры сохраняют Trade.Price и Trade.Volume в молчаливых защёлках. Затем импульс выпуска последовательно выдаёт ставку, цену и объём; Формула обновляет a × b × r / 100, а молчаливое состояние сбора выдаётся последним ровно один раз для этого наблюдаемого исполнения.
  • Выход Commission кубика Прибыль и убыток стратегии содержит накопленную комиссию движка и остаётся нулевым, если в тестовой или рабочей среде не настроено правило комиссии. Условная формула для исполнения служит для отображения и не записывает результат в значение движка.
  • Выходы двух кубиков Форматирование строки объединяются через Combination и поступают в одно Оповещение типа Log. Trades for order подписывается после получения зарегистрированной Order, поэтому среда, исполняющая заявку внутри вызова регистрации, может выдать исполнение до подключения наблюдателя; прямой выход исполнения всё равно обновит защиту и паузу.

Использование

Импортируйте файл .json в Designer, прогоните схему на исторических данных в тестере, затем подстройте параметры или сами кубики под свой инструмент, прежде чем торговать вживую.