策略
ETH Deribit週度Put-Credit-Spread——波動率風險溢酬 + 下檔偏斜收割(定義風險選擇權,偏斜門檻,3參數)
結果: 已放棄
EthDeribitWeeklyPutCreditSpreadSkewVrp
ETH Deribit週度Put-Credit-Spread——波動率風險溢酬 + 下檔偏斜收割(定義風險選擇權,偏斜門檻,3參數)
假說
一個DEFINED-RISK、單一交易所的選擇權策略,標的為DERIBIT ETH的週到期合約,賣出加密貨幣波動率曲面上持續被高估的下檔部分。每個週週期一次(前月到期約5-7 DTE),且僅在下檔保險確實偏貴時才進場(25-delta put的IV比ATM IV更貴,偏斜幅度ONLY高於過去已實現波動率AND ATM IV),此時策略會開立一組PUT CREDIT SPREAD:SELL一個約25-delta的put,並BUY一個相同到期日、約10-delta的put。最大虧損被限制在(履約價寬度 − 淨權利金收入)以內,因此帳戶不會因尾端行情而被強制平倉——這直接回應了風險審查對空頭波動率策略最主要的疑慮。此策略刻意填補了策略工廠中最大的單一投資組合缺口:目前選擇權僅占整體部位的4.7%,相對於≥15%的配額,先前幾乎沒有任何涵蓋。它刻意與單純的空頭strangle有所區隔——不同的標的資產(ETH)、不同的結構(定義風險的垂直價差,而非裸露的雙邊部位),以及不同的訊號(put-SKEW偏貴程度 + VRP,而非單純的IV/RV)。可調參數僅有3個,以抵抗過去導致259個假說失敗的過度擬合問題。NOT funding-carry(L33),NOT動能/趨勢共振(trend-confluence)投資組合(已耗盡),NOT價格反轉/回落(reversal/fade)——損益來源是結構性保險溢酬加上加密貨幣put偏斜溢酬,而非方向性的價格預測。
實作
在Deribit ETH上進行的定義風險週put credit spread(信用價差)策略。每個週到期週期(約7 DTE),rolling-options框架會解析出兩個put腿位(約5%與約10% OTM);策略依履約價將它們映射為short(較高履約價,約25-delta)與long(較低履約價,約10-delta)兩個腿位,以相同的1:1合約數量SELLSshort、BUYSlong,並持有至展期緩衝區,等待歐式現金結算。進場條件以在週期進場視窗所量測的兩項偏貴度檢定為門檻:下檔偏斜(short-put IV >= Deribit DVOL ATM IV x (1 + skew_margin))以及波動率風險溢酬(ATM IV >= 過去14天的已實現波動率 x (1 + vrp_margin))。各腿位的隱含波動率是以Black-Scholes從各自的USD權利金K棒反推而得。每組價差的最大虧損為(履約價寬度 − 淨權利金收入),於進場時即固定,部位大小的設定正是以此為風險依據:合約數 = floor(equity x risk_frac / max_loss),並設有上限使價差總寬度維持在權益的50%以內,同時以Deribit的最低1口合約ETH為下限。可調參數僅有3個(skew_margin、vrp_margin、risk_frac);槓桿為1.0;沒有永續合約/標的資產的交易路徑。
驗證結果
迭代紀錄
驗證失敗(第 2 層 — 合成情境): 使用的參數:['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] 請檢查 __init__ 是否從 self.parameters.get() 設定了所有屬性。 - steady_uptrend: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000)
驗證失敗(第 2 層 — 合成情境): 使用的參數:['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] 請檢查 __init__ 是否從 self.parameters.get() 設定了所有屬性。 - steady_uptrend: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() 需要 1 個位置參數,但傳入了 2 個(bar 時間戳記:1735691040000)
驗證失敗(第 3 層 — 沙盒回測):未產生任何交易 使用的 Bar 類型:ETH-PERPETUAL.DERIBIT-1-DAY-LAST-EXTERNAL,已處理 Bar 數:2400 診斷資訊:calculate_signal() 從未被評估(已評估 Bar 數 0)-> 沒有任何主要 bar 到達基礎模板的訊號路徑 -> 若你覆寫了 on_bar(),請呼叫 super().on_bar(bar);並檢查 bar_type 是否與該金融工具的資料相符。請NOT放寬進場門檻 — 進場邏輯從未執行過。 請確保你的策略在給定的資料與參數下能產生交易。
驗證失敗(Layer 4 — QA審查)[class=hypothesis_mismatch]: - [edge_concern] 並非本次判定的依據——此問題屬於忠實度(fidelity)問題,而非績效問題。(僅供記錄:沙盒結果同樣是負向的:-2.9%、PF 0.13、勝率0.125,在一個號稱已設停損的部位上出現-$2,149的尾端虧損——但這是錯誤策略所產出的結果。) - WHOLE-STRATEGY SWAP / MISLINK。假說是一個ETH Deribit週PUT CREDIT SPREAD(賣出約25d的put、BUY約10d的put——定義風險的垂直價差)。程式碼卻是BTC Deribit週delta中性SHORT STRANGLE(類別名稱、docstring、iter-3的理由說明,以及每一個機制都是strangle)。標的AND與機制兩者皆不相符 → 屬於產出錯誤/連結錯誤的產物,而非此假說本身的問題。請重新產出/重新連結正確的ETH put-credit-spread。 - 標的錯誤:假說是ETH,但instrument_id與bar_type卻是BTC-PERPETUAL.DERIBIT,且rolling_options.underlying為「BTC」。全篇找不到任何ETH。 - 結構錯誤/並非定義風險:假說是以PURCHASED約10d的put翼部來限制最大虧損。程式碼送出的是TWO SELL腿位,並NO買入翼部;尾端風險僅由一個軟性的下一根K棒權利金停損來限制(沙盒largest_loss -$2,149相對於avg_win約$214,顯示它並未限制尾端風險)——這正是假說本欲避免的無上限風險輪廓。 - 核心優勢缺失:假說的訊號是下檔SKEW偏貴程度(25d-put IV相對於ATM IV),再加上IV>RV。程式碼並未計算任何偏斜(skew)——只計算了平均strangle的IV/RV VRP。真正能區分此假說的put偏斜收割機制並未被實作。
放棄原因
Stratmill 是一款研究與模擬交易工具,並非財務建議或經紀商服務。回測與模擬交易結果均為假設性質。交易涉及虧損風險。