FMZ Rust: OpenMarket BTC 15-Minute Logistic Regression Prediction Strategy
2
Follow
536
Followers
⚠️ Important Disclaimer: This Is a Theoretical Research Prototype, Not a Complete Trading Strategy
The current code is only a theoretical/research prototype for probability modeling. It is not a validated, production-ready trading strategy and must not be treated as such. Do not use it with real funds before completing sufficient independent validation.
1. What Is This?
This is an experiment in independent terminal-probability modeling for Polymarket’s 15-minute BTC Up/Down binary-options market. The core idea is to:
- Use Binance BTC/USDT tick-trade flow together with real-time Polymarket RTDS data, including Chainlink and TWAP-60;
- Use the official benchmark price-to-beat, the current BTC reference price, remaining time, and forecast volatility to calculate a terminal direction probability that is independent of the Polymarket order book;
- Compare that probability with the order-book Ask price using EV, defined as the absolute expected profit per token, to identify potential mispricing;
- Apply multiple entry gates, including a Kelly fraction, EV threshold, two-sided order-book consistency, and round-trip loss;
- During the holding period, exit on a real-time predictive EV shock or when the fixed price stop-loss/take-profit conditions are reached.
2. Current Status and Known Limitations
| Dimension | Current Status |
|---|---|
| Probability model | Terminal probability is based on a lognormal approximation (terminal_probability). Volatility is estimated using multiple empirical windows. The model has not been calibrated through historical backtesting, and many parameters are still prior assumptions. |
| 43-feature Logistic model | The model exists, but legacy43Trading=false, so it does not currently participate in the real-time trading probability. It is stored for later research and analysis only. |
| Online calibration | ONLINE_CALIBRATION=false. The legacy 600-second snapshot calibration has been disabled, while the new stage-based sampling mechanism is still accumulating data and has not yet become active. |
| Evolution engine | EVOLUTION_ENABLED=false. The Champion/Challenger significance-testing framework is not active yet. |
| Parameter calibration | Many parameters, including volatility floors and caps, drift shrinkage, EV thresholds, and stop-loss distances, are still magic constants without sufficient statistical support. |
| Live-trading constraints | IsVirtual() is enforced to reject backtesting. Redemption, fill, and slippage logic have not yet been sufficiently validated under real execution conditions. |
| Out-of-sample validation | There are currently no systematic out-of-sample or forward-testing results that support any expectation of profitability. |
3. Explicit Risks and Disclaimer
- This is a methodological exploration designed to test the hypothesis that independent probability estimates can consistently produce positive EV relative to market pricing. The hypothesis itself has not been proven;
- The core parameters of the forecasting model have not been fitted to sufficient data. Live performance is highly uncertain and may result in substantial losses;
- Tail risks related to binary-contract settlement, disappearing liquidity, order-book manipulation, and feed latency have not been fully modeled;
- The large number of TODO-style default-off switches shows that the system is still an incomplete prototype.
Conclusion: This project should be treated as a research-framework skeleton that still requires validation. Historical backtesting, parameter calibration, out-of-sample validation, forward testing, and small-size live stress testing must be completed before its potential value as a real trading strategy can be assessed.
Source
Rust
use std::collections::{HashMap, HashSet, VecDeque};
// ========================= 参数 =========================
const SIMULATE_TRADING: bool = true;
const ENABLE_TRADING: bool = true;
// V3先积累分阶段样本;旧版仅用第600秒样本的校准不得参与实时交易。
const ONLINE_CALIBRATION: bool = false;
const CLEAR_DATABASE_ON_START: bool = false;
const POLL_MS: i64 = 50;
const MARKET_REFRESH_MS: i64 = 15_000;
const PROBABILITY_RECALC_MS: i64 = 200;Related strategies
Comment
All comments (0)
No data
- 1