La stratégie de traçage des nuages octogonaux

Auteur:ChaoZhang est là., Date: 2023-12-20 15h08 et 22h
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie quantitative de suivi des tendances basée sur l'indicateur Ichimoku, qui consiste principalement à construire des positions longues et courtes dans des conditions spécifiques pour suivre les tendances du marché, combinée à certains mécanismes de stop loss pour contrôler les risques.

Principe de stratégie

Le noyau de cette stratégie est de construire des signaux de trading basés sur l'indicateur Ichimoku avec certains paramètres. L'indicateur Ichimoku se compose de quatre lignes: la ligne de conversion, la ligne de base, la portée principale A et la portée en retard B. La ligne de conversion est communément appelée le Tenkan-sen et la ligne de base est appelée le Kijun-sen.

Plus précisément, la stratégie suit principalement les règles de négociation suivantes:

  1. Allez long quand le prix dépasse le Tenkan-sen et quitte le nuage;

  2. Fermer les positions longues lorsque le prix tombe en dessous du Tenkan-sen;

  3. Allez court quand le prix tombe en dessous du Kijun-sen et entre dans le nuage;

  4. Fermez les positions courtes lorsque le prix remonte au-dessus du Tenkan-sen.

Grâce à ces principes de négociation long et court, la stratégie peut capturer efficacement les tendances du marché.

Analyse des avantages

Comparée à d'autres stratégies courantes de négociation de moyennes mobiles, cette stratégie présente les avantages suivants:

  1. Un jugement de tendance plus précis basé sur Ichimoku. Ichimoku se compose de plusieurs moyennes mobiles, ce qui le rend plus fiable pour la reconnaissance de tendance et le filtrage du bruit des MA individuels.

  2. Un meilleur effet filtrant avec plusieurs lignes.

  3. Les risques contrôlables: la mise en place d'une ligne stop-loss permet de contrôler les risques et les stop-loss en temps opportun.

  4. Les transactions moins défavorables que les autres stratégies de suivi de tendance réduisent les pertes de tirage.

  5. Les paramètres peuvent être ajustés pour s'adapter aux différentes conditions du marché.

Risques et optimisation

Il y a encore quelques risques à prendre en compte pour cette stratégie:

  1. Une mauvaise performance sur les marchés à fourchette peut entraîner des déficits.

  2. Inadéquation de la reconnaissance de l'inversion de tendance: faiblesse dans l'identification des inversions de tendance à court terme, risque de manquer des opportunités ou de rencontrer des inversions soudaines.

  3. Les paramètres différents peuvent avoir un impact significatif sur les performances, ce qui exige une expérience historique abondante.

Les aspects suivants peuvent être optimisés pour faire face aux risques susmentionnés:

  1. Ajouter des indicateurs de volatilité pour détecter les marchés non tendance et mettre en pause la stratégie.

  2. Incorporer des signaux d'inversion supplémentaires tels que des croisements de moyenne mobile.

  3. Utilisez l'apprentissage automatique pour l'optimisation automatisée des paramètres au lieu du réglage manuel.

  4. Mettre en place des lignes de stop loss dynamiques basées sur la volatilité du marché.

Conclusion

En général, cette stratégie tire parti de la force d'Ichimoku dans la capture des mouvements de tendance.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="RENKO ICHIMOKU STRATEGY", shorttitle="RENKO ICHIMOKU STRATEGY", overlay=true)
ro = open
rc = close

tenkanSenPeriods = input(10, minval=1, title="Tenkan-sen"),
kijunSenPeriods = input(30, minval=1, title="Kijun-sen")
SenkouSpanBPeriods = input(60, minval=1, title="Senkou Span B"),
displacement = input(30, minval=1, title="Chikou Span (Displacement)")

donchian(len) => avg(lowest(len), highest(len))

tenkanSen = donchian(tenkanSenPeriods)
kijunSen = donchian(kijunSenPeriods)
SenkouSpanA = avg(tenkanSen, kijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)

plot(tenkanSen, color=#0496ff, linewidth=2, title="Tenkan-sen")
// plot(kijunSen, color=#991515, title="Kijun-sen")
// plot(close, offset = -displacement, color=#459915, title="Chikou Span")

p1 = plot(SenkouSpanA, offset = displacement, color=green, title="Senkou Span A")
p2 = plot(SenkouSpanB, offset = displacement, color=red, title="Senkou Span B")
fill(p1, p2, color = SenkouSpanA > SenkouSpanB ? green : red)

// Entry/Exit Signals
tk_cross_bull = tenkanSen > kijunSen
tk_cross_bear = tenkanSen < kijunSen

price_below_tenkan = open < tenkanSen and close < tenkanSen
price_above_tenkan = open > tenkanSen and close > tenkanSen

price_below_kinjun = close < kijunSen
price_above_kinjun = close > kijunSen

tekan_above_kinjun = tenkanSen > kijunSen
tekan_below_kinjun = tenkanSen < kijunSen

ss_high = max(SenkouSpanA[displacement-1], SenkouSpanB[displacement-1])
ss_low = min(SenkouSpanA[displacement-1], SenkouSpanB[displacement-1])
price_inside_kumo = close > ss_high and close < ss_low

price_below_kumo = rc[1] < ro[1] and rc[0] < ro[0] and rc[1] < ss_low 
price_above_kumo = rc[1] > ro[1] and rc[0] > ro[0] and rc[1] > ss_high 

cs_cross_bull = mom(close, displacement-1) > 0
cs_cross_bear = mom(close, displacement-1) < 0

bullish = cs_cross_bull and not price_inside_kumo
bearish = cs_cross_bear and not price_inside_kumo



strategy.entry("Long", strategy.long, when=price_above_kumo and price_above_tenkan )
strategy.close("Long", when=price_below_tenkan )

strategy.entry("Short", strategy.short, when=price_below_kumo and price_below_tenkan )
strategy.close("Short", when=price_above_tenkan )

// longCondition = crossover(sma(close, 14), sma(close, 28))
// if (longCondition)
//     strategy.entry("My Long Entry Id", strategy.long)

// shortCondition = crossunder(sma(close, 14), sma(close, 28))
// if (shortCondition)
//     strategy.entry("My Short Entry Id", strategy.short)

Plus de