Type/to search

FMZ Rust: OpenMarket BTC 15-Minute Logistic Regression Prediction Strategy

Common strategy
Created: 2026-08-24 09:52:47
Last modified: in 8 hours
2
Follow
510
Followers

Strategy Description

⚠️ 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 market.

The core idea is to:

  • Use Binance BTC/USDT tick-trade flow together with 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 the probability with the order-book Ask price using EV, defined as the absolute expected profit per token, to identify potential mispricing;
  • Use multiple entry gates, including a Kelly fraction, EV threshold, two-sided order-book consistency, and round-trip loss;
  • During the holding period, exit based on a predictive EV shock combined with a fixed price stop-loss or take-profit.

2. Current status and known limitations

DimensionCurrent status
Probability modelTerminal 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 modelThe model exists, but legacy43Trading=false, so it does not currently participate in the real-time trading probability. It is only stored for research purposes.
Online calibrationONLINE_CALIBRATION=false. The previous 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 engineEVOLUTION_ENABLED=false. The Champion/Challenger significance-testing framework is not active.
Parameter calibrationMany parameters, including volatility floors and caps, drift shrinkage, EV thresholds, and stop-loss distances, are still magic constants without sufficient statistical calibration.
Live-trading constraintsIsVirtual() is enforced to reject backtesting. Redemption, fill, and slippage logic have not yet been sufficiently validated under real execution conditions.
Out-of-sample validationThere 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 identify 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 indicates that the system is still an incomplete prototype.

Conclusion

This project should be treated as a research-framework skeleton that still requires validation.

Before its real trading value can be assessed, the following work remains necessary:

  • Historical backtesting;
  • Parameter calibration;
  • Out-of-sample validation;
  • Forward testing;
  • Small-size live stress testing.

Only after these steps can the system’s potential value as a real trading strategy be evaluated.

Source
Rust
use std::collections::{HashMap, HashSet, VecDeque};

// ========================= Parameters =========================
const SIMULATE_TRADING: bool = true;
const ENABLE_TRADING: bool = true;
// V3 accumulates stage-based samples first; the legacy calibration using only the 600-second snapshot must not participate in real-time trading.
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;
Comment
All comments (0)
No data
No data
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)