Esta estratégia é um sistema de negociação quantitativo que combina padrões de preços e indicadores técnicos. Ele identifica principalmente rupturas de padrões triangulares e confirma negócios usando o impulso do RSI. A estratégia usa regressão linear para construir linhas de tendência superiores e inferiores, determinando sinais de negociação através de rupturas de preços e posições do RSI, alcançando uma combinação orgânica de análise de padrões e impulso.
A lógica principal consiste em dois componentes principais: reconhecimento de padrão de triângulo e confirmação do momento do RSI. Em primeiro lugar, ele usa regressão linear para calcular os máximos e mínimos recentes do período N, construindo linhas de tendência superiores e inferiores para formar um triângulo. Quando o preço quebra acima da linha de tendência superior e o RSI está acima de 50, ele desencadeia um sinal de compra; quando o preço quebra abaixo da linha de tendência inferior e o RSI está abaixo de 50, ele desencadeia um sinal de venda. A estratégia apresenta parâmetros ajustáveis para o comprimento do triângulo e o período do RSI, fornecendo forte adaptabilidade.
O Triangle Breakout with RSI Momentum Strategy é um sistema de negociação quantitativo completo e logicamente claro. Através do mecanismo de confirmação dupla de padrão e momento, ele melhora efetivamente a confiabilidade do sinal de negociação. Embora existam certos riscos, a estratégia tem bom valor prático por meio de otimização razoável de parâmetros e medidas de controle de risco.
/*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")