Cette stratégie utilise deux oscillateurs stochastiques avec des paramètres différents pour déterminer les conditions taureau / ours. Il s'agit d'un système de croisement moyen mobile typique. L'oscillateur plus rapide juge les tendances à court terme et les signaux d'entrée, tandis que le plus lent confirme la direction générale de la tendance. Les signaux sont générés à partir de la combinaison.
La vitesse %K indique la direction de la tendance à court terme.
L'oscillateur lent %K reflète les conditions générales de la tendance.
Un taux de convergence rapide de %K au-dessus de SM1 indique un signal haussier.
Un taux de convergence rapide inférieur à SM1 indique un signal de baisse.
Fixer les points de prise de profit et de stop-loss à des pourcentages fixes.
Le double stochastique filtre le bruit et améliore la précision.
Un paramètre SM1 plus petit rend le %K sensible à la capture d'opportunités à court terme.
Un cycle plus long juge la tendance globale, un cycle plus court capte les renversements.
Les points de prise de profit et d'arrêt de perte fixes permettent de contrôler le risque sans fluctuations énormes.
La divergence entre les indicateurs peut entraîner des transactions manquées ou des signaux erronés.
Les points de prise de profit et d'arrêt de perte fixes manquent de souplesse pour s'adapter aux marchés.
Les paramètres stochastiques ont besoin d'optimisation répétitive, des réglages incorrects conduisent à l'échec.
La fréquence élevée des transactions à court terme augmente les coûts de transaction.
Ajouter d'autres indicateurs ou filtres pour assurer la qualité du signal.
Testez différentes combinaisons de paramètres pour trouver les paramètres optimaux.
Incorporer des mesures de volatilité pour dynamiser les niveaux de prise de profit et de stop-loss.
Utilisez des filtres temporels pour éviter les événements clés et les fluctuations de prix irrationnelles.
Optimiser les stratégies de gestion des capitaux comme la taille des positions pour améliorer l'efficacité des capitaux.
Cette stratégie intègre des oscillateurs stochastiques rapides et lents dans un système bidirectionnel. L'optimisation des paramètres et l'ajout de filtres tels que les indicateurs de tendance et de volatilité peuvent l'améliorer.
/*backtest start: 2023-08-17 00:00:00 end: 2023-09-16 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Double Stochastic", overlay=true) //-----------------------Stochastics------------------------// c= security(syminfo.tickerid,timeframe.period , close) h= security(syminfo.tickerid, timeframe.period, high) l= security(syminfo.tickerid, timeframe.period, low) c1= security(syminfo.tickerid, timeframe.period, close) h2= security(syminfo.tickerid, timeframe.period, high) l1= security(syminfo.tickerid, timeframe.period, low) K1 = input(5, title="K", minval=1, title="Leading K") SM1 = input(2, title="Smooth", minval=1, title="Leading Smooth ") k = ema(stoch(c, h, l, K1), SM1) K2 = input(97, title="K", minval=1, title="Lagging K") D2 = input(3, title="D", minval=1, title="Lagging D") SM2 = input(1, title="Smooth", minval=1, title="Lagging Smooth") k1 = ema(stoch(c1, h2, l1, K2), SM2) // buy ((k[2] < 40 and k > 40) and bars_up > 0 and k1 > 50) // sell (k[2] > 60 and k < 60) and bars_down > 0 and k1 < 50 //-----------------------Mechanics------------------------// buy = k1 > 50 and k < 30 and k > k[1] ? 1 : 0 sell = k1 < 50 and k > 70 and k < k[1] ? 1 : 0 buy_val = valuewhen(buy == 1, close, 1) sell_val = valuewhen(sell == 1, close, 1) buy_close = buy_val * input(1.20, minval=0.1) sell_close = sell_val / input(1.20, minval=0.1) //------------------------Buy/Sell-------------------------// longCondition = buy == 1 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) close_long = close >= buy_close if (close_long) strategy.close("My Long Entry Id") sellCondition = sell == 1 if (sellCondition) strategy.entry("My Short Entry Id", strategy.short) close_short = close <= sell_close if (close_short) strategy.close("My Short Entry Id")