{"slug":"soxl-and-soxs-volatility-decay","qid":"move_buckets","label":"move_buckets","post_title":"soxl-and-soxs-volatility-decay","post_url":"/blog/lang/ja/soxl-and-soxs-volatility-decay#q-move_buckets","columns":["label","sample_count","both_lost_count","avg_index_abs_pct","avg_pair_pct","worst_pair_pct","best_pair_pct"],"rows":[{"label":"1: 指数±2.5%以内","sample_count":17,"both_lost_count":9,"avg_index_abs_pct":1.3,"avg_pair_pct":-12.3,"worst_pair_pct":-58.7,"best_pair_pct":-2.7},{"label":"2: 指数±2.5〜5%","sample_count":4,"both_lost_count":0,"avg_index_abs_pct":4.2,"avg_pair_pct":-9.1,"worst_pair_pct":-16.6,"best_pair_pct":-4.4},{"label":"3: 指数±5〜10%","sample_count":14,"both_lost_count":0,"avg_index_abs_pct":7.1,"avg_pair_pct":-4,"worst_pair_pct":-16.5,"best_pair_pct":3.2},{"label":"4: 指数±10%超","sample_count":21,"both_lost_count":0,"avg_index_abs_pct":16.2,"avg_pair_pct":10.5,"worst_pair_pct":-29.9,"best_pair_pct":98.4}],"shape":"table","sql":"WITH\ndaily AS\n(\n    SELECT\n        ticker,\n        date,\n        anyLast(toFloat64(close)) AS c\n    FROM global_markets.stocks_daily_aggs\n    WHERE ticker IN ('SOXX', 'SOXL', 'SOXS')\n      AND date >= '2021-12-15'\n      AND date <  '2026-09-01'\n    GROUP BY ticker, date\n),\nlagged AS\n(\n    SELECT\n        ticker,\n        date,\n        c,\n        lagInFrame(c, 1) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS prev_c\n    FROM daily\n),\nrets AS\n(\n    SELECT\n        ticker,\n        date,\n        c / prev_c - 1 AS r\n    FROM lagged\n    WHERE prev_c > 0\n      AND abs(c / prev_c - 1) < 0.75\n      AND date >= '2022-01-01'\n      AND (ticker, date) NOT IN\n      (\n          SELECT ticker, toDate(execution_date)\n          FROM global_markets.stocks_splits\n          WHERE ticker IN ('SOXX', 'SOXL', 'SOXS')\n      )\n),\nmonthly AS\n(\n    SELECT\n        toStartOfMonth(date)                        AS m,\n        exp(sumIf(log(1 + r), ticker = 'SOXX')) - 1 AS soxx,\n        exp(sumIf(log(1 + r), ticker = 'SOXL')) - 1 AS soxl,\n        exp(sumIf(log(1 + r), ticker = 'SOXS')) - 1 AS soxs\n    FROM rets\n    GROUP BY m\n    HAVING countIf(ticker = 'SOXX') >= 15\n       AND countIf(ticker = 'SOXL') >= 15\n       AND countIf(ticker = 'SOXS') >= 15\n)\nSELECT\n    multiIf(abs(soxx) < 0.025, '1: 指数±2.5%以内',\n            abs(soxx) < 0.05,  '2: 指数±2.5〜5%',\n            abs(soxx) < 0.10,  '3: 指数±5〜10%',\n                               '4: 指数±10%超') AS label,\n    count()                                  AS sample_count,\n    countIf(soxl < 0 AND soxs < 0)           AS both_lost_count,\n    round(avg(abs(soxx)) * 100, 1)           AS avg_index_abs_pct,\n    round(avg(soxl + soxs) * 100, 1)         AS avg_pair_pct,\n    round(min(soxl + soxs) * 100, 1)         AS worst_pair_pct,\n    round(max(soxl + soxs) * 100, 1)         AS best_pair_pct\nFROM monthly\nGROUP BY label\nORDER BY label","computed_at":"2026-09-16T14:56:45.666634+00:00","elapsed":0.005256628}