No-Trade Conditions¶
Kill-Switch Logic¶
The no-trade filter is a kill switch: if any single condition below is true, the strategy output is no-trade. These conditions are evaluated independently. Multiple conditions can be true simultaneously, and all applicable reasons are reported.
No-trade conditions differ from invalidation conditions. Invalidation applies to a previously valid setup that deteriorates. No-trade conditions prevent a setup from ever being considered valid.
The Seven No-Trade Conditions¶
1. Neutral Bias¶
Source: Bias AI table
Condition: Daily bias shows neutral (0).
A neutral bias occurs when an outside bar closes inside the previous range, indicating the market has absorbed both directional attempts without committing. There is no draw-on-liquidity target.
Resolution: Wait for the next daily candle close to re-establish directional bias.
2. Invalid Hunt¶
Source: Session Hunt AI
Condition: Hunt state shows INVALID -- both sides of the session range have been swept without a viable re-extension.
When both the high and low of the session range are taken, there is no clear directional liquidity draw. The market has swept resting orders on both sides, and the hunt model cannot determine which direction institutions are targeting.
Resolution: A re-extension range may form. If only one side of the re-extension is swept, the hunt becomes valid again. If both sides of the re-extension are also swept, it is a double invalidation (see condition 6).
3. No Unspent Order Blocks in Path¶
Source: OB AI
Condition: No unspent (solid-line) order blocks exist between the current price and the DOL target in the required direction.
Without an order block in the path, there is no institutional structure to define the entry zone. The strategy does not enter trades based on bias and hunt alone -- structural confirmation via OB is mandatory.
Resolution: A new OB may form if displacement occurs. The strategy continues scanning for new OBs until the entry window closes.
4. Outside Entry Window¶
Source: System clock
Condition: Current time is before the entry window opens or after the EOD cutoff.
| Session | Before Window | After Window |
|---|---|---|
| NY | Before 07:00 ET | After 15:00 ET |
| London | Before 02:00 ET | After 07:00 ET |
Before the window is a waiting state -- the strategy continues scanning. After the EOD cutoff is a terminal no-trade for the session.
Resolution: For pre-session, wait. For post-EOD, no resolution within the current session.
5. Risk-Reward Below Minimum¶
Source: Computed from OB AI entry levels, stop, and Bias AI target
Condition: The risk-reward ratio for the configured entry tier is below 2:1.
This is a hard floor. Even a 9/9 confluence setup with 1.8:1 R:R is a no-trade. The strategy does not compromise risk management for confluence.
Resolution: If the aggressive tier fails the R:R check, the strategy checks safe and conservative tiers. If any tier meets 2:1, the setup is valid at that tier. If none do, it is a no-trade.
6. Double Invalidation (Re-extension Both-Sided Swept)¶
Source: Session Hunt AI
Condition: The initial session range had both sides swept (INVALID), a re-extension range formed, and then the re-extension range also had both sides swept.
This is the strongest no-trade signal. The market has swept liquidity pools on both sides of two consecutive ranges, indicating extreme chop with no directional commitment.
Resolution: None within the current session. A double invalidation is terminal.
7. Major News Event Blackout¶
Source: Configuration (news calendar integration is a future enhancement)
Condition: Current time falls within a configured news blackout window around a major economic event (FOMC, NFP, CPI, etc.).
News events cause volatility spikes that invalidate the normal ICT model assumptions. Order blocks get blown through, hunts occur in milliseconds, and FVGs form and fill in a single candle.
Configuration:
no_trade:
news_blackout:
enabled: true
events:
- name: "FOMC"
window_minutes_before: 30
window_minutes_after: 60
- name: "NFP"
window_minutes_before: 15
window_minutes_after: 30
- name: "CPI"
window_minutes_before: 15
window_minutes_after: 30
V1 implementation: The blackout windows are manually configured by time. Automatic economic calendar integration is a Phase 2 feature (see Roadmap).
No-Trade Evaluation Order¶
The seven conditions are evaluated in the order listed above. However, all conditions are always evaluated -- the strategy does not short-circuit after the first failure. This ensures the no_trade_reasons array contains every applicable reason, giving the trader complete context.
{
"setup_valid": false,
"no_trade_reasons": ["neutral_bias", "invalid_hunt", "outside_entry_window"]
}
No-Trade Summary Table¶
| # | Condition | Source | Terminal? | Resolution |
|---|---|---|---|---|
| 1 | Neutral bias | Bias AI | Per session | Next daily candle close |
| 2 | Invalid hunt | Session Hunt AI | Until re-extension | Re-extension with one-sided sweep |
| 3 | No unspent OB | OB AI | Until new OB forms | New displacement creates OB |
| 4 | Outside entry window | Clock | Terminal after EOD | Wait (pre) or none (post) |
| 5 | R:R below 2:1 | Computed | Until levels change | Price moves, new OB, or lower tier entry |
| 6 | Double invalidation | Session Hunt AI | Terminal | None within session |
| 7 | News blackout | Config | Until window ends | Wait for blackout to pass |
Interaction With Confluence Score¶
No-trade conditions are evaluated before the confluence score is computed. If any no-trade condition is true, the confluence score is not calculated and is reported as 0 in the StrategyFlags output.
The confluence minimum threshold (5) is a separate filter that applies only to setups that have passed all no-trade checks. A setup with no no-trade conditions but a confluence score of 4 is also a no-trade, with reason insufficient_confluence.