Cette stratégie est appelée
Le noyau de la stratégie consiste à identifier
La juste valeur est définie comme le prix "raisonnable" d'un instrument basé sur des indicateurs tels que des moyennes mobiles.
La liquidité est également un facteur clé, car les opérateurs institutionnels ont tendance à exécuter des opérations dans des zones à forte liquidité.
La stratégie détermine la juste valeur en calculant une moyenne mobile simple. Elle identifie ensuite des blocs d'ordres potentiels d'une longueur de 20 périodes. Si la différence entre le prix de clôture et la juste valeur est inférieure à 38,2% de la hauteur totale de la plage de blocs d'ordres, un bloc d'ordres est déterminé.
Les blocs d'ordres haussiers sont considérés comme des signaux d'achat, les blocs d'ordres baissiers comme des signaux de vente.
Les principaux avantages de la stratégie sont l'utilisation des modèles de négociation des traders institutionnels qui peuvent lui permettre de surpasser les stratégies plus mécanistes basées sur des indicateurs.
D'autres avantages sont les suivants:
La stratégie comporte également des risques potentiels tels que:
Pour atténuer ces risques, il est recommandé d'envisager:
Voici quelques optimisations potentielles de la stratégie:
En résumé, la stratégie offre une approche unique pour tirer parti du comportement des traders institutionnels. Elle combine plusieurs éléments et présente certains avantages. Mais comme la plupart des stratégies de trading, elle est également confrontée à des risques lorsque les conditions du marché changent ou qu'un comportement de prix inattendu se produit. Avec des tests continus, une optimisation et une gestion des risques, la stratégie peut devenir un outil de trading quantitatif précieux.
/*backtest start: 2024-01-23 00:00:00 end: 2024-02-22 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ICT Strategy", overlay=true) // Input variables length = input.int(20, minval=1, title="Order Block Length") fairValuePeriod = input.int(60, minval=1, title="Fair Value Period") // Calculate fair value fairValue = ta.sma(close, fairValuePeriod) // Determine order blocks isOrderBlock(high, low) => highestHigh = ta.highest(high, length) lowestLow = ta.lowest(low, length) absHighLowDiff = highestHigh - lowestLow absCloseFairValueDiff = (close - fairValue) (absCloseFairValueDiff <= 0.382 * absHighLowDiff) isBuyBlock = isOrderBlock(high, low) and close > fairValue isSellBlock = isOrderBlock(high, low) and close < fairValue // Plot fair value and order blocks plot(fairValue, color=color.blue, title="Fair Value") plotshape(isBuyBlock, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(isSellBlock, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy logic if (isBuyBlock) strategy.entry("Buy", strategy.long) if (isSellBlock) strategy.entry("Sell", strategy.short)