Chiến lược này là một hệ thống giao dịch thích nghi tích hợp nhiều phương pháp giao dịch, kết hợp theo xu hướng, giao dịch phạm vi và chiến lược giao dịch đột phá để thích nghi với các điều kiện thị trường khác nhau. Hệ thống sử dụng các chỉ số kỹ thuật như EMA, RSI và OBV để xác định trạng thái thị trường, kết hợp chỉ số ADX để xác nhận sức mạnh xu hướng và thực hiện dừng lỗ động dựa trên ATR để kiểm soát rủi ro.
Chiến lược bao gồm ba mô-đun giao dịch chính:
Mỗi mô-đun sử dụng lệnh dừng lỗ động dựa trên ATR và đặt mục tiêu lợi nhuận dựa trên tỷ lệ rủi ro-lợi nhuận được xác định bởi người dùng.
Các biện pháp kiểm soát rủi ro được khuyến cáo:
Tăng cường thích nghi với biến động thị trường:
Cải thiện cơ chế thay đổi chiến lược:
Tăng cường hệ thống quản lý tiền:
Tối ưu hóa lọc tín hiệu:
Chiến lược này đạt được giao dịch thích nghi trong các môi trường thị trường khác nhau thông qua sự kết hợp nhiều chiến lược và các hệ thống kiểm soát rủi ro nghiêm ngặt. Thiết kế mô-đun cho phép cấu hình linh hoạt, trong khi các cơ chế quản lý tiền toàn diện đảm bảo an toàn giao dịch. Thông qua tối ưu hóa và cải tiến liên tục, chiến lược cho thấy hứa hẹn cho hiệu suất ổn định trong các điều kiện thị trường khác nhau. Để tăng độ mạnh mẽ trong giao dịch trực tiếp, nên áp dụng các phương pháp quản lý tiền bảo thủ và thường xuyên đánh giá và điều chỉnh các tham số chiến lược.
/*backtest start: 2024-01-01 00:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Ceulemans Trading Bot met ADX, Trendfilter en Selecteerbare Strategieën", overlay=true) // Parameters voor indicatoren emaLength = input.int(50, title="EMA Lengte") rsiLength = input.int(14, title="RSI Lengte") obvLength = input.int(20, title="OBV Lengte") rsiOverbought = input.int(65, title="RSI Overbought") rsiOversold = input.int(35, title="RSI Oversold") atrLength = input.int(14, title="ATR Lengte") adxLength = input.int(14, title="ADX Lengte") adxSmoothing = input.int(14, title="ADX Smoothing") // Voeg de smoothing parameter toe // Money Management Parameters capitalRisk = input.float(1.0, title="Percentage van kapitaal per trade", step=0.1) riskReward = input.float(3.0, title="Risk/Reward ratio", step=0.1) stopLossMultiplier = input.float(1.2, title="ATR Stop-Loss Multiplier", step=0.1) // Strategieën selecteren (aan/uit schakelaars) useTrendTrading = input.bool(true, title="Gebruik Trend Trading") useRangeTrading = input.bool(true, title="Gebruik Range Trading") useBreakoutTrading = input.bool(true, title="Gebruik Breakout Trading") // Berekening indicatoren ema = ta.ema(close, emaLength) rsi = ta.rsi(close, rsiLength) obv = ta.cum(ta.change(close) * volume) atr = ta.atr(atrLength) [diplus, diminus, adx] = ta.dmi(adxLength, adxSmoothing) // ADX berekening met smoothing avgVolume = ta.sma(volume, obvLength) // Huidige marktsituatie analyseren isTrending = close > ema and adx > 25 // Trend is sterk als ADX boven 25 is isOversold = rsi < rsiOversold isOverbought = rsi > rsiOverbought isBreakout = close > ta.highest(close[1], obvLength) and obv > ta.cum(ta.change(close[obvLength]) * volume) isRange = not isTrending and (close < ta.highest(close, obvLength) and close > ta.lowest(close, obvLength)) volumeFilter = volume > avgVolume // Strategie logica // 1. Trend Trading met tight stop-loss en ADX filter if (useTrendTrading and isTrending and isOversold and volumeFilter) strategy.entry("Koop Trend", strategy.long) strategy.exit("Exit Trend", stop=strategy.position_avg_price - stopLossMultiplier * atr, limit=strategy.position_avg_price + riskReward * stopLossMultiplier * atr) // 2. Range Trading if (useRangeTrading and isRange and rsi < rsiOversold and volumeFilter) strategy.entry("Koop Range", strategy.long) strategy.exit("Verkoop Range", stop=strategy.position_avg_price - stopLossMultiplier * atr, limit=strategy.position_avg_price + riskReward * stopLossMultiplier * atr) if (useRangeTrading and isRange and rsi > rsiOverbought and volumeFilter) strategy.entry("Short Range", strategy.short) strategy.exit("Exit Short Range", stop=strategy.position_avg_price + stopLossMultiplier * atr, limit=strategy.position_avg_price - riskReward * stopLossMultiplier * atr) // 3. Breakout Trading met volume if (useBreakoutTrading and isBreakout and volumeFilter) strategy.entry("Koop Breakout", strategy.long) strategy.exit("Exit Breakout", stop=strategy.position_avg_price - stopLossMultiplier * atr, limit=strategy.position_avg_price + riskReward * stopLossMultiplier * atr) // Indicatoren plotten plot(ema, title="EMA", color=color.blue, linewidth=2) hline(rsiOverbought, "RSI Overbought", color=color.red) hline(rsiOversold, "RSI Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) plot(adx, title="ADX", color=color.orange)