สารบัญบทความ
- หลักฐานและขอบเขต
- ภาพประกอบ
- กระบวนการ
- ข้อสังเกตสองประการที่แตกต่างกัน
- แยกตัวตรวจจับการดูดซับและ divergence
- เวลา การจำแนกฝั่ง และหน่วยปริมาณ
- ตัวอย่างจำลอง: กำไรหลังดูดซับและขาดทุนหลัง divergence
- การยืนยันราคาและการดำเนินการยังคงมีความสำคัญ
- วัดค่าส่วนเพิ่มของเดลต้า
- ข้อผิดพลาดที่พบบ่อย
- รายการตรวจสอบเชิงปฏิบัติ
- คำถามที่พบบ่อย
- แหล่งวิจัย
หลักฐานและขอบเขต
เอกสารของตลาดซื้อขายอธิบายความหมายของฟิลด์ ส่วนงานวิจัยกระแสคำสั่งให้บริบท ไม่มีแหล่งใดยืนยันกำไรของตัวตรวจจับการดูดซับหรือ divergence ที่เสนอในบทความนี้
ขั้นตอนปฏิบัติ
- ตรวจสอบฟีดตรวจฝั่ง taker หน่วยปริมาณ และเวลา
- วัดสมมติฐานแยกกันคำนวณค่าการดูดซับหรือค่าความแตกต่าง CVD โดยไม่ต้องรวมเข้าด้วยกัน
- รอการยืนยันราคาreclaim ต้องเกิดหลังคำนวณฟีเจอร์ที่จำเป็นได้แล้ว
- จำลองการจับคู่และคำสั่งป้องกันใช้ราคาเสนอที่ซื้อขายได้ สเปรด และจุดสุดขั้วของเหตุการณ์
- ตรวจสอบความถูกต้องนอกตัวอย่างเปรียบเทียบกับพฤติกรรมที่พิจารณาเฉพาะราคาและความเครียดจากความหน่วงแฝง
ข้อสังเกตสองประการที่แตกต่างกัน
ทุกการจับคู่มีผู้ซื้อและผู้ขาย เดลตากำหนดเครื่องหมายตามฝ่ายที่เข้ามารับสภาพคล่อง โดยนำปริมาณซื้อของ taker ลบปริมาณขายของ taker ส่วน CVD สะสมเดลตาตั้งแต่จุดรีเซ็ตที่กำหนด ฟิลด์ S ในข้อมูลซื้อขายสาธารณะของ Bybit หมายถึงฝั่ง taker [1] ฟิลด์ชื่อเดียวกันในฟีดการบังคับปิดสถานะอาจมีความหมายอื่น
สมมติฐานการดูดซับขาขึ้นอธิบายถึงแรงขายที่รุนแรงจำนวนมากซึ่งพบกับการเคลื่อนไหวลงที่จำกัด CVD อาจทำจุดต่ำสุดที่ต่ำกว่ามากในสถานการณ์นั้น ในทางกลับกัน การเบี่ยงเบนขาขึ้นของ CVD ต้องการจุดต่ำสุดของราคาที่ต่ำกว่าควบคู่ไปกับมูลค่า CVD ที่สูงกว่า ณ จุดต่ำสุดของราคานั้น เงื่อนไขทั้งสองไม่สามารถใช้แทนกันได้และอาจขัดแย้งกันได้
การเติมคำสั่งฝั่งซื้อในสมุดคำสั่งซ้ำเป็นข้อสังเกตเกี่ยวกับสภาพคล่องที่แสดง ไม่ได้ระบุตัวเจ้าของ ราคาหรือปริมาณเสนอซื้อที่หายไปอาจมาจากการยกเลิกหรือการจับคู่ [2] จึงควรเรียกว่าตัวแทนการดูดซับและระบุสิ่งที่วัด แทนการยืนยันว่าสถาบันหนึ่งกำลังพยุงราคา
แยกตัวตรวจจับการดูดซับและ divergence
ตัวแทนการดูดซับฝั่งซื้อที่เสนอทำงานใกล้แนวรับ S ที่ทราบอยู่ก่อน ในช่วง W=30 วินาที ปริมาณขายต้องมากกว่าเปอร์เซ็นไทล์ที่ 95 ของช่วงเวลาเดียวกันในอดีต sell/(buy+sell) ต้องไม่น้อยกว่า 0.70 และระยะที่ราคากลาง bid-ask ลดลงจากจุดเริ่มช่วงต้องไม่เกิน 0.15 เท่าของ ATR จากแท่งหนึ่งนาทีก่อนหน้า ต้องมีปริมาณรวมเพียงพอและฟีดต่อเนื่อง เกณฑ์เหล่านี้เป็นข้อเสนอเพื่อวิจัย
หลังตัวแทนการดูดซับเกิดขึ้น ให้รอแท่งหนึ่งนาทีที่ปิดสมบูรณ์ได้ไม่เกิน K=3 แท่งเพื่อยืนยันการปิดเหนือ S+buffer เข้าได้เฉพาะราคาที่ซื้อขายได้หลังแท่งนั้นปิด ตั้งคำสั่งป้องกันต่ำกว่าจุดต่ำสุดของทั้งเหตุการณ์ลบ buffer แบบฝั่งขายให้กลับทิศของกระแสและราคา
สำหรับการวิเคราะห์ความแตกต่าง ให้ใช้จุดต่ำสุดของราคา 2 จุดร่วมกับ left=right=2 หลังจากยืนยันจุดที่สองแล้ว ให้ใช้ P2<P1−buffer และ CVD(time_P2)>CVD(time_P1)+delta_min เปรียบเทียบ CVD ที่จุดเวลาของราคา 2 จุด ไม่ใช่จุดต่ำสุดที่น่าสนใจ 2 จุดที่เลือกอย่างอิสระจาก CVD จุดทั้งสองต้องอยู่ในช่วงเวลาการรีเซ็ตเดียวกัน จุดหมุนที่สองจะใช้งานได้ก็ต่อเมื่อมีแท่งเทียนด้านขวา 2 แท่งแล้วเท่านั้น
ต้องมีกฎเชื่อมช่วงวัดการดูดซับกับช่วงรอ reclaim เมื่อเปิดใช้สัญญาณ ให้เก็บแนวรับเดิม เวลาเริ่มเหตุการณ์ และราคาต่ำสุด ห้ามเลื่อนจุดเริ่มไปยังช่วงขายหนักล่าสุดซ้ำจนได้การเด้งที่ต้องการ
รายการซื้อขายที่จำแนกฝั่งไม่ได้หรือช่วงฟีดขาดหายทำให้ CVD หลังจากนั้นไม่สมบูรณ์ แม้ค่าที่ปลายทั้งสองจะเป็นตัวเลข ต้องระบุว่าช่วงสะสมใช้ไม่ได้จนกว่าจะรีเซ็ตใหม่หรือสร้างกลับได้ครบจากข้อมูลที่กู้คืน เปรียบเทียบ pivot ได้เมื่อข้อมูลจำแนกฝั่งครบตลอดช่วงระหว่างจุด ค่าฐานที่ไม่ทราบก่อนทั้งสองจุดอาจหักล้างกันทางคณิตศาสตร์ได้ แต่ต้องเป็นค่าฐานเดียวกันและมีส่วนเพิ่มครบ แบบพื้นฐานที่ระมัดระวังนี้ยังคงต้องการช่วงสะสมที่ใช้ได้
on_trade(tr):
if tr.id in seen_ids: return
if tr.taker_side not in {BUY,SELL} or not valid_size_and_feed(tr):
mark_window_and_cumulative_segment_unavailable_until_reset_or_rebuild(); return
seen_ids.add(tr.id)
signed_size = (+1 if tr.taker_side == BUY else -1)*normalized_size(tr)
delta_bucket += signed_size
CVD += signed_size
on_window_close(t):
if not full_window_and_prior_baseline_available(t): return
absorption = near_frozen_support and total_size>=configured_minimum
absorption &= sell_share>=0.7 and sell_size>past_p95
absorption &= downward_excursion<=0.15*ATR_before_window
if absorption and no_active_event:
arm_reclaim_candidate(known_at=window_data_ready_at,expiry=fixed_deadline)
on_price_pivot_confirmation(p2,t):
p1 = previous_confirmed_price_low(p2)
if p1 is None or not same_cvd_reset(p1,p2): return
if missing_cvd_at_either_pivot(p1,p2): return
if not complete_classified_flow_between(p1.occurred_at,p2.occurred_at): return
if not cumulative_segment_valid(p1,p2): return
divergence = p2.price<p1.price-buffer and cvd_at(p2)>cvd_at(p1)+dmin
if divergence and no_active_event:
arm_candidate(known_at=received_confirmation_time(t))
# Unclassified trades never default to SELL; overlapping windows do not reset TTL.
เวลา การจำแนกฝั่ง และหน่วยปริมาณ
บันทึกเวลาเหตุการณ์ เวลาที่ได้รับ รหัสการซื้อขาย และสถานะการเชื่อมต่อ การประมาณค่าโดยใช้สีแท่งเทียนหรือการเพิ่มขึ้นเล็กน้อยของราคาเป็นการประมาณค่าที่แตกต่างกัน ดังนั้นควรตั้งชื่อให้เหมาะสม โดยเฉพาะอย่างยิ่ง วิธีการนี้ไม่สามารถแยกแยะการขายอย่างหนักออกจากชุดราคาที่แทบไม่เปลี่ยนแปลงได้อย่างน่าเชื่อถือ อย่านับการซื้อขายจริงและการแสดงผลรวมซ้ำสองครั้ง
ปรับปริมาณให้ใช้หน่วยคงที่ CVD ที่อิงจำนวนเหรียญกับที่อิงมูลค่าตามราคาอาจเคลื่อนไหวต่างกันเมื่อราคาเปลี่ยนมาก สัญญา inverse ต้องมีข้อกำหนดปริมาณเฉพาะ ไม่ควรใช้จำนวนคูณราคาเป็นสูตรสากล ฐานเปอร์เซ็นไทล์ต้องไม่รวมช่วงที่กำลังวัด
CVD อธิบายกระแสการจับคู่จากผู้ส่งคำสั่งเชิงรุกที่เกิดขึ้นแล้ว งานวิจัย OFI สนับสนุนการพิจารณาเหตุการณ์เปลี่ยนราคาเสนอด้วย [3] แต่เพิ่มข้อมูล L2 ก็ยังระบุเจ้าของคำสั่ง iceberg ไม่ได้ สถิติการเติม bid อาจมีประโยชน์ใกล้ S แต่การส่งข้อมูลเป็นชุดและสภาพคล่องที่ซ่อนอยู่ทำให้ข้อมูลไม่ครบ ต้องรักษาข้อจำกัดนี้ในชื่อฟีเจอร์และคำอธิบายหลักฐาน
ตัวอย่างจำลอง: กำไรหลังดูดซับและขาดทุนหลัง divergence
กำหนด S=100, ATR=2 จากช่วงก่อนหน้า และ buffer=0.10 ใน 30 วินาที ปริมาณซื้อคือ 20 และปริมาณขายคือ 100 จึงได้ delta−80 และสัดส่วนขาย 83.3% ค่าเกณฑ์เปอร์เซ็นไทล์ของปริมาณขายในอดีตคือ 70 ราคากลางลดจาก 100.10 ถึงต่ำสุด 99.85 ระยะลดลง 0.25 จึงน้อยกว่าขีดจำกัด 0.30 เหตุการณ์นี้เข้าเกณฑ์ตัวแทนการดูดซับแม้ CVD ลดลงแรง
แท่งถัดไปปิดที่ 100.20 หากซื้อได้ที่ 100.25 ตั้ง stop 99.75 และเป้าหมาย 101.25 จะเสี่ยง 0.50 และมีกำไรเป้าหมาย 1.00 หรือ 2R ก่อนต้นทุน หากราคาที่ซื้อได้เป็น 100.60 แล้ว กำไรถึงเป้าหมายเดิมจะเหลือ 0.65 แต่ความเสี่ยงเพิ่มเป็น 0.85 กฎผลตอบแทนต่อความเสี่ยงขั้นต่ำที่ตั้งไว้ก่อนอาจปฏิเสธการเข้า การทดสอบย้อนหลังห้ามคงราคาเข้าที่ 100.25 หากจับคู่ราคานั้นไม่ได้จริง
อีกตัวอย่างเป็น divergence ที่ล้มเหลว โดยจุดต่ำของราคาคือ 100 กับ 99.50 และค่า ณ จุดนั้นคือ CVD−500 กับ −420 ในรอบเดียวกัน หลังยืนยันและ reclaim ซื้อได้ที่ 100.15 และตั้ง stop ที่ 99.40 ราคาลงต่อจนคำสั่งป้องกันจับคู่ที่ 99.35 ขาดทุน 0.80 การเกิด divergence ไม่ได้ป้องกัน bid แบบรอรับจากการหายไปหรือแรงขายระลอกใหม่
การยืนยันราคาและการดำเนินการยังคงมีความสำคัญ
ตัวแทนเดียวกันอาจเกิดซ้ำหลายช่วงขณะที่ราคายังลงต่อ รวมช่วงที่ซ้อนกันเป็นเหตุการณ์เดียวและกำหนดการเข้าเพียงครั้งเดียวหรือจำนวนเข้าใหม่ที่จำกัด ยกเลิกเมื่อหมดอายุ ข้อมูลเก่าเกินไป สเปรดกว้างเกินไป หรือราคาทะลุต่อถึงเกณฑ์ที่กำหนดก่อนการยืนยัน
คำสั่งจำกัดราคาแบบรอรับเพื่อให้ได้จุดเข้าดีขึ้นเป็นคนละวิธีกับการซื้อหลัง reclaim โอกาสไม่ถูกจับคู่และการถูกจับคู่ในจังหวะที่เสียเปรียบอาจลบข้อดีของราคาที่ดูดีกว่า การเล่นซ้ำต้องตรวจสภาพคล่องตอนคำสั่งถึงตลาด ไม่ใช่ดูเพียงว่าราคาซื้อขายล่าสุดในอดีตเคยแตะระดับนั้น
เป้าหมาย R คงที่ เป้าหมาย VWAP ที่ทราบแล้ว และเป้าหมายตามโครงสร้างเป็นวิธีออกแยกกัน การเทรดช่วงเช้าใช้ VWAP สุดท้ายของรอบไม่ได้ รวมค่าธรรมเนียม slippage และค่าระดมทุนหากถือสัญญาข้ามเวลาคิดค่าระดมทุน
วัดปริมาณการดีดตัวกลับที่เกิดขึ้นในระหว่างรอการยืนยันจุดเปลี่ยน การเบี่ยงเบนที่เห็นได้ชัดเจนอาจมาช้าเกินไปในเชิงเศรษฐกิจ รายงานผู้สมัครที่บรรลุเป้าหมายแล้วก่อนได้รับสัญญาณว่าเป็นโอกาสที่พลาดไป แทนที่จะมองว่าการดีดตัวกลับก่อนหน้านี้เป็นกำไรที่สามารถนำมาใช้กับกลยุทธ์ที่ได้รับการยืนยันแล้วได้
วัดค่าส่วนเพิ่มของเดลต้า
ใช้ reclaim ที่ดูราคาอย่างเดียว ณ ระดับอ้างอิง เวลา และความผันผวนเดียวกันเป็นกลุ่มเปรียบเทียบ เทียบแบบดูดซับอย่างเดียว divergence อย่างเดียว และแบบผสม การเพิ่มเงื่อนไขไม่รับประกันผลตอบแทนที่ดีขึ้น รายงานจำนวนสัญญาณที่ยืนยันและคำสั่งที่จับคู่ได้ด้วย ไม่ใช่เฉพาะอัตราชนะของเทรดที่คัดแล้ว
ทดสอบความหน่วงเพิ่ม เช่น 100–500ms หากเหมาะกับระบบที่จะใช้ และแยกวิเคราะห์ช่วงขาดการเชื่อมต่อ ตัวเลขนี้เป็นการทดสอบที่เสนอ ไม่ใช่สมมติฐานสากล หากต้นทุนเพียงหนึ่งสเปรดทำให้ผลลัพธ์หายไป ต้องอธิบายความเปราะบางนั้น
ประเมินตลาดซื้อขายแต่ละแห่งแยกกันเพื่อแยกกระแสเฉพาะแห่งออกจากสัญญาณที่ใช้ข้ามตลาดได้ การรีเซ็ต CVD ความล่าช้าของ pivot เหตุการณ์ซ้อนกัน และการประมาณเปอร์เซ็นไทล์อาจเปลี่ยนผลมากกว่าหน้าตากราฟ จัดเวอร์ชันขั้นตอนเตรียมข้อมูลและคงป้ายข้อมูลไม่ครบให้เห็นชัด
สถานการณ์จำลองของแต่ละหน่วยควรรวมถึงหน้าต่างที่มีปริมาณการซื้อขายเป็นศูนย์ ฝั่งผู้รุกที่หายไป รหัสการซื้อขายซ้ำ การรีเซ็ตระหว่างจุดเปลี่ยน และการซื้อขายที่ล่าช้าซึ่งมาถึงหลังจากหน้าต่างปิดลง กรณีเหล่านี้เป็นการทดสอบการตีความทางเศรษฐกิจของฟีเจอร์ ไม่ใช่เพียงแค่ว่าผลรวมทางคณิตศาสตร์ทำงานได้โดยไม่มีข้อผิดพลาดหรือไม่
ข้อผิดพลาดที่พบบ่อย
การผสานรวมกลไกต่างๆ
การดูดซับอาจเกิดขึ้นพร้อมกับระดับต่ำสุดใหม่ของ CVD; การกำหนดให้มีความแตกต่างอาจทำให้ปรากฏการณ์ที่ต้องการไม่เกิดขึ้น
ถือว่าตลาดซื้อขายแห่งเดียวเป็นทั้งตลาด
ตลาดอีกแห่งอาจมีกระแสการจับคู่เชิงรุกที่ต่างหรือสวนทางกัน
เรียกปริมาณเสนอที่ลดลงทุกครั้งว่าการขาย
ปริมาณที่แสดงอาจหายไปเพราะยกเลิก ต้องมีข้อมูลการจับคู่ซื้อขายเพื่อคำนวณเดลตาตามฝั่งเชิงรุก
รายการตรวจสอบก่อนใช้วิธีนี้
ทำเครื่องหมายแต่ละข้อหลังตรวจสอบกับข้อมูลของคุณแล้ว ความคืบหน้าจะบันทึกในเบราว์เซอร์นี้ แต่ไม่ได้รับรองว่ากลยุทธ์ทำกำไรได้
คำถามที่พบบ่อย
ปริมาณซื้อขายสูงและไส้เทียนยาวพอจะพิสูจน์การดูดซับหรือไม่?
เป็นเพียงตัวแทน OHLCV ที่อ่อนกว่า นิยามนี้ต้องมีข้อมูลซื้อขายที่จำแนกฝั่งเชิงรุกแล้วและการวัดระยะเคลื่อนของราคา
ความแตกต่างของสัญญาณ CVD สามารถกระตุ้นให้เกิดการซื้อขายทันทีได้หรือไม่?
เป็นฟีเจอร์ ไม่ใช่ระบบเทรดครบชุด บทความนี้รอสัญญาณราคาที่ไม่ใช้ข้อมูลอนาคตและกำหนดกฎเข้าแยกต่างหาก
แหล่งวิจัย
แต่ละแหล่งสนับสนุนคำจำกัดความหรือหลักฐานที่อธิบายไว้ข้างกัน รหัสเทียม ตัวอย่างสมมติ และพารามิเตอร์ที่เสนอต้องผ่านการตรวจสอบแยกต่างหาก
- Public TradeBybit. อ่านฟิลด์ฝั่ง taker เวลาซื้อขาย และ ID แล้ว เป็นเอกสารข้อมูล ไม่ใช่กลยุทธ์ ตรวจสอบเมื่อ: .
- OrderbookBybit. อ่านข้อจำกัดของปริมาณที่แสดง ข้อมูล snapshot/delta และสมุดคำสั่งสาธารณะแล้ว ตรวจสอบเมื่อ: .
- The price impact of order book eventsCont, Kukanov and Stoikov. อ่านงานวิจัยกระแสซื้อขายและราคาเสนอแล้ว งานนั้นไม่ได้ทดสอบตัวตรวจจับการดูดซับ/CVD เหล่านี้ ตรวจสอบเมื่อ: .
วิธีการที่เกี่ยวข้อง
หมายเหตุความเสี่ยง
เนื้อหานี้ใช้เพื่อการศึกษาและออกแบบงานวิจัย ไม่ใช่คำแนะนำทางการเงิน Backtest เป็นการจำลองข้อมูลในอดีต ไม่รับประกันผลในอนาคตและไม่ส่งคำสั่งซื้อขายจริง วิธีการในคลังนี้ไม่ได้หมายความว่ามีเป็นฟีเจอร์ในแอปทั้งหมด ดู ระเบียบวิธี และ ศูนย์การเรียนรู้.
ตรวจสอบกฎก่อนเสี่ยงด้วยเงินจริง
ตรวจสอบความสามารถของแอป ข้อมูล และแต่ละรายการซื้อขายจำลอง ตัวตรวจจับขั้นสูงอาจต้องพัฒนาแยกต่างหาก
ดาวน์โหลด Backtest บน App Store