YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
FlashMind v15f β AI Crypto Arbitrage Bot (Real-Data Calibrated)
PPO-trained reinforcement learning agent for cross-DEX arbitrage on Ethereum/L2s. v15f closes the real-data gap discovered in v15d validation.
What Changed: v15d β v15f
v15d achieved perfect discrimination on synthetic data (0% bad executions, composite 0.408). But on real DEX market data, it collapsed: 41.2% bad executions, composite -0.467.
Root cause: VecNormalize observation statistics were trained on synthetic data distribution. Real market observations fell outside the trained distribution, causing policy misfire.
v15f fix:
- Fresh VecNormalize (re-learned obs distribution from real+synthetic mix)
- Real market data injected during training (refreshed every 25 episodes)
- Fine-tuned from v15d_final weights with lower LR (1e-4 β 3e-6)
- Best model selected by real data composite score
Real-Data Improvement (v15d β v15f best)
| Metric | v15d (real) | v15f (real) | Delta |
|---|---|---|---|
| Bad Execute Rate | 41.2% | 1.3% | -39.9pp |
| Skip Rate | 15.2% | 50.9% | +35.7pp |
| Good Execute Rate | 43.9% | 47.7% | +3.8pp |
| Composite Score | -0.467 | 0.603 | +1.070 |
| Sharpe Ratio | 1.67 | 5.32 | +3.65 |
| Avg PnL | 300 | 274 | -26 |
| Active Strategies | 10 | 11 | +1 |
Success Criteria: ALL 6 PASSED
| Criterion | Target | Actual | Status |
|---|---|---|---|
| Real bad_exec | < 15% | 1.3% | PASS |
| Real skip_rate | > 30% | 50.9% | PASS |
| Real composite | > 0.0 | 0.603 | PASS |
| Composite improved | > v15d | 0.603 | PASS |
| Bad exec reduced | < v15d | 1.3% | PASS |
| No synthetic regression | comp > 0.30 | 0.458 | PASS |
Synthetic Performance (No Regression)
| Metric | v15d (synth) | v15f (synth) |
|---|---|---|
| Composite | 0.408 | 0.458 |
| Sharpe | 5.29 | 6.55 |
| Bad Execute | 0.0% | 3.4% |
Model Architecture
- Algorithm: PPO (Proximal Policy Optimization) with MlpPolicy
- Parameters: 384K
- Observation: 621-dim (598 market + 21 strategy one-hot + 2 opportunity signal)
- Action: Discrete(2) β 0=EXECUTE, 1=SKIP
v15f Training Config
- Base model: v15d_final (policy weights transferred)
- VecNormalize: FRESH (re-learned from real+synthetic mix)
- Real data sources: DeFiLlama (pools/TVL), DexScreener (pairs/liquidity), CoinGecko (prices)
- Real data refresh: Every 25 episodes during training
- Steps: 200K fine-tuning
- LR: 1e-4 β 3e-6 linear decay over 150K steps
- Best model: Selected by real data composite (step ~140K)
- Training time: 69 minutes
- Real market pools used: 9
Files in this Repository
| File | Description |
|---|---|
flashmind_ppo_v15f_best.zip |
Best model (real composite 0.603) |
flashmind_ppo_v15f_final.zip |
Final checkpoint (step 200K) |
v15f_vecnormalize.pkl |
VecNormalize stats (real-data calibrated) |
flashmind_ppo_v15d_final.zip |
Previous best (synthetic-only) |
v15d_vecnormalize.pkl |
Previous norm stats (synthetic-only) |
backtest_v15_comprehensive.json |
Full backtest of v15b/v15c/v15d/v15e |
v15f_vs_v15d_comparison.json |
Real-data comparison v15d vs v15f |
training_v15f_results.json |
v15f training metadata |
Usage
from stable_baselines3 import PPO
from stable_baselines3.common.vec_env import DummyVecEnv, VecNormalize
model = PPO.load('flashmind_ppo_v15f_best.zip')
# MUST use v15f_vecnormalize.pkl for proper observation normalization
Training History
| Version | Key Change | Real Comp | Synth Comp |
|---|---|---|---|
| v15c | First discrimination | N/A | Failed |
| v15d | norm_reward=False | -0.467 | 0.408 |
| v15e | LR decay + early stop | N/A | 0.440 |
| v15f | Real-data fine-tuning | +0.603 | 0.458 |
License
MIT
Inference Providers NEW
This model isn't deployed by any Inference Provider. π Ask for provider support