
La stratégie combine un nuage de graphiques d’équilibre à première vue et des moyennes mobiles simples à court terme (SMA) à court terme (SMA) et à long terme (SMA) pour identifier les signaux d’achat et de vente potentiels. Les signaux d’achat nécessitent un prix supérieur au nuage et au SMA à court terme et un repiqué sur le SMA à court terme après avoir traversé le SMA à court terme. Les signaux de vente nécessitent un prix inférieur au nuage et au SMA à long terme et un repiqué sur le SMA à court terme après avoir traversé le SMA à court terme.
La stratégie est basée sur les principes suivants:
Le programme calcule d’abord les composants de la nuée primaire nécessaires (lignes de conversion, lignes de référence, spans A et B), ainsi que les SMA à court et à long terme. Ensuite, il définit plusieurs conditions pour identifier la position du prix par rapport à la nuée et à la ligne uniforme.
Cette stratégie de trading en nuage multiple et en ligne égale cherche des opportunités d’entrée à faible risque pour revenir à la ligne égale dans une tendance établie en combinant un nuage d’équilibrage et une moyenne mobile simple. En filtrant les transactions pendant les marchés de gré à gré et les événements d’actualité majeurs, la stratégie réduit le risque de faux signaux, ce qui améliore la performance globale. La stratégie s’adresse principalement aux traders à moyen et long terme, qui se comportent bien sur des périodes de 1 heure et 2 heures, etc. Cependant, la stratégie a encore de la place pour d’autres optimisations, telles que l’introduction d’un stop loss explicite, l’optimisation des groupes de signaux, la modulation des paramètres de la paire, etc., afin d’obtenir une performance stratégique plus robuste à long terme.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud and Moving Average Strategy", shorttitle="ICMA", overlay=true)
// Input parameters
shortMA = input.int(55, title="Short-term Moving Average Length")
longMA = input.int(200, title="Long-term Moving Average Length")
// Calculate moving averages
shortSMA = ta.sma(close, shortMA)
longSMA = ta.sma(close, longMA)
// Ichimoku Cloud settings
conversionPeriod = input.int(9, title="Conversion Line Period")
basePeriod = input.int(26, title="Base Line Period")
spanBPeriod = input.int(52, title="Span B Period")
displacement = input.int(26, title="Displacement")
// Calculate Ichimoku Cloud components
conversionLine = ta.sma(high + low, conversionPeriod) / 2
baseLine = ta.sma(high + low, basePeriod) / 2
leadSpanA = (conversionLine + baseLine) / 2
leadSpanB = ta.sma(high + low, spanBPeriod) / 2
// Plot Ichimoku Cloud components
plot(leadSpanA, color=color.blue, title="Leading Span A")
plot(leadSpanB, color=color.red, title="Leading Span B")
// Entry conditions
aboveCloud = close > leadSpanA and close > leadSpanB
belowCloud = close < leadSpanA and close < leadSpanB
aboveShortMA = close > shortSMA
aboveLongMA = close > longSMA
belowShortMA = close < shortSMA
belowLongMA = close < longSMA
// Buy condition (Price retests 55 moving average after being above it)
buyCondition = aboveCloud and aboveLongMA and close[1] < shortSMA and close > shortSMA
// Sell condition (Price retests 55 moving average after being below it)
sellCondition = belowCloud and belowLongMA and close[1] > shortSMA and close < shortSMA
// Strategy entry and exit
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)
// Plot moving averages
plot(shortSMA, color=color.green, title="Short-term SMA")
plot(longSMA, color=color.red, title="Long-term SMA")
// Plot buy and sell signals
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")