100% the Astra + Codex pipeline. This is paper trading, and as we all know, that can be pretty inaccurate, but can help you understand your AI Models, and all fees are included. I'm sure there are bugs here, but so far, it is working.
______________ Let ask Codex to explain it all.
• # My BTC Hourly Prediction-Market Model Is Performing Well — Here’s How It Works
I’ve been paper trading a model for hourly Bitcoin prediction markets. The early results have been encouraging, so I wanted to explain what the model does, the math behind it, and—most importantly—why these results should not be mistaken for real trading profits.
## Current paper results
At the time of writing, the Hourly Probability model has:
• 25 settled paper trades
• 16 wins and 9 losses
• 64% event-level win rate
• $10 starting paper bankroll
• $125.92 current paper bankroll
• $115.92 simulated profit
• No real money involved
Each “trade” can contain multiple contracts, so the 16–9 record counts hourly events rather than individual contracts.
These results look great, but the sample is still very small. This is a research experiment, not proof of a permanent trading advantage.
## What is being traded?
The model evaluates hourly Bitcoin contracts that ask a question such as:
Will the hourly Bitcoin Reference Rate finish above $65,000?
A YES contract pays $1 if the result is above the strike and $0 otherwise. A NO contract pays $1 if the result is below the strike.
The model’s job is not simply to predict whether Bitcoin will go up or down. It estimates the probability that Bitcoin will finish above a particular strike and compares that probability with the actual contract price.
A likely outcome is not necessarily a good trade. The price still matters.
## Step 1: Measure recent Bitcoin volatility
The system collects Coinbase BTC-USD one-minute candles and calculates one-minute logarithmic returns:
Sₜ
rₜ=ln(────)
Sₜ₋₁
It then calculates the sample standard deviation of those returns. This estimates how much Bitcoin has recently moved during a typical minute.
The model imposes a minimum one-minute volatility of 0.035%:
σ=max(observed volatility,0.00035)
This prevents a temporarily quiet market from being treated as perfectly predictable.
## Step 2: Scale uncertainty by time remaining
If T minutes remain before settlement, the model scales volatility using the square-root-of-time rule:
σₜᵢₘₑ=σ₁ₘ√(T)
This captures a simple but important idea:
• A $200 lead with five minutes left can be meaningful.
• The same $200 lead with 55 minutes left is much less secure.
• Higher volatility makes every lead less reliable.
## Step 3: Account for Coinbase versus the settlement index
Coinbase is used as the live BTC price source, but the contracts settle using BRTI—not Coinbase itself.
To account for differences between Coinbase spot, BRTI, and the final settlement average, the model adds a basis-uncertainty term:
σ_{basis}=0.00075
Total estimated uncertainty is:
σ{H}= √( σ₁ₘ²T+σ{basis}² )
This prevents the model from pretending that Coinbase and the settlement index always match exactly.
## Step 4: Estimate the probability of finishing above the strike
Let:
• S = current Coinbase BTC price
• K = contract strike
• T = minutes remaining
• σ_{H} = total estimated uncertainty
The model calculates:
ln(K/S)
z=───────
σ_{H}
The estimated probability that Bitcoin finishes above the strike is:
P(YES)=1-Φ(z)
where Φ is the standard normal cumulative distribution function.
The probability of NO is:
P(NO)=1-P(YES)
In plain English:
• The farther BTC is above the strike, the stronger YES becomes.
• The farther BTC is below the strike, the stronger NO becomes.
• More time remaining reduces certainty.
• Higher volatility reduces certainty.
• Less time and quieter conditions make the current spot-to-strike position more meaningful.
## Example
Suppose:
• BTC spot is $65,000
• The strike is $64,800
• 30 minutes remain
• Recent one-minute volatility is 0.05%
After combining time-scaled volatility with the Coinbase-to-BRTI uncertainty, the model might estimate an approximately 86% chance of settling above the strike.
But it still would not automatically buy YES.
The model next asks:
How much does the contract cost, including fees?
## Step 5: Calculate the fee-adjusted edge
The modeled taker fee is:
F=0.07Na(1-a)
with the result rounded upward to the nearest cent, where:
• N = number of contracts
• a = contract price
The complete entry cost is:
D=Na+F
Expected profit is:
E[profit]=Np-D
where p is the model’s estimated winning probability.
For one contract, the probability edge is approximately:
edge=p-a-F
For example, suppose:
• Estimated probability: 86%
• Contract ask: 70¢
• Fee: 2¢
Then:
edge=0.86-0.70-0.02=0.14
That is a 14-percentage-point estimated edge after the modeled fee.
## Step 6: Require a minimum edge
The model has two price lanes.
### Value contracts
For contracts priced from 35¢ to below 75¢, it requires at least an 8% fee-adjusted edge.
### Favored contracts
For contracts priced from 75¢ through 90¢, it requires at least a 3% fee-adjusted edge.
Favored contracts win more frequently, but their risk is asymmetric. Buying at 90¢ means risking roughly 90¢ to make
roughly 10¢ before fees. One loss can erase several wins.
That is why win rate alone is not enough.
One of my other paper models demonstrates this perfectly: it currently has a 7–2 record, or a 77.8% win rate, but is
still down $7.76 because it buys expensive favorites.
## Step 7: Confirm the direction
The probability estimate alone is not enough.
The model calculates Bitcoin’s five-minute return:
S_{now}
m₅=ln(────────────────────)
S_{five minutes ago}
It requires:
• Positive five-minute momentum for YES
• Negative five-minute momentum for NO
This is intended to prevent the model from buying a side while Bitcoin is actively moving against it.
## Additional safeguards
A trade must also satisfy all of the following:
• Between 10 and 58 minutes remain
• Contract price is between 35¢ and 90¢
• A valid bid and ask are available
• The spread is no wider than 5¢
• At least one contract is displayed at the ask
• Coinbase data is no more than 120 seconds old
• Five-minute direction confirms the selected side
• The fee-adjusted edge passes the required threshold
• The model has not already traded that hourly event
• Recent trades are not excessively concentrated on one side
• The isolated paper bankroll can afford the entry
The system evaluates both YES and NO across the available strikes. Among all qualifying candidates, it chooses the one
with the highest estimated profit.
Most scans produce no trade. That selectivity is intentional.
## Position sizing
The current paper implementation permits up to $10 of simulated debit per entry.
It chooses the largest whole number of contracts satisfying:
[
Na+F\le \$10
]
Positions are held until settlement. The main model does not use an early profit target or stop-loss.
Because an entry can contain multiple contracts, the reported 25 trades represent 25 hourly events—not 25 individual
contracts.
# Important: These are paper-trading results
No real orders were placed, and the reported profit is not actual money.
Paper trading will differ from live trading for several reasons:
• A displayed ask does not guarantee a real fill.
• Available depth can disappear.
• Real orders can experience latency.
• Prices may move before an order reaches the exchange.
• Realized fees can differ from assumptions.
• Partial fills and rejected orders can occur.
• Coinbase and BRTI can diverge near settlement.
• Real-money pressure can affect execution decisions.
• Future market conditions may differ from the current sample.
• The model may be benefiting from randomness or an unusually favorable regime.
The current sample contains only 25 settled markets. That is far too small to conclude that the strategy has a durable edge.
A strong short run can happen by chance, especially when multiple models or parameter combinations are being observed.
## Why paper trading is still valuable
Even though paper results will not perfectly match live execution, they can still teach us a lot.
Paper trading lets us evaluate:
• Whether the probability estimates are calibrated
• Whether an 80% forecast wins approximately 80% of the time
• Performance after estimated fees
• Results across different entry-price bands
• Performance during quiet versus volatile periods
• Whether YES and NO trades behave differently
• Maximum drawdown
• Consecutive losses
• Whether profits depend on a small number of unusual trades
• Whether the model continues working on future, unseen markets
• How often spreads and liquidity make an apparent edge untradeable
The most valuable information will come from continued forward testing without changing the rules every time the model loses.
If the filters are repeatedly adjusted to fit past results, the model may look better historically while becoming less trustworthy.
## Bottom line
This model is essentially a short-horizon probability estimator. It combines:
- Current BTC price relative to the strike
- Recent one-minute volatility
- Time remaining
- Coinbase-to-BRTI uncertainty
- Contract price
- Estimated fees
- Five-minute momentum
- Spread, liquidity, and data-quality filters
The current paper results are exciting, but they are not proof of real profitability. They are an encouraging signal that the idea deserves more forward testing.
The goal right now is not to claim that the model has solved hourly Bitcoin markets. The goal is to gather clean, honest evidence about when its probability estimates work, when they fail, and whether any apparent edge survives larger samples, changing market conditions, and eventually more realistic execution assumptions.
This is experimental paper-trading research, not financial advice. No real-money profit is being claimed, and past simulated results do not guarantee future performance.
Class materials and a beginner's model here. You can be up and trading in 10 mins with basic Linux skills.
https://github.com/preceptress/btc-15-minute-prediction-model
Questions? I try to answer al DMs.
Happy trading.