
L’idée centrale de cette stratégie est d’utiliser l’indicateur CCI pour déterminer la direction de la tendance du marché et d’utiliser l’indicateur EMA pour le traitement en douceur du CCI, pour réaliser des transactions de suivi de la tendance.
Calculer l’indicateur CCI. L’indicateur CCI est utilisé pour déterminer si le cours actuel d’une action est en survente ou en survente en fonction de l’écart entre le prix de clôture du jour et la moyenne des 20 derniers jours. La formule est: ((typical price - 20 day SMA) / (0.015 * 20 day standard price difference) }}.
Le traitement de l’indicateur CCI par l’élasticité EMA permet d’obtenir la courbe CCI-EMA afin de réduire les oscillations de l’indicateur CCI et de rendre le signal plus clair.
Configurer les points d’achat et de vente du CCI. Faire plus lorsque le CCI-EMA traverse les points d’achat; faire moins lorsque le CCI-EMA traverse les points de vente.
Les détenteurs de positions sont à nouveau à plat lorsque le CCI-EMA touche le point d’achat ou de vente.
L’utilisation du CCI pour déterminer la direction de la tendance du marché, combinée à des signaux de filtrage de faux EMA, permet de suivre efficacement la tendance du marché.
L’indicateur CCI est exceptionnellement sensible aux prix et peut rapidement capturer les virages de tendance. L’indicateur EMA réduit le taux de fausses informations.
L’adoption d’une stratégie de suivi des tendances peut réduire au maximum le nombre de transactions, réduire les coûts de transaction et les pertes de points de glissement.
Les stratégies de retour sont plus efficaces et ont une certaine viabilité sur le terrain.
L’indicateur CCI est trop sensible à la courbe, l’EMA n’est pas en mesure d’éliminer complètement tous les faux signaux et il existe un certain risque de désinformation.
La tendance pure suit la stratégie et est sujette à des pertes en cas de choc ou de renversement de tendance. Les indicateurs de jugement de tendance doivent être utilisés de manière appropriée.
Les stratégies de trading purement mécaniques, qui ne permettent pas d’ajuster les paramètres de manière flexible en fonction des conditions du marché, présentent un risque d’optimisation excessive.
Les données de détection sont insuffisantes et ne peuvent pas refléter complètement la performance du disque réel. Les paramètres doivent être ajustés de manière appropriée au moment du disque réel et le contrôle des pertes est strict.
Optimiser les paramètres du CCI et tester l’effet des paramètres sur des cycles de longueurs différentes.
Optimiser les paramètres EMA pour trouver la meilleure longueur de cycle EMA.
Testez différentes combinaisons de paramètres de points d’achat et de vente pour trouver le paramètre optimal.
En combinaison avec d’autres indicateurs, il est possible de juger que la tendance est inversée et de définir un stop-loss pour éviter l’expansion des pertes.
Ajout d’une fonction d’optimisation automatique des paramètres pour rechercher automatiquement la combinaison optimale de paramètres en fonction des différentes variétés.
Cette stratégie est une stratégie de suivi de tendance relativement simple dans l’ensemble. Elle utilise le CCI pour déterminer la direction de la tendance et est sensible aux changements de prix, en s’associant à l’EMA pour générer des signaux de négociation.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("CCI with EMA Strategy", overlay=false, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.07)
length = input(20, minval=1)
src = input(close, title="Source")
cciSellPoint = input(0, title = 'CCI Sell Point', type = input.integer)
cciBuyPoint = input(0, title = 'CCI Buy Buy Point', type = input.integer)
lengthcci = input(12,"length cci ema", minval=1)
ma = sma(src, length)
cci = (src - ma) / (0.015 * dev(src, length))
cciema=ema(cci,lengthcci)
plot(cci, "CCI", color=#996A15)
plot(cciSellPoint, title = 'CCI Sell Point', color = color.red, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciBuyPoint, title = 'CCI Buy Point', color = color.green, linewidth = 1, style = plot.style_cross, transp = 35)
plot(cciema, title = 'CCI EMA', color = color.green, linewidth = 1, transp = 35)
band1 = hline(100, "Upper Band", color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(-100, "Lower Band", color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=#9C6E1B, title="Background")
startLongTrade= cciema >cciBuyPoint
startShortTrade= cciema <cciSellPoint
//exitLong = cciema <cciSellPoint
//exitShort = cciema >cciBuyPoint
strategy.entry("long",strategy.long, when = startLongTrade )
//strategy.close( "long", when=exitLong)
strategy.entry("short",strategy.short,when=startShortTrade )
//strategy.close("short", when=exitShort)