{"schema_version":"research_spec_v1","research_id":"research_gerritsen_trb_btcusdt_oos_revalidation","source_material":{"media_type":"application/pdf","sha256":"0b0fade2fff8c7929eb2308d4f80819a6c0ad217c37af554f417f158fe718482"},"research_context":{"classification":"OUT_OF_SAMPLE_VALIDATION","research_question":"Do the published Gerritsen et al. 50-, 150-, and 200-day trading-range-breakout parameterizations retain evidence of excess return versus identically costed buy-and-hold when re-evaluated out of sample on Binance Spot BTCUSDT over [2019-01-01, 2026-01-01) under frozen Strategy Lab conventions?","substitutions":[{"type":"SAMPLE_PERIOD_CHANGED","detail":"The source price history ends on 2018-12-31; this out-of-sample evaluation uses [2019-01-01, 2026-01-01)."},{"type":"SOURCE_DATASET_CHANGED","detail":"The source study uses Mt Gox Bitcoin price history and, from 2013-04-28, CoinMarketCap; Strategy Lab uses checksum-verified Binance Public Data Spot daily archives."},{"type":"MARKET_PROXY_CHANGED","detail":"The source study evaluates a Bitcoin price series; Strategy Lab evaluates Binance Spot BTCUSDT, using USDT-quoted BTC as the supported market proxy."},{"type":"EXECUTION_CONVENTION_STRATEGY_LAB_DEFINED","detail":"The source defines daily buy/sell/hold signals from trading-range breakouts and its long-only strategy is long only on buy-signal days. Strategy Lab maps the published channel parameters to its supported stateful close_channel rule, starts FLAT, retains LONG inside the channel including equality, and executes signal changes at the next daily open."},{"type":"ACCOUNTING_CONVENTION_STRATEGY_LAB_DEFINED","detail":"The source long-only strategy invests outside-Bitcoin capital at the risk-free rate; Strategy Lab long_flat accounting leaves FLAT capital unchanged and performs terminal liquidation under fractional_all_in_terminal_liquidation_v1."},{"type":"COST_MODEL_STRATEGY_LAB_DEFINED","detail":"The source study does not define Strategy Lab's frozen per-side cost schedule; Strategy Lab applies 15 bps primary cost with 20 and 25 bps diagnostic costs to both strategy and benchmark."},{"type":"STATISTICAL_TEST_STRATEGY_LAB_DEFINED","detail":"The source evaluates Sharpe ratios using bootstrap inference. Strategy Lab instead applies excess_return_v2 independently to each member and freezes a 2-of-3 k_of_n family decision rule."}]},"family":{"schema_version":"study_family_v1","members":[{"id":"trb_50","member_criterion_version":"excess_return_v2","specification":{"rules":{"schema_version":"spec_v2","methodology_version":"research_v2","mechanism":"close_channel","entry_lookback":50,"exit_lookback":50,"source":"binance_public_spot","symbol":"BTCUSDT","interval":"1d","exposure":"long_flat","start":"2019-01-01","end":"2026-01-01","warmup_days":51,"execution":"next_daily_open","accounting":"fractional_all_in_terminal_liquidation_v1","primary_cost_bps":15,"diagnostic_cost_bps":[20,25],"benchmark":"identically_costed_buy_and_hold","criteria_version":"excess_return_v2"},"source":{"description":"Gerritsen et al. trading-range-breakout rule with n=50: a bullish signal occurs above preceding resistance and a bearish signal below preceding support.","title":"The profitability of technical trading rules in the Bitcoin market","author":"Dirk F. Gerritsen; Elie Bouri; Ehsan Ramezanifar; David Roubaud","url":"https://doi.org/10.1016/j.frl.2019.08.011","date":"2020","excerpt":""},"cost_rationale":"Apply the current Strategy Lab standing per-side cost policy: 15 bps primary, with 20 and 25 bps diagnostics; the source study does not define this Strategy Lab schedule.","date_selection_reason":"Out-of-sample validation starts immediately after the source price sample ends on 2018-12-31 and uses the maximum supported seven-calendar-year interval [2019-01-01, 2026-01-01).","prior_inspection":"known","provenance":{"schema_version":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"Current Strategy Lab executable specification schema."},"methodology_version":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"Current Strategy Lab deterministic research methodology."},"mechanism":{"origin":"USER_EXPLICIT","evidence":"The source paper defines trading-range-breakout rules; this acceptance maps that family to the supported close_channel mechanism."},"entry_lookback":{"origin":"USER_EXPLICIT","evidence":"The source paper applies a 50-day trading-range-breakout resistance window."},"exit_lookback":{"origin":"USER_EXPLICIT","evidence":"The source paper applies a 50-day trading-range-breakout support window."},"source":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Strategy Lab current capture policy uses Binance Public Data Spot archives; the source-dataset substitution is declared in research_context."},"symbol":{"origin":"STANDING_POLICY_DEFAULT","evidence":"BTCUSDT is the current supported Strategy Lab Bitcoin market."},"interval":{"origin":"USER_EXPLICIT","evidence":"The source study uses daily Bitcoin prices and the evaluation remains daily."},"exposure":{"origin":"USER_EXPLICIT","evidence":"The selected source strategy is the long-only variant; Strategy Lab uses its supported long_flat exposure with execution/accounting differences declared in research_context."},"start":{"origin":"USER_EXPLICIT","evidence":"2019-01-01 is the first calendar day after the source price sample ends on 2018-12-31."},"end":{"origin":"USER_EXPLICIT","evidence":"2026-01-01 is the exclusive end of a pre-frozen seven-calendar-year out-of-sample interval."},"warmup_days":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"close_channel requires max(entry_lookback, exit_lookback)+1 = 51 warmup days."},"execution":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab execution convention is next_daily_open; the difference from the source signal convention is declared in research_context."},"accounting":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab accounting is fractional_all_in_terminal_liquidation_v1; the source risk-free-cash difference is declared in research_context."},"primary_cost_bps":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab primary per-side cost assumption is 15 bps."},"diagnostic_cost_bps":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab diagnostic per-side cost assumptions are 20 and 25 bps."},"benchmark":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab benchmark is identically_costed_buy_and_hold."},"criteria_version":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab member decision rule is excess_return_v2; the source statistical-test substitution is declared in research_context."},"cost_rationale":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Use the standing Strategy Lab 15 bps primary and 20/25 bps diagnostic per-side cost schedule because the source does not define this schedule."}}}},{"id":"trb_150","member_criterion_version":"excess_return_v2","specification":{"rules":{"schema_version":"spec_v2","methodology_version":"research_v2","mechanism":"close_channel","entry_lookback":150,"exit_lookback":150,"source":"binance_public_spot","symbol":"BTCUSDT","interval":"1d","exposure":"long_flat","start":"2019-01-01","end":"2026-01-01","warmup_days":151,"execution":"next_daily_open","accounting":"fractional_all_in_terminal_liquidation_v1","primary_cost_bps":15,"diagnostic_cost_bps":[20,25],"benchmark":"identically_costed_buy_and_hold","criteria_version":"excess_return_v2"},"source":{"description":"Gerritsen et al. trading-range-breakout rule with n=150: a bullish signal occurs above preceding resistance and a bearish signal below preceding support.","title":"The profitability of technical trading rules in the Bitcoin market","author":"Dirk F. Gerritsen; Elie Bouri; Ehsan Ramezanifar; David Roubaud","url":"https://doi.org/10.1016/j.frl.2019.08.011","date":"2020","excerpt":""},"cost_rationale":"Apply the current Strategy Lab standing per-side cost policy: 15 bps primary, with 20 and 25 bps diagnostics; the source study does not define this Strategy Lab schedule.","date_selection_reason":"Out-of-sample validation starts immediately after the source price sample ends on 2018-12-31 and uses the maximum supported seven-calendar-year interval [2019-01-01, 2026-01-01).","prior_inspection":"known","provenance":{"schema_version":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"Current Strategy Lab executable specification schema."},"methodology_version":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"Current Strategy Lab deterministic research methodology."},"mechanism":{"origin":"USER_EXPLICIT","evidence":"The source paper defines trading-range-breakout rules; this acceptance maps that family to the supported close_channel mechanism."},"entry_lookback":{"origin":"USER_EXPLICIT","evidence":"The source paper applies a 150-day trading-range-breakout resistance window."},"exit_lookback":{"origin":"USER_EXPLICIT","evidence":"The source paper applies a 150-day trading-range-breakout support window."},"source":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Strategy Lab current capture policy uses Binance Public Data Spot archives; the source-dataset substitution is declared in research_context."},"symbol":{"origin":"STANDING_POLICY_DEFAULT","evidence":"BTCUSDT is the current supported Strategy Lab Bitcoin market."},"interval":{"origin":"USER_EXPLICIT","evidence":"The source study uses daily Bitcoin prices and the evaluation remains daily."},"exposure":{"origin":"USER_EXPLICIT","evidence":"The selected source strategy is the long-only variant; Strategy Lab uses its supported long_flat exposure with execution/accounting differences declared in research_context."},"start":{"origin":"USER_EXPLICIT","evidence":"2019-01-01 is the first calendar day after the source price sample ends on 2018-12-31."},"end":{"origin":"USER_EXPLICIT","evidence":"2026-01-01 is the exclusive end of a pre-frozen seven-calendar-year out-of-sample interval."},"warmup_days":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"close_channel requires max(entry_lookback, exit_lookback)+1 = 151 warmup days."},"execution":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab execution convention is next_daily_open; the difference from the source signal convention is declared in research_context."},"accounting":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab accounting is fractional_all_in_terminal_liquidation_v1; the source risk-free-cash difference is declared in research_context."},"primary_cost_bps":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab primary per-side cost assumption is 15 bps."},"diagnostic_cost_bps":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab diagnostic per-side cost assumptions are 20 and 25 bps."},"benchmark":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab benchmark is identically_costed_buy_and_hold."},"criteria_version":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab member decision rule is excess_return_v2; the source statistical-test substitution is declared in research_context."},"cost_rationale":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Use the standing Strategy Lab 15 bps primary and 20/25 bps diagnostic per-side cost schedule because the source does not define this schedule."}}}},{"id":"trb_200","member_criterion_version":"excess_return_v2","specification":{"rules":{"schema_version":"spec_v2","methodology_version":"research_v2","mechanism":"close_channel","entry_lookback":200,"exit_lookback":200,"source":"binance_public_spot","symbol":"BTCUSDT","interval":"1d","exposure":"long_flat","start":"2019-01-01","end":"2026-01-01","warmup_days":201,"execution":"next_daily_open","accounting":"fractional_all_in_terminal_liquidation_v1","primary_cost_bps":15,"diagnostic_cost_bps":[20,25],"benchmark":"identically_costed_buy_and_hold","criteria_version":"excess_return_v2"},"source":{"description":"Gerritsen et al. trading-range-breakout rule with n=200: a bullish signal occurs above preceding resistance and a bearish signal below preceding support.","title":"The profitability of technical trading rules in the Bitcoin market","author":"Dirk F. Gerritsen; Elie Bouri; Ehsan Ramezanifar; David Roubaud","url":"https://doi.org/10.1016/j.frl.2019.08.011","date":"2020","excerpt":""},"cost_rationale":"Apply the current Strategy Lab standing per-side cost policy: 15 bps primary, with 20 and 25 bps diagnostics; the source study does not define this Strategy Lab schedule.","date_selection_reason":"Out-of-sample validation starts immediately after the source price sample ends on 2018-12-31 and uses the maximum supported seven-calendar-year interval [2019-01-01, 2026-01-01).","prior_inspection":"known","provenance":{"schema_version":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"Current Strategy Lab executable specification schema."},"methodology_version":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"Current Strategy Lab deterministic research methodology."},"mechanism":{"origin":"USER_EXPLICIT","evidence":"The source paper defines trading-range-breakout rules; this acceptance maps that family to the supported close_channel mechanism."},"entry_lookback":{"origin":"USER_EXPLICIT","evidence":"The source paper applies a 200-day trading-range-breakout resistance window."},"exit_lookback":{"origin":"USER_EXPLICIT","evidence":"The source paper applies a 200-day trading-range-breakout support window."},"source":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Strategy Lab current capture policy uses Binance Public Data Spot archives; the source-dataset substitution is declared in research_context."},"symbol":{"origin":"STANDING_POLICY_DEFAULT","evidence":"BTCUSDT is the current supported Strategy Lab Bitcoin market."},"interval":{"origin":"USER_EXPLICIT","evidence":"The source study uses daily Bitcoin prices and the evaluation remains daily."},"exposure":{"origin":"USER_EXPLICIT","evidence":"The selected source strategy is the long-only variant; Strategy Lab uses its supported long_flat exposure with execution/accounting differences declared in research_context."},"start":{"origin":"USER_EXPLICIT","evidence":"2019-01-01 is the first calendar day after the source price sample ends on 2018-12-31."},"end":{"origin":"USER_EXPLICIT","evidence":"2026-01-01 is the exclusive end of a pre-frozen seven-calendar-year out-of-sample interval."},"warmup_days":{"origin":"SUPPORTED_MECHANISM_DEFINITION","evidence":"close_channel requires max(entry_lookback, exit_lookback)+1 = 201 warmup days."},"execution":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab execution convention is next_daily_open; the difference from the source signal convention is declared in research_context."},"accounting":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab accounting is fractional_all_in_terminal_liquidation_v1; the source risk-free-cash difference is declared in research_context."},"primary_cost_bps":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab primary per-side cost assumption is 15 bps."},"diagnostic_cost_bps":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab diagnostic per-side cost assumptions are 20 and 25 bps."},"benchmark":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab benchmark is identically_costed_buy_and_hold."},"criteria_version":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Current Strategy Lab member decision rule is excess_return_v2; the source statistical-test substitution is declared in research_context."},"cost_rationale":{"origin":"STANDING_POLICY_DEFAULT","evidence":"Use the standing Strategy Lab 15 bps primary and 20/25 bps diagnostic per-side cost schedule because the source does not define this schedule."}}}}],"family_rule":{"type":"k_of_n","version":"family_rule_v1","k":2,"n":3}}}
