Stratégie de négociation de l'oscillateur de nuage Ichimoku

Auteur:ChaoZhang est là., Date: 2024-02-20 11:12:44 Je suis désolé
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading quantitative qui combine l'indicateur Ichimoku Cloud et l'indicateur Bollinger Bands.

La logique de la stratégie

Indicateur de nuage Ichimoku

L'indicateur Ichimoku Cloud se compose de quatre lignes: ligne de conversion, ligne de base, portée principale A et portée principale B. La ligne de conversion est le prix de clôture moyen sur une période à court terme (9 jours). La ligne de base est le prix de clôture moyen sur une période plus longue de 26 jours. La portée principale A est la moyenne entre la ligne de conversion et la ligne de base, qui mène l'action du prix. La portée principale B est le prix de clôture moyen sur une période encore plus longue de 52 jours, qui est en retard par rapport au prix. Les signaux d'achat et de vente sont générés lorsque la moyenne mobile à court terme dépasse ou dépasse celle à long terme.

Les bandes de Bollinger

Les bandes de Bollinger comprennent trois lignes: la ligne du milieu, la bande supérieure et la bande inférieure. La ligne du milieu est une moyenne mobile simple des prix de clôture sur une période de n jours (fichée à 20 jours ici). La bande supérieure est la ligne du milieu plus k fois (fichée à 2 fois ici) l'écart type. La bande inférieure est la ligne du milieu moins k fois l'écart type. Elle juge si les prix sont dans des plages de fluctuation normales et détermine le niveau de volatilité du marché.

Cette stratégie utilise la croix d'or et la croix de la mort de la portée principale B pour construire des signaux de trading.

Analyse des avantages

Cette stratégie combine l'indicateur Ichimoku Cloud et les bandes de Bollinger pour déterminer de manière globale les tendances et la volatilité du marché, ce qui peut capturer efficacement les informations sur les changements du marché pour localiser les signaux de trading.

Les paramètres de cette stratégie sont réglables pour optimiser pour différents produits et environnements de marché, ce qui la rend très adaptable.

Analyse des risques

Cette stratégie repose principalement sur les bandes de Bollinger pour déterminer la volatilité du marché. Les bandes peuvent échouer lorsque la volatilité extrême est causée par des événements de cygne noir. Dans ce cas, les signaux de trading construits sur la base du nuage Ichimoku peuvent générer de faux signaux.

En outre, les lignes du nuage Ichimoku sont elles-mêmes sensibles aux fortes fluctuations du marché. La conversion et les lignes de base peuvent fournir des signaux incorrects lorsque les prix fluctuent violemment.

Directions d'optimisation

D'autres indicateurs peuvent être considérés en combinaison pour déterminer le moment de l'entrée, tels que le KDJ pour voir si le marché est suracheté/survendu et le MACD pour vérifier les relations entre les moyennes mobiles à long terme et à court terme.

En outre, l'apprentissage automatique peut être exploité pour optimiser les paramètres du nuage Ichimoku. Différents paramètres ont des impacts significatifs sur les cycles et les produits.

Conclusion

Cette stratégie combine l'indicateur Ichimoku Cloud et les bandes de Bollinger pour prendre en compte à la fois les tendances du marché et la volatilité.


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

//@version=5
strategy("一目均衡表シグナル + ボリンジャーバンド", overlay=true)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2.0, title="Bollinger Bands Multiplier")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// ボリンジャーバンドの計算
basis = ta.sma(close, bbLength)
bbUpper = basis + bbMultiplier * ta.stdev(close, bbLength)
bbLower = basis - bbMultiplier * ta.stdev(close, bbLength)

// 1σ、2σ、3σのライン
bbUpper1 = basis + ta.stdev(close, bbLength)
bbLower1 = basis - ta.stdev(close, bbLength)

bbUpper2 = basis + 2 * ta.stdev(close, bbLength)
bbLower2 = basis - 2 * ta.stdev(close, bbLength)

bbUpper3 = basis + 3 * ta.stdev(close, bbLength)
bbLower3 = basis - 3 * ta.stdev(close, bbLength)

// 遅行スパンがローソクに交差した際のBuyとSellシグナル
buySignalLeadLine = ta.crossover(close, leadLine2)
sellSignalLeadLine = ta.crossunder(close, leadLine2)

// Strategy Entry and Exit Conditions for Lead Line
strategy.entry("BuyLeadLine", strategy.long, when = buySignalLeadLine)
strategy.close("BuyLeadLine", when = sellSignalLeadLine)

strategy.entry("SellLeadLine", strategy.short, when = sellSignalLeadLine)
strategy.close("SellLeadLine", when = buySignalLeadLine)

// Plotting Ichimoku Cloud
plot(conversionLine, color=color.new(color.blue, 0), title="Conversion Line")
plot(baseLine, color=color.new(color.red, 0), title="Base Line")
plot(close, offset = -displacement + 1, color=color.new(color.green, 0), title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=color.new(color.green, 0),
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=color.new(#cdf80d, 0),
     title="Leading Span B")

fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))



// 2σ、3σのラインをプロット

plot(bbUpper2, color=color.rgb(100, 96, 100), title="BB Upper 2σ")
plot(bbLower2, color=color.rgb(100, 96, 100), title="BB Lower 2σ")

plot(bbUpper3, color=color.rgb(67, 61, 68), title="BB Upper 3σ")
plot(bbLower3, color=color.rgb(67, 61, 68), title="BB Lower 3σ")

// Plotting Entry and Exit Signals
plotshape(series=buySignalLeadLine, title="Buy Signal (Lead Line)", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignalLeadLine, title="Sell Signal (Lead Line)", color=color.rgb(255, 115, 0), style=shape.triangledown, location=location.abovebar, size=size.small)


Plus de