About
Power of Three is ICT's picture of a trading day in three phases: accumulation, when price builds a range; manipulation, a false move out of that range that takes the stops beyond it; and distribution, the real move the other way. This template builds each phase from the market structure group of the indicator catalogue:
- Accumulation is the Asian range: the high and low of the Asia kill zone, 20:00 to 24:00 New York, from
killzones. - Manipulation is a sweep of that range in the London open kill zone, 02:00 to 05:00 New York: a bar trades below the Asian low and closes back above it (above the high and back below, for a short). With
useMidnightOpenthe long also needs its close below the midnight open frommidnight_open, buying at a discount to the true day open. - Distribution is the trade, opened at the close of that bar, at most one a day. The stop sits a buffer beyond London's extreme so far, the target at a multiple of the stop distance or, with
targetR0, at the other side of the Asian range. Whatever is still open is closed when the London close kill zone ends, 12:00 New York.
The kill zones follow New York's clock through its daylight saving changes. This template has not been measured on market data and makes no claim about results.
Parameters
| Name | Type | Default | Range or options | Description |
|---|---|---|---|---|
stopBufferPips | float | 2 | min 0, max 100 | Pips beyond London's low (high, for a short) so far where the stop sits. |
targetR | float | 2 | min 0, max 10 | The target as a multiple of the stop distance; 0 aims at the other side of the Asian range. |
useMidnightOpen | int | 1 | min 0, max 1 | 1 buys only below the midnight open and sells only above it, 0 ignores it. |
riskPercent | float | 1 | min 0, max 10 | Per cent of the balance lost if the stop is hit. 0 trades the run's lot size. |
allowShort | int | 1 | min 0, max 1 | 1 trades both directions, 0 long only. |
Use it in a strategy
python# The manipulation in your own strategy: a London bar that sweeps the Asian low
# and closes back inside, below the true day open.
k = ctx.ind("killzones")
m = ctx.ind("midnight_open")
bar = ctx.bars(1)[-1]
if k.london_open == 1 and k.asia_low is not None and m.open is not None:
if bar.low < k.asia_low < bar.close < m.open:
ctx.signal("LONG", sl_pips=20, tp_pips=40)To run the whole template, install it, switch it on and pick Power of Three under Plugins in the strategy list. Run it on M5, M15 or M30 bars.
What it provides
power_of_three/power_of_threeStrategy | The strategy, with its parameters: the stop buffer, the target, the midnight open filter, the risk per trade and the short side. |
When values are known
The Asian range is complete at 24:00 New York, hours before London opens; a sweep is known at the close of its bar, and the trade opens at the next bar's open. No decision uses a later bar.
Limits
- A template to start from, not a tested edge: it has not been measured on market data, so no result is promised. Backtest it on your markets before you trust it.
- The sweep is judged on one bar, beyond the range and back inside at its close; a sweep spread over several bars needs a change in the code.
- Days without an Asia session in the data use the last Asian range there is.
- Bank holidays and news are not known to the template. Spreads are wider in the Asian hours.