Урок 2 · Публичный · Опубликован
Первая трендовая стратегия в визуальном редакторе
Разобрать минимальный граф стратегии и способы проверки сигналов.
Первая гипотеза: следовать за движением
Трендовая гипотеза предполагает, что начавшееся движение иногда продолжается. Это предположение, не обещание: в боковом движении пересечения могут давать частые убыточные входы.
Возьмём синтетические бары и простую среднюю 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) | Сигнал на закрытии |
|---|---|---|---|---|---|---|
| Бар 1 | 300 | 303 | 297 | 300 | Недостаточно закрытий | Недостаточно данных для сравнения |
| Бар 2 | 300 | 309 | 297 | 306 | Недостаточно закрытий | Недостаточно данных для сравнения |
| Бар 3 | 306 | 315 | 303 | 312 | 306 | Недостаточно данных для сравнения |
| Бар 4 | 312 | 315 | 303 | 306 | 308 | Пересечение вниз |
| Бар 5 | 306 | 309 | 291 | 294 | 304 | Нет пересечения |
| Бар 6 | 294 | 297 | 285 | 288 | 296 | Нет пересечения |
| Бар 7 | 288 | 291 | 279 | 282 | 288 | Нет пересечения |
| Бар 8 | 282 | 291 | 279 | 288 | 286 | Пересечение вверх |
Цена и сигнал на закрытии бара
В доступной таблице найдите закрытие, среднюю и направление сигнала. Маркер подтверждает выполнение условия на этих данных, но не цену исполнения и не доходность стратегии. График не рассчитывает торговые позиции и не изображает отчёт брокера.
Сигнал и исполнение не совпадают
В следующем примере окончательное закрытие бара 8 равно 288, а открытие следующего бара — 291. Если решение принято по закрытию, нельзя заранее считать доступной цену этого закрытия для будущей заявки. Разрыв между барами меняет возможную цену исполнения.
Без интерактива: Доступность сигнала
Сигнал и разница цен. Пока бар формируется, его закрытие и будущая цена исполнения неизвестны. Цена — усл. цен. ед..
| Состояние | Последний закрытый бар | Цена закрытия | Решение | Исполнение |
|---|---|---|---|---|
| Бар 8 формируется | 7 | 282 | Ещё неизвестно | Заявки нет |
Доступность сигнала
Исполнение на следующем открытии — явно выбранное допущение этой иллюстрации. Оно не описывает все рыночные, лимитные и стоп-заявки TSLab. Фактическая модель зависит от торгового блока и настроек; на реальном рынке добавляются ликвидность и проскальзывание.
Проверка в TSLab показала, почему это уточнение важно. Внутри исторического ряда выбранные рыночные блоки записывают вход и выход на следующем баре по его открытию. Но на последнем доступном баре найдено исключение: два исполнения записаны по предыдущему закрытию 69 622,7, хотя открытие последнего бара — 69 627,5. Это наблюдение конкретного стенда, не универсальная гарантия исполнения. Последнюю открытую позицию нельзя включать в список закрытых сделок; пограничный результат нужно разбирать отдельно.
Что считать результатом упражнения
Вы должны уметь отдельно показать сигнал вверх, сигнал вниз и отсутствие сигнала; объяснить, почему будущий бар нельзя использовать раньше времени; отличить маркер от сделки. Если результат нельзя подтвердить по значениям на выбранном баре, сначала исправляют правило или данные, а не оптимизируют период средней.
Проверьте понимание
Выберите один ответ в каждом вопросе. Для завершения нужно набрать 100%.
Завершение урока
Дочитайте финальный раздел.

