
Стратегия представляет собой количественную торговую систему, основанную на сочетании ценовых форм и технических индикаторов. Она проводится в основном путем идентификации треугольных форм, а также в сочетании с подтверждением динамики RSI. Стратегия использует метод линейной регрессии для построения верхней и нижней трендовых линий, чтобы определить торговые сигналы с помощью ценовых прорывов и позиций RSI.
Основная логика стратегии состоит из двух основных частей: распознавание треугольника и подтверждение динамики RSI. Во-первых, используя метод линейной регрессии, рассчитывается высокий и низкий уровень последних N циклов, чтобы построить линию тренда вверх и вниз, образуя треугольник.
Стратегия треугольного прорыва в сочетании с динамикой RSI является структурированной, логически четкой системой количественного трейдинга. Благодаря механизму двойного подтверждения формы и динамики эффективно повышается надежность торговых сигналов. Хотя существует определенный риск, эта стратегия имеет хорошую практическую ценность благодаря разумной оптимизации параметров и мерам контроля риска.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Triangle Breakout with RSI", overlay=true)
// Input parameters
len = input.int(15, title="Triangle Length")
rsiPeriod = input.int(14, title="RSI Period")
rsiThresholdBuy = input.int(50, title="RSI Threshold for Buy")
rsiThresholdSell = input.int(50, title="RSI Threshold for Sell")
// Calculate the RSI
rsi = ta.rsi(close, rsiPeriod)
// Calculate highest high and lowest low for triangle pattern
highLevel = ta.highest(high, len)
lowLevel = ta.lowest(low, len)
// Create trendlines for the triangle
upperTrend = ta.linreg(high, len, 0)
lowerTrend = ta.linreg(low, len, 0)
// Plot the trendlines on the chart
plot(upperTrend, color=color.green, linewidth=2, title="Upper Trendline")
plot(lowerTrend, color=color.red, linewidth=2, title="Lower Trendline")
// Detect breakout conditions
breakoutUp = close > upperTrend
breakoutDown = close < lowerTrend
// Confirm breakout with RSI
buyCondition = breakoutUp and rsi > rsiThresholdBuy
sellCondition = breakoutDown and rsi < rsiThresholdSell
// Plot breakout signals with confirmation from RSI
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, size=size.small)
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small)
// Strategy: Buy when triangle breaks upwards and RSI is above 50; Sell when triangle breaks downwards and RSI is below 50
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Plot RSI on the bottom pane
hline(50, "RSI 50 Level", color=color.gray, linestyle=hline.style_dotted)
plot(rsi, color=color.blue, linewidth=2, title="RSI")