addedInput schema / properties / conditions / items / properties / baseCandles
Added value: +{
+ "description": "flip_zone: minimum candles of the base (2-20, default 3)",
+ "type": "integer"
+}
addedInput schema / properties / conditions / items / properties / baseRangeAtr
Added value: +{
+ "description": "flip_zone: maximum range of the base in ATR(14) (0.2-5, default 1)",
+ "type": "number"
+}
addedInput schema / properties / conditions / items / properties / confirmStrength
Added value: +{
+ "description": "trigger \"choch\": swing strength on the confirmTimeframe (1-10, default 2)",
+ "type": "integer"
+}
addedInput schema / properties / conditions / items / properties / confirmTimeframe
Added value: +{
+ "description": "zone/confluence with trigger close/rejection (default the zone timeframe) or choch (required, lower than the zone timeframe)",
+ "enum": [
+ "M1",
+ "M5",
+ "M15",
+ "M30",
+ "H1",
+ "H4",
+ "D1"
+ ],
+ "type": "string"
+}
addedInput schema / properties / conditions / items / properties / from
Added value: +{
+ "description": "fib_zone: lower retracement level (default 0.5)",
+ "type": "number"
+}
changedInput schema / properties / conditions / items / properties / level / anyOf
Previous value: -[
- {
- "type": "number"
- },
- {
- "additionalProperties": false,
- "properties": {
- "daysAgo": {
- "description": "day_high/day_low/day_close: 1 = yesterday, 2 = the day before…; day_open: 0 = today",
- "type": "integer"
- },
- "end": {
- "description": "range_high/range_low: HH:MM UTC (same day, after start)",
- "type": "string"
- },
- "indicator": {
- "description": "ref \"indicator\": highest/lowest = highest high / lowest low of the last N candles",
- "enum": [
- "sma",
- "ema",
- "rsi",
- "atr",
- "highest",
- "lowest"
- ],
- "type": "string"
- },
- "period": {
- "description": "ref \"indicator\": period (e.g. 50)",
- "type": "integer"
- },
- "ref": {
- "enum": [
- "session_high",
- "session_low",
- "range_high",
- "range_low",
- "prev_day_high",
- "prev_day_low",
- "prev_day_close",
- "day_high",
- "day_low",
- "day_open",
- "day_close",
- "indicator",
- "price"
- ],
- "type": "string"
- },
- "session": {
- "description": "session_high/session_low: asia 00:00-07:00, london 07:00-16:00, new_york 13:00-21:00 UTC",
- "enum": [
- "asia",
- "london",
- "new_york"
- ],
- "type": "string"
- },
- "shift": {
- "description": "ref \"indicator\": 0 = last closed candle (default), 1 = the one before…",
- "type": "integer"
- },
- "start": {
- "description": "range_high/range_low: HH:MM UTC",
- "type": "string"
- },
- "timeframe": {
- "description": "ref \"indicator\": candle timeframe",
- "enum": [
- "M1",
- "M5",
- "M15",
- "M30",
- "H1",
- "H4",
- "D1"
- ],
- "type": "string"
- },
- "timezone": {
- "description": "range_high/range_low: IANA time zone (e.g. Europe/London, America/New_York): the HH:MM times are local market time, so the same window follows the market in summer and winter (default UTC); the range must fall within the UTC day",
- "type": "string"
- }
- },
- "required": [
- "ref"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "type": "number"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "daysAgo": {
+ "description": "day_high/day_low/day_close: 1 = yesterday, 2 = the day before…; day_open: 0 = today",
+ "type": "integer"
+ },
+ "direction": {
+ "description": "ref \"fib\": only if the last impulse goes this way (default any)",
+ "enum": [
+ "bullish",
+ "bearish",
+ "any"
+ ],
+ "type": "string"
+ },
+ "end": {
+ "description": "range_high/range_low: HH:MM UTC (same day, after start)",
+ "type": "string"
+ },
+ "indicator": {
+ "description": "ref \"indicator\": highest/lowest = highest high / lowest low of the last N candles",
+ "enum": [
+ "sma",
+ "ema",
+ "rsi",
+ "atr",
+ "highest",
+ "lowest"
+ ],
+ "type": "string"
+ },
+ "level": {
+ "description": "ref \"fib\": the Fibonacci level (e.g. 0.618, 1, -0.27)",
+ "type": "number"
+ },
+ "minImpulseAtr": {
+ "description": "ref \"fib\": only impulses of at least this × ATR(14)",
+ "type": "number"
+ },
+ "minSwingAtr": {
+ "description": "swing_high/swing_low/fib: ignore swings that stand out less than this × ATR(14) (default 0)",
+ "type": "number"
+ },
+ "nth": {
+ "description": "swing_high/swing_low: 1 = the last confirmed swing (default), 2 = the one before…",
+ "type": "integer"
+ },
+ "period": {
+ "description": "ref \"indicator\": period (e.g. 50)",
+ "type": "integer"
+ },
+ "ref": {
+ "description": "Daily references, indicators, price, or MARKET STRUCTURE (M5-D1, closed candles only, no look-ahead): swing_high / swing_low = the last confirmed swing high/low (nth 2 = the one before…; a swing is a high/low with `strength` candles on each side, default 3, confirmed when those candles close); fib = a Fibonacci level of the LAST IMPULSE (the move between the last two opposite swings), measured from its end: 0.5 / 0.618 / 0.786 retracements, 1 = the impulse start, -0.27 / -0.618 = extensions beyond its end (targets).",
+ "enum": [
+ "session_high",
+ "session_low",
+ "range_high",
+ "range_low",
+ "prev_day_high",
+ "prev_day_low",
+ "prev_day_close",
+ "day_high",
+ "day_low",
+ "day_open",
+ "day_close",
+ "indicator",
+ "price",
+ "swing_high",
+ "swing_low",
+ "fib"
+ ],
+ "type": "string"
+ },
+ "session": {
+ "description": "session_high/session_low: asia 00:00-07:00, london 07:00-16:00, new_york 13:00-21:00 UTC",
+ "enum": [
+ "asia",
+ "london",
+ "new_york"
+ ],
+ "type": "string"
+ },
+ "shift": {
+ "description": "ref \"indicator\": 0 = last closed candle (default), 1 = the one before…",
+ "type": "integer"
+ },
+ "start": {
+ "description": "range_high/range_low: HH:MM UTC",
+ "type": "string"
+ },
+ "strength": {
+ "description": "swing_high/swing_low/fib: candles on each side of a swing (1-10, default 3)",
+ "type": "integer"
+ },
+ "timeframe": {
+ "description": "ref \"indicator\": candle timeframe; swing_high/swing_low/fib: structure timeframe (M5-D1)",
+ "enum": [
+ "M1",
+ "M5",
+ "M15",
+ "M30",
+ "H1",
+ "H4",
+ "D1"
+ ],
+ "type": "string"
+ },
+ "timezone": {
+ "description": "range_high/range_low: IANA time zone (e.g. Europe/London, America/New_York): the HH:MM times are local market time, so the same window follows the market in summer and winter (default UTC); the range must fall within the UTC day",
+ "type": "string"
+ }
+ },
+ "required": [
+ "ref"
+ ],
+ "type": "object"
+ }
+]
addedInput schema / properties / conditions / items / properties / maxAgeCandles
Added value: +{
+ "description": "zone: only zones created in the last N candles of its timeframe (1-500, default 50)",
+ "type": "integer"
+}
addedInput schema / properties / conditions / items / properties / maxTouches
Added value: +{
+ "description": "zone/confluence: 1 = first retest only (default), 2 = up to the second visit… (1-10)",
+ "type": "integer"
+}
addedInput schema / properties / conditions / items / properties / min
Added value: +{
+ "description": "confluence: how many zones must overlap (default 2)",
+ "type": "integer"
+}
addedInput schema / properties / conditions / items / properties / minCount
Added value: +{
+ "description": "equal_highs/equal_lows: swings needed (2-5, default 2)",
+ "type": "integer"
+}
addedInput schema / properties / conditions / items / properties / minImpulseAtr
Added value: +{
+ "description": "bos/choch/order_block/fib_zone: minimum size of the impulse (displacement) in ATR(14) (default 0)",
+ "type": "number"
+}
addedInput schema / properties / conditions / items / properties / minOverlapPips
Added value: +{
+ "description": "confluence: minimum height of the overlap in pips (default 0)",
+ "type": "number"
+}
addedInput schema / properties / conditions / items / properties / minSwingAtr
Added value: +{
+ "description": "Ignore swings that stand out less than this × ATR(14) (default 0)",
+ "type": "number"
+}
addedInput schema / properties / conditions / items / properties / pattern
Added value: +{
+ "description": "candle_pattern and trigger \"rejection\": pin_bar, engulfing or any (default)",
+ "enum": [
+ "pin_bar",
+ "engulfing",
+ "any"
+ ],
+ "type": "string"
+}
changedInput schema / properties / conditions / items / properties / shift / description
Previous value: -"candle_direction: 1 = last closed candle (default), 2 = the one before…"New value: +"candle_direction / candle_pattern: 1 = last closed candle (default), 2 = the one before…"
addedInput schema / properties / conditions / items / properties / strength
Added value: +{
+ "description": "bos/choch/structure_trend/order_block/fib_zone/equal_*: candles on each side of a swing (1-10, default 3)",
+ "type": "integer"
+}
addedInput schema / properties / conditions / items / properties / to
Added value: +{
+ "description": "fib_zone: upper retracement level (default 0.618)",
+ "type": "number"
+}
changedInput schema / properties / conditions / items / properties / tolerancePips / description
Previous value: -"retest: how close to the level (in pips) counts as a retest (default 0)"New value: +"retest: how close to the level (in pips) counts as a retest (default 0); equal_highs/equal_lows: max distance between the swings (default 0.1 × ATR)"
changedInput schema / properties / conditions / items / properties / trigger / description
Previous value: -"fvg_retest: touch = enter as soon as price reaches the gap (default); close = when the candle that returns to the gap closes"New value: +"fvg_retest: touch (default) or close. zone/confluence: touch (default), close, rejection or choch"
changedInput schema / properties / conditions / items / properties / trigger / enum
Previous value: -[
- "touch",
- "close"
-]New value: +[
+ "touch",
+ "close",
+ "rejection",
+ "choch"
+]
changedInput schema / properties / conditions / items / properties / type / description
Previous value: -"Same as create_conditional_order (price_above/below, crosses_above/below, close_above/below, range_breakout, consecutive_closes, sweep_above/below, fvg_retest = first retest of a fair value gap, fvg_formed = a new gap just formed (pair it with a limit entry in the gap), time_window, days_of_week, retest {level, direction up|down, timeframe, maxCandles, tolerancePips} = break and retest of a level: a candle closes beyond the level (breakout), then within maxCandles candles (1-50, default 10) the first candle that comes back to it (within tolerancePips, default 0) and closes on the breakout side fires at its close; a close back inside before that cancels the breakout) plus two backtest conditions: compare {left, op, right}: compares two values (numbers or references), op above / below / crosses_above / crosses_below — e.g. trend filters: price above the D1 EMA 50, D1 EMA 20 above D1 EMA 50, H1 RSI below 30, yesterday's high above the day before's; crosses_* can be the entry trigger (moving-average crossover). candle_direction {timeframe, direction bullish|bearish, shift}: the last closed candle of that timeframe (shift 1) closed up/down — e.g. \"yesterday was bullish\"."New value: +"Same as create_conditional_order (price_above/below, crosses_above/below, close_above/below, range_breakout, consecutive_closes, sweep_above/below, fvg_retest = first retest of a fair value gap, fvg_formed = a new gap just formed (pair it with a limit entry in the gap), time_window, days_of_week, retest {level, direction up|down, timeframe, maxCandles, tolerancePips} = break and retest of a level: a candle closes beyond the level (breakout), then within maxCandles candles (1-50, default 10) the first candle that comes back to it (within tolerancePips, default 0) and closes on the breakout side fires at its close; a close back inside before that cancels the breakout) plus two backtest conditions: compare {left, op, right}: compares two values (numbers or references), op above / below / crosses_above / crosses_below — e.g. trend filters: price above the D1 EMA 50, D1 EMA 20 above D1 EMA 50, H1 RSI below 30, yesterday's high above the day before's; crosses_* can be the entry trigger (moving-average crossover). candle_direction {timeframe, direction bullish|bearish, shift}: the last closed candle of that timeframe (shift 1) closed up/down — e.g. \"yesterday was bullish\". MARKET STRUCTURE (M5-D1, closed candles, no look-ahead; a swing = a high/low with `strength` candles on each side, default 3, known when those candles close): bos {timeframe, direction bullish|bearish, maxCandles, minImpulseAtr} = filter: the last break of structure (a close beyond the last swing) was in that direction within maxCandles candles (default 20); choch = the same but it reversed the previous break (change of character); structure_trend {timeframe, direction} = higher highs and higher lows (bullish) / lower highs and lower lows (bearish); candle_pattern {timeframe, pattern pin_bar|engulfing|any, direction, shift} = the last closed candle is a rejection candle. zone {zone, timeframe, direction, trigger, …} = ENTRY TRIGGER when price comes back to a live zone: zone order_block (last opposite candle before the impulse that broke structure; minImpulseAtr for displacement), flip_zone (a base of baseCandles+ candles within baseRangeAtr × ATR, default 3 and 1, broken by a close: broken support becomes resistance and vice versa), fib_zone (between the from/to retracements of the LAST impulse, default 0.5-0.618; OTE 0.62-0.79), fvg (fair value gap), equal_highs / equal_lows (2+ swing highs/lows within tolerancePips, default 0.1 × ATR: liquidity). A zone dies when a candle closes beyond it; maxAgeCandles (default 50) = how recent; maxTouches (default 1) = first retest only, 2 = up to the second visit… trigger: touch (default: the minute price reaches it), close (a confirmTimeframe candle touches it and closes back outside), rejection (same, with a pin bar / engulfing candle), choch (a CHoCH on a LOWER confirmTimeframe while price is in the zone: multi-timeframe entry). confluence {direction, zones:[{zone, timeframe, …}, …] (2-4), min (default 2), minOverlapPips, trigger…} = ENTRY TRIGGER at the OVERLAP of at least `min` live zones (the entry zone is their intersection; results are broken down by combination). The zone of the trigger is used by stop/limit \"zone\" (stop beyond its far edge, limit at its near edge / midpoint / far edge)."
changedInput schema / properties / conditions / items / properties / type / enum
Previous value: -[
- "price_above",
- "price_below",
- "crosses_above",
- "crosses_below",
- "close_above",
- "close_below",
- "range_breakout",
- "consecutive_closes",
- "sweep_above",
- "sweep_below",
- "fvg_retest",
- "fvg_formed",
- "time_window",
- "days_of_week",
- "compare",
- "candle_direction",
- "retest"
-]New value: +[
+ "price_above",
+ "price_below",
+ "crosses_above",
+ "crosses_below",
+ "close_above",
+ "close_below",
+ "range_breakout",
+ "consecutive_closes",
+ "sweep_above",
+ "sweep_below",
+ "fvg_retest",
+ "fvg_formed",
+ "time_window",
+ "days_of_week",
+ "compare",
+ "candle_direction",
+ "retest",
+ "bos",
+ "choch",
+ "structure_trend",
+ "zone",
+ "confluence",
+ "candle_pattern"
+]
addedInput schema / properties / conditions / items / properties / zone
Added value: +{
+ "description": "zone: the zone kind",
+ "enum": [
+ "order_block",
+ "flip_zone",
+ "fib_zone",
+ "fvg",
+ "equal_highs",
+ "equal_lows"
+ ],
+ "type": "string"
+}
addedInput schema / properties / conditions / items / properties / zones
Added value: +{
+ "description": "confluence: 2-4 zones, e.g. [{\"zone\":\"order_block\",\"timeframe\":\"M15\"},{\"zone\":\"flip_zone\",\"timeframe\":\"M15\"},{\"zone\":\"fib_zone\",\"timeframe\":\"M15\",\"from\":0.5,\"to\":0.618}]",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "baseCandles": {
+ "type": "integer"
+ },
+ "baseRangeAtr": {
+ "type": "number"
+ },
+ "from": {
+ "type": "number"
+ },
+ "maxAgeCandles": {
+ "type": "integer"
+ },
+ "minCount": {
+ "type": "integer"
+ },
+ "minGap": {
+ "type": "number"
+ },
+ "minImpulseAtr": {
+ "type": "number"
+ },
+ "minSwingAtr": {
+ "type": "number"
+ },
+ "strength": {
+ "type": "integer"
+ },
+ "timeframe": {
+ "enum": [
+ "M5",
+ "M15",
+ "M30",
+ "H1",
+ "H4",
+ "D1"
+ ],
+ "type": "string"
+ },
+ "to": {
+ "type": "number"
+ },
+ "tolerancePips": {
+ "type": "number"
+ },
+ "zone": {
+ "enum": [
+ "order_block",
+ "flip_zone",
+ "fib_zone",
+ "fvg",
+ "equal_highs",
+ "equal_lows"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "zone",
+ "timeframe"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedInput schema / properties / sensitivity
Added value: +{
+ "description": "true: also run the rule with neighbouring parameters (swing strength ±1 for structure conditions, target ±0.5R) and report each result, to check it is not fitted to the past",
+ "type": "boolean"
+}
changedInput schema / properties / trade / properties / entry / properties / at / properties / point / description
Previous value: -"type \"fvg\": near edge, midpoint (default) or far edge"New value: +"type \"fvg\" / \"zone\": near edge, midpoint (default) or far edge"
changedInput schema / properties / trade / properties / entry / properties / at / properties / type / description
Previous value: -"offset: N pips better than the signal price; price: fixed; level: a reference (Asian low, EMA…); fvg: inside the gap of an fvg condition"New value: +"offset: N pips better than the signal price; price: fixed; level: a reference (Asian low, EMA, Fibonacci level…); fvg: inside the gap of an fvg condition; zone: inside the zone of a zone/confluence condition"
changedInput schema / properties / trade / properties / entry / properties / at / properties / type / enum
Previous value: -[
- "offset",
- "price",
- "level",
- "fvg"
-]New value: +[
+ "offset",
+ "price",
+ "level",
+ "fvg",
+ "zone"
+]
changedInput schema / properties / trade / properties / management / description
Previous value: -"Trade management while open: break-even and partial closes (checked after the stop on each 1-minute candle: worst case)"New value: +"Trade management while open: break-even and partial closes (checked after the stop on each 1-minute candle: worst case) and exits by price behaviour (no progress, compression). The same exits exist on live conditional orders (action.exitIfNoProgress / exitOnCompression)"
addedInput schema / properties / trade / properties / management / properties / exitIfNoProgress
Added value: +{
+ "additionalProperties": false,
+ "description": "Close at the close of the candle when price has made no new high (buy) / low (sell) for N closed candles of that timeframe since entry, e.g. {\"candles\":6,\"timeframe\":\"M5\"}",
+ "properties": {
+ "candles": {
+ "type": "integer"
+ },
+ "timeframe": {
+ "enum": [
+ "M1",
+ "M5",
+ "M15",
+ "M30",
+ "H1",
+ "H4",
+ "D1"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "candles",
+ "timeframe"
+ ],
+ "type": "object"
+}
addedInput schema / properties / trade / properties / management / properties / exitOnCompression
Added value: +{
+ "additionalProperties": false,
+ "description": "Close when the last N closed candles span less than maxRangeAtr × ATR(14) of that timeframe (price accumulating instead of moving), e.g. {\"candles\":6,\"timeframe\":\"M5\",\"maxRangeAtr\":0.8}",
+ "properties": {
+ "candles": {
+ "type": "integer"
+ },
+ "maxRangeAtr": {
+ "type": "number"
+ },
+ "timeframe": {
+ "enum": [
+ "M1",
+ "M5",
+ "M15",
+ "M30",
+ "H1",
+ "H4",
+ "D1"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "candles",
+ "timeframe",
+ "maxRangeAtr"
+ ],
+ "type": "object"
+}
changedInput schema / properties / trade / properties / stop / properties / edge / description
Previous value: -"type \"fvg\": far edge (default; below a bullish gap / above a bearish gap), near edge, midpoint, or pattern = beyond the low/high of the three candles that form the gap"New value: +"type \"fvg\" / \"zone\": far edge (default; below a bullish zone / above a bearish zone), near edge, midpoint, or pattern = beyond the low/high of the three candles that form the gap (fvg)"
changedInput schema / properties / trade / properties / stop / properties / type / description
Previous value: -"pips: distance from entry; price: fixed price; level: a reference (the Asian low, an EMA…); wick: beyond the sweep wick (or the trigger candle extreme); atr: multiple × ATR from the entry; fvg: at an edge of the gap of the fvg_retest/fvg_formed condition (edge far by default) plus bufferPips"New value: +"pips: distance from entry; price: fixed price; level: a reference (the Asian low, an EMA, the last swing high…); wick: beyond the sweep wick (or the trigger / confirmation candle extreme); atr: multiple × ATR from the entry; fvg: at an edge of the gap of the fvg_retest/fvg_formed condition (edge far by default) plus bufferPips; zone: at an edge of the zone of the zone/confluence condition (edge far by default) plus bufferPips"
changedInput schema / properties / trade / properties / stop / properties / type / enum
Previous value: -[
- "pips",
- "price",
- "level",
- "wick",
- "atr",
- "fvg"
-]New value: +[
+ "pips",
+ "price",
+ "level",
+ "wick",
+ "atr",
+ "fvg",
+ "zone"
+]