▶ 전체 게시글 텍스트
Update on my crypto futures bot — implemented suggestions from my last post, some worked incredibly well, some failed completely. New problems now.
Posted here recently about struggling with overfitting correction, regime detection, and backtester speed. Went and tested every suggestion I got. Here's what happened.
Someone suggested CPCV instead of Deflated Sharpe Ratio. Implemented 15 purged folds. Both my strategies came back profitable on every single fold. Mean Sharpe 1.92 and 1.71. This is now a permanent part of how I validate anything.
Another person said to use exogenous regime signals — things structurally independent from my trade data. Tested 30-day rolling correlation between BTC and ETH as a gate. When the whole market moves together, mean-reversion signals are noise, so the bot sits out. Sharpe went from 1.86 to 2.13. Profit factor doubled. On 2021-2022 out-of-sample data it blocked entries during both major crashes completely. Didn't expect it to work this well honestly.
Things that failed: fractal dimension as a regime filter on the 15m (hypothesis was inverted — failing windows were trending not choppy), weekly overbought kill switch (never fires when needed), time-of-day gating (losses spread evenly across sessions), trend-following on BTC 15m (240 configs all negative), and trend-following on a trending altcoin (2880 configs, best Sharpe 0.92).
Right now I have two BTC strategies in paper trading. Both passed walk-forward, all 15 CPCV folds, perturbation testing, and equity curve linearity checks.
Four things I'm stuck on now:
First, I can't get the oscillator logic to work on any other asset. Tested four altcoins with dedicated optimization and the correlation filter. All fail walk-forward. Microstructure screening shows several are mean-reverting but the signal framework still doesn't produce anything viable. Is oscillator confluence just inherently instrument-specific or am I missing something about cross-asset adaptation?
Second, I need a trend-following strategy as a hedge. Both my strategies lose money in strongly trending markets. Every trend-following approach I've tested on crypto at intraday timeframes fails after costs. The microstructure analysis confirms short-term momentum exists but I can't capture it profitably. Do I need to go to daily or weekly for trend-following and just accept way fewer trades?
Third, my backtester runs at about 3 seconds per config on 340k bars in Python. Every optimization takes hours. For anyone who's done the Numba rewrite on stateful exit logic — how much of the engine did you port and what speedup did you actually get? Any gotchas with tracking position state and trailing stops under njit?
Fourth, my faster strategy can only handle about 4 basis points of slippage per side before the edge degrades below Sharpe 1.5. Exchange fees already eat most of that. Anyone running limit orders on BTC perps — what fill rate are you seeing and what's your effective slippage compared to market orders?
Happy to share details about the validation methodology or specific test results in comments. Not sharing signal logic but everything else is fair game.