ฟังก์ชันถูกตั้งชื่อว่า enter_pack นั่นควรเป็นคำเตือนแล้ว เอเจนต์วิจัยเขียน BTC แคชแอนด์แคร์รีไว้: เมื่อเพอร์เพชวลเทรดสูงกว่าสปอตเกิน 8 เบสิสพอยต์ ให้ซื้อสปอต ชอร์ตเพิร์ป แล้วนั่งนิ่ง ฟันดิ้งกับเบสิสจะทำส่วนที่เหลือ แบ็คเทสต์จับคู่ทั้งสองขาในมิลลิวินาทีเดียวกัน ที่ mid บวกอีกติ๊กเผื่อมารยาท เส้น equity เป็นขั้นบันได ไม่มีใครเรียกว่าน่าตื่นเต้น นั่นแหละจุดขาย
วันจันทร์เราเลื่อนมันขึ้นไปเทรดกระดาษ
วันจันทร์: แพ็กที่จับคู่ได้เสมอ
สัญญาณแรกมาถึงตอน 11:17 UTC เบสิสบนจอเป็น 9.4 bps เพิร์ปอยู่ฝั่งแพง ในแบ็คเทสต์ enter_pack คืน 2 ฟิลล์และเรซิดิวอัลเป็น 0 ในเทรดกระดาษมันคืนสปอตฟิลล์ 0.40 BTC ที่ ask และชอร์ตเพิร์ปที่วางพักโดยไม่ได้เทรด
สปอตจ่ายค่าธรรมเนียม taker 4 bp และสเปรดประมาณ 1 bp ราคาเพิร์ปที่เราต้องการยังอยู่บนสมุดคำสั่ง แล้วก็หาย 20 วินาทีต่อมาเบสิสที่โควตเป็น 5 bps เพราะเราเพิ่งลิฟต์สปอต 40 วินาทีต่อมาเพิร์ปถูกจับคู่ หลังราคาขยับแล้ว เราแพ็กครบ เราแพ็กครบที่เบสิสที่ไม่คุ้มค่าเข้าออกอีกต่อไป
แบ็คเทสต์จะบันทึก "+9.4 bps แคร์รี, เรซิดิวอัล 0." บลอตเตอร์มีต้นทุน taker ของสปอต 4 bps สถานะลองที่ยังไม่เฮดจ์ 40 วินาที และช่องว่างการเข้าประมาณ 5 ฉันมีตัวอย่างแค่ 1 และถึงอย่างนั้นก็ยังมั่นใจในขั้นบันไดมากเกินไป
วันอังคาร: เราเปิดฟังก์ชันดู
enter_pack รับรายการขาและ mid เป้าหมาย มันวนลูป จับคู่แต่ละขาที่ mid * (1 ± slip) แล้วเขียนพอร์ตโฟลิโอ 1 แถว ไม่มีไทม์สแตมป์ที่ 2 ไม่มีสาขาที่ขา 2 ไม่มีอยู่ หน่วยทดสอบยืนยัน residual == 0
นั่นคือเทสต์ที่ทำให้รู้สึกว่าตัวเองเป็นผู้ใหญ่ มันจะไม่มีวันล้มเหลว
เราแยกแพ็กเป็น 2 ออเดอร์ที่มีสถานะของตัวเอง: submitted, partial, filled, canceled. Incomplete กลายเป็นอ็อบเจ็กต์ระดับเฟิร์สคลาส การเล่นซ้ำข้อมูลประวัติยังไม่มีสมุดคำสั่งจริง เลยโกง หน่วงฟิลล์ที่สองด้วยการสุ่มจากเวลารอวันจันทร์ (ค่าเฉลี่ย 26 วินาที หางที่ฉันไม่ชอบ) แล้วดริฟต์ราคาตามที่สปอตทำในช่วงนั้น หยาบ แต่ขั้นบันไดเริ่มมีรอยหยักก่อนเที่ยง: แพ็กที่เข้าที่ 3 bps แพ็กที่ไม่เคยกลายเป็นแพ็ก
วันพุธ: 3 วินาที แล้วทิ้ง
ถ้าขาที่สองยังไม่เข้าภายใน 3 วินาที ให้แฟลตเทนขาแรก เราควรเริ่มตรงนั้น ฟังดูอนุรักษ์นิยมจนกว่าจะคิดราคาการแอบอร์ต การแฟลตเทนหมายความว่าคุณครอสสปอตเพื่อเข้า แล้วครอสอีกครั้งเพื่อออก ค่าธรรมเนียม taker 2 ครั้ง สเปรด 2 ครั้ง ไม่มีแคร์รี ไม่มีฟันดิ้ง ในการเล่นซ้ำที่เขียนใหม่ การแอบอร์ตพวกนั้นไม่ได้หายาก มันกระจุกอยู่ที่แท่งที่เบสิสดู "จริง" ที่สุด ซึ่งมักเป็นแท่งที่บางอย่างกำลังไหลผ่านสปอตอยู่แล้ว
ถึงคืนวันพุธเรามีสัญญาณเทรดกระดาษ 17 สัญญาณให้เถียงกัน
| แบ็คเทสต์ เช้าวันจันทร์ | เทรดกระดาษ ถึงวันพุธ | |
|---|---|---|
| การเข้า | ทั้งสองขาที่ mid ไทม์สแตมป์เดียว | สปอตที่ ask; เพิร์ปช้ากว่า 5–40 วินาที หรือไม่มีเลย |
| เรซิดิวอัล | เป็น 0 เสมอ | ไม่ได้เฮดจ์ใน 10 จาก 17 สัญญาณ |
| ค่าธรรมเนียมของเทรดที่ทำงาน | taker 2 ครั้ง | taker 2 ครั้ง หรือ 4 ครั้งถ้าแอบอร์ต |
| ตัวขับ PnL | เบสิส + ฟันดิ้ง | สิ่งที่สปอตทำขณะที่เรารอ |
เพื่อนร่วมงานยังมีโน้ตบุ๊กที่มองแพ็กเป็นสินค้าจดทะเบียน BTC_CARRY พร้อม "ภาษีการส่งคำสั่ง" คงที่ 2 bp ฉันชอบโน้ตบุ๊กนั้น มันให้ขั้นบันไดแบบเดียวกับที่เอเจนต์ทำ ภาษีคือค่าเฉลี่ย ออร์แฟนคือการแจกแจง ค่าเฉลี่ยไม่ได้ถูกรถทับในชั่วโมงที่บาง 0.40 BTC ของสปอตที่เหลือทำได้
วันพฤหัสบดี: ของเหลือ แล้วก็กาแฟ
เวลา 3 วินาทีแอบอร์ตแทบทุกอย่างเมื่อเราต้องรอคิวด้วย เราผ่อนเทรดกระดาษเป็น 15 วินาที ตอน 02:11 UTC วันพฤหัสบดี สปอตถูกจับคู่แต่เพิร์ปไม่ ฉันยังอยู่ในช่วงเสียใจแบบ "มันจะวางพัก มันจะลิฟต์" ตอนเดินไปชงกาแฟ
02:11:08 จับคู่ BTCUSDT 0.40 ซื้อ
02:11:08 ส่งแล้ว BTCUSDT-PERP 0.40 ขาย, post-only
02:11:41 ยังทำงานอยู่
02:26:00 มาร์กเรซิดิวอัล −18.1 bps
BTC ขายลง 18 bps ในช่วงที่เงียบ เรซิดิวอัลคือทั้งเทรด ฟันดิ้ง พอพิมพ์ออกมา ให้เครดิตเพิร์ปที่เราไม่มี สปอตนั่งเป็นลองอยู่เฉยๆ เส้นทางข้ามคืนของแบ็คเทสต์ต้นฉบับไม่เคยมีสถานะขาเดียว จึงไม่เคยถามคำถามที่เราถามกับทุกสมุดคำสั่งอื่น: แท่งที่แย่ที่สุดที่ของเหลือนี้พิมพ์ได้คืออะไร และสต็อปของสถานะที่เราไม่ได้ตั้งใจถืออยู่ที่ไหน
ทั้ง 7 แพ็กเต็มก็ไม่ได้เป็นฮีโร่เช่นกัน พอขาที่สองพิมพ์ออกมา การลิฟต์สปอตของเราเองได้กดดันดัชนีไปแล้ว และเบสิสขาเข้าแย่กว่าสแนปช็อตที่จุดสัญญาณไป 3–5 bps เกณฑ์ 8 bps เป็นแค่ตัวเลขบนจอ
สิ่งที่เราจะข้ามในครั้งหน้า
เราจะไม่ชิปหลายขาเป็นฟังก์ชันจับคู่เดียว กฎเดียวกันกับแคร์รีเพิร์ป-สปอต คาเลนดาร์ หรือคอลล์เวอร์ติคัลที่เอเจนต์ส่งเป็น 2 ลิมิต แล้วฉลองเมื่อทั้งคู่ "จับคู่" ที่ mid
- สถานะออเดอร์รายขา รวม partials มองแพ็กเป็นพาเรนต์ของ 2 ตั๋ว
- ตัวจับเวลา max-orphan ที่ยิงจริง และเส้นทางแฟลตเทนที่จ่ายสเปรด 2 ครั้งตอนออก
- มาร์กทูบุ๊กบนเรซิดิวอัล พร้อมสต็อปที่กำหนดขนาดสำหรับของเหลือ เน็ตของแพ็กคือ notional ที่ผิด
- ไม่ให้เครดิตแคร์รี ไม่สะสมฟันดิ้ง จนกว่าทั้งสองขาจะเข้า Incomplete คือไม่ครบ
- ปฏิเสธ mid-on-mid เป็นค่าเริ่มต้นสำหรับอะไรก็ตามที่มี 2 ตั๋ว ถ้าต้องเดา ให้เดาแย่กว่าบนขาที่บาง และช้ากว่าบนฟิลล์ที่สอง
และเราจะไม่ให้ test_pack_is_atomic เข้าไปในคลังโค้ด Atomic เป็นสมบัติของ matching engine ไม่ใช่ฟังก์ชันช่วย BTC สปอตกับ BTC perpetual เป็น 2 สมุดคำสั่งที่บางครั้งคล้องจองกัน เทรดกระดาษคือจุดที่มันเลิกคล้องจอง ซึ่งเป็นเหตุผลเดียวที่ขั้นบันไดเคยน่าสนใจ



