Эта стратегия называется
Основой стратегии является выявление
Справедливая стоимость определяется как "разумная" цена инструмента, основанная на таких показателях, как скользящие средние.
Ликвидность также является ключевым фактором, поскольку институциональные трейдеры, как правило, выполняют сделки в районах с высокой ликвидностью.
Стратегия определяет справедливую стоимость путем расчета простой скользящей средней. Затем она определяет потенциальные блоки ордеров длиной 20 периодов. Если разница между ценой закрытия и справедливой стоимостью ниже 38,2% от общей высоты диапазона блока ордеров, определяется блок ордеров.
Бычьи блоки ордеров считаются сигналами покупки, медвежие - сигналами продажи.
Основные преимущества стратегии заключаются в использовании моделей торговли институциональных трейдеров, что может позволить ей превосходить более механистические стратегии, основанные на индикаторах.
Другие преимущества включают:
Стратегия также имеет некоторые потенциальные риски, такие как:
Для смягчения этих рисков рекомендуется рассмотреть:
Вот некоторые потенциальные оптимизации для стратегии:
В целом, стратегия предлагает уникальный подход к использованию институционального поведения трейдеров. Она сочетает в себе несколько элементов и имеет определенные преимущества. Но, как и большинство торговых стратегий, она также сталкивается с рисками при изменении рыночных условий или неожиданном ценовом поведении. При постоянном тестировании, оптимизации и управлении рисками стратегия может стать ценным количественным торговым инструментом.
/*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)