Skip to content
All strategies

Strategies

ETH Deribit Long-Gamma Scalping with a Transaction-Cost-Aware Delta Band

Outcome: Abandoned

EthDeribitCostAwareGammaScalping

Outcome Summary

EthDeribitCostAwareGammaScalping aimed to test cost-aware hourly delta-band hedging of a long ETH straddle. Across three iterations, implementation remained blocked by the rolling-options base's lifecycle behavior. All six synthetic scenarios failed during setup, so no backtest or optimization results were produced. The run was abandoned in verification, leaving the trading thesis untested.

Hypothesis

Derived by the Research Lead from helloimgeorgia's question and Newquant's answer on optimal delta-hedging frequency: test whether a finite delta-rebalancing band improves net-of-cost Sharpe for a long ATM straddle when realized volatility exceeds implied volatility. The source discusses hedging costs, not a complete strategy or a solved optimal threshold; the entry filter, rolling structure, sizing, exits and hedge-band search are Research Lead choices. Only the supplied excerpt was available; both linked pages were marked FAILED and an additional fetch failed. Use synchronized 1-HOUR bars, rolling ETH Deribit options and an ETH Binance linear perpetual hedge. Orders execute at signal-bar closes. This is a discrete hourly implementation, not continuous hedging or an exact implementation of the cited Hoggard–Whalley–Wilmott model. Replace the invalid fixed leg_sides dictionary with fixed numeric call_side=1 and put_side=1; the developer translates 1 into BUY internally.

Options represent approximately 4.9% of experiments against a 15% target, cross-venue experiments 7.8% against 15%, and long-only exposure is substantially overrepresented. This delta-hedged options mechanism addresses those gaps without repeating price momentum or small-swing mean reversion. Corpus concentration was empty, so instrument-specific recent shares could not be assessed. ETH is chosen to avoid another BTC experiment. Binance is used for the linear hedge because inverse hedging outside BINANCE_CM is unsupported; Deribit remains the options venue.

verification_loop: Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error:……Show moreShow less

verification_loop: Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - steady_downtrend: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - flat_ranging: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - volatility_spike: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - zero_volume: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - price_gap: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis.

Implementation

Blocked ETH rolling ATM long-straddle and Binance delta-band hedge experiment; no executable implementation is claimed.

Inspection confirms the reported rolling-base limitation persists. Preserve the previous class, imports and fail-fast guard; removing it would execute unconditional scheduled trades outside the hypothesis. Numeric call_side and put_side remain 1, but BUY translation cannot be dispatched through permitted hooks. No edge conclusion is available.

Verification Results

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError:……Show moreShow less

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - steady_downtrend: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - flat_ranging: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - volatility_spike: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - zero_volume: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - price_gap: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis.

Iteration History

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError: infrastructure_blocked:……Show moreShow less

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError: infrastructure_blocked: RollingOptionsStrategy bypasses signal and sizing hooks; conditional straddle entry, premium sizing, holding exits and synchronized delta hedging require prohibited lifecycle overrides. - steady_downtrend: Setup error: RuntimeError: infrastructure_blocked: RollingOptionsStrategy bypasses signal and sizing hooks; conditional straddle entry, premium sizing, holding exits and synchronized delta hedging require prohibited lifecycle overrides. - flat_ranging: Setup error: RuntimeError: infrastructure_blocked: RollingOptionsStrategy bypasses signal and sizing hooks; conditional straddle entry, premium sizing, holding exits and synchronized delta hedging require prohibited lifecycle overrides. - volatility_spike: Setup error: RuntimeError: infrastructure_blocked: RollingOptionsStrategy bypasses signal and sizing hooks; conditional straddle entry, premium sizing, holding exits and synchronized delta hedging require prohibited lifecycle overrides. - zero_volume: Setup error: RuntimeError: infrastructure_blocked: RollingOptionsStrategy bypasses signal and sizing hooks; conditional straddle entry, premium sizing, holding exits and synchronized delta hedging require prohibited lifecycle overrides. - price_gap: Setup error: RuntimeError: infrastructure_blocked: RollingOptionsStrategy bypasses signal and sizing hooks; conditional straddle entry, premium sizing, holding exits and synchronized delta hedging require prohibited lifecycle overrides.

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError:……Show moreShow less

Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError: infrastructure_blocked: inspected RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. It enters scheduled legs unconditionally, uses fixed-contract sizing and closes only near expiry. Permitted hooks cannot implement the conditional long straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - steady_downtrend: Setup error: RuntimeError: infrastructure_blocked: inspected RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. It enters scheduled legs unconditionally, uses fixed-contract sizing and closes only near expiry. Permitted hooks cannot implement the conditional long straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - flat_ranging: Setup error: RuntimeError: infrastructure_blocked: inspected RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. It enters scheduled legs unconditionally, uses fixed-contract sizing and closes only near expiry. Permitted hooks cannot implement the conditional long straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - volatility_spike: Setup error: RuntimeError: infrastructure_blocked: inspected RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. It enters scheduled legs unconditionally, uses fixed-contract sizing and closes only near expiry. Permitted hooks cannot implement the conditional long straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - zero_volume: Setup error: RuntimeError: infrastructure_blocked: inspected RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. It enters scheduled legs unconditionally, uses fixed-contract sizing and closes only near expiry. Permitted hooks cannot implement the conditional long straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - price_gap: Setup error: RuntimeError: infrastructure_blocked: inspected RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. It enters scheduled legs unconditionally, uses fixed-contract sizing and closes only near expiry. Permitted hooks cannot implement the conditional long straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis.

Outcome Summary

Expose rolling-options structure lifecycle hooks before retrying this hypothesis.

After three iterations, the run was abandoned following Layer 2 synthetic verification failures across all six scenarios. The strategy raised an infrastructure-blocked error because the rolling-options base bypassed the hooks needed for conditional entry, premium-budget sizing, holding/loss exits and synchronized delta-band hedging.

Test whether an hourly delta-rebalancing band improves net-of-cost Sharpe for a long ETH Deribit ATM straddle, hedged with Binance perpetuals, when realized volatility exceeds implied volatility.

No return, Sharpe or trade-count results were produced because synthetic verification failed during setup. Backtesting, optimization, analyst review and risk review were not reached.

Abandon Reason

verification_loop: Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error:……Show moreShow less

verification_loop: Verification failed (Layer 2 — synthetic scenarios): Parameters used: ['put_side', 'call_side', 'delta_band', 'hold_hours', 'iv_discount', 'cooldown_hours', 'hedge_leverage', 'rolling_options', 'target_dte_days', 'roll_buffer_hours', 'rv_lookback_hours', '_optimization_plan', 'dte_tolerance_days', 'max_data_age_hours', 'premium_budget_pct', 'structure_loss_pct', 'max_underlying_notional_pct'] Check that __init__ sets all attributes from self.parameters.get(). - steady_uptrend: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - steady_downtrend: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - flat_ranging: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - volatility_spike: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - zero_volume: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis. - price_gap: Setup error: RuntimeError: infrastructure_blocked: iteration 3 confirms RollingOptionsStrategy.on_bar bypasses calculate_signal, should_enter, position_size and should_exit. Scheduled unconditional entries, fixed-contract sizing and expiry-only exits cannot implement the conditional straddle, premium budget, holding/loss exits and synchronized Binance delta-band hedge. Expose structure lifecycle hooks before retrying this hypothesis.

Analysis

Optimal delta-hedging frequency when gamma scalping

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