Перейти к уроку

Урок 2 · Публичный · Опубликован

Первая трендовая стратегия в визуальном редакторе

Разобрать минимальный граф стратегии и способы проверки сигналов.

Около 40 мин · Время чтения и практики

Первая гипотеза: следовать за движением

Трендовая гипотеза предполагает, что начавшееся движение иногда продолжается. Это предположение, не обещание: в боковом движении пересечения могут давать частые убыточные входы.

Возьмём синтетические бары и простую среднюю SMA с периодом 3. Это короткое окно выбрано для наглядности, а не как рекомендуемый торговый параметр. Цены выражены в условных единицах; реального инструмента, брокерского счёта и подбора прибыльных настроек здесь нет.

Два направления, одно точное правило

Long-сигнал: на предыдущем закрытом баре цена была не выше своей средней, а на текущем закрытом баре стала строго выше. Это пересечение снизу вверх.

Short-сигнал: на предыдущем закрытом баре цена была не ниже своей средней, а на текущем стала строго ниже. Это пересечение сверху вниз.

Просто находиться выше средней — не новый long-сигнал на каждом баре. Равенство цены и средней на текущем баре также не считается пересечением. Для сравнения нужны два бара с готовой средней. Поэтому в учебном наборе первая проверка пересечения возможна на четвёртом баре.

Для минимальной учебной модели можно задать одну позицию фиксированного размера: long открывается по сигналу вверх и закрывается по сигналу вниз; short — наоборот. Закрытие long само по себе не создаёт short: противоположный вход должен иметь отдельное правило. Одновременный разворот требует явно заданного порядка закрытия и открытия.

Это ещё не пригодный для торговли робот. Без защитного выхода, спецификации инструмента, стоимости шага цены, комиссии и бюджета риска денежный риск позиции не определён. Эти вопросы разбираются дальше; в данном уроке мы проверяем сигналы, а не разрешаем реальные сделки.

Как читать визуальный граф

В отдельном учебном скрипте вычислительная цепочка начинается с «Источника». Из него Close получает ряд закрытий; этот ряд подаётся в SMA. Период средней задаётся в параметре Period. Дальше две ветви условий сравнивают текущие и предыдущие значения согласно правилам выше.

На этапе сборки проверяют именно входы блоков: источник инструмента и числовой ряд — разные типы данных. Линия, нарисованная рядом с блоком, не доказывает, что нужный вход соединён. Ветви long и short подпишите отдельно. Вывод цены, средней и маркеров на график — отдельная часть схемы.

Для полного торгового графа к условиям добавляют блоки входов и выходов, размер позиции и комиссии. Названия и входы торговых блоков зависят от выбранного способа исполнения. Не заменяйте их неподтверждёнными блоками и не переносите этот учебный набросок в действующего агента.

На учебном стенде TSLab 3.0.4.23 проверена следующая конкретная сборка. Имена ниже — идентификаторы блоков; подписи в интерфейсе могут быть локализованы.

  • Close1 (Close) получает источник Src; Sma3 (SMA, Period=3) получает Close1.
  • BarIndex (BarNumber) получает Src. Нумерация начинается с нуля, поэтому прогрев задаётся условием BarIndex >= 3.
  • LongSignal — логическая формула BarIndex >= 3 && Close1 > Sma3 && Close1[-1] <= Sma3[-1]. В ShortSignal знаки меняются на < и >=. Все три используемых ряда должны быть соединены с каждой формулой; [-1] здесь означает предыдущий бар.
  • Два OpenPositionByMarketItem получают Src, свой сигнал в Eq и размер в Shares. Для long параметр Long=true, для short — Long=false.
  • Два ClosePositionByMarketItem получают соответствующую позицию в Pos и противоположный сигнал в Eq.
  • Size (ConstGen, Value=1) соединён с обоими Shares. RelativeCommission получает Src, CommissionPct=0.05, MarginPct=0. Это учебные допущения, не тариф и не рекомендуемый размер.
  • Свечи и SMA находятся на одной ценовой панели. Оба логических сигнала — на отдельной шкале 0/1. Ноль здесь означает отсутствие сигнала и не должен скрываться.

На сохранённой часовой истории BTCUSDT проверены 54 242 бара и 21 080 позиций обоих направлений: расхождений сигналов с этими правилами нет. Число сигналов может быть больше числа входов: новая позиция того же направления не добавляется к уже открытой. Период и размер не оптимизировались. Эта проверка подтверждает механику, но не пригодность к торговле: результат данного запуска убыточен, защитного ценового стопа нет.

Доказательство на конкретном баре

В графике ниже перемещайтесь по барам. Будущие значения раскрываются по шагам. Сравните бар 8 с предыдущим: это пример пересечения вверх. Бар 12 показывает обратное пересечение. На баре 35 цена равна средней — нового сигнала нет.

Без интерактива: Цена и сигнал на закрытии бара

Учебные свечи и средняя по трём закрытиям. Открывайте историю по одному бару и сравнивайте цену с доступной средней. Показаны только бары, доступные в начальном положении; средняя требует прогрева. Цена и SMA(3) — усл. цен. ед.. Сигнал не означает исполненную сделку.

Начальное состояние учебного примера. Пропуск не заменяется нулём.
БарОткрытиеМаксимумМинимумЗакрытиеSMA(3)Сигнал на закрытии
Бар 1300303297300Недостаточно закрытийНедостаточно данных для сравнения
Бар 2300309297306Недостаточно закрытийНедостаточно данных для сравнения
Бар 3306315303312306Недостаточно данных для сравнения
Бар 4312315303306308Пересечение вниз
Бар 5306309291294304Нет пересечения
Бар 6294297285288296Нет пересечения
Бар 7288291279282288Нет пересечения
Бар 8282291279288286Пересечение вверх
Загрузится при приближении к экрану или по кнопке.

Цена и сигнал на закрытии бара

В доступной таблице найдите закрытие, среднюю и направление сигнала. Маркер подтверждает выполнение условия на этих данных, но не цену исполнения и не доходность стратегии. График не рассчитывает торговые позиции и не изображает отчёт брокера.

Сигнал и исполнение не совпадают

В следующем примере окончательное закрытие бара 8 равно 288, а открытие следующего бара — 291. Если решение принято по закрытию, нельзя заранее считать доступной цену этого закрытия для будущей заявки. Разрыв между барами меняет возможную цену исполнения.

Без интерактива: Доступность сигнала

Сигнал и разница цен. Пока бар формируется, его закрытие и будущая цена исполнения неизвестны. Цена — усл. цен. ед..

Начальное состояние учебного примера. Пропуск не заменяется нулём.
СостояниеПоследний закрытый барЦена закрытияРешениеИсполнение
Бар 8 формируется7282Ещё неизвестноЗаявки нет
Загрузится при приближении к экрану или по кнопке.

Доступность сигнала

Исполнение на следующем открытии — явно выбранное допущение этой иллюстрации. Оно не описывает все рыночные, лимитные и стоп-заявки TSLab. Фактическая модель зависит от торгового блока и настроек; на реальном рынке добавляются ликвидность и проскальзывание.

Проверка в TSLab показала, почему это уточнение важно. Внутри исторического ряда выбранные рыночные блоки записывают вход и выход на следующем баре по его открытию. Но на последнем доступном баре найдено исключение: два исполнения записаны по предыдущему закрытию 69 622,7, хотя открытие последнего бара — 69 627,5. Это наблюдение конкретного стенда, не универсальная гарантия исполнения. Последнюю открытую позицию нельзя включать в список закрытых сделок; пограничный результат нужно разбирать отдельно.

Что считать результатом упражнения

Вы должны уметь отдельно показать сигнал вверх, сигнал вниз и отсутствие сигнала; объяснить, почему будущий бар нельзя использовать раньше времени; отличить маркер от сделки. Если результат нельзя подтвердить по значениям на выбранном баре, сначала исправляют правило или данные, а не оптимизируют период средней.

Проверьте понимание

Выберите один ответ в каждом вопросе. Для завершения нужно набрать 100%.

1. Цена второй бар подряд выше SMA. Обязательно ли это новый long-сигнал?
2. На текущем баре цена точно равна SMA. Есть ли пересечение по правилам урока?
3. Закрытие сигнального бара — 288, следующее открытие — 291. Что показывает маркер сигнала?

Завершение урока

Дочитайте финальный раздел.

К финальному разделу →

2. Первая трендовая стратегия в визуальном редакторе