
Эта стратегия называется “прорывная стратегия, основанная на ценовом канале”, и ее основная идея заключается в том, чтобы использовать ценовые каналы для определения тенденций и направлений рынка и создавать позиции при прорыве цены через канал. Она сначала рисует диапазон каналов цены, а затем определяет, появляются ли две последовательные красные или зеленые линии K. Если последняя линия K прорывает канал более чем на половину и закрывается за пределами канала, это создает сигнал к покупке или продаже.
Стратегия рассчитывает максимальные и минимальные цены за определенный период времени с помощью функций highest() и lowest(), чтобы определить верхнюю и нижнюю траектории ценового канала. Средняя линия канала определяется как среднее значение верхней и нижней траектории. Затем рассчитывается размер объекта K-линии и, с помощью SMA, выравнивается, является ли последний объект K-линии больше половины от среднего объекта. Кроме того, определяется, являются ли последние два объекта K-линии однонаправленными (две последовательные красные или две последовательные зеленые).
Это прорывная стратегия, которая использует ценовые каналы для определения тенденций.
Используя ценовые каналы для определения направления общей тенденции, можно эффективно отфильтровывать рыночный шум.
Две последовательные K-линии с односторонним прорывом указывают на более сильный двигатель и более высокий уровень успешности прорыва.
Судя по тому, что K-линия составляет более половины средней, можно избежать обмана ложными прорывами.
Стратегическая логика проста, понятна и легко реализуема.
Настраиваемые параметры, такие как циклы каналов, типы сделок, время сделок и т. Д., обладают высокой адаптацией.
Однако есть и потенциальные риски этой стратегии:
В то же время, по словам экспертов, вероятность прорыва остается высокой, что может привести к убыткам.
При резких колебаниях обстоятельств судебное решение может быть отменено.
Отсутствие механизмов по сдерживанию убытков, неэффективное управление потерями.
Простые правила торговли, существует риск сверхприспособления.
Невозможность адаптироваться к более сложным рыночным условиям.
В соответствии с решением:
Оптимизация параметров, повышение успешности прорыва.
Присоединяйтесь к показателям волатильности, чтобы избежать шокирующих событий.
Добавлена мобильная стоп-убытка.
Проведите комплексный тест и проверьте соответствие.
Добавление алгоритмов машинного обучения, повышение адаптивности стратегий.
Основными направлениями оптимизации стратегии являются:
Увеличение механизма остановки, чтобы лучше контролировать риски. Можно установить остановку на ретроспекцию цены, а также использовать индикаторы, такие как ATR, для установки подвижной остановки.
Параметры оптимизации, такие как цикл прохождения, параметры прорыва ширины и т. д. Можно искать оптимальные параметры с помощью методов генетического алгоритма, сетчатого поиска и т. д.
Увеличение фильтрационных условий, повышение уверенности в прорыве. Например, можно объединить объемы сделок для подтверждения прорыва.
Добавление моделей машинного обучения с использованием большего количества данных повышает прогнозируемость и адаптивность стратегий. Глубокое обучение, такое как LSTM, может улавливать более сложные модели событий.
Оптимизация портфеля, объединение различных типов стратегий прорыва для достижения прямолинейности и уменьшения сходства.
Эта стратегия в целом является количественной стратегией, основанной на тенденциях определения ценового канала и обнаружения прорывных сигналов. Она имеет тенденцию к определению тенденции, подтверждению преимуществ прорыва, но также существует определенный риск ложного прорыва. Мы можем улучшить стратегию и снизить риск методами оптимизации параметров, установки стоп-лостара, добавления фильтров условий и т. Д. При этом добавление моделей машинного обучения может дополнительно повысить прогнозирующую способность стратегии.
/*backtest
start: 2023-12-16 00:00:00
end: 2024-01-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Price Channel Strategy v1.0", shorttitle = "Price Channel str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel")
showcl = input(true, defval = true, title = "Show center-line")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
src = close
//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
col = showcl ? blue : na
plot(center, color = col, linewidth = 2)
//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1
//Signals
body = abs(close - open)
abody = sma(body, 10)
up = rbars and close > center and body > abody / 2
dn = gbars and close < center and body > abody / 2
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2
//Trading
if up
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if dn
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if exit
strategy.close_all()