Skip to content
All strategies

Strategies

SPY–Bitcoin Independent LSTM with Fixed Venue Sleeves

Outcome: Abandoned

SpyBitcoinIndependentFrozenLSTM

Outcome Summary

This hypothesis took a published SPY–Bitcoin LSTM diversification idea and swapped quarterly rebalancing for fixed per-venue capital sleeves, so it was a feasibility test rather than a profitability claim. Across 4 iterations the developer could not implement the required cost-net benchmark and standalone attribution within the runner, so the strategy code raises an unsupported_capability error on purpose. The capability hold went unresolved for 418 hours against a 216-hour limit, and the run was abandoned without a backtest, optimization or analyst verdict. The record says the run can be revived if the registry gains the capability or the contract is rewritten.

Hypothesis

Derived by the Research Lead from the supplied Michańków et al. operationalization: test diversification between independently timed SPY daily-session and Bitcoin spot UTC-daily strategies. The source paper was not supplied or independently reread for this revision; retain the supplied model choices without asserting a faithful reproduction. Substitute fixed per-venue sleeves for quarterly equal-capital rebalancing: initially fund USEQ with USD 50,000 and BINANCE_SPOT with USDT 50,000 from the USD-equivalent……Show moreShow less

Derived by the Research Lead from the supplied Michańków et al. operationalization: test diversification between independently timed SPY daily-session and Bitcoin spot UTC-daily strategies. The source paper was not supplied or independently reread for this revision; retain the supplied model choices without asserting a faithful reproduction. Substitute fixed per-venue sleeves for quarterly equal-capital rebalancing: initially fund USEQ with USD 50,000 and BINANCE_SPOT with USDT 50,000 from the USD-equivalent 100,000 initial budget, once before evaluation. Capital and realized profits remain on their originating venue for the whole run; relative sleeve weights drift. There are no inter-venue transfers, virtual funding credits, or quarterly rebalancing orders. Aggregate NAV is reporting only and must never fund a destination account. Preserve separate one-layer NumPy LSTMs with 16 cells, sigmoid gates, tanh states and linear outputs, genuine backpropagation through time, deterministic seed 17 and Xavier-uniform initialization. Baselines: sequence_length=10, training_bars=504, hidden_units=16, learning_rate=0.001, epochs=60, l2=0.000001, loss_temperature=0.1. Each example contains the last sequence_length observed close-to-close simple returns on that instrument; its label is the next executable one-bar return: next session open to following session open for SPY, current close to next close for BTC. Use only labels whose endpoint is already observed before the first forecast. Normalize inputs and labels by that sleeve's training-fit return standard deviation, floored at 1e-8, without centering; never fit normalization on validation or evaluation. Reserve the last third of eligible training examples chronologically for validation and purge fit examples whose label endpoints overlap the validation feature period. Optimize mean(-y*tanh(yhat/loss_temperature))+l2*sum(weight_squared) with full-batch Adam, beta1=0.9, beta2=0.999, epsilon=1e-8 and global gradient norm clipping at 1. Retain the lowest validation-loss checkpoint. Freeze weights and normalization throughout each evaluation window; no dropout or automatic retraining. SPY signals fill at the next session open. BTC signals use a market order at the signal close, explicitly substituting the registry's continuous-market equivalent for next-bar-open execution. Risk control route (b): long/cash signal exits and capped unlevered sizing, without an added stop. Standalone sleeve and initially 50/50 buy-and-hold attribution comparisons use the same fixed venue funding and execution costs, without quarterly capital transfers. This revision tests feasibility and diversification, not established profitability.

The reported failure is an execution-capability gap, not negative evidence about predictive performance. The operator explicitly requests fixed per-venue sleeves. Remove quarterly equal-capital rebalancing entirely and retain the instruments, independent models and diversification question. All orders are funded solely by their venue's actual free cash; combined NAV is never an allocation ledger. Preserve next-session-open SPY execution and explicitly name the registered BTC signal-close equivalent. BTC and daily bars are retained because this is a targeted repair of the submitted SPY–Bitcoin study, rather than a new autonomous slot selected for diversity; corpus concentration and portfolio distributions were not included in this brief. Local prior-art search located this same lineage and supplied no separate scientific failure requiring a mechanism pivot.

hold_expired: capability_unsupported:capability held 418 h, past its 216 h limit, unresolved (owner: research_lead). Not a verdict on the strategy; revivable once resolved. Recommended: capability-key when the registry covers it, capability-revise when the contract can be rewritten around what the engine executes, otherwise decline

Implementation

Independent frozen NumPy LSTMs for long/cash SPY and BTC fixed venue sleeves. SPY uses next-session-open fills; BTC uses the registered signal-close equivalent. Execution is parked pending integrated cost-net benchmark reporting.

The funding repair is config.lab_account.starting_capital=100000 with no fee overrides. lab_account.venue_balance splits this total across USEQ and BINANCE_SPOT, yielding USD 50000 and USDT 50000. Read-only inspection confirms runner_options is passed at runner construction in subprocess_entry and optimization/parallel_runner; no backtest or end-to-end reconciliation was run. Model, signal, sizing and research parameters are unchanged. The second QA critical cannot be repaired within this……Show moreShow less

The funding repair is config.lab_account.starting_capital=100000 with no fee overrides. lab_account.venue_balance splits this total across USEQ and BINANCE_SPOT, yielding USD 50000 and USDT 50000. Read-only inspection confirms runner_options is passed at runner construction in subprocess_entry and optimization/parallel_runner; no backtest or end-to-end reconciliation was run. Model, signal, sizing and research parameters are unchanged. The second QA critical cannot be repaired within this single-strategy/outbox-only scope: runner._compute_buy_hold_curve reports cost-free price ratios and never consumes comparison state. There is no exposed strategy hook to execute independent benchmark wallets, export their fills or reconcile strategy and benchmark terminal NAV under the runner cost model. An explicit unlisted-capability refusal parks the run before any misleading report; existing shadow comparison code is unreachable and is not claimed as cost-net. Engineering must integrate funded benchmark and standalone executions using identical evaluation boundaries, entry/terminal execution conventions, commissions, spread/impact and report reconciliation. BTC turnover concerns remain for the eventual full-history cost-net evaluation and do not justify changing the fixed zero threshold.

Verification Results

This strategy is paused because it needs an order feature the current exchange connection does not support. We need to review the implementation or adjust the venue before testing can continue. Your idea has not been rejected.

Analysis

IMPLEMENTATION FIX — the hypothesis is unchanged: make the code do what it already says. Do not add or change trading rules. Implement the existing 100,000 combined-budget contract without changing fixed parameters. Within the standard engine accounts, reserve a 50,000 trading ledger per venue and leave surplus platform funding unavailable to strategy sizing. Cap orders by both the sleeve ledger and actual venue free cash. Update each ledger using only its own realized net PnL, including commissions, modeled……Show moreShow less

IMPLEMENTATION FIX — the hypothesis is unchanged: make the code do what it already says. Do not add or change trading rules. Implement the existing 100,000 combined-budget contract without changing fixed parameters. Within the standard engine accounts, reserve a 50,000 trading ledger per venue and leave surplus platform funding unavailable to strategy sizing. Cap orders by both the sleeve ledger and actual venue free cash. Update each ledger using only its own realized net PnL, including commissions, modeled impact and other applicable costs; never fund it from aggregate NAV or cross-venue credits. Report sleeve NAV including open inventory and combined NAV relative to the requested initial 100,000. Verify initial entry notionals do not exceed approximately 49,500 per sleeve. Initialize standalone and fixed initially 50/50 buy-and-hold comparisons at the same evaluation boundary, funding and applicable costs, without rebalancing. Preserve model, signal and execution rules. Return corrected development-period attribution and sleeve-specific net expectancy; keep the withheld holdout reserved.

Iteration History

capability_revision: unlisted: quarterly equal-capital sleeve rebalance across USEQ/USD and BINANCE_SPOT/USDT requires an inter-venue cash-transfer ledger; virtual allocations cannot fund spot purchases beyond the destination account's actual free cash.

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] The zero-threshold daily long/cash signal may incur substantial BTC spot turnover costs; assess this on the full-history cost-net backtest. - [critical] The required actual initial funding is $50,000 per venue from $100,000 total, but these variables only reserve capital internally. This config supplies no account funding override. src/backtesting/lab_account.py defaults to $100,000 per venue, and runner.py sums both balances……Show moreShow less

Verification failed (Layer 4 — QA review) [class=hypothesis_mismatch]: - [edge_concern] The zero-threshold daily long/cash signal may incur substantial BTC spot turnover costs; assess this on the full-history cost-net backtest. - [critical] The required actual initial funding is $50,000 per venue from $100,000 total, but these variables only reserve capital internally. This config supplies no account funding override. src/backtesting/lab_account.py defaults to $100,000 per venue, and runner.py sums both balances into total_starting_capital for portfolio metrics. Subtracting account anchors does not change those accounts or the runner's $200,000 denominator, and the runner does not consume combined_sleeve_nav. Thus the trusted portfolio return and risk report measures a different capitalization from the specified experiment. (line 27) — fix: Provide the runner-supported total starting-capital configuration (lab_account.starting_capital=100000, with no fee overrides) through the actual run configuration and verify it reaches BacktestRunner in all evaluation paths, yielding USD 50000 and USDT 50000. Reconcile the runner's initial NAV, final NAV and venue-local PnL to the sleeve reporting; internal reservations alone are insufficient. - [critical] The hypothesis requires standalone and initially 50/50 buy-and-hold comparisons with identical execution costs. update_comparison deducts only taker commissions and explicitly leaves spread/impact uncharged. These shadow inventories never submit fills, so the runner's per-fill cost model cannot charge them. The *_bh_nav_before_impact values are neither cost-net comparisons nor connected to a runner reconciliation path. This omits the specified comparable-cost diversification benchmark. (line 105) — fix: Run the benchmark through the same funded venue execution and cost-accounting path, or implement an explicitly integrated reporting reconciliation that applies the runner's actual spread/impact model to the benchmark's own entry and terminal valuation/liquidation convention. Export and reconcile the strategy, standalone sleeves and fixed 50/50 benchmark on the same $100000 initial capital and cost basis.

Provide the runner-supported total starting-capital configuration (lab_account.starting_capital=100000, with no fee overrides) through the actual run configuration and verify it reaches BacktestRunner in all evaluation paths, yielding USD 50000 and USDT 50000. Reconcile the runner's initial NAV, final NAV and venue-local PnL to the sleeve reporting; internal reservations alone are insufficient.

The required actual initial funding is $50,000 per venue from $100,000 total, but these variables only reserve capital internally. This config supplies no account funding override. src/backtesting/lab_account.py defaults to $100,000 per venue, and runner.py sums both balances into total_starting_capital for portfolio metrics. Subtracting account anchors does not change those accounts or the runner's $200,000 denominator, and the runner does not consume combined_sleeve_nav. Thus the trusted portfolio return and risk report measures a different capitalization from the specified experiment.

Run the benchmark through the same funded venue execution and cost-accounting path, or implement an explicitly integrated reporting reconciliation that applies the runner's actual spread/impact model to the benchmark's own entry and terminal valuation/liquidation convention. Export and reconcile the strategy, standalone sleeves and fixed 50/50 benchmark on the same $100000 initial capital and cost basis.

The hypothesis requires standalone and initially 50/50 buy-and-hold comparisons with identical execution costs. update_comparison deducts only taker commissions and explicitly leaves spread/impact uncharged. These shadow inventories never submit fills, so the runner's per-fill cost model cannot charge them. The *_bh_nav_before_impact values are neither cost-net comparisons nor connected to a runner reconciliation path. This omits the specified comparable-cost diversification benchmark.

Outcome Summary

If a hypothesis's evaluation contract needs reporting the runner lacks, such as cost-net per-venue benchmarks, it should be rewritten around what the engine executes or the capability should be added first; otherwise the run stalls in a capability hold.

After 4 iterations, the run was abandoned because a capability hold expired. It needed a cost-net fixed-sleeve benchmark and standalone attribution, but the runner's buy-and-hold curve uses cost-free price ratios. The hold stayed open for 418 h against a 216 h limit without being resolved, and the record says this is not a verdict on the strategy and the run can be revived.

It tested whether two independently timed long/cash LSTM strategies diversify each other: a 16-cell NumPy LSTM trading SPY in daily sessions and another trading Bitcoin spot on UTC days, each with its own fixed USD 50,000 sleeve and no rebalancing between venues.

No performance figures exist: the backtest report is empty, no optimization was run, and the strategy code deliberately raises an unsupported_capability error when it starts.

Analysis

Hedging Properties of Algorithmic Investment Strategies using Long Short-Term Memory and Time Series models for Equity Indices

Backtest Review

Sharpe
0.19
Total return
12.36%
Max drawdown
58.33%
Trades
778
Win rate
34.7%
Profit factor
1.02

Backtest and paper results are hypothetical. Trading involves risk of loss.