この戦略は"価格アクションに基づく機関トレーダー戦略"と呼ばれる.これは,機関トレーダーが使用する特定の取引パターン,特に特定の"オーダーブロック"の周りにオーダーを出す傾向を利用しようと試みる.この戦略は,市場からのエントリーと出口を決定するためにフェアバリュー,流動性,価格アクションの要素を組み込む.
戦略の核心は,過去において重要な機関取引活動が行われた"注文ブロック"と"価格領域"を特定することである.これらの領域は,重要な流動性に関連している.注文ブロックは価格構造を使用して決定され,しばしば重要な技術価格レベルに関連している.
公正価値は,移動平均値などの指標に基づくツールの"合理的な価格"として定義されます.現在の価格が公正価値から遠く移動すると,これは市場の不均衡の兆候と見なされます.
流動性も重要な要因であり,機関取引者は高流動性領域で取引を行う傾向があります.
戦略は,単純な移動平均を計算することによって公正な価値を決定する.その後,長さ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)