Cette stratégie est un système de trading complet qui combine plusieurs indicateurs techniques, principalement en utilisant la moyenne mobile (MA), l'indice de force relative (RSI) et l'indice de direction moyen (ADX) pour identifier les tendances et l'élan du marché.
La stratégie utilise un mécanisme de vérification à trois niveaux pour confirmer les signaux de négociation: 1. Couche d'identification de tendance: utilise des croisements de moyennes mobiles de 20 périodes et de 50 périodes pour déterminer la direction de la tendance, avec un MA rapide passant au-dessus d'un MA lent indiquant une tendance haussière et vice versa. 2. Couche de confirmation de l'élan: utilise un indice de résistance de 14 périodes pour confirmer l'élan des prix, avec un indice de résistance supérieur à 50 indiquant un élan ascendant et inférieur à 50 indiquant un élan descendant. 3. Couche de filtre de la force de tendance: utilise l'ADX de 14 périodes pour mesurer la force de la tendance, ne confirmant les transactions que lorsque l'ADX est supérieur à 25, indiquant une force de tendance suffisante.
En outre, la stratégie met en œuvre un système dynamique de stop-loss et de take-profit basé sur l'ATR: - Le stop-loss est fixé à 2 fois ATR - Le bénéfice est fixé à 4 fois ATR, en maintenant un ratio risque-rendement de 1:2
Cette stratégie construit un système de trading relativement complet grâce à la synergie de plusieurs indicateurs techniques. Ses principales forces résident dans son mécanisme de vérification multicouche et son système de gestion dynamique des risques, bien que l'attention soit portée à son adaptabilité dans différents environnements de marché.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-15 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("Daily Trading Strategy", overlay=true) // --- Indikator --- // Kombinasi MA untuk trend fastMA = ta.sma(close, 20) slowMA = ta.sma(close, 50) // RSI untuk momentum rsi = ta.rsi(close, 14) // --- Fungsi untuk menghitung ADX --- adx(length) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) trur = ta.rma(ta.tr, length) plus = fixnan(100 * ta.rma(plusDM, length) / trur) minus = fixnan(100 * ta.rma(minusDM, length) / trur) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), length) // ADX untuk kekuatan trend adxValue = adx(14) // --- Kondisi Entry Long --- longEntry = ta.crossover(fastMA, slowMA) and rsi > 50 and adxValue > 25 // --- Kondisi Entry Short --- shortEntry = ta.crossunder(fastMA, slowMA) and rsi < 50 and adxValue > 25 // --- Stop Loss dan Take Profit --- // Fungsi untuk menghitung stop loss dan take profit getSLTP(entryPrice, isLong) => atr = ta.atr(14) sl = isLong ? entryPrice - atr * 2 : entryPrice + atr * 2 tp = isLong ? entryPrice + atr * 4 : entryPrice - atr * 4 [sl, tp] // Hitung SL dan TP untuk posisi Long [longSL, longTP] = getSLTP(close, true) // Hitung SL dan TP untuk posisi Short [shortSL, shortTP] = getSLTP(close, false) // --- Eksekusi Order --- if (longEntry) strategy.entry("Long", strategy.long, stop=longSL, limit=longTP) if (shortEntry) strategy.entry("Short", strategy.short, stop=shortSL, limit=shortTP) // --- Plot Indikator --- // MA plot(fastMA, color=color.blue) plot(slowMA, color=color.red) // RSI plot(rsi, color=color.orange) hline(50, color=color.gray) // ADX plot(adxValue, color=color.purple) hline(25, color=color.gray) // --- Alert --- alertcondition(longEntry, title="Long Entry", message="Long Entry") alertcondition(shortEntry, title="Short Entry", message="Short Entry")