
Эта стратегия основана на RSI и MACD, чтобы определить торговый сигнал в сочетании с поддержкой и сопротивлением. Она называется “стратегией выпрямления языка кукурузы”. Эта стратегия использует RSI, чтобы определить перепродажу, MACD, чтобы определить пустоту, и сочетает максимальную цену и минимальную цену в течение 100 циклов, чтобы начертить сопротивление поддержки, чтобы создать сигнал покупки вблизи поддержки, чтобы создать сигнал продажи вблизи сопротивления.
Эта стратегия основана на двух показателях: RSI определяет состояние перекупа и перепродажи, MACD определяет состояние свободной тенденции. Сначала рассчитывается значение RSI на 14 циклов и определяется линия перекупа - 70, линия перепродажи - 30. Затем рассчитывается значение MACD на 12-дневную линию быстрого роста, 26-дневную линию медленного роста и 9-дневную линию сигнала.
Кроме того, стратегия также рассчитывает максимальные и минимальные цены в течение 100 циклов в качестве поддерживающих уровней сопротивления. При появлении сигнала покупки, цена должна быть близка к поддержке, то есть закрытие цены выше уровня поддержки в пределах 1%, чтобы фактически выпустить покупку; при появлении сигнала продажи, цена должна быть ниже уровня сопротивления в пределах 1%, чтобы фактически выпустить продажу.
Эта стратегия сочетает в себе анализ тенденций и суждение о перекупе и перепродаже, чтобы избежать ложных сигналов, вызванных только зависимостью от одного показателя. В то же время, введение уровня сопротивления поддержки в качестве тормозных волн может уменьшить ошибочную торговлю, вызванную отскоком на место сопротивления поддержки.
Основные риски, связанные с этой стратегией:
при сильной конъюнктуре стратегия может упустить большую часть прибыли, поскольку она имеет тенденцию выходить на рынок только после окончания обратного цикла;
неправильная настройка параметров RSI и MACD может привести к ошибкам в торговых сигналах;
алгоритмы обнаружения сопротивления поддержки просты и могут завышать или занижать реальные точки сопротивления поддержки;
Отсутствие механизмов по сдерживанию убытков. В крайних случаях невозможно эффективно контролировать убытки.
Для этих рисков можно оптимизировать такие способы, как введение адаптивного MACD, оптимизация параметров RSI, чтобы они были более близки к характеристикам различных разновидностей; улучшение алгоритмов определения поддержки и сопротивления, увеличение рыночного моделирования.
Эта стратегия может быть оптимизирована в следующих аспектах:
внедрение механизмов потери, таких как AMO в сочетании с мобильной потерей
Использование адаптивной MACD, позволяющей оптимизировать параметры MACD в реальном времени
Введение рыночного классификационного суждения, определение более научных поддерживающих устойчивости
объединение большего количества данных, создание оценки состояния рынка, разные состояния используют разные параметры
Энде-энде оптимизация стратегий с использованием алгоритмов машинного обучения
Благодаря этим улучшениям можно снизить отступление и повысить стратегическую стабильность.
Эта стратегия использует RSI и MACD, чтобы оценить состояние перепродажи, совершать сделки вблизи поддержки и сопротивления, является стратегией отслеживания тенденции, которая лучше всего отражает. При этом в сочетании с оценкой сопротивления поддержки снижается риск. Преимущества этой стратегии заключаются в том, что стратегический сигнал стабилен, риск контролируется и подходит для средне- и долгосрочного хранения.
/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("RSI + MACD with Support and Resistance", shorttitle="RSI_MACD_SR", overlay=true)
// Input for RSI and MACD values
rsiOverbought = input(70, title="RSI Overbought Threshold")
rsiOversold = input(30, title="RSI Oversold Threshold")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalSmoothing = input(9, title="MACD Signal Smoothing")
// Calculating RSI and MACD
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)
// Support and Resistance
support = ta.lowest(100)
resistance = ta.highest(100)
// Drawing support and resistance lines
// line.new(x1=bar_index[0], y1=support, x2=bar_index[-1], y2=support, color=color.green, width=1)
// line.new(x1=bar_index[0], y1=resistance, x2=bar_index[-1], y2=resistance, color=color.red, width=1)
// Buy Condition: If RSI is oversold and MACD line crosses above the signal line
// Additionally, check if price is near the support line
longCondition = ta.crossover(macdLine, signalLine) and rsiValue < rsiOversold and (close - support) < (close * 0.01)
strategy.entry("Long", strategy.long, when=longCondition, comment="Buy")
// Sell Condition: If RSI is overbought and MACD line crosses below the signal line
// Additionally, check if price is near the resistance line
shortCondition = ta.crossunder(macdLine, signalLine) and rsiValue > rsiOverbought and (resistance - close) < (close * 0.01)
strategy.entry("Short", strategy.short, when=shortCondition, comment="Sell")
// Plot values on the chart for visualization
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")