Эта стратегия идентифицирует тенденции с использованием средних реверсионных каналов, основанных на системе SonicR, и проводит сделки с прорывами для следования тренду.
Логика стратегии:
Расчет среднего канала реверсии с близкой EMA как средней линии и высокой/низкой EMA как верхней/нижней полосы.
Вычислить длительную скользящую среднюю линию как линию торгового сигнала.
Сделайте длинный ход, когда ближайший перерыв выше линии сигнала.
Пройдите короткий путь, когда ближайший перерыв ниже линии сигнала.
Для визуализации используйте заполнение канала.
Преимущества:
Каналы четко определяют тенденции и прорывы.
Движущиеся средние фильтруют краткосрочный шум.
Простые правила помогают избежать эмоционального вмешательства.
Риски:
Отстающие каналы и скользящие средние могут пропустить лучшие записи.
Необходимо настроить параметры, чтобы избежать чрезмерных ложных сигналов.
Механические системы могут столкнуться с большими затратами, что требует управления рисками.
Короче говоря, эта стратегия, основанная на SonicR, определяет направление канала для систематической торговли прорывом.
/*backtest start: 2022-09-11 00:00:00 end: 2022-11-12 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Sonic R // strategy("SonicR",shorttitle="Sonic R",overlay=true,default_qty_value=10000,initial_capital=1000,currency=currency.USD) EMA = input(defval=89, title="EMA Signal") HiLoLen = input(34, minval=2,title="High Low channel Length") pacC = ema(close,HiLoLen) pacL = ema(low,HiLoLen) pacH = ema(high,HiLoLen) DODGERBLUE = #1E90FFFF // Plot the Price Action Channel (PAC) base on EMA high,low and close L=plot(pacL, color=DODGERBLUE, linewidth=1, title="High PAC EMA",transp=50) H=plot(pacH, color=DODGERBLUE, linewidth=1, title="Low PAC EMA",transp=50) C=plot(pacC, color=DODGERBLUE, linewidth=2, title="Close PAC EMA",transp=0) fill(L,H, color=aqua,transp=90,title="Fill HiLo PAC") //Moving Average signalMA =ema(close,EMA) plot(signalMA,title="EMA Signal",color=white,linewidth=4,style=line) //Strategy goLong() => crossover(pacC,signalMA) strategy.entry(id = "Go to Buy", long = true, when = goLong()) goShort() => crossunder(pacC,signalMA) strategy.entry(id = "Go to Sell", long = false, when = goShort())