
Эта стратегия основана на относительно сильных и слабых индикаторах RSI, и предназначена для торговли в 15-минутных временных рамках. Эта стратегия использует RSI, чтобы определить, перекупил ли рынок или перепродал, чтобы дать сигнал о покупке и продаже.
RSI - это инструмент технического анализа, используемый для определения того, является ли рынок перекупленным или перепроданным, путем вычисления соотношения колебаний цен в течение определенного периода времени. Значения RSI варьируются от 0 до 100. Значения ниже 30 указывают на перепродажу активов, а значения выше 70 указывают на перекуп.
Эта стратегия устанавливает параметры RSI на 14 циклов, линию сверхпокупа - на 70, линию сверхпродажи - на 30. Когда RSI пересекает 30 сверху, это означает, что рынок переходит от сверхпродажи к повышению. Когда RSI пересекает 70 сверху, это означает, что рынок переходит от повышения к повышению.
Наибольшим преимуществом этой стратегии является то, что правила простые, понятные и простые для понимания и реализации. Относительно сильный индекс - это классический количественный показатель, который широко используется для оценки чрезмерной покупки и продажи на рынке. Сама стратегия не требует прогнозирования будущего движения рынка и ценовых целей.
Еще одним преимуществом является высокая адаптивность стратегии. Эта стратегия может быть применена в любом виде и в любой временной рамке, особенно подходит для захвата промежуточных колебаний в средней и короткой линии. Кроме того, стратегия требует оптимизации только трех параметров: циклы RSI, линию сверхпокупа и линию сверхпродажи, небольшое пространство для параметров, легкость тестирования и оптимизации для поиска оптимальной комбинации параметров.
Самый большой риск в этой стратегии заключается в неопределенности времени удержания позиции. Когда на рынке возникает длительный перекуп или перепродажа, это может привести к тому, что стратегия будет держать позицию слишком долго и понести большие потери. В этом случае необходимо своевременно прекратить убытки, чтобы контролировать риск.
Еще один риск заключается в том, что частота торгов может быть слишком высокой. Когда рынок колеблется вверх и вниз вблизи линии RSI, это часто вызывает сигналы о покупке и продаже, увеличивая торговые сборы и стоимость скольжения. Это требует соответствующей корректировки параметров, расширения промежуточного расстояния между покупками и продажами, чтобы уменьшить количество бесполезных сделок.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация RSI, корректировка циклов, а также перекуп и перепродажа, чтобы найти оптимальную комбинацию параметров
Добавление стратегии стоп-стоп, установление разумных стоп-стоп и стоп-позиций
Добавление фильтрационных условий, чтобы избежать бесполезных сделок. Например, установка минимальной величины колебаний, фильтрации объема сделок и т. Д.
Оптимизация использования капитала, установка динамического контроля позиций
Комбинация с другими показателями для повышения стабильности стратегии
Эта стратегия разработана на основе RSI, чтобы быть простой и практичной. Правила стратегии ясны, легко реализуемы, высокая эффективность использования капитала, подходящая для негативных сделок с перекупкой и перепродажей на рынке, где происходит задержка. Благодаря постоянному тестированию и оптимизации эта стратегия может стать очень стабильной и надежной количественной торговой системой.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("RSI Strategy", overlay=true)
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
sl_inp = input(10.0, title='Stop Loss %')/100
tp_inp = input(1.0, title='Take Profit %')/100
haOpen = 0.0
haOpen := haOpen[1]
st_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
strategy.initial_capital =50000
orderSize = ((strategy.initial_capital * 1) / close)
if (not na(vrsi))
if (co)
strategy.order("RsiLE", strategy.long, orderSize, take_level, st_level, comment="RsiLE")
if (cu)
strategy.close("RsiLE")//strategy.entry("RsiSE", strategy.short, qty=orderSize, comment="RsiSE")
plotshape(not na(vrsi) and co and haOpen == 0.0, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="buy label", text="BUY", textcolor=color.white)
plotshape(not na(vrsi) and co and haOpen == 1.0, style=shape.labelup, location=location.belowbar, color=color.orange, size=size.tiny, title="buy label", text="INC", textcolor=color.white)
plotshape(not na(vrsi) and cu and haOpen == 1.0, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="sell label", text="SELL", textcolor=color.white)
if (not na(vrsi))
if (co)
haOpen := 1.0
if (cu)
haOpen := 0.0
//strategy.exit("Stop Loss/TP","RsiLE", stop=stop_level, limit=take_level)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)