Bài viết này giới thiệu một hệ thống chiến lược giao dịch kết hợp nhiều chỉ số kỹ thuật. Hệ thống tích hợp các phương pháp phân tích kỹ thuật khác nhau bao gồm MACD, EMA, Trung bình di chuyển đơn giản và MA100, cùng với quản lý rủi ro và bộ lọc thời gian, nhằm cung cấp cho các nhà giao dịch một giải pháp giao dịch toàn diện.
Chiến lược này là một hệ thống phân tích kỹ thuật đa chiến lược bao gồm bốn tiểu chiến lược độc lập: Chiến lược MACD, chiến lược EMA8, chiến lược MA đơn giản và chiến lược MA100. Hệ thống cho phép các nhà giao dịch linh hoạt lựa chọn các loại chiến lược khác nhau dựa trên điều kiện thị trường, với mỗi tiểu chiến lược có logic vào và ra duy nhất, được hỗ trợ bởi các cơ chế quản lý rủi ro tương ứng.
Chiến lược MACD: Thu thập xu hướng thị trường bằng cách xác định các mô hình tăng và giảm liên tiếp trong biểu đồ MACD.
Chiến lược EMA8: Kết hợp EMA8 hàng tuần, mức cao trước đây và phân tích mô hình nến. Hệ thống đi vào các vị trí dài khi giá phá vỡ trên EMA8 hàng tuần, đóng cửa trên mức cao trước đó và hiển thị các mô hình nến mạnh mẽ. Chiến lược này bao gồm cài đặt dừng lỗ 2%.
Chiến lược MA đơn giản: Sử dụng nhiều đường trung bình chuyển động theo cấp số nhân (10,15,25,35,40 thời gian) để xây dựng một hệ thống theo xu hướng. Các tín hiệu mua được kích hoạt khi MAs ngắn hơn trên MAs dài hơn và giá phá vỡ trên MA ngắn nhất. Một stop-loss 2% được thực hiện.
Chiến lược MA100: Kết hợp MA 100 ngày, MA 8 ngày và MA 25 ngày, kết hợp dao động stochastic cho các điều kiện bán quá mức. Hệ thống tìm kiếm các cơ hội mua trong các khu vực bán quá mức khi MA ngắn hạn cao hơn MA dài hạn và giá dao động gần MA100. Chiến lược này sử dụng cài đặt dừng lỗ 3%.
Hệ thống phân tích kỹ thuật đa chiến lược này cung cấp cho các nhà giao dịch một khuôn khổ quyết định giao dịch toàn diện bằng cách tích hợp nhiều phương pháp phân tích kỹ thuật trưởng thành.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ v5 code implements multiple trading strategies //@version=5 strategy("Multi-Strategy Trading System", overlay=true) // Input parameters for customization strategy_type = input.string("MACD", "Strategy Type", options=["MACD", "EMA8", "SimpleMA", "MA100"]) show_macd = input.bool(true, "Show MACD Signals") show_ema = input.bool(true, "Show EMA Signals") show_ma = input.bool(true, "Show MA Signals") // MACD Strategy Components [macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9) // Function to detect three consecutive ascending histogram bars isThreeAscendingBars(hist) => not na(hist[3]) and hist[3] < hist[2] and hist[2] < hist[1] and hist[1] < hist[0] // Function to detect two consecutive descending histogram bars isTwoDescendingBars(hist) => not na(hist[2]) and hist[2] > hist[1] and hist[1] > hist[0] // EMA Strategy Components ema8_weekly = request.security(syminfo.tickerid, "W", ta.ema(close, 8)) weeklyHigh = request.security(syminfo.tickerid, "W", high) previousWeekHigh = weeklyHigh[1] isStrongCandleWeekly = request.security(syminfo.tickerid, "W", close > open and (close - open) > (high - low) * 0.6) // Simple MA Strategy Components ema10 = ta.ema(close, 10) ema15 = ta.ema(close, 15) ema25 = ta.ema(close, 25) ema35 = ta.ema(close, 35) ema40 = ta.ema(close, 40) // MA100 Strategy Components ma100 = ta.sma(close, 100) ma8 = ta.sma(close, 8) ma25 = ta.sma(close, 25) // Corrected Stochastic Oscillator Calculation stochK = ta.stoch(high, low, close, 14) stochD = ta.sma(stochK, 3) isOversold = stochK < 20 and stochD < 20 // MACD Strategy Logic if strategy_type == "MACD" // Buy condition: Three ascending histogram bars after lowest if isThreeAscendingBars(histLine) strategy.entry("MACD Buy", strategy.long) // Sell condition: Two descending histogram bars after highest if isTwoDescendingBars(histLine) strategy.close("MACD Buy") // EMA8 Strategy Logic if strategy_type == "EMA8" if close > ema8_weekly and close > previousWeekHigh and isStrongCandleWeekly strategy.entry("EMA8 Buy", strategy.long) strategy.exit("EMA8 Exit", "EMA8 Buy", stop=low - (low * 0.02)) // Simple MA Strategy Logic if strategy_type == "SimpleMA" isUptrend = ema10 > ema15 and ema15 > ema25 and ema25 > ema35 and ema35 > ema40 if isUptrend and close > ema10 and close[1] <= ema10[1] strategy.entry("MA Buy", strategy.long) strategy.exit("MA Exit", "MA Buy", stop=low - (low * 0.02)) // MA100 Strategy Logic if strategy_type == "MA100" isUptrend = ma8 > ma100 and ma25 > ma100 isPriceNearMA100 = math.abs(close - ma100) / ma100 * 100 < 1 if isUptrend and isPriceNearMA100 and isOversold strategy.entry("MA100 Buy", strategy.long) strategy.exit("MA100 Exit", "MA100 Buy", stop=low - (low * 0.03)) // Plotting components for visualization plot(ma100, "MA100", color=color.blue, linewidth=2) plot(ema8_weekly, "EMA8 Weekly", color=color.yellow, linewidth=2) plot(series=histLine, title="MACD Histogram", style=plot.style_histogram, color=histLine > 0 ? color.green : color.red)