Strategi ini adalah sistem dagangan adaptif yang mengintegrasikan pelbagai kaedah dagangan, menggabungkan trend berikut, perdagangan julat, dan strategi dagangan pecah untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Sistem ini menggunakan penunjuk teknikal seperti EMA, RSI, dan OBV untuk penentuan keadaan pasaran, menggabungkan penunjuk ADX untuk pengesahan kekuatan trend, dan melaksanakan stop-loss dinamik berasaskan ATR untuk kawalan risiko.
Strategi ini mengandungi tiga modul dagangan utama:
Setiap modul menggunakan stop-loss dinamik berasaskan ATR dan menetapkan sasaran keuntungan berdasarkan nisbah risiko-balasan yang ditakrifkan oleh pengguna.
Langkah kawalan risiko yang disyorkan:
Meningkatkan Penyesuaian Volatiliti Pasaran:
Meningkatkan Mekanisme Pertukaran Strategi:
Mengukuhkan Sistem Pengurusan Wang:
Mengoptimumkan Penapisan Isyarat:
Strategi ini mencapai perdagangan adaptif merentasi persekitaran pasaran yang berbeza melalui gabungan pelbagai strategi dan sistem kawalan risiko yang ketat. Reka bentuk modular membolehkan konfigurasi yang fleksibel, sementara mekanisme pengurusan wang yang komprehensif memastikan keselamatan perdagangan. Melalui pengoptimuman dan peningkatan yang berterusan, strategi menunjukkan janji untuk prestasi yang stabil di pelbagai keadaan pasaran. Untuk meningkatkan ketahanan dalam perdagangan langsung, disyorkan untuk mengamalkan pendekatan pengurusan wang konservatif dan secara berkala menilai 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)