
Описание: Эта стратегия является стратегией, использующей канал Бурин, индикатор KDJ и отслеживание тенденций для проведения ценовых прорывных операций. Она позволяет совершать покупки и продажи в точке прорыва, а также устанавливать линию остановок для контроля риска.
Принципы стратегии:
- Для определения ценовых тенденций используются 15-дневные и 30-дневные простые скользящие средние.
- Вычислить наклон и отклон буринского канала и в сочетании с K-линейной структурой прорвать наклон и отклон буринского канала, чтобы определить время покупки и продажи.
- В сочетании с случайным индикатором RSI, чтобы определить, является ли это перекуп или перепродажа. RSI больше 50 является сигналом о перекупе, RSI меньше 50 является сигналом о перепродаже.
- Сигнал покупки возникает, когда рост цены прорывает верхнюю границу Буринского канала и RSI больше 50, а сигнал продажи возникает, когда падение цены прорывает нижнюю границу Буринского канала и RSI меньше 50.
- Настройка ATR Stop-Loss для контроля риска.
Анализ силы:
- Эта стратегия использует множество индикаторов, таких как канал Бурин, RSI и другие, для определения торговых сигналов, что позволяет эффективно избежать ошибок в торговых сигналах, вызванных одним индикатором.
- В сочетании с оценкой тенденции, избегайте ошибочных торговых сигналов при свертывании и обратном обращении.
- Настройка ATR-стоп-лосса для контроля риска каждой партии.
- Стратегия работает четко, просто и понятно.
Риски и улучшения:
- Буринский канал как очертательный индикатор, его восходящий и нисходящий траектории не являются абсолютными точками поддержки и сопротивления, после того, как цена пробивает восходящий и нисходящий траектории, могут возникнуть случаи, когда остановка будет пробита. Можно установить более свободную точку остановки или использовать другие стратегии остановки, такие как временная остановка.
- RSI может быть неэффективным на некоторых рынках. Можно рассмотреть возможность использования других индикаторов, таких как KDJ, MACD и т. Д., для более надежного суждения о перекупке и перепродаже.
- В рыночных реверсиях и сворачивании легко получить ошибочные сигналы. Можно рассмотреть возможность добавления фильтра на тренд и участвовать в операциях только в том случае, если тренд очевиден.
Советы по оптимизации:
- Тестирование и оптимизация циклов и параметров стандартного отклонения буринского канала, чтобы лучше соответствовать характеристикам разных сортов.
- Тестирование и оптимизация циклических параметров RSI.
- Проверьте другие стратегии по устранению убытков, такие как отслеживание убытков, временные убытки и т. д.
- В сочетании с другими индикаторами оценки тенденций и индикаторами сигналов, создается многофакторная модель.
В заключение:
В этой стратегии используются несколько показателей, таких как канал Бурин, RSI и другие, чтобы определить время покупки и продажи, а также установить остановку, чтобы контролировать риск, гарантируя определенную точность торгового сигнала. Однако, для конкретных сортов необходимо оптимизировать параметры, чтобы сделать сигнал более точным и надежным. Кроме того, можно рассмотреть возможность добавления большего количества факторов для построения многофакторной модели.
Исходный код стратегии
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Custom Strategy", overlay=true)
length = 14
mult = 0.75
atr = atr(length) * mult
// Moving averages
ma15 = sma(close, 15)
ma30 = sma(close, 30)
// Bullish Engulfing pattern
bullishEngulfing = close[1] < open[1] and close > open and close[1] < open and close > open[1]
// Bearish Engulfing pattern
bearishEngulfing = close[1] > open[1] and close < open and close[1] > open and close < open[1]
// RSI
rsi = rsi(close, length)
// Buy condition
if (bullishEngulfing and close[1] > ma15 and rsi > 50)
strategy.entry("Buy", strategy.long)
strategy.exit("Sell", "Buy", stop=close - atr)
// Sell condition
if (bearishEngulfing and close[1] < ma15 and rsi < 50)
strategy.entry("Sell", strategy.short)
strategy.exit("Cover", "Sell", stop=close + atr)
// Plotting
plotshape(series=strategy.position_size > 0, title="Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=strategy.position_size < 0, title="Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")