Открыть на GitHub

Схема стратегии Monday Weakness

Эта схема торгует по жёсткому недельному календарю. У каждой стороны недели свой день: в день шорта она продаёт, когда цена закрытия находится ниже SMA 20, а в день покрытия откупает этот шорт обратно; в день лонга она покупает, когда цена закрытия находится выше SMA 20, а в день выхода продаёт этот лонг. День недели считывается прямо со свечи как число, поэтому четыре календарных правила — это четыре обычных сравнения, а окно входа по часам удерживает недельное решение внутри активной части дня.

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

  • Пятиминутные свечи поступают только завершёнными. Два блока Converter читают одну и ту же свечу: один берёт цену закрытия, другой — день недели времени открытия, который приходит числом, где воскресенье — 0, а суббота — 6.
  • Четыре блока Variable хранят четыре календарных дня — шорт, покрытие, лонг и выход, — а четыре блока Comparison, настроенные на Equal, превращают номер дня в четыре сигнала. На любой отдельной свече истинным может быть ровно один из них, и именно это не даёт четырём ветвям конкурировать между собой.
  • SMA 20 считается по тем же свечам и ничего не публикует, пока не сформирована, поэтому первые двадцать свечей прогона не дают сигнала вовсе. Её читают два блока Comparison: один истинен, пока цена закрытия ниже средней, другой — пока она выше.
  • Блок Position, Variable со значением ноль и блок Comparison, настроенный на Equal, дают проверку на отсутствие позиции. Обе ветви входа требуют её, поэтому неделя, уже находящаяся в рынке, не может набрать вторую позицию поверх первой.
  • Current time подаёт данные в Working time, который истинен между 08:00:00 и 20:00:00. Обе ветви входа требуют и это окно, поэтому недельная позиция никогда не открывается на тонкой ночной свече. Два выхода намеренно оставлены вне окна: всё, что открыто, должно быть закрыто в свой календарный день, в какой бы час ни появился сигнал.
  • Два блока Logical condition AND собирают входы. Ветви шорта нужны день шорта, закрытие ниже SMA 20, отсутствие позиции и открытое окно; ветви лонга — день лонга, закрытие выше SMA 20 и те же два условия. Каждая управляет блоком Modify position с условием Open position, поэтому повторный сигнал внутри того же дня не может отправить вторую заявку.
  • Два выхода — это блоки Modify position с условием Close position и явно заданным направлением. Блок дня покрытия — покупка, поэтому он способен закрыть только шорт; блок дня выхода — продажа, поэтому он способен закрыть только лонг. Ни у одного из них нет входа объёма, потому что Close position определяет объём заявки по самой открытой позиции.
  • Chart panel рисует серию свечей, SMA 20, заявки всех четырёх действий и сделки, которые они порождают, поэтому недельный ритм — вход в начале недели, покрытие в середине, вход в конце недели, выход на её завершении — читается прямо с картинки.

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

  • Вход в лонг: В день лонга, внутри окна входа, при отсутствии позиции и цене закрытия выше SMA 20 через Modify position с условием Open position отправляется рыночная покупка объёмом Order volume.
  • Вход в шорт: В день шорта, внутри окна входа, при отсутствии позиции и цене закрытия ниже SMA 20 через Modify position с условием Open position отправляется рыночная продажа объёмом Order volume.
  • Выход: Выходы идут по календарю, а не по цене. В день покрытия покупка блоком Modify position с условием Close position обнуляет открытый шорт; в день выхода продажа блоком Modify position с тем же условием обнуляет открытый лонг. Ни стоп-лосса, ни цели, ни трейлинга здесь нет, поэтому позиция удерживается, пока не наступит её собственный день выхода. Оба сигнала выхода повторяются на каждой свече своего дня, и ничто эти повторы не считает и не подавляет: первая свеча закрывает позицию, а дальше Close position уже не с чем работать, и он молча отклоняет сигнал. То же и со входами — нет ни счётчика на день, ни паузы между сделками, и в рамках одной заявки календарный день удерживает именно условие Open position вместе с проверкой на отсутствие позиции.

Параметры

Параметр По умолчанию Описание
Candles 00:05:00 Таймфрейм серии свечей. Поступают только завершённые свечи; день недели, средняя и каждый сигнал читаются с завершённых свечей.
MA Period 20 Период простой скользящей средней, которая фильтрует оба входа. Средняя выдаёт значения только после того, как сформируется, поэтому на первых свечах прогона вход невозможен.
Session From 08:00:00 Начало дневного окна, в котором разрешены входы; берётся по часам стратегии. Выходы это окно игнорируют.
Session Until 20:00:00 Конец этого окна. Расширьте пару значений, чтобы календарное правило действовало в любой час, сузьте — чтобы сосредоточить входы в нескольких часах дня.
Short day 1 Номер дня, в который открывается шорт, если цена закрытия ниже средней. Дни нумеруются от воскресенья как 0 до субботы как 6.
Cover day 3 Номер дня, в который открытый шорт откупается обратно. Он закрывает только шорт; лонг в этот день остаётся нетронутым.
Long day 4 Номер дня, в который открывается лонг, если цена закрытия выше средней. Нумерация по той же шкале, где воскресенье — 0.
Exit day 5 Номер дня, в который открытый лонг распродаётся. Он закрывает только лонг; шорт в этот день остаётся нетронутым.
Order volume 1 Фиксированное количество, используемое обоими действиями Open position. Двум действиям Close position объём не нужен: они определяют объём заявки по тому, что открыто.

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

  • Блок Candles настроен только на завершённые свечи, и это важно дважды: день недели берётся со свечи, которая больше уже не изменится, а каждая отправленная схемой заявка помечена временем закрытия завершённой свечи, а не временем открытия ещё формирующейся.
  • И календарь, и цена приходят от одной пары блоков Converter над этой серией. Считывание дня недели со свечи, а не с отдельных часов, держит календарную проверку ровно в том же такте, что и проверку тренда, поэтому обе всегда описывают одну и ту же свечу, когда их собирают блоки Logical condition AND.
  • Четыре номера дней — это обычные Variables, сравниваемые блоками Comparison, поэтому весь недельный план перестраивается из списка параметров: перенесите день шорта на другой номер — и схема будет торговать этот день, не тронув ни одной связи.
  • Current time и Working time дают ограничение по часу дня простым уровнем: истина на всё окно, ложь за его пределами. Оно заведено только в две ветви входа, а стоящий рядом снимок Position точно так же даёт проверку на отсутствие позиции.
  • Всю торговлю делают четыре блока Modify position: два с Open position и фиксированным объёмом, два с Close position и заданным направлением. Именно указанное направление у закрывающих блоков делает календарные выходы точными — покупка в день покрытия просто отказывается от лонга, а продажа в день выхода просто отказывается от шорта. Всё, что они выдают, рисуется на Chart panel вместе со свечами и SMA 20.

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

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