Strategi ini adalah sistem perdagangan adaptif yang mengintegrasikan beberapa metode perdagangan, menggabungkan strategi perdagangan trend, range trading, dan breakout untuk beradaptasi dengan kondisi pasar yang berbeda. Sistem ini menggunakan indikator teknis seperti EMA, RSI, dan OBV untuk penentuan keadaan pasar, menggabungkan indikator ADX untuk konfirmasi kekuatan tren, dan menerapkan stop-loss dinamis berbasis ATR untuk pengendalian risiko. Keunikan strategi ini terletak pada memungkinkan pengguna untuk secara bebas memilih strategi perdagangan mana yang akan memungkinkan dan secara tepat mengendalikan risiko untuk setiap perdagangan melalui parameter manajemen uang.
Strategi ini berisi tiga modul perdagangan utama:
Setiap modul menggunakan stop-loss dinamis berbasis ATR dan menetapkan target keuntungan berdasarkan rasio risiko-balasan yang ditentukan pengguna.
Langkah pengendalian risiko yang direkomendasikan:
Meningkatkan Adaptasi Volatilitas Pasar:
Meningkatkan Mekanisme Pergantian Strategi:
Memperkuat Sistem Manajemen Uang:
Mengoptimalkan Filter Sinyal:
Strategi ini mencapai perdagangan adaptif di lingkungan pasar yang berbeda melalui kombinasi multi-strategi dan sistem pengendalian risiko yang ketat. Desain modular memungkinkan konfigurasi yang fleksibel, sementara mekanisme manajemen uang yang komprehensif memastikan keamanan perdagangan. Melalui optimalisasi dan perbaikan terus-menerus, strategi menunjukkan janji untuk kinerja yang stabil di berbagai kondisi pasar. Untuk meningkatkan ketahanan dalam perdagangan langsung, disarankan untuk mengadopsi pendekatan manajemen uang konservatif dan secara teratur mengevaluasi dan menyesuaikan parameter strategi.
/*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)