本策略名为“基于价格行为的机构交易策略”。它attempts to利用机构交易者的某些交易模式,特别是他们倾向于在特定“订单区块”附近下单的倾向。 该策略结合了公平价值、流动性和价格行为的元素,以确定进入和退出市场的时机。
该策略的核心是识别“订单区块”- 即过去发生过大量机构交易活动的价格区域。 这些区域与显著的流动性相关。订单区块是使用价格结构确定的,通常与关键的技术价格水平相关。
公平价值被定义为基于移动平均线等指标的工具的“合理”价格。当当前价格远离公平价值时,这被视为市场失衡的信号。
流动性也是一个关键因素,因为机构交易者倾向于在高流动性区域执行交易。
该策略通过计算简单移动平均线来确定公平价值。然后它识别长度为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)