{
  "format": "itb.preset-link/0.5.0",
  "url": "https://app.itradingbot.net/backtest-new?customPreset=1~eJx1Uttu2zAM_Rc9J4XsotvgNztxWwOuM6TuumIoBEVWXCG6uJI6zAjy76M0O1iH9UnkOSJ5eDkiN6qdkQ5lP1DRrh7u1y1aoLK9naz7TT1ZRVNM1vft12g9LxD_xV6o7jnKUFE1ebMqgVdUaLKj7OC58yg7_v_Xn8IBOpeljJk37SFWUs04UaYLMc2GPFbt7XqbP8KnwTjhhdHEicjWm-YG4LneHJR_K7f5TUmKJ1JXd1VI7zy1nnQgCaU4_bTEX5Y4aZM0wxhYrrv33OXMnaAlo_lIFNW054rr2JXQoINK8vpmPCevfkRZgjFeoL2woMPYjtsIhYkcuCXMKCWcC9oHbhnK8AVOF8h_SF6FSNvDNP04hKYqWEfelmuQK_lPbmmYaQL6rHCHf-T54ZzoMyRy8uyCBymd5_OPJALdqKkSLBIzFvcBMdEBLR6enkoeeSaN42Q3wiZ6DYMwWo5ksGYv_JR4GbTFcxC6Czd2RBrauMvDNty73VfBTV7AYmEJ6_I6f6jjUQR3VYNl4cueSsdhZoCVMQ1ITfEJTnGwAk5GCgXVp2rPf2mcodNvnzvvJQ",
  "roundtrip_verified": true,
  "roundtrip_scope": "local Python codec only; not native UI or backend execution",
  "payload": {
    "symbols": [
      "BTCUSDT",
      "ETHUSDT",
      "SOLUSDT",
      "BNBUSDT",
      "XRPUSDT"
    ],
    "exchange": "BINANCE",
    "main_backtest": {
      "exchange": "BINANCE",
      "symbol": "BTCUSDT",
      "account_balance_mode": "NO_WITHDRAW",
      "position_side": "LONG",
      "backtest_mode": "AVERAGE_BY_LIMIT",
      "start_dt": "2026-08-01T12:00",
      "end_dt": "2026-08-31T12:00"
    },
    "money_management": {
      "initial_quote_qty": 1000,
      "first_order": 100,
      "maker_commission_perc": 0.02,
      "taker_commission_perc": 0.05,
      "margin_type": "ISOLATED",
      "leverage": 1
    },
    "risk_management": {
      "tp_perc": 0.75,
      "sl_perc": 0.5,
      "in_step_perc": 1,
      "in_dynamic_step": 1,
      "in_count": 0,
      "in_martin_gale": 1,
      "close_by_signal_only_profit_perc": -1
    },
    "main_inds": [
      {
        "n": "MA",
        "ss": "BTCUSDT",
        "Is": "1h",
        "ct": "DEFAULT",
        "at": "CL",
        "rs": false,
        "t": "EMA",
        "p": 20
      }
    ],
    "price_limit_inds": [],
    "close_by_inds": []
  },
  "encoded_length": 580,
  "json_bytes": 755,
  "preset_form": "multi",
  "symbols": [
    "BTCUSDT",
    "ETHUSDT",
    "SOLUSDT",
    "BNBUSDT",
    "XRPUSDT"
  ],
  "symbol_count": 5,
  "requires_vip": true,
  "restored_static_fields": [
    "backtest.exchange",
    "backtest.symbol",
    "backtest.account_balance_mode",
    "backtest.position_side",
    "backtest.backtest_mode",
    "backtest.start_dt",
    "backtest.end_dt",
    "backtest.initial_quote_qty",
    "backtest.first_order",
    "backtest.maker_commission_perc",
    "backtest.taker_commission_perc",
    "backtest.margin_type",
    "backtest.leverage",
    "backtest.tp_perc",
    "backtest.sl_perc",
    "backtest.in_step_perc",
    "backtest.in_dynamic_step",
    "backtest.in_count",
    "backtest.in_martin_gale",
    "backtest.close_by_signal_only_profit_perc"
  ],
  "restored_condition_fields": 7,
  "profile_annotations_not_encoded": [
    "profile.dca_enabled",
    "profile.hedge_enabled",
    "profile.fast_enabled",
    "profile.optimizer_enabled",
    "profile.timezone_intent"
  ],
  "manual_gates": [
    {
      "id": "tier",
      "expected": null,
      "reason": "A calculation over several pairs is a VIP feature: the calculation service compares the number of pairs with the account tier limit (one pair without VIP) and otherwise answers 400 'Too many symbols'. This generator does not observe the account tier."
    },
    {
      "id": "multi",
      "expected": true,
      "reason": "Multi-pair link: check that the pair table shows exactly the listed pairs. A pair the exchange list does not contain is skipped silently, and an earlier selection left in the table is not cleared by the link."
    },
    {
      "id": "fast",
      "expected": false,
      "reason": "Accelerated calculation (x200) is not part of what the link restores. A VIP account may switch it on by itself, so turn it off by hand before calculating."
    },
    {
      "id": "hedge",
      "expected": false,
      "reason": "Open the ordinary backtester and verify that classical hedge is disabled; no hedge settings are encoded."
    },
    {
      "id": "optimizer",
      "expected": false,
      "reason": "Use the ordinary form. No optimizer ranges or optimizer run command are encoded."
    },
    {
      "id": "dates",
      "reason": "Verify both displayed dates, timezone interpretation and available history/warm-up. The date strings contain no UTC offset."
    },
    {
      "id": "form",
      "reason": "After metadata loads, compare every restored scalar and card against the payload. Exchange/mode/symbol changes can clear or rewrite cards; leverage may be clamped."
    },
    {
      "id": "account",
      "reason": "Opening the normal application may require login. This offline generator provides no session, credentials, authorization bypass or calculation command."
    },
    {
      "id": "costs",
      "reason": "Confirm actual capital, order size, fees, leverage and instrument limits before separately authorizing a calculation."
    }
  ],
  "validation_warnings": [
    {
      "path": "$.settings",
      "code": "main_constraints.runtime_checks",
      "message": "Main source bounds are checked. Confirm symbol-specific leverage, ticks, order limits, available history and displayed dates in the panel."
    },
    {
      "path": "$.symbols",
      "code": "multi.vip_required",
      "message": "A calculation over more than one pair is a VIP feature: the calculation service compares the number of pairs with the account tier limit (1 pair without VIP) and otherwise refuses the run with 400 'Too many symbols'. This package does not observe the account tier; say this before offering the link, not after."
    },
    {
      "path": "$.symbols",
      "code": "multi.selection_unverified",
      "message": "A pair missing from the exchange list loaded in the form is not ticked and nothing reports it; pairs can also be dropped later for missing data. Compare the number of result rows with this list."
    },
    {
      "path": "$.symbols",
      "code": "multi.independent_runs",
      "message": "Each pair is calculated separately on the full deposit and the pairs do not interact. This is not a portfolio, the summed profit of the result page is not one account's result, and testing more pairs produces more results, not better ones."
    },
    {
      "path": "$.conditions",
      "code": "constraints.source_scope",
      "message": "Signal domains are checked against the bundled source-observed normalized subset; no deployed parity or execution is certified"
    },
    {
      "path": "$.status",
      "code": "card.educational_only",
      "message": "A completed example or proposal is a filled hypothesis; it is not readiness or permission to execute"
    }
  ],
  "card_status": "complete_example",
  "assumed_values": [
    {
      "field_id": "backtest.exchange",
      "value": "BINANCE",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.symbol",
      "value": "BTCUSDT",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.account_balance_mode",
      "value": "NO_WITHDRAW",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.position_side",
      "value": "LONG",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.backtest_mode",
      "value": "AVERAGE_BY_LIMIT",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.start_dt",
      "value": "2026-08-01T12:00",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.end_dt",
      "value": "2026-08-31T12:00",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.initial_quote_qty",
      "value": 1000,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.first_order",
      "value": 100,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.maker_commission_perc",
      "value": 0.02,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.taker_commission_perc",
      "value": 0.05,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.margin_type",
      "value": "ISOLATED",
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.leverage",
      "value": 1,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.tp_perc",
      "value": 0.75,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.sl_perc",
      "value": 0.5,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.in_step_perc",
      "value": 1,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.in_dynamic_step",
      "value": 1,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.in_count",
      "value": 0,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.in_martin_gale",
      "value": 1,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "backtest.close_by_signal_only_profit_perc",
      "value": -1,
      "origin": "illustrative",
      "note": "Illustrative value, not a recommendation or optimization result."
    },
    {
      "field_id": "profile.dca_enabled",
      "value": false,
      "origin": "derived",
      "note": "Explicit profile annotation, not a literal imported control. Multi-pair test: the pair list is transferred, timezone intent does not establish server date interpretation."
    },
    {
      "field_id": "profile.hedge_enabled",
      "value": false,
      "origin": "illustrative",
      "note": "Explicit profile annotation, not a literal imported control. Multi-pair test: the pair list is transferred, timezone intent does not establish server date interpretation."
    },
    {
      "field_id": "profile.fast_enabled",
      "value": false,
      "origin": "illustrative",
      "note": "Explicit profile annotation, not a literal imported control. Multi-pair test: the pair list is transferred, timezone intent does not establish server date interpretation."
    },
    {
      "field_id": "profile.multi_enabled",
      "value": true,
      "origin": "derived",
      "note": "Derived from the card's pair list: this annotation is true exactly when a symbols list is present. Calculating more than one pair is a VIP feature."
    },
    {
      "field_id": "profile.optimizer_enabled",
      "value": false,
      "origin": "illustrative",
      "note": "Explicit profile annotation, not a literal imported control. Multi-pair test: the pair list is transferred, timezone intent does not establish server date interpretation."
    },
    {
      "field_id": "profile.stop_be_enabled",
      "value": false,
      "origin": "illustrative",
      "note": "Explicit profile annotation. False means the two optional BE fields are absent."
    },
    {
      "field_id": "profile.timezone_intent",
      "value": "UTC",
      "origin": "illustrative",
      "note": "Explicit profile annotation, not a literal imported control. Multi-pair test: the pair list is transferred, timezone intent does not establish server date interpretation."
    }
  ],
  "run_ready": false,
  "execution": {
    "remote_requests": false,
    "backtest_executed": false,
    "live_trade_executed": false
  }
}
