
Эта стратегия идентифицирует потенциальные возможности для покупки и продажи на рынке, рассчитывая показатель относительной силы (RSI). Она использует показатель RSI, чтобы определить, где цена может перейти от тренда к обратному тренду, чтобы поймать возможность поворота.
Основным показателем стратегии является RSI, который показывает соотношение числа дней, в течение которых цены закрытия были выше, по сравнению с количеством дней, в течение которых цены упали, и используется для определения того, переоценены ли активы или недооценены. RSI отображается в диапазоне от 0 до 100, причем высокий показатель указывает на повышение рыночной активности, а низкий показатель - на снижение рыночной активности.
Стратегия сначала устанавливает параметры RSI, включая длину цикла (по умолчанию 14) и отметки в зоне перепродажи (по умолчанию 70 и 30), а затем рассчитывает RSI в зависимости от цены закрытия. При переходе отметки в зоне перепродажи выше RSI создается сигнал покупки; при переходе отметки в зоне перепродажи ниже RSI создается сигнал продажи.
Стратегия одновременно изображает кривую RSI, а также линию отклонения. На графике цены используются текстовые и графические знаки для сигналов покупки и продажи. Кроме того, стратегия рассчитывает и изображает процент изменения цены с момента предыдущего торгового сигнала, чтобы трейдер мог визуально видеть движение цены после сигнала.
Эта стратегия была разработана на основе принципа обратной торговли с помощью индекса относительной интенсивности, основной целью которой является определение того, есть ли в активе явные перекупки и перепродажи в краткосрочной перспективе, чтобы уловить последующие возможности для обратной торговли. Расчет процентных изменений и визуализация торговых подсказок могут помочь принятию торговых решений.
/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved RSI Strategy", overlay=true)
// Define RSI parameters
rsiLength = input(14, title="RSI Length")
rsiOversold = input(30, title="Oversold Threshold")
rsiOverbought = input(70, title="Overbought Threshold")
// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)
// Define entry conditions
longCondition = ta.crossover(rsiValue, rsiOversold)
shortCondition = ta.crossunder(rsiValue, rsiOverbought)
// Plot RSI and thresholds
plot(rsiValue, title="RSI", color=color.blue)
hline(rsiOversold, title="Oversold Threshold", color=color.red)
hline(rsiOverbought, title="Overbought Threshold", color=color.green)
// Calculate percentage change since last signal
var float percentageChange = na
lastCloseValue = ta.valuewhen(longCondition or shortCondition, close, 1)
if longCondition or shortCondition
percentageChange := (close - lastCloseValue) / lastCloseValue * 100
plot(percentageChange, color=color.blue, style=plot.style_histogram, linewidth=1, title="% Change since last signal")
// Execute strategy
if longCondition
strategy.entry("RSI Long", strategy.long)
if shortCondition
strategy.entry("RSI Short", strategy.short)
// Plot shapes and text for buy/sell signals
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")