L'idée principale de cette stratégie est d'utiliser la croix dorée et la croix morte des moyennes mobiles comme signaux de trading, combinés à la rupture de prix des moyennes mobiles doubles pour effectuer des entrées et des arrêts.
Les principes de fonctionnement détaillés sont les suivants:
Calculer la moyenne mobile simple à court terme et la moyenne mobile simple à long terme.
Comparer si le prix est au-dessus ou en dessous des moyennes mobiles.
Il s'agit d'un système de gestion des risques qui consiste à évaluer les risques liés à l'évolution de la valeur de l'indicateur de risque.
Passez de position longue à position courte.
Les principaux avantages de cette stratégie sont les suivants:
La double stratégie de moyenne mobile combine à la fois le suivi de tendance et la réversion moyenne, ce qui profite du suivi des tendances du marché et de la capture des opportunités de revers.
La croix dorée et la croix morte des moyennes mobiles ont une certaine persistance, ce qui aide à filtrer les fausses écarts.
Sur la base de la théorie de la moyenne mobile, il est avantageux de verrouiller les bénéfices pendant les marchés tendance et de gamme.
Les principaux risques de cette stratégie sont les suivants:
La stratégie des moyennes mobiles doubles est sensible aux paramètres.
Les échecs peuvent entraîner des pertes. Des arrêts efficaces doivent être mis en place pour contrôler les risques.
L'inversion de la tendance n'est pas garantie de succès. La tendance initiale peut se poursuivre et entraîner des pertes.
Les principales orientations d'optimisation:
Tester et optimiser les paramètres de la moyenne mobile pour trouver la meilleure combinaison de paramètres.
Ajoutez un indicateur de détermination de tendance pour distinguer les marchés tendance et variation.
Mettre en œuvre un stop loss efficace pour contrôler les risques, tels que le stop loss de suivi, le stop loss des ordres, etc.
Combiner avec d'autres indicateurs pour améliorer la robustesse de la stratégie.
En conclusion, en tant que stratégie de suivi de l'inversion de la moyenne mobile double, elle prend en compte à la fois le suivi de la tendance et le trading d'inversion. Avec une bonne optimisation des paramètres et un contrôle des risques, elle peut obtenir de bons résultats. Cependant, toute stratégie comporte des risques tels que des erreurs de direction, une défaillance du stop loss, etc. Des tests et une optimisation continus sont nécessaires pour s'adapter aux marchés en évolution.
/*backtest start: 2023-11-29 00:00:00 end: 2023-12-06 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © HPotter // Simple SMA strategy // // WARNING: // - For purpose educate only // - This script to change bars colors //@version=4 strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true) Resolution = input(title="Resolution", type=input.resolution, defval="D") Source = input(title="Source", type=input.source, defval=close) xSeries = security(syminfo.tickerid, Resolution, Source) Length = input(title="Length", type=input.integer, defval=14, minval=2) TriggerPrice = input(title="Trigger Price", type=input.source, defval=close) BarColors = input(title="Painting bars", type=input.bool, defval=true) ShowLine = input(title="Show Line", type=input.bool, defval=true) UseAlerts = input(title="Use Alerts", type=input.bool, defval=false) reverse = input(title="Trade Reverse", type=input.bool, defval=false) pos = 0 xSMA = sma(xSeries, Length) pos := iff(TriggerPrice > xSMA, 1, iff(TriggerPrice < xSMA, -1, nz(pos[1], 0))) nRes = ShowLine ? xSMA : na alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY') alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL') alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position') possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() nColor = BarColors ? possig == -1 ? color.red : possig == 1 ? color.green : color.blue : na barcolor(nColor) plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)