Cette stratégie est un système de trading de dynamique à double échéancier basé sur l'indicateur stochastique. Elle identifie les opportunités de trading potentielles en analysant les signaux de croisement stochastiques à travers différents échéanciers, en combinant les principes de dynamique et les méthodes de suivi des tendances pour un jugement plus précis des tendances du marché et le timing des transactions.
La logique de base repose sur les éléments clés suivants: 1. Utilise des indicateurs stochastiques sur deux délais: un délai plus long pour la confirmation de la tendance globale, un délai plus court pour la génération de signaux commerciaux spécifiques. Les règles de génération des signaux commerciaux: - Les signaux longs: lorsque la période courte %K dépasse le %D de la zone de survente (inférieure à 20), tandis que la période plus longue montre une tendance à la hausse. - Les signaux à court terme: lorsque la période à court terme %K dépasse le niveau de %D de la zone de surachat (au-dessus de 80), tandis que la période à plus long terme montre une tendance à la baisse. 3. Définit 14 périodes comme période de base pour l'indicateur stochastique, 3 périodes comme facteur de lissage. 4. Intégre le mécanisme de confirmation des modèles de bougies pour améliorer la fiabilité du signal.
Il s'agit d'une stratégie de trading bien structurée avec une logique claire, capturant les opportunités de marché grâce à une analyse d'indicateur stochastique à double échéancier.
/*backtest start: 2024-12-04 00:00:00 end: 2024-12-11 00:00:00 period: 5m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Enhanced Stochastic Strategy", overlay=true) // Input untuk Stochastic length = input.int(14, title="Length", minval=1) OverBought = input(80, title="Overbought Level") OverSold = input(20, title="Oversold Level") smoothK = input.int(3, title="Smooth %K") smoothD = input.int(3, title="Smooth %D") // Input untuk Manajemen Risiko tpPerc = input.float(2.0, title="Take Profit (%)", step=0.1) slPerc = input.float(1.0, title="Stop Loss (%)", step=0.1) // Hitung Stochastic k = ta.sma(ta.stoch(close, high, low, length), smoothK) d = ta.sma(k, smoothD) // Logika Sinyal co = ta.crossover(k, d) // %K memotong %D ke atas cu = ta.crossunder(k, d) // %K memotong %D ke bawah longCondition = co and k < OverSold shortCondition = cu and k > OverBought // Harga untuk TP dan SL var float longTP = na var float longSL = na var float shortTP = na var float shortSL = na if (longCondition) longTP := close * (1 + tpPerc / 100) longSL := close * (1 - slPerc / 100) strategy.entry("Buy", strategy.long, comment="StochLE") strategy.exit("Sell Exit", "Buy", limit=longTP, stop=longSL) if (shortCondition) shortTP := close * (1 - tpPerc / 100) shortSL := close * (1 + slPerc / 100) strategy.entry("Sell", strategy.short, comment="StochSE") strategy.exit("Buy Exit", "Sell", limit=shortTP, stop=shortSL) // Plot Stochastic dan Level hline(OverBought, "Overbought", color=color.red, linestyle=hline.style_dotted) hline(OverSold, "Oversold", color=color.green, linestyle=hline.style_dotted) hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted) plot(k, color=color.blue, title="%K") plot(d, color=color.orange, title="%D") // Tambahkan sinyal visual plotshape(longCondition, title="Buy Signal", location=location.belowbar, style=shape.labelup, color=color.new(color.green, 0), text="BUY") plotshape(shortCondition, title="Sell Signal", location=location.abovebar, style=shape.labeldown, color=color.new(color.red, 0), text="SELL")