Chiến lược này là một hệ thống giao dịch toàn diện dựa trên chỉ số sức mạnh tương đối (RSI), trung bình chuyển động (MA) và đà tăng giá. Nó xác định các cơ hội giao dịch tiềm năng bằng cách theo dõi sự thay đổi xu hướng RSI, nhiều khung thời gian chuyển động trung bình chéo và thay đổi đà tăng giá. Chiến lược đặc biệt tập trung vào xu hướng tăng của RSI và tăng giá liên tiếp, sử dụng nhiều xác nhận để tăng độ chính xác giao dịch.
Logic cốt lõi của chiến lược dựa trên các thành phần chính sau:
Chiến lược này xây dựng một hệ thống giao dịch tương đối hoàn chỉnh thông qua việc sử dụng toàn diện các chỉ số phân tích kỹ thuật và các phương pháp phân tích động lực. Sức mạnh của nó nằm trong nhiều cơ chế xác nhận và kiểm soát rủi ro toàn diện, mặc dù khả năng thích nghi với môi trường thị trường và tối ưu hóa tham số vẫn là những cân nhắc quan trọng. Thông qua tối ưu hóa và cải tiến liên tục, chiến lược này có tiềm năng trở thành một hệ thống giao dịch mạnh mẽ.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved Strategy with RSI Trending Upwards", overlay=true) // Inputs for moving averages ma21_length = input.int(21, title="21-day MA Length") ma55_length = input.int(55, title="55-day MA Length") ma144_length = input.int(144, title="144-day MA Length") // Moving averages ma21 = ta.sma(close, ma21_length) ma55 = ta.sma(close, ma55_length) ma144 = ta.sma(close, ma144_length) // RSI settings rsi_length = input.int(13, title="RSI Length") rsi_avg_length = input.int(13, title="RSI Average Length") rsi = ta.rsi(close, rsi_length) rsi_avg = ta.sma(rsi, rsi_avg_length) // RSI breakout condition rsi_breakout = ta.crossover(rsi, rsi_avg) // RSI trending upwards rsi_trending_up = rsi > rsi[1] and rsi[1] > rsi[2] // Higher high condition hh1 = high[2] > high[3] // 1st higher high hh2 = high[1] > high[2] // 2nd higher high hh3 = high > high[1] // 3rd higher high higher_high_condition = hh1 and hh2 and hh3 // Filter for trades starting after 1st January 2007 date_filter = (year >= 2007 and month >= 1 and dayofmonth >= 1) // Combine conditions for buying buy_condition = rsi > rsi_avg and higher_high_condition and rsi_trending_up //and close > ma21 and ma21 > ma55 // buy_condition = rsi > rsi_avg and rsi_trending_up // Sell condition // Sell condition: Close below 21-day MA for 3 consecutive days downtrend_condition = close < close[1] and close[1] < close[2] and close[2] < close[3] and close[3] < close[4] and close[4] < close[5] // downtrend_condition = close < close[1] and close[1] < close[2] and close[2] < close[3] sell_condition_ma21 = close < ma55 and close[1] < ma55 and close[2] < ma55 and close[3] < ma55 and close[4] < ma55 and downtrend_condition // Final sell condition sell_condition = ta.crossunder(close, ma55) or (ta.crossunder(rsi, rsi_avg) and ta.crossunder(close, ma55)) // Execute trades if (buy_condition and date_filter) // strategy.entry("Long", strategy.long, comment="Buy") strategy.entry("Long", strategy.long, qty=strategy.equity * 0.1 / close) if (sell_condition and date_filter) strategy.close("Long", comment="Sell") // Plot moving averages plot(ma55, color=color.red, title="55-day MA") plot(ma144, color=color.blue, title="144-day MA")