Эта стратегия использует динамический прорыв канала колебаний для определения точек входа и остановки потери на основе движения цены.
Стратегия сначала рассчитывает самый высокий максимум и самый низкий минимум за последние 20 дней, чтобы получить динамический колебательный канал. Затем она рассчитывает 8-дневные и 32-дневные экспоненциальные скользящие средние. Когда цена закрытия проходит через верхнюю полосу канала, а 8-дневная EMA выше 32-дневной EMA, она идет в длинный. Когда цена проходит через нижнюю полосу или 8-дневная EMA пересекает 32-дневную EMA, она выходит. Стоп-лосс устанавливается ниже средней полосы канала.
В частности, условия въезда:
Цена закрытия прорывается через динамическую верхнюю полосу, сформированную наивысшим максимумом за последние 20 дней.
8-дневная EMA выше 32-дневной EMA.
Условия выхода:
Стоп-лосс запускается, когда цена падает ниже средней полосы.
8-дневная EMA пересекается ниже 32-дневной EMA.
Стратегия определяет направление тренда с использованием динамического канала и текущего состояния восходящего тренда с использованием перекрестка EMA. Это помогает контролировать риск.
Риски можно управлять путем оптимизации периода канала, периодов EMA и позиционирования стоп-лосса.
Динамическая стратегия прорыва колебаний имеет четкую логику для выявления тренда и входа на основе прорыва канала и перекрестки EMA. Стоп-лосс помогает контролировать риск. Настройка параметров, таких как период канала и периоды EMA, может улучшить фактор прибыли. Эта стратегия хорошо работает для акций с продолжением паттернов, особенно нарушая предыдущие максимумы.
/*backtest start: 2022-11-09 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Robrecht99 //@version=5 strategy("My Strategy", overlay=true, margin_long=100, margin_short=100) fast = ta.sma(close, 8) slow = ta.sma(close, 32) plot(fast, color=color.red) plot(slow, color=color.navy) entrycondition1 = ta.crossover(fast, slow) entrycondition2 = fast > slow sellcondition1 = ta.crossunder(fast, slow) sellcondition2 = slow > fast atr = ta.atr(14) //Donchian Channels days = 20 h1 = ta.highest(high[1], days) l1 = ta.lowest(low[1], days) mid = math.avg(h1, l1) plot(mid, "channel", color=#FF6D00) u = plot(h1, "Upper", color=#2962FF) l = plot(l1, "Lower", color=#2962FF) fill(u, l, color.new(color.blue, 90)) if (close > h1 and entrycondition2) strategy.entry("long", strategy.long) stoploss = close - atr * 3 trail = close - atr * 3 strategy.exit("exit", "long", stop=stoploss, trail_offset=trail) if (sellcondition1 and sellcondition2) strategy.close(id="long")