Jev-Driven Short-Horizon Maker Strategy for Binance USDⓈ-M Futures V3
Jev-Driven Short-Horizon Maker Strategy for Binance USDⓈ-M Futures V3
Risk warning: This strategy is intended for research and small-scale validation and does not guarantee profits. Jev returns event probabilities that have not yet been fully calibrated for the selected instrument; they are not certain market directions or trading win rates. The strategy currently has no hard stop-loss, daily loss circuit breaker, or liquidation-distance protection. When the holding-time budget expires, it only places a reduce-only Maker order and cannot guarantee an immediate exit. Run it in DryRun mode first and verify fees, contract specifications, forecast calibration, and fill quality before enabling live orders.
Strategy Concept
This is a single-instrument, one-way net-position strategy for short-horizon perpetual-futures trading on the FMZ platform. The current implementation supports Binance USDⓈ-M perpetual contracts only.
Instead of asking Jev to directly choose between buy, sell, and wait, V3 separates the task into three groups of questions:
- Classify the future mid-price return over 5, 15, 30, and 60 seconds into mutually exclusive ranges;
- Score adverse-selection risk separately for resting buy and sell orders;
- Estimate the probability that a passive order near the best bid or ask will fill.
The model evaluates market events only. Position management, exposure limits, cost coverage, signal validity, order pricing, and opening or closing decisions remain deterministic local rules. This separation makes it possible to distinguish between a weak directional forecast, poor fill probability, insufficient edge after costs, and a locally blocked trade.
The Jev input includes order-book depth, Microprice, VAMP, order-book imbalance, sampled OFI, aggressive-trade direction, CVD, recent returns, and short-window volatility. Account balance, actual position, trading permissions, and previous model decisions are deliberately excluded from the model state.
Forecast boundaries are volatility-adjusted rather than fixed across instruments. The strategy first estimates volatility from recent one-minute bars and falls back to live samples when necessary. It then derives the neutral range, outer-move boundary, price-drift tolerance, and requoting distance. The outer boundary is also subject to a transaction-cost floor.
text
Order-book and trade sampling
↓
Volatility calibration and data-quality checks
↓
Jev: multi-horizon forecast + side-specific toxicity + fill probability
↓
Local probability, confidence, cost, position, and freshness filters
↓
Post Only Maker order
↓
Order protection, timed exit, and forecast/fill-quality evaluation
Signals and Entry
The strategy samples the order book, recent trades, and mid-price once per second. It requires at least 60 seconds of continuous warm-up and valid order-book timestamps, recent trades, and trade-batch continuity before requesting a new Jev decision. Jev requests are asynchronous and spaced at least five seconds apart.
The main trading horizon is 30 seconds. Jev assigns probabilities to five mutually exclusive return classes: strong down, down, flat, up, and strong up. The local strategy compares the strong-up and strong-down probabilities and selects the larger one as the candidate direction.
Opening new exposure requires all of the following:
- The selected strong-move probability is at least 55%;
- Distribution confidence is at least 45%;
- Estimated passive fill probability is at least 25%;
- The forecast is still within its ten-second lifetime;
- Price has not moved too far from the forecast reference;
- The forecast range can cover Maker fees, the exit budget, and the safety buffer;
- The resulting position will remain within the configured limit;
- Order quantity and notional satisfy the exchange specification;
- Order-book and recent-trade data are fresh and structurally valid.
When the selected direction is opposite to the current position, the strategy reduces the existing exposure before considering a reversal. Reductions require only a 40% directional probability and do not use the additional opening thresholds for distribution confidence or fill probability.
Adverse-selection risk and fill probability jointly determine the quote location. Orders stay near the touch when risk is low or fill probability is limited. When risk is higher but the order is still likely to fill, the quote is moved one or two ticks away for a better entry price.
All orders use GTX/Post Only. Immediately before submission, the strategy refreshes the position and top of book and rechecks signal age, price drift, and cost coverage.
Position Management and Exit
Exposure is increased or reduced in configured order-size increments and is constrained by the maximum absolute net position. A valid signal opposite to the current position first creates a reduce-only action. New reverse exposure can only be considered by a later signal after the existing exposure has been removed.
The default holding-time budget is four main forecast horizons, or 120 seconds. When the budget expires, the strategy places a Reduce Only Maker order on the appropriate side. This is an exit attempt, not a guarantee that the position will be closed exactly at 120 seconds.
Active orders are protected by the following rules:
- Cancel opening orders when the ten-second signal lifetime expires;
- Cancel or reprice orders after 30 seconds;
- Cancel when price moves beyond the dynamically calibrated drift tolerance;
- Remove risk-increasing orders when market data is no longer valid;
- Cancel when the unfilled quantity could breach the position limit;
- Cancel unfinished opening orders when the holding budget expires;
- Back off after Jev failures and cancel non-reducing orders;
- Stop sending new orders when cancellation status cannot be confirmed;
- Lock new submissions when an order response is ambiguous and require manual reconciliation.
To preserve queue priority, an existing order is replaced only when its direction, opening/closing role, quantity, age, or price distance reaches a replacement condition.
The strategy records five-class accuracy, an always-flat baseline, Brier scores, non-overlapping samples, confidence calibration, and post-fill price movement over 1, 5, and 30 seconds. Post-fill movement is measured from the time the local program detects the fill and excludes fees. It is a diagnostic for adverse selection, not net trading profit.
Main Parameters
| Parameter | Default | Description |
|---|---|---|
| JevApiKey | Empty | Jev API key; required at startup |
| TradeSymbol | BTC_USDT.swap | Trading contract in BASE_QUOTE.swap format |
| DryRunMode | true | Observation-only mode; orders are sent only when disabled |
| TradeAmount | 0.001 | Base quantity for each opening or reducing action |
| MaxPosition | 0.003 | Maximum absolute net position |
| Leverage | 1 | Contract leverage, from 1 to 125 |
| OPEN_THRESHOLD | 0.55 | Strong-direction probability required to open exposure |
| REDUCE_THRESHOLD | 0.40 | Directional probability required to reduce opposite exposure |
| MIN_CONFIDENCE | 0.45 | Distribution-confidence floor for opening |
| MIN_FILL_PROB | 0.25 | Passive-fill probability floor for opening |
| SIGNAL_HORIZON_MS | 30000 | Main forecast horizon in milliseconds |
| SIGNAL_TTL_MS | 10000 | Opening-signal lifetime |
| HOLDING_BUDGET_MULTIPLE | 4 | Holding budget as a multiple of the main horizon |
| LOOP_INTERVAL_MS | 5000 | Minimum interval between Jev requests |
| SAMPLE_MS | 1000 | Market-data sampling interval |
| MAX_ORDER_AGE_MS | 30000 | Maximum order lifetime |
| MAX_DATA_AGE_MS | 3000 | Maximum allowed age of order-book and trade data |
| MAKER_FEE | 0.0002 | Locally declared one-way Maker fee; must match the account tier |
| EXIT_SLIPPAGE_BPS | 0.5 | Additional slippage budget for exits |
| EDGE_BUFFER_BPS | 0.5 | Additional safety buffer used in the cost gate |
| TAIL_TARGET_RATE | 0.30 | One-tail base-rate target used to calibrate dynamic bands |
Price tick, quantity step, minimum quantity, and minimum notional are fetched from the exchange at startup. The strategy refuses to start if price and quantity precision cannot be obtained.
The Maker fee is a source-code constant and is not automatically fetched from the account. It must be updated manually when the account tier, promotional fee, or rebate arrangement differs.
Validation Status
The supplied V3 source passed an offline JavaScript syntax check. The code includes configuration validation, contract-specification checks, data-freshness gates, Jev response validation, order-state confirmation, diagnostic persistence, and runtime monitoring tables.
No independently verifiable FMZ backtest report, DryRun sample set, paper-trading order history, or small live-trading statement was supplied with this version. Therefore, none of those validation stages should be described as completed. Live-running claims in the reference article cannot automatically be treated as evidence for this exact V3 implementation.
Before live deployment, the recommended validation sequence is:
- Run DryRun on the target instrument and compare five-class accuracy with the always-flat baseline;
- Compare realized accuracy across confidence buckets to detect overconfidence;
- Compare predicted fill probabilities with actual Maker fill rates;
- Review average post-fill movement over 1, 5, and 30 seconds;
- Test partial fills, cancel/fill races, requoting, timed exits, and restarts in paper trading;
- Add a hard stop-loss, daily loss limit, liquidation-distance check, and emergency-exit procedure before small live deployment.
/*
* FMZ / 发明者量化:Jev + Binance U 本位永续 V3
* 参数清单由 strategy_parameters.json 管理,运行时由FMZ注入全局变量。
* 使用 scripts/sync_export.py 同步可导入文件;设计、限制和验证见 handoff.md。
* 单品种、单向持仓;默认 DryRunMode=true。需要支持 HttpQuery_Go 的托管者。
* Jev只预测互斥收益区间和分侧风险;本地决定开平、持仓时间预算与委托生命周期。
*/
function valueOr(v, fallback) {
return (v === undefined || v === null || v === "") ? fallback : v;
}
- 1