{"schema_version":"publication_handoff_v1","producer":{"name":"strategy-lab publication-handoff","renderer_implementation_identity":"ce6bc4ff7c662eb675c13b5823d602c25681c77830af1d606ef1f3893a246f2a"},"run":{"run_id":"research_resta_sma_btcusdt_oos_validation","manifest_sha256":"2d4dd55b89fec0e41157ab61378e7fab321836bf3ebd244b2a4f4f7785646f8b","artifact_index_sha256":"6b3bd45ef3d3555f23207dfff9f1874057869d85c2f1f7e3d2485553963347c9","replay_of":null},"research":{"research_id":"research_resta_sma_btcusdt_oos_validation","approved_research_identity":"b1e9a1305343f26933c5dc319da64f8859c5974f99781f6032ddf998d004f0d1","source_material":{"media_type":"application/pdf","sha256":"829e32408fb6a49e8a08ee4d57a39189c1d8d64426df8d109d5cfcc8f6be8618"},"source":{"title":"Technical Analysis on the Bitcoin Market: Trading Opportunities or Investors’ Pitfall?","author":"Marina Resta; Paolo Pagnottoni; Maria Elena De Giuli","date":"2020","url":"https://doi.org/10.3390/risks8020044"},"research_context":{"classification":"OUT_OF_SAMPLE_VALIDATION","research_question":"Do the published Resta, Pagnottoni, and De Giuli daily SMA12 and SMA24 parameterizations, with SMA12 as the paper's primary daily SMA result, meet the frozen Strategy Lab primary-member excess-return criterion versus identically costed buy-and-hold on Binance Spot BTCUSDT over the post-publication interval [2020-06-01, 2026-09-01) under the declared Strategy Lab conventions?","substitutions":[{"type":"SAMPLE_PERIOD_CHANGED","detail":"The source uses Bitcoin data from 2012-01-01 through 2019-08-20 and reports 31 three-month windows plus July-August 2019; this out-of-sample validation freezes the later post-publication interval [2020-06-01, 2026-09-01)."},{"type":"SOURCE_DATASET_CHANGED","detail":"The source uses HLOC Bitcoin series available through Kaggle (Btc1d); Strategy Lab uses checksum-verified Binance Public Data Spot daily archives."},{"type":"MARKET_PROXY_CHANGED","detail":"The source describes a Bitcoin price series without naming the supported Binance BTCUSDT spot market; Strategy Lab evaluates BTCUSDT, using USDT-quoted BTC as its fixed market proxy."},{"type":"EXECUTION_CONVENTION_STRATEGY_LAB_DEFINED","detail":"The source applies TA separately in three-month windows and describes MA crossovers as +1 buy and -1 sell signals, with a signed-return payoff. Strategy Lab instead continuously maps a completed close strictly above its arithmetic SMA to LONG and otherwise to FLAT, starts FLAT, retains no short position, uses the latest lookback completed closes including the signal close, and executes state changes at the next UTC daily open. The source equation's t-k through t summation with a k denominator conflicts with its prose that daily SMAs consider the previous 12 or 24 days; the declared lookbacks follow the source's unambiguous SMA12/SMA24 labels and prose, while this current close-window implementation is explicitly not claimed to resolve that equation ambiguity."},{"type":"ACCOUNTING_CONVENTION_STRATEGY_LAB_DEFINED","detail":"The source expresses MA payoffs through signed continuous returns and reports performance over separate rolling windows; Strategy Lab uses fractional all-in long_flat USDT accounting with unchanged FLAT cash and terminal liquidation."},{"type":"COST_MODEL_STRATEGY_LAB_DEFINED","detail":"The source does not state Strategy Lab's frozen per-side transaction-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 compares annualized return, Sharpe ratio, downside and spread performance measures (with risk-free rate zero for its Sharpe calculation) and makes no Strategy Lab HAC family decision. Strategy Lab applies excess_return_v2 independently to each member; its primary-plus-robustness rule makes SMA12 decisive and retains SMA24 as descriptive robustness only."}]}},"family":{"family_identity":"ff5152547e2c7a31376fef446bd733289cf40854e5ed196e15eaa2f24d7a7502","mechanism":"close_sma","symbol":"BTCUSDT","interval":"1d","exposure":"long_flat","execution":"next_daily_open","accounting":"fractional_all_in_terminal_liquidation_v1","benchmark":"identically_costed_buy_and_hold","evaluation_start_utc":"2020-06-01","evaluation_end_exclusive_utc":"2026-09-01","evaluation_days":2283,"maximum_warmup_days":24,"primary_cost_bps_per_leg":15,"diagnostic_cost_bps_per_leg":[20,25],"decision_rule":{"type":"primary_plus_robustness","version":"family_rule_v1","k":0,"n":2,"primary_member_id":"sma_12"},"members":[{"order":1,"id":"sma_12","decision_role":"primary","member_criterion_version":"excess_return_v2","parameters":[{"name":"lookback","value":12}],"warmup_days":12,"required_first_bar_utc":"2020-05-20","numerical_specification_identity":"e4a42c953fb7437af1a65db5abeb62f128d5e617791e103402ed49329c2af3ef","source_description":"Published daily SMA12 trend-following member: the paper identifies the 12-time-unit simple moving average as a daily rule and its discussion narratively highlights MA12 as the best daily SMA. Strategy Lab maps it to close_sma with the separately declared source-versus-platform signal and position differences.","source_excerpt":"","cost_rationale":"Apply the current Strategy Lab standing per-side cost policy: 15 bps primary, with 20 and 25 bps diagnostics; the source does not define this Strategy Lab schedule.","date_selection_reason":"This is a pre-frozen post-publication out-of-sample interval: it begins on 2020-06-01, after the paper's 2020-05-06 publication and its data ending 2019-08-20, and ends exclusively on 2026-09-01, before declaration and without inspecting Strategy Lab outcomes.","prior_inspection":"known"},{"order":2,"id":"sma_24","decision_role":"robustness","member_criterion_version":"excess_return_v2","parameters":[{"name":"lookback","value":24}],"warmup_days":24,"required_first_bar_utc":"2020-05-08","numerical_specification_identity":"2ba867094afa9c5e75ba4aef9798abd84ea5c38e289ced61e4b2a1bac51d6d6e","source_description":"Published daily SMA24 trend-following member: the paper identifies the 24-time-unit simple moving average as a daily rule. It is retained as a published descriptive robustness member; it cannot rescue the paper-highlighted SMA12 primary result.","source_excerpt":"","cost_rationale":"Apply the current Strategy Lab standing per-side cost policy: 15 bps primary, with 20 and 25 bps diagnostics; the source does not define this Strategy Lab schedule.","date_selection_reason":"This is a pre-frozen post-publication out-of-sample interval: it begins on 2020-06-01, after the paper's 2020-05-06 publication and its data ending 2019-08-20, and ends exclusively on 2026-09-01, before declaration and without inspecting Strategy Lab outcomes.","prior_inspection":"known"}]},"dataset":{"provider":"Binance Public Data","market":"Spot","symbol":"BTCUSDT","interval":"1d","capture_source":"Binance Public Data Spot monthly kline archives plus daily kline archives for the trailing partial month","rows":2308,"first_open_utc":"2020-05-08T00:00:00Z","terminal_open_utc":"2026-09-01T00:00:00Z","normalized_bars_sha256":"f3c2508b4548100c17d8dc63dcc3afb7fbf2cc5d693a0ba9c21eb884c5038f64","capture_manifest_sha256":"11a745c33ec7e5cbb23c5a334c93a4f8a3e43a1e6a0374d709020f403d7a56f5","source_attribution_sha256":"f06b3ee389afbaf7c069ca133eb1ee1d08535e22baf7a6481b471a68f531e66d","pre_run_provenance_sha256":"211c7650442faa529f3d647450354623cb17972c4c5f263ffefa4764925a289d","research_plan_sha256":"bac72e2f92723e6d6fece4fcd88a43f198d43592318d43e44cf6ea61bbd7e7f9","retained_provider_archives":77,"normalizer_identity":"d1690db6a30e8e772687bcf06803fb4d3e2c433d043e42a9bfe0ed035247ba2a"},"results":{"outcome":"DID_NOT_MEET_CRITERIA","completion":"COMPLETE","reason":"The named primary member did not meet its criterion; robustness members cannot rescue it.","met_criteria_members":0,"did_not_meet_criteria_members":2,"inconclusive_members":0,"evaluation_failed_members":0,"missing_members":0,"members":[{"id":"sma_12","status":"EVALUATED","scientific_outcome":"DID_NOT_MEET_CRITERIA","reason":"The declared historical benchmark test was not met; this is not proof of universal unprofitability.","operational_error":"","primary":{"cost_bps_per_leg":15,"strategy":{"cumulative_return_percent":"284.301872","annualized_return_percent":"24.015478","simple_return_sharpe":"0.742072","log_return_sharpe":"0.552432","maximum_drawdown_percent":"-60.426462","exposure_days":1203,"turnover_legs":374,"closed_trades":187},"benchmark":{"cumulative_return_percent":"729.209042","annualized_return_percent":"40.240540","simple_return_sharpe":"0.877628","log_return_sharpe":"0.593107","maximum_drawdown_percent":"-76.629251","exposure_days":2283,"turnover_legs":2,"closed_trades":1}},"hac":{"lag_days":20,"mean_daily_excess_log_return":"-0.0003368567308186607","one_sided_95_lower_bound":"-0.0009944748286893216","standard_error":"0.00039980341538929073"},"drawdown_criterion":null,"diagnostic_costs":[{"cost_bps_per_leg":20,"strategy":{"cumulative_return_percent":"218.756597","annualized_return_percent":"20.362645","simple_return_sharpe":"0.665836","log_return_sharpe":"0.475453","maximum_drawdown_percent":"-61.902047","exposure_days":1203,"turnover_legs":374,"closed_trades":187},"benchmark":{"cumulative_return_percent":"728.380245","annualized_return_percent":"40.218120","simple_return_sharpe":"0.877355","log_return_sharpe":"0.592839","maximum_drawdown_percent":"-76.629251","exposure_days":2283,"turnover_legs":2,"closed_trades":1}},{"cost_bps_per_leg":25,"strategy":{"cumulative_return_percent":"164.390411","annualized_return_percent":"16.817397","simple_return_sharpe":"0.589657","log_return_sharpe":"0.398520","maximum_drawdown_percent":"-63.322615","exposure_days":1203,"turnover_legs":374,"closed_trades":187},"benchmark":{"cumulative_return_percent":"727.552275","annualized_return_percent":"40.195704","simple_return_sharpe":"0.877082","log_return_sharpe":"0.592571","maximum_drawdown_percent":"-76.629251","exposure_days":2283,"turnover_legs":2,"closed_trades":1}}]},{"id":"sma_24","status":"EVALUATED","scientific_outcome":"DID_NOT_MEET_CRITERIA","reason":"The declared historical benchmark test was not met; this is not proof of universal unprofitability.","operational_error":"","primary":{"cost_bps_per_leg":15,"strategy":{"cumulative_return_percent":"199.945835","annualized_return_percent":"19.197829","simple_return_sharpe":"0.638198","log_return_sharpe":"0.441797","maximum_drawdown_percent":"-68.136688","exposure_days":1205,"turnover_legs":266,"closed_trades":133},"benchmark":{"cumulative_return_percent":"729.209042","annualized_return_percent":"40.240540","simple_return_sharpe":"0.877628","log_return_sharpe":"0.593107","maximum_drawdown_percent":"-76.629251","exposure_days":2283,"turnover_legs":2,"closed_trades":1}},"hac":{"lag_days":20,"mean_daily_excess_log_return":"-0.0004454097146178195","one_sided_95_lower_bound":"-0.0010911880572111428","standard_error":"0.00039260535528026986"},"drawdown_criterion":null,"diagnostic_costs":[{"cost_bps_per_leg":20,"strategy":{"cumulative_return_percent":"162.592000","annualized_return_percent":"16.689993","simple_return_sharpe":"0.584851","log_return_sharpe":"0.388121","maximum_drawdown_percent":"-69.447237","exposure_days":1205,"turnover_legs":266,"closed_trades":133},"benchmark":{"cumulative_return_percent":"728.380245","annualized_return_percent":"40.218120","simple_return_sharpe":"0.877355","log_return_sharpe":"0.592839","maximum_drawdown_percent":"-76.629251","exposure_days":2283,"turnover_legs":2,"closed_trades":1}},{"cost_bps_per_leg":25,"strategy":{"cumulative_return_percent":"129.889974","annualized_return_percent":"14.234916","simple_return_sharpe":"0.531544","log_return_sharpe":"0.334475","maximum_drawdown_percent":"-70.703885","exposure_days":1205,"turnover_legs":266,"closed_trades":133},"benchmark":{"cumulative_return_percent":"727.552275","annualized_return_percent":"40.195704","simple_return_sharpe":"0.877082","log_return_sharpe":"0.592571","maximum_drawdown_percent":"-76.629251","exposure_days":2283,"turnover_legs":2,"closed_trades":1}}]}]},"implementation":{"numerical_implementation_identity":"d1690db6a30e8e772687bcf06803fb4d3e2c433d043e42a9bfe0ed035247ba2a","renderer_implementation_identity":"ce6bc4ff7c662eb675c13b5823d602c25681c77830af1d606ef1f3893a246f2a","environment_identity":"047c23e23c52a10b0400986440cc310bb9a00b59091de695ba6f0134aed570f5","executable_sha256":"d29430f5f0eaf5c1fa0d4c524b405182bb592cb07d98114be918a5843fa2c8fe","main_module_version":"v0.0.0-20260926185313-02d9eb797418","vcs_revision":"02d9eb797418a69f39ab53c725d6cdd133e4593d","vcs_modified":false},"interpretation_limits":[{"code":"HISTORICAL_HYPOTHETICAL","statement":"Results are historical hypothetical simulations under the frozen execution, cost, benchmark and accounting assumptions. They do not establish execution feasibility or future profitability."},{"code":"HISTORICAL_DATA_NOT_UNSEEN","statement":"The evaluation period is historical market data that was publicly accessible before the study was frozen; it is not genuinely unseen or future data, whatever the research classification."},{"code":"DEPENDENT_FAMILY_MEMBERS","statement":"Members evaluated on one BTCUSDT series with overlapping lookbacks are strongly dependent. The frozen family rule is a declared decision rule, not a calibrated family-level confidence test, and individual HAC bounds do not establish a family-wise error rate."},{"code":"ALL_MEMBERS_REPORTED","statement":"Every frozen member is reported in declared order, including unfavorable, inconclusive and operationally failed members. No member may be selected, promoted or reordered after observing results, and diagnostic costs cannot change the primary-cost outcome."},{"code":"FIDELITY_OPERATOR_DECLARED","statement":"The research classification and declared substitutions are operator-approved disclosures. Strategy Lab validates their structure and internal consistency but does not verify them against the source material."}],"artifacts":[{"path":"input.json","role":"submitted_input","sha256":"5f30ddaf638d629e9222d944d0b8ff3265b0dc574d72e611e69a9680f1f7d588"},{"path":"assessment.md","role":"assessment","sha256":"8cd33684c4d2207431f0c315b1de41a21baba83ea0134e96c77cccfc898b5d80"},{"path":"request.json","role":"run_request","sha256":"20a22483f854c2af4f98be113240792b9fb0e476483a020f5e51a5f9dc291572"},{"path":"family.json","role":"resolved_family","sha256":"5f30ddaf638d629e9222d944d0b8ff3265b0dc574d72e611e69a9680f1f7d588"},{"path":"dataset/capture-manifest.json","role":"captured_source_manifest","sha256":"11a745c33ec7e5cbb23c5a334c93a4f8a3e43a1e6a0374d709020f403d7a56f5"},{"path":"dataset/source-attribution.json","role":"captured_source_attribution","sha256":"f06b3ee389afbaf7c069ca133eb1ee1d08535e22baf7a6481b471a68f531e66d"},{"path":"dataset/pre-run-provenance.json","role":"captured_pre_run_provenance","sha256":"211c7650442faa529f3d647450354623cb17972c4c5f263ffefa4764925a289d"},{"path":"dataset/plan/research-plan.json","role":"captured_research_plan","sha256":"bac72e2f92723e6d6fece4fcd88a43f198d43592318d43e44cf6ea61bbd7e7f9"},{"path":"dataset/bars.json","role":"normalized_dataset","sha256":"f3c2508b4548100c17d8dc63dcc3afb7fbf2cc5d693a0ba9c21eb884c5038f64"},{"path":"dataset.json","role":"dataset_binding","sha256":"cab753e729c40d1f5554ec3d790dc333be2e3d656fb3d535be3bbb4711100fb8"},{"path":"build-provenance.json","role":"build_provenance","sha256":"c2fd7e5ab2630f379515046acee0260b20e9326bfad1e63728f640d7852382c9"},{"path":"result.json","role":"evaluation_result","sha256":"0afb92b075a86483fb70278ee64ec7eee91698ff6a99219619799073a4d865be"},{"path":"report.md","role":"factual_report","sha256":"ddcf947a7c4502b3b73fc6bfe3c311006adec9447d3a4d6f79ea610cd6b8e397"}]}
