La stratégie de croisement SMA Ichimoku est une stratégie de trading commune. Cette stratégie utilise les principes de croix d'or et de croix morte des moyennes mobiles, combinés avec le nuage Ichimoku et la moyenne mobile lisse SMA, pour former un système de trading relativement complet. Cette stratégie peut ouvrir et fermer automatiquement des positions d'actions.
Cette stratégie évalue principalement l'achat et la vente d'actions à travers la comparaison entre la ligne de conversion et la ligne de base de l'indicateur Ichimoku et les croisements des moyennes mobiles SMA à court et à long terme.
Plus précisément, le code définit la ligne de conversion, la ligne de base, la portée principale 1 et la portée principale 2 de l'indicateur Ichimoku.
Lorsqu'il s'agit d'acheter, la ligne de conversion doit être inférieure à la ligne de base et la moyenne mobile à court terme inférieure à la moyenne mobile à long terme, c'est-à-dire qu'une croix d'or se produit.
Lorsqu'il s'agit de juger de la vente, la ligne de conversion doit être supérieure à la ligne de base, et la moyenne mobile à court terme supérieure à la moyenne mobile à long terme, c'est-à-dire qu'il y a une croix morte.
En outre, le code définit également certaines conditions auxiliaires, telles que le prix de clôture supérieur à la journée précédente, et en utilisant la différence et la division des valeurs moyennes mobiles pour juger de la pente.
Cette stratégie combine les avantages de plusieurs indicateurs techniques et présente les avantages suivants:
Le nuage Ichimoku lui-même contient un jugement de tendance, combiné à des moyennes mobiles SMA peut former un jugement de tendance puissant.
Les moyennes mobiles SMA elles-mêmes peuvent déterminer les tendances et l'élan des prix.
L'ajout d'un jugement sur le prix de clôture peut éviter l'ouverture et la clôture inutiles de positions.
Le calcul de la pente moyenne mobile augmente le jugement sur l'élan des croisements de moyenne mobile et peut filtrer les faux croisements.
Dans l'ensemble, cette stratégie a un jugement de tendance relativement précis, peut réduire les transactions inutiles et a une certaine marge d'optimisation.
Cette stratégie comporte également des risques:
Tant Ichimoku que SMA peuvent être en retard et ne pas refléter les changements de prix dans le temps.
La combinaison de conditions multiples augmente la complexité et la probabilité d'erreurs.
La stratégie est basée uniquement sur des indicateurs techniques et ne peut juger de l'impact des grandes nouvelles.
La stratégie ne prévoit pas de conditions de stop loss, avec le risque d'augmentation des pertes.
La stratégie ne prend pas en compte des conditions particulières du marché telles que la consolidation.
Des paramètres incorrects peuvent également affecter les performances de la stratégie.
Cette stratégie peut être optimisée dans les aspects suivants:
Définir les conditions d'arrêt des pertes pour arrêter automatiquement les pertes lorsque les pertes augmentent.
Augmenter le jugement sur les grands événements d'actualité pour éviter leur impact.
Accroître le jugement sur les conditions particulières du marché, telles que l'augmentation de la plage de négociation ou l'ajustement des paramètres.
Tester et optimiser les combinaisons de paramètres pour trouver les paramètres optimaux.
Introduire des algorithmes d'apprentissage automatique pour l'optimisation des paramètres et le jugement du marché.
Ajoutez des indicateurs de dynamique pour éviter de fausses fuites.
Combinez plus de fondamentaux tels que les changements de volume.
En résumé, cette stratégie de croisement SMA Ichimoku intègre les avantages des moyennes mobiles Ichimoku et SMA pour former une stratégie de trading d'actions relativement complète. Cette stratégie a une forte capacité à déterminer les tendances et peut capturer efficacement les opportunités de tendance. Mais il existe également des problèmes tels que le retard, la grande complexité, le manque de stop loss. Cela donne une grande marge d'optimisation à cette stratégie. En définissant le stop loss, en jugeant les événements d'actualité majeurs, en optimisant les paramètres et plus encore, cette stratégie peut être continuellement améliorée pour devenir une stratégie de trading quantitative stable et fiable.
/*backtest start: 2023-09-15 00:00:00 end: 2023-10-15 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("Ichimoku+SMAsmoothed", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) // conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") SMA1=input(title="SMA LONG",defval=21) SMA2=input(title="SMA SHORT",defval=19) p=ohlc4[1] donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) //plot(conversionLine, color=#0496ff, title="Conversion Line") //plot(baseLine, color=#991515, title="Base Line") //plot(close, offset = -displacement, color=#459915, title="Lagging Span") //p1 = plot(leadLine1, offset = displacement, color=green, // title="Lead 1") //p2 = plot(leadLine2, offset = displacement, color=red, // title="Lead 2") //fill(p1, p2, color = leadLine1 > leadLine2 ? green : red) ma1=sma(p, SMA1) ma2=sma(p, SMA2) p_a = ma1*2 p_b = ma1 p_c = p_a - p_b p_d = p_c/24 p_e = ma2*2 p_f = ma2 p_g = p_e - p_f p_h = p_g/24 closelong = ohlc4<ohlc4[SMA1] and ohlc4<ohlc4[1]// and leadLine1<leadLine2 and p_h<p_d if (closelong) strategy.close("Long") closeshort = ohlc4>ohlc4[SMA1] and ohlc4>ohlc4[1]// and leadLine1>leadLine2 and p_h>p_d if (closeshort) strategy.close("Short") longCondition = ohlc4>ohlc4[1] and leadLine1>leadLine2 and p_h>p_d if (longCondition) strategy.entry("Long",strategy.long) shortCondition = ohlc4<ohlc4[1] and leadLine1<leadLine2 and p_h<p_d if (shortCondition) strategy.entry("Short",strategy.short)