กลยุทธ์
การหมุนเวียน Relative-Momentum ระหว่าง ETH กับ BTC, long-short แบบเป็นกลางทางดอลลาร์ (สองเครื่องมือ ETHUSDT.BINANCE + perpetuals BTCUSDT.BINANCE, แท่งรายวัน — long ตัวที่แข็งแกร่งกว่า / short ตัวที่อ่อนแอกว่าโดยอิงจาก ETH/BTC ของอัตราส่วน MOMENTUM, ใช้ deadband เป็นเงื่อนไข, OHLCV ล้วน, 2 พารามิเตอร์)
ผลลัพธ์: ยกเลิก
EthBtcRelativeMomentumRotationLS
ดำเนินการตามสมมติฐานอย่างเที่ยงตรง: การหมุนเวียนตาม ratio-momentum แบบ ETH/BTC เป็นกลางต่อตลาด (benchmark_meaningful=false ดังนั้นการซื้อแล้วถือจึงไม่ใช่เกณฑ์วัดที่เหมาะสม)
สมมติฐาน
ค่าคาดหวังติดลบบนตัวอย่างที่เชื่อถือได้จำนวน 582 รายการซื้อขาย / 6.7 ปี: profit_factor 0.9999 (กำไรขั้นต้นทรงตัว ไม่มีส่วนได้เปรียบสุทธิ), avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor ติดลบ ค่า +7.83% total_return ยังไม่เกิดขึ้นจริงทั้งหมด (end_unrealized_pct 7.91) — เป็นสถานะปลายทางที่ยังไม่ได้ปิด ไม่ใช่ส่วนได้เปรียบที่เกิดขึ้นจริง Sharpe 0.26 โดยที่ CI [-0.48, 1.01] คร่อมศูนย์, max_drawdown 56.6%, และ impact_cost_pct 101% (ความจุ ~$98k) หมายความว่าผลกระทบต่อตลาดเพียงอย่างเดียวก็กินส่วนได้เปรียบทั้งหมดแล้ว โมเมนตัมความแข็งแกร่งสัมพัทธ์ ETH/BTC คงอยู่ไม่นานพอที่จะทำกำไรแบบเป็นกลางทางดอลลาร์หลังหักต้นทุน — นี่เป็นข้อสรุปเกี่ยวกับการเข้า ซึ่ง IS สมมติฐาน การปรับพารามิเตอร์ 2 (lookback, deadband) ให้เหมาะสมไม่อาจพลิกผลกำไรขั้นต้นที่ทรงตัว/PF<1 ให้ทำกำไรได้ ไม่คุ้มกับการใช้เวลา 2 ชั่วโมงในการปรับให้เหมาะสม abandon_class=negative_expectancy.
การนำไปใช้
ผลการตรวจสอบ
CLEAN RESTART 2026-09-04 — ประวัติคำตัดสินและบันทึกการเรียนรู้ของรอบนี้ถูกลบออกแล้ว และเริ่มใหม่จากขั้นตอนตรวจสอบ การยุติก่อนหน้านี้เกิดจากไปป์ไลน์ ไม่ใช่ตลาด: harness ของ Layer-2 ผูก helper ที่เป็น @staticmethod ผิดพลาด (แก้แล้ว), QA ออกคำตัดสินผลการดำเนินงานขั้นสุดท้ายจาก smoke test ที่ยังไม่ได้ปรับให้เหมาะสม (นำออกแล้ว — ตอนนี้ QA ตัดสินเฉพาะความถูกต้องเท่านั้น) และ timeout ใน sandbox เกิดจากช่อง backtest ไม่เพียงพอ (แก้แล้ว) สมมติฐานและโค้ดกลยุทธ์ยังคงเดิม โปรดตรวจสอบโค้ดตามเนื้อหาของมัน ส่วนผลการดำเนินงานจะตัดสินภายหลังด้วย backtest ฉบับเต็มและ optimizer
ความได้เปรียบใกล้ศูนย์หรือติดลบในตัวอย่างประวัติเต็มที่วัดผลได้ (550 เทรด, PF 0.965, -22.4%, avg_trade_return_pct +0.061% ต่ำกว่าค่าธรรมเนียมสองขา) — คู่ ETH/BTC ที่มีการกระจายตัวต่ำ ซึ่งสมมติฐานเองระบุว่าอ่อนแอกว่า SOL/ETH เป็นการนำไปใช้ตามที่กำหนดอย่างซื่อตรง จึงถือเป็นข้อค้นพบเรื่องความได้เปรียบสำหรับนักวิเคราะห์ ให้ยุติในขั้นทบทวนแบ็กเทสต์ตามเงื่อนไขที่นักพัฒนาลงทะเบียนไว้ล่วงหน้า (PF ไม่ผ่าน 1); อย่าปรับแต่ง
การขาดทุนสูงสุด 57.8% (CI ถึง 83%, ระยะเวลา 1894 วัน) ในพอร์ตที่ควรเป็นกลางต่อตลาด: เป็นกลางทางดอลลาร์เฉพาะตอนเข้า และ gross exposure 70% ทบผลของส่วนได้เปรียบที่ขาดทุนเมื่อเผชิญแนวโน้มอัตราส่วน ETH/BTC ที่ต่อเนื่องระหว่างจุดหยุดขาดทุน 6% ไม่ใช่ข้อบกพร่องของการ hedge — การปรับกระทบยอด notional ให้เท่ากันถูกต้อง — แต่เป็นลักษณะความเสี่ยงที่ Risk Officer ควรทราบ
ทบทวนผลทดสอบย้อนหลัง
- Sharpe
- 0.26
- ผลตอบแทนรวม
- 7.83%
- การถอยของทุนสูงสุด
- 56.58%
- จำนวนเทรดทั้งหมด
- 582
- อัตราชนะ
- 45.9%
- ตัวคูณกำไร
- 1.00
ดำเนินการตามสมมติฐานอย่างเที่ยงตรง: การหมุนเวียนตาม ratio-momentum แบบ ETH/BTC เป็นกลางต่อตลาด (benchmark_meaningful=false ดังนั้นการซื้อแล้วถือจึงไม่ใช่เกณฑ์วัดที่เหมาะสม)
ตัวอย่างที่เชื่อถือได้และวัดผลได้: การหมุนเวียนคู่ 582 รอบในช่วง 6.7 ปี, metrics_reliable=true, ไปป์ไลน์การเข้าเป็นปกติ (291 long / 291 short, ไม่มีรายการหลุด)
พื้นผิว 2-พารามิเตอร์อย่างแท้จริง overfit ต่ำ
profit_factor 0.9999 — กำไรขั้นต้นทรงตัว ไม่มีส่วนได้เปรียบสุทธิให้การปรับเหมาะสมมุ่งไปหา
ค่าคาดหวังติดลบบนตัวอย่างที่เชื่อถือได้: avg_trade_pnl_usd -0.137, CAGR -1.22%, recovery_factor ติดลบ
ตัวเลขพาดหัวของ +7.83% ยังไม่เกิดขึ้นจริงทั้งหมด (end_unrealized_pct 7.91) — เป็นสถานะปลายทางที่ยังไม่ได้ปิด ไม่ใช่ส่วนได้เปรียบที่เกิดขึ้นจริง
max_drawdown 56.6% (CI ถึง 80%); Sharpe 0.26 โดยที่ CI [-0.48, 1.01] คร่อมศูนย์ — แยกไม่ออกจากการไม่มีทักษะ
impact_cost_pct 101% โดยมี capacity_usd ~$98k — ผลกระทบต่อตลาดเพียงอย่างเดียวก็กินความได้เปรียบทั้งหมดแล้ว ใช้ได้เฉพาะในขนาดทดลองเท่านั้น
ผลตอบแทนกลุ่มสามส่วน 'ปกติ' ของ regime_performance อยู่ที่ -56% เมื่อ 60% DD — ไม่มีส่วนได้เปรียบเชิงโครงสร้างจากความแข็งแกร่งสัมพัทธ์
ประวัติรอบทดสอบ
การตรวจสอบไม่ผ่าน (ชั้น 2 — สถานการณ์สังเคราะห์): พารามิเตอร์ที่ใช้: ['deadband', 'leg_frac', 'max_days', 'vol_window', 'mom_lookback', 'size_precision', 'stop_ratio_pct', 'min_notional_btc', 'min_notional_eth'] ตรวจสอบว่า __init__ กำหนดค่าแอตทริบิวต์ทั้งหมดจาก self.parameters.get() หรือไม่ - steady_uptrend: TypeError: super(type, obj): obj must be an instance or subtype of type (เวลาประทับของแท่ง: 1735689600000) - steady_downtrend: TypeError: super(type, obj): obj must be an instance or subtype of type (เวลาประทับของแท่ง: 1735689600000) - flat_ranging: TypeError: super(type, obj): obj must be an instance or subtype of type (เวลาประทับของแท่ง: 1735689600000) - volatility_spike: TypeError: super(type, obj): obj must be an instance or subtype of type (เวลาประทับของแท่ง: 1735689600000) - zero_volume: TypeError: super(type, obj): obj must be an instance or subtype of type (เวลาประทับของแท่ง: 1735689600000) - price_gap: TypeError: super(type, obj): obj must be an instance or subtype of type (เวลาประทับของแท่ง: 1735689600000)
Stratmill เป็นเครื่องมือสำหรับการวิจัยและ paper trading ไม่ใช่คำแนะนำทางการเงินหรือโบรกเกอร์ ผลการทดสอบย้อนหลังและ paper trading เป็นเพียงสมมติฐาน การเทรดมีความเสี่ยงที่จะขาดทุน