กลยุทธ์
Hyperliquid SOL Perp Funding-Extreme Contrarian — Long-Short, Single-Name: FADE การถือครองที่แออัดเมื่อ Rolling Funding Z-Score แตะค่าผิดปกติ (Funding เป็นบวกมาก = Long ที่ใช้เลเวอเรจเกิน → SHORT; เป็นลบมาก = Short ที่ยอมจำนน → LONG) ยืนยันด้วยการที่ราคาไม่ยืนยันสัญญาณ, ออกจากสถานะเมื่อ Funding กลับคืนค่า / ATR Stop / Time Stop (SOLUSDT.HYPERLIQUID, 4H, 3-Parameter)
ผลลัพธ์: ยกเลิก
HyperliquidSolFundingExtremeContrarian
กลไกทำงานอย่างราบรื่นและสร้างตัวอย่างที่เพียงพอ (201 เทรดใน 953 วัน) โดยไม่มี timeout — การใช้งาน funding แบบ O(log n) ทำงานตามที่ตั้งใจไว้
สมมติฐาน
Iteration 2 แก้ไขความล้มเหลวเพียงจุดเดียวของ Layer-2 (`FactoryStrategy._bar_ts() takes 1 positional argument but 2 were given`, ทั้งหกสถานการณ์) ส่วน Layer-2 `_StrategyProxy` ผูกแอตทริบิวต์ที่เรียกใช้งานได้ทุกตัวของกลยุทธ์ใหม่เข้ากับ wrapper ธรรมดาผ่าน `types.MethodType` ซึ่งแปลง staticmethod ของคลาสฐานที่รับอาร์กิวเมนต์หนึ่งตัว `_bar_ts` ให้เป็น bound method — ดังนั้น `self._bar_ts(bar)` จึงมาถึงพร้อมอาร์กิวเมนต์สองตัว การแก้ไขขั้นต่ำแทนที่การเรียกเพียงจุดเดียวนั้นด้วย helper ระดับโมดูล `_bar_timestamp_ns(bar)` ซึ่งอ่าน `bar.ts_event` โดยตรง (หากไม่มีให้ใช้ `ts_init`) — ให้พฤติกรรมเหมือนเดิมและไม่ถูกรบกวนจากการผูกใหม่ของ proxy ไม่มีสิ่งอื่นเปลี่ยนแปลง: imports, โครงสร้างคลาส, การแยกวิเคราะห์ funding, ตรรกะสัญญาณ, การเข้า, การออก และการกำหนดขนาดเหมือนกับ previous_code ทุกไบต์ ซึ่งผ่าน Layer 1 แล้ว โปรดทราบว่า `_bar_interval_ns` ยังคงถูกเรียกจาก `__init__` ซึ่งทำงานบนอินสแตนซ์จริงก่อนที่ proxy จะผูกสิ่งใดใหม่ ดังนั้นจึงไม่ได้รับผลกระทบ Leverage 2.0 ถูกใช้ใน `position_size` ผ่าน `self.config.leverage` ในเพดาน gross-notional
การนำไปใช้
กลยุทธ์สวนทางแบบ long-short รายตัวบน Hyperliquid SOL perp (แท่ง 4H) ใช้ funding เป็นมาตรวัด crowding: z-score แบบ rolling ของข้อมูล hl_funding_rates เมื่อเทียบกับการกระจายย้อนหลังของตัวมันเอง จะถูกส่งคืนทุกแท่งเป็นสัญญาณต่อเนื่อง z ที่เป็นบวกสุดขั้ว (crowded, long ที่จ่ายแพงเกินไป) จะถูก fade ด้วย SHORT; z ที่เป็นลบสุดขั้ว (short ที่ยอมจำนน) จะถูก fade ด้วย LONG แต่เฉพาะเมื่อราคาไม่ยืนยัน crowd (ราคาปิดไม่ทำจุดสูง/ต่ำใหม่ในช่วง confirm_bars แท่ง) ออกจากสถานะเมื่อ funding กลับคืนค่า (|z| <= exit_z), stop แบบ ATR ที่บันทึกค่าไว้เมื่อเข้า หรือ time stop ตามปฏิทินที่วัดจาก position.ts_opened การกำหนดขนาดให้ความสำคัญกับความเสี่ยงก่อน: stop แบบ ATR มีต้นทุนประมาณ risk_frac ของ equity โดยมีเพดาน gross-notional แยกอิสระ
ผลการตรวจสอบ
CLEAN RESTART 2026-09-04 — ประวัติคำตัดสินและบันทึกการเรียนรู้ของการรันนี้ถูกลบออก และเริ่มต้นใหม่จากการตรวจสอบ การยุติก่อนหน้านี้เกิดจากไปป์ไลน์ ไม่ใช่จากตลาด: harness ของ Layer-2 ผูก helper ของ @staticmethod ผิด (แก้ไขแล้ว), QA ออกคำตัดสินประสิทธิภาพขั้นสุดท้ายจาก smoke test ที่ยังไม่ได้ปรับให้เหมาะสม (นำออกแล้ว — ขณะนี้ QA ตัดสินเฉพาะความถูกต้องเท่านั้น) และ sandbox timeout เกิดจากการขาดแคลน backtest-slot (แก้ไขแล้ว) สมมติฐานและโค้ดกลยุทธ์ไม่เปลี่ยนแปลง ตรวจสอบโค้ดตามเนื้อแท้ของมัน; ประสิทธิภาพจะตัดสินภายหลังด้วย backtest เต็มรูปแบบและ optimizer
จำกัด _param_bounds ให้เหลือพารามิเตอร์หลักที่ปรับได้ 3 ตัว (entry_z, exit_z, funding_lookback_prints); ล็อกพารามิเตอร์ด้านความเสี่ยง/โครงสร้างการทำงานของระบบให้เป็นค่าคงที่
สมมติฐานเสนอการออกแบบแบบ '3-parameter โดยตั้งใจเพื่อป้องกัน overfitting' แต่ _param_bounds เปิดเผยพารามิเตอร์ที่ปรับให้เหมาะสมได้ 11 รายการ กลไกถูกต้อง แต่การค้นหา walk-forward แบบ 11-dim ขัดแย้งกับเหตุผลด้านการป้องกัน overfit ที่ระบุไว้ และเพิ่มความเสี่ยง PBO ไม่ใช่ประเด็นขัดขวาง
ไม่จำเป็นต้องดำเนินการ; บันทึกไว้สำหรับนักวิเคราะห์แล้ว
สัญญาณสังเคราะห์ของ Layer-2 ทั้งหมดถูกตรึงไว้ที่ 0.0 (ไม่มีการ inject funding) ดังนั้นเส้นทางการเทรดจึงถูกทดสอบโดย sandbox เท่านั้น (ซึ่งเทรด 65 ครั้งด้วย funding จริง) ไม่ร้ายแรง
ทบทวนผลทดสอบย้อนหลัง
- Sharpe
- -0.42
- ผลตอบแทนรวม
- -33.71%
- การถอยของทุนสูงสุด
- 40.24%
- จำนวนเทรดทั้งหมด
- 201
- อัตราชนะ
- 42.3%
- ตัวคูณกำไร
- 0.60
กลไกทำงานอย่างราบรื่นและสร้างตัวอย่างที่เพียงพอ (201 เทรดใน 953 วัน) โดยไม่มี timeout — การใช้งาน funding แบบ O(log n) ทำงานตามที่ตั้งใจไว้
เครื่องมือเดียว, supplementary feed เดียว (hl_funding_rates), ไม่มีปัญหาด้านข้อมูล/การตรวจสอบ; funding ถูกบันทึกเข้า PnL
ความคาดหวังติดลบ: profit_factor 0.60, total_return -33.7%, ความคาดหวัง -$156/trade
avg_trade_return_pct -0.37% — เป็นลบและต่ำกว่าพื้นค่าธรรมเนียม Hyperliquid ที่ 0.15% มาก (L22)
ขาดทุนทั้งสามปี (2024 -14.8%, 2025 -13.8%, 2026 -6.5%) — เป็นการไม่มี edge อย่างต่อเนื่อง ไม่ใช่ edge ที่เสื่อมลง
ทั้งสองขาขาดทุน (win rate ของ long 42%, ของ short 42%) โดย avg_loss > avg_win — funding-extreme fade อยู่ผิดด้านของการเคลื่อนไหว
เดือนเดียวที่เป็นบวกคือวันผิดปกติแบบ outlier เพียงวันเดียวของ +10.77% (kurtosis 9.8); ข้อมูลราคาพื้นฐานเป็นลบโดยสม่ำเสมอ
กลยุทธ์ fade แบบ directional รายตัวที่มี funding เป็นเงื่อนไข — mean-reversion (0/174) และ directional แบบ single-perp supplementary-gated (L73) เป็นคลาสที่ไม่มีผู้รอดชีวิต
ประวัติรอบทดสอบ
Stratmill เป็นเครื่องมือสำหรับการวิจัยและ paper trading ไม่ใช่คำแนะนำทางการเงินหรือโบรกเกอร์ ผลการทดสอบย้อนหลังและ paper trading เป็นเพียงสมมติฐาน การเทรดมีความเสี่ยงที่จะขาดทุน