跳至內容
所有策略

策略

SPY 前一交易時段反向多頭/現金來源複製

結果: 已放棄

SpyPreviousSessionContrarian

結果摘要

SpyPreviousSessionContrarian 嘗試複製一種以 SPY 報酬符號為依據、於下一交易時段開盤執行的反向策略。QA 發現,以決策收盤價計算下單規模,會在 100.7458% 曝險下允許進場,儘管固定的 100% NAV 上限另有規定。冒煙測試報告在 1,647 根日線中也僅有一筆已完成持倉,因此執行情況仍未釐清。經過三次迭代後,此策略在回測審查、最佳化或風險審查之前,於驗證階段遭放棄。

假說

忠實實作論文在 SPY.USEQ 日線資料上的反向訊號。基準 return_lookback=1:計算 log(close_t/close_(t-1)),報酬為負時買進,報酬為非負時賣出。最近一段已完成報酬是相對於預測期間的前一區間;勿再額外延後一個交易時段。不加入 RSI、崩盤門檻、停損、目標價或預測模型。將來源 DFL=1 解讀為不使用槓桿的曝險,上限為帳戶 100% NAV,且以整股計算。風險處理方式為訊號出場加上限額下單規模。連續負報酬期間維持既有持股數量,避免不必要的平倉/重新開倉週轉。決策在下一交易時段開盤執行,因此進場無法賺取前一段隔夜跳空。以來源的一日基準為中心,搜尋 return_lookback 在 1–3 個交易時段內的設定;保留明確的基準複製報告。預測每年約有 50–90 筆已完成持倉。

明確的複製目標將此單一報酬符號規則,與一般的 RSI 均值回歸及每週動能區分開來。快照搜尋未找到完全相符的 SPY 反向策略。股票交易成本與長期日線歷史資料可進行忠實的可執行測試。忠實於來源優先於加入選擇權、放空或無關篩選條件以滿足配額。

verification_loop:驗證失敗(第 4 層 — QA 審查)[類別=code_defect]: - [重大] position_size() 將整股數量固定為 floor(決策時 NAV / 決策收盤價),但訂單在下一交易時段開盤成交。隔夜跳空上漲可能使進場名目金額超過假設設定的固定 100% NAV 上限。共用進場檢查在送單時執行,next_open_ticks 提供之後的價格但不調整數量,而 _release_held_orders 會送出原數量。提供的沙盒顯示此違規情況:peak_entry_leverage 與 peak_margin_utilization 為 1.007458(100.7458%)。使用 get_equity_mtm() 無法解決依可執行價格計算下單規模的問題。這是進場下單規模缺陷,不是既有持倉的一般槓桿漂移。(第 64 行)— 修正:在共用回測撮合器與模擬交易的保留訂單釋放流程,於撮合前依可執行價格及可用 NAV(包含進場成本)限制整股進場數量前,維持此提交遭封鎖。驗證跳空上漲時的進場,並重新執行明確的 return_lookback=1 基準。固定的決策時緩衝無法保證任意隔夜跳空下仍符合上限;勿更改固定曝險約定,也勿在決策 K 線讀取未來開盤價。 - [警告] 冒煙測試報告在已處理的 1,647 根日線中僅有一筆已完成持倉,而假設預測每年約有 50–90 筆持倉。報酬符號規則可觸發,且看來實作正確;提供的摘要無法判定缺少的進場是源自訂單遭拒、持續的進行中狀態,或其他執行問題。只有一筆獲利交易但獲利因子為零,並不能證明有會計缺陷。(第 45 行)— 修正:在同一期間檢查附日期的決策、訂單、成交、entry_diag 計數器及遭拒/進行中狀態,尤其是首次出場之後。在相信基準複製報告前,核對符合條件的負報酬期間是否有已提交及已成交的進場;勿放寬訊號來製造交易。

實作

SPY 日線多頭/現金報酬符號複製策略,於下一交易時段開盤執行。明確保留基準 return_lookback=1。提交遭封鎖:目前的執行機制無法保證符合所需的 100% NAV 進場上限。

保留前一版實作的報酬訊號、進出場規則、整股數量計算及不變的研究設定。暫時以市價計價的 NAV 計算決策數量;這無法修正隔夜跳空問題。檢查確認 next_open_ticks 僅提供價格,而 _release_held_orders 會傳遞數量但不會重新計算。要修正嚴重的 QA 問題,必須在本任務可寫入範圍之外修改共用執行流程,讓回測與模擬交易都在撮合前,依可執行價格、可用 NAV 及進場成本計算整股數量。一筆持倉的警告仍未解決:未提供具日期的帳冊或拒單/未完成委託診斷資訊,而驗證工作已交由流程負責。執行修正後,重新執行明確指定的單一交易時段基準測試,並檢查這些診斷資訊;不會為了製造交易而放寬進場規則。

驗證結果

驗證失敗(第 4 層 — QA 審查)[類別=code_defect]: - [重大] position_size() 將整股數量固定為 floor(決策時 NAV / 決策收盤價),但訂單在下一交易時段開盤時成交。隔夜跳空上漲可能使進場名目金額超過假設固定的 100% NAV 上限。共用進場檢查在提交時執行,next_open_ticks 提供稍後的價格但不會重新調整數量,而 _release_held_orders 會轉送原始數量。提供的沙盒展示了此超額:peak_entry_leverage 和 peak_margin_utilization 為 1.007458(100.7458%)。使用 get_equity_mtm() 無法解決依可執行價格調整數量的問題。這是進場數量計算缺陷,不是既有持倉的一般槓桿漂移。(第 64 行)— 修正:在共用回測撮合器與模擬交易持有訂單釋放流程,於撮合前依可執行價格和可用 NAV(含進場成本)執行整股進場數量檢查前,維持此提交遭封鎖。驗證跳空上漲進場,並重新執行明確的 return_lookback=1 基準。固定的決策時緩衝無法保證任意隔夜跳空下仍符合上限;不要更改固定曝險合約,也不要在決策 K 棒讀取未來開盤價。 - [警告] 冒煙測試報告在處理 1,647 根日線 K 棒期間僅有一筆已完成持倉,相較於假設預測每年約有 50–90 筆持倉。報酬符號規則可觸發且看來實作正確;提供的摘要無法判定缺少進場是源自訂單遭拒、持續的未完成狀態,或其他執行問題。僅憑一筆獲利且獲利因子為零,無法證明存在會計缺陷。(第 45 行)— 修正:在同一期間檢查含日期的決策、訂單、成交、entry_diag 計數器以及拒單/未完成狀態,尤其是首次出場之後。信任基準重現報告前,先核對符合條件的負報酬期間是否有提交與成交的進場;不要放寬訊號來製造交易。

在共用回測撮合器與模擬交易的保留訂單釋放流程,於撮合前依可執行價格及可用 NAV(包含進場成本)限制整股進場數量前,維持此提交遭封鎖。驗證跳空上漲時的進場,並重新執行明確的 return_lookback=1 基準。固定的決策時緩衝無法保證任意隔夜跳空下仍符合上限;勿更改固定曝險約定,也勿在決策 K 線讀取未來開盤價。

position_size() 將整股數量固定為 floor(決策時 NAV / 決策收盤價),但訂單在下一交易時段開盤成交。隔夜跳空上漲可能使進場名目金額超過假設設定的固定 100% NAV 上限。共用進場檢查在送單時執行,next_open_ticks 提供之後的價格但不調整數量,而 _release_held_orders 會送出原數量。提供的沙盒顯示此違規情況:peak_entry_leverage 與 peak_margin_utilization 為 1.007458(100.7458%)。使用 get_equity_mtm() 無法解決依可執行價格計算下單規模的問題。這是進場下單規模缺陷,不是既有持倉的一般槓桿漂移。

在同一期間檢查附日期的決策、訂單、成交、entry_diag 計數器及遭拒/進行中狀態,尤其是首次出場之後。在相信基準複製報告前,核對符合條件的負報酬期間是否有已提交及已成交的進場;勿放寬訊號來製造交易。

冒煙測試報告在已處理的 1,647 根日線中僅有一筆已完成持倉,而假設預測每年約有 50–90 筆持倉。報酬符號規則可觸發,且看來實作正確;提供的摘要無法判定缺少的進場是源自訂單遭拒、持續的進行中狀態,或其他執行問題。只有一筆獲利交易但獲利因子為零,並不能證明有會計缺陷。

迭代紀錄

驗證失敗(Layer 4 — QA 審查)[class=code_defect]: - [critical] 進場數量為 floor(NAV / decision_close),但市價單會在下一交易時段開盤時成交。因此,隔夜向上跳空會使進場名目金額超過假設的 100% NAV 上限。提供的沙盒確認 peak_entry_leverage=1.007458 且 avg_position_pct=100.7458%。Base margin_capped_size 檢查決策收盤價,而 submit_order 在執行前檢查;兩者都不會在下一次開盤時調整尚未完成的委託數量。設定檔聲稱執行防護機制會減少數量,但檢查過的執行路徑與此結果均不支持這項說法。(第 55 行)— 修正:在下一次開盤的執行邊界,僅使用該開盤時可取得的價格,強制整股數量 <= floor(可用 NAV / 實際執行價格),並計入執行成本。必要時協調平台修正執行流程;不要在決策收盤時讀取下一根 K 棒的開盤價,也不要默默更改固定的 notional_fraction。重新執行驗證,並確認進場曝險絕不超過 1.0。 - [warning] 在 1,647 根日線 K 棒期間,沙盒僅回報一筆已完成持倉,低於假設預期的每年約 50–90 筆持倉。正負號規則可觸發且實作正確,因此單憑此點無法證明策略有缺陷,但冒煙測試並未證明可重複進行進場/出場操作。推算的資金投入比例約為權益的 100.75%,與另行發現的上限違規情形一致。(第 39 行)— 修正:修正執行數量計算後,檢查進場拒絕/未完成委託診斷資訊及已平倉持倉帳冊。在依賴完整歷史結果之前,確認負報酬/非負報酬的正負號轉換會產生預期的下一開盤進場與出場。

在下一次開盤的執行邊界,僅使用該開盤時可取得的價格,強制整股數量 <= floor(可用 NAV / 實際執行價格),並計入執行成本。必要時協調平台修正執行流程;不要在決策收盤時讀取下一根 K 棒的開盤價,也不要默默更改固定的 notional_fraction。重新執行驗證,並確認進場曝險絕不超過 1.0。

進場數量為 floor(NAV / decision_close),但市價單會在下一交易時段開盤時成交。因此,隔夜向上跳空會使進場名目金額超過假設的 100% NAV 上限。提供的沙盒確認 peak_entry_leverage=1.007458 且 avg_position_pct=100.7458%。Base margin_capped_size 檢查決策收盤價,而 submit_order 在執行前檢查;兩者都不會在下一次開盤時調整尚未完成的委託數量。設定檔聲稱執行防護機制會減少數量,但檢查過的執行路徑與此結果均不支持這項說法。

修正執行下單規模後,檢查進場遭拒/進行中診斷資料及已平倉部位帳冊。確認反覆的負/非負報酬符號轉換會依預期觸發下一交易時段開盤進場與出場,再採信完整歷史結果。

沙盒回報,在 1,647 根日線 K 棒期間僅有一筆已完成持倉,低於假設預期的每年約 50–90 筆持倉。正負號規則可觸發且實作正確,因此單憑此點無法證明策略有缺陷,但冒煙測試並未證明可重複進行進場/出場操作。推算的資金投入比例約為權益的 100.75%,與另行發現的上限違規情形一致。

驗證失敗(第 4 層 — QA 審查)[類別=code_defect]: - [重大] position_size() 依決策收盤價時的權益/價格計算整股數量,但這些股票在下一交易時段開盤成交,且執行時沒有 NAV 上限。因此,隔夜跳空上漲可能使進場名目金額超過假設設定的固定 100% NAV/不使用槓桿曝險限制。提供的沙盒顯示此情況:peak_entry_leverage=1.007458 且 peak_margin_utilization=1.007458。基礎進場輔助函式以決策時價格限制保證金;next_open_ticks 提供之後的開盤價但不調整數量,而 _release_held_orders 會送出原數量。註解承認缺陷並不能修正問題。(第 65 行)— 修正:在下一交易時段開盤撮合前,使用當時已知的可執行價格、可用 NAV 與適用的進場成本,限制在 1.0 NAV 上限內;允許數量向下取整至整股。對保留的模擬交易訂單採用等效處理,並驗證跳空上漲時的進場仍符合上限。保留下一交易時段開盤執行及固定的 notional_fraction=1.0;在決策時讀取未來開盤價,或任意加上收盤價緩衝,皆無法保證符合約定。 - [警告] 沙盒回報在 1,647 根日線中僅有一筆已完成持倉,而假設預測每年有 50–90 筆,且只有兩筆有效日線觀測。這不能證明訊號有缺陷,但冒煙測試通過所提供的證據不足以確認整個期間內反覆的下一交易時段開盤進場均可執行。(第 47 行)— 修正:修正執行上限後,檢查訂單遭拒/進行中診斷資料及附日期的進場/出場帳冊;確認整個期間的反覆負/非負報酬符號轉換都能執行。保留明確的 return_lookback=1 基準報告。

在下一開盤撮合前,依當時已知的可執行價格、可用 NAV 與適用的進場成本,強制遵守 1.0 NAV 上限;將允許的數量無條件捨去至整股。對持有中的模擬交易委託採取相同處理,並確認向上跳空進場仍符合上限。維持下一開盤執行及固定的 notional_fraction=1.0;在決策時讀取未來開盤價或任意增加收盤價緩衝,都無法保證符合契約。

position_size() 依決策收盤價時的權益/價格計算整股數量,但這些股票在下一交易時段開盤成交,且執行時沒有 NAV 上限。因此,隔夜跳空上漲可能使進場名目金額超過假設設定的固定 100% NAV/不使用槓桿曝險限制。提供的沙盒顯示此情況:peak_entry_leverage=1.007458 且 peak_margin_utilization=1.007458。基礎進場輔助函式以決策時價格限制保證金;next_open_ticks 提供之後的開盤價但不調整數量,而 _release_held_orders 會送出原數量。註解承認缺陷並不能修正問題。

修正執行上限後,檢查訂單遭拒/進行中診斷資料及附日期的進場/出場帳冊;確認整個期間的反覆負/非負報酬符號轉換都能執行。保留明確的 return_lookback=1 基準報告。

沙盒回報,在 1,647 根日線 K 棒期間僅有一筆已完成持倉,低於假設預測的每年 50–90 筆,且僅有兩筆有效的日線觀測值。這無法證明訊號有缺陷,但冒煙測試通過所提供的證據,並不足以顯示整個期間都能重複執行下一開盤進場。

結果摘要

依可執行價格、可用 NAV 與進場成本計算數量,然後核對決策、委託與成交,再信任基準測試。

經過三次迭代後,第 4 層的 QA 因決策收盤價下單規模可能在執行時因隔夜跳空上漲而超過 NAV 上限,故予以拒絕。交易次數偏低的原因仍未釐清,且未進入後續流程階段。

複製 SPY 日線反向多頭/現金訊號,於下一交易時段開盤執行,連續負報酬期間持有,並將整股曝險限制在 NAV 的 100%。

QA 引用沙盒中的進場槓桿峰值與保證金使用率為 1.007458(100.7458%),超過上限。冒煙測試報告在 1,647 根日線中顯示一筆已完成持倉;未提供回測報酬或夏普值。

放棄原因

verification_loop:驗證失敗(Layer 4 — QA 審查)[class=code_defect]: - [critical] position_size() 將整股數量固定為 floor(決策時的 NAV / 決策收盤價),但委託會在下一交易時段開盤時成交。隔夜向上跳空可能使進場名目金額超過假設所訂的固定 100% NAV 上限。共用進場檢查是在送出委託時進行,next_open_ticks 提供較晚的價格但不會調整數量,而 _release_held_orders 會傳遞原始數量。提供的沙盒證明了超限情形:peak_entry_leverage 與 peak_margin_utilization 為 1.007458 (100.7458%)。使用 get_equity_mtm() 無法解決依可執行價格計算數量的問題。這是進場數量計算缺陷,不是既有持倉的一般槓桿漂移。(第 64 行)— 修正:在共用回測撮合器與模擬交易持倉委託釋放流程,依可執行價格與可用 NAV(含進場成本)強制計算整股進場數量並完成撮合之前,維持此送單流程停用。驗證向上跳空進場,並重新執行明確指定的 return_lookback=1 基準測試。固定的決策時緩衝無法保證在任意隔夜跳空下符合上限;不要更改固定曝險契約,也不要在決策 K 棒讀取未來開盤價。 - [warning] 冒煙測試報告顯示,在處理了 1,647 根日線 K 棒後僅有一筆已完成持倉,遠低於假設預測的每年約 50–90 筆持倉。報酬正負號規則可觸發,且似乎實作正確;提供的摘要無法判定缺少進場是源自拒單、委託持續未完成狀態,或其他執行問題。單筆獲利且獲利因子為零,不能證明有會計缺陷。(第 45 行)— 修正:檢查同一期間內具日期的決策、委託、成交、entry_diag 計數器,以及拒單/未完成委託狀態,尤其是第一次出場之後的情況。在信任基準複製報告之前,先將符合條件的負報酬區間與已送出及已成交的進場委託核對;不要為了製造交易而放寬訊號。

分析

使用長短期記憶與時間序列模型對股票指數投資策略避險特性的研究

Stratmill 是一款研究與模擬交易工具,並非財務建議或經紀商服務。回測與模擬交易結果均為假設性質。交易涉及虧損風險。