สารบัญบทความ
- หลักฐานและขอบเขต
- ภาพประกอบ
- กระบวนการ
- การเปลี่ยนบทบาทแนวรับแนวต้านต้องมีประวัติครบถ้วน
- จากบล็อกที่รู้แล้วสู่ชุดเงื่อนไขรอรีเทสต์ใหม่
- ใช้ปริมาณซื้อขายแยกสมมติฐานช่วงทะลุกับช่วงกลับทดสอบ
- ตัวอย่างจำลองที่กำไรและขาดทุนในโซนเดียวกัน
- ตัวเลือกการสั่งซื้อและจำนวนครั้งที่ลอง
- เปรียบเทียบเบรกเกอร์กับรีเทสต์แนวรับแนวต้านทั่วไป
- ข้อผิดพลาดที่พบบ่อย
- รายการตรวจสอบเชิงปฏิบัติ
- คำถามที่พบบ่อย
- แหล่งวิจัย
หลักฐานและขอบเขต
การใช้งานดั้งเดิมอธิบายถึงการเปลี่ยนแปลงขั้วและระบุป้ายกำกับประวัติศาสตร์ที่ถูกวาดทับไว้อย่างชัดเจน กฎการซื้อขายที่เสนอมานั้นไม่มีบันทึกผลการดำเนินงานที่ได้รับการตรวจสอบโดยอิสระ
ขั้นตอนปฏิบัติ
- เริ่มต้นด้วยบล็อกที่ทราบแล้วเก็บขอบเขตราคาและเวลาเผยแพร่ไว้
- สังเกตการทำให้เป็นโมฆะต้องมีราคาปิดเลยขอบฝั่งไกลและบัฟเฟอร์
- สร้างเบรกเกอร์ใช้ ID ใหม่ที่เชื่อมโยงกับ ID หลักเดิม
- ประเมินผลการทดสอบซ้ำครั้งแรกใช้เงื่อนไขปฏิเสธและกฎเข้าซื้อขายที่เลือกไว้
- ออกหรือยกเลิกรักษาจุดหยุด เป้าหมาย และอายุการใช้งานที่กำหนดไว้ล่วงหน้า
การเปลี่ยนบทบาทแนวรับแนวต้านต้องมีประวัติครบถ้วน
ออร์เดอร์บล็อกขาลงเดิมถูกเฝ้าดูเป็นแนวต้าน เมื่อราคาปิดเหนืออย่างชัดเจน สมมติฐานแนวต้านเดิมถูกลบล้าง เบรกเกอร์ขาขึ้นตั้งคำถามใหม่ว่าการกลับมาครั้งแรกจากด้านบนจะยืนโซนได้หรือไม่ ส่วนบล็อกขาขึ้นที่ล้มเหลวสร้างสมมติฐานขาลงที่สอดคล้องกันจากด้านล่างโซน
LuxAlgo อธิบายการเปลี่ยนบทบาทของเบรกเกอร์และเตือนว่าป้าย Historical Polarity Changes ถูกนำไปวาดย้อนหลัง [1] ป้ายในอดีตที่ดูสวยจึงไม่ใช่หลักฐานพอว่าสัญญาณรู้ได้ในขณะนั้น เอกสารเวลาของแพลตฟอร์มช่วยแยกตำแหน่งที่วาดออกจากเวลาที่ข้อมูลพร้อมใช้ [2]
ตัวทำลายการซื้อขายไม่ได้แสดงให้เห็นว่าผู้ขายรายก่อนหน้าจะต้องซื้อในโซนนั้นในขณะนี้ คำอธิบายดังกล่าวอาจกระตุ้นให้เกิดสมมติฐานได้ แต่ OHLCV บันทึกราคา กิจกรรม และเวลา แทนที่จะบันทึกตัวตนของผู้เข้าร่วม การสร้างสถานะโซนใหม่จะต้องไม่ลบล้างการสูญเสียการซื้อขายบล็อกเดิม
จากบล็อกที่รู้แล้วสู่ชุดเงื่อนไขรอรีเทสต์ใหม่
เริ่มจาก block[a,b] ขาลงที่เผยแพร่ไว้ก่อน ตรึง A=ATR14 จากก่อนทะลุ และ buffer=max(2 ticks,0.10A) เมื่อได้รับราคาปิดของแท่ง t แล้วและ C[t]>b+buffer ให้เปลี่ยนบล็อกเดิมเป็น INVALIDATED และสร้างเบรกเกอร์ขาขึ้นในขอบเขตราคาเดิมโดยมี parent_ob_id เชื่อมกลับไป บล็อกใหม่นี้ใช้เข้าได้ตั้งแต่ t+1 บัฟเฟอร์และตัวอย่าง TTL20แท่งเป็นตัวเลือกเพื่อการวิจัย
ก่อนพิจารณาการกลับมาทดสอบ ต้องมีหลักฐานว่าหลังทะลุราคาเคยซื้อขายอยู่เหนือโซนทั้งหมด รีเทสต์แตะโซนเมื่อ low≤b+buffer และ high≥a แล้วปิดเหนือ b+buffer ภายในไม่เกินสามแท่ง แบบสัมผัสครั้งแรกใช้โอกาสนั้นตั้งแต่เข้าใกล้ครั้งแรก จะนำการกลับมาครั้งที่สี่ที่ดูดีกว่ามาเรียกครั้งแรกไม่ได้ ยกเลิกหากปิดต่ำกว่า a−buffer ก่อนยืนยัน
รูปแบบหนึ่งต้องการ BOS, MSS หรือการเคลื่อนย้ายประกอบ ในขณะที่อีกรูปแบบหนึ่งต้องการเพียงการทำให้บล็อกเป็นโมฆะ ลงทะเบียนสิ่งเหล่านี้แยกกันเพื่อวัดตัวกรองโครงสร้าง หากการทะลุและการทดสอบซ้ำที่ชัดเจนเกิดขึ้นภายในแท่งเทียนสร้างเดียวกัน OHLC จะขาดลำดับที่จำเป็นสำหรับการเข้าหลังการเผยแพร่ เวอร์ชันที่อิงตามราคาปิดจะไม่ทำการซื้อขายภายในแท่งเทียนนั้น
บันทึกรหัสเหตุการณ์ใหม่โดยคงขอบเขตบล็อกเดิมและเวลาที่เกิดความล้มเหลวไว้ มิฉะนั้น วัตถุที่เปลี่ยนแปลงได้เพียงชิ้นเดียวซึ่งทิศทางเปลี่ยนจากขาลงเป็นขาขึ้น อาจทำให้รายงานแสดงเฉพาะการตีความขั้นสุดท้ายที่ประสบความสำเร็จเท่านั้น ลำดับเหตุการณ์เป็นส่วนหนึ่งของการออกแบบการวิจัย ไม่ใช่แค่การบันทึกข้อมูล
EXPIRED, INVALIDATED และ CONSUMED เป็นสถานะสิ้นสุดของเบรกเกอร์นั้น การยกเลิกคำสั่งอย่างเดียวไม่พอหากตัวตรวจจับยังกลับมาพิจารณาโซนเดิมในแท่งถัดไป ราคาที่กลับคืนภายหลังฟื้นชุดเงื่อนไขที่ล้มเหลวไม่ได้ ต้องบันทึกการจับคู่ขณะคำสั่งยังมีผลก่อนเปลี่ยนสถานะตอนแท่งปิด
on_close(t):
process_existing_order_events_until_close(t)
for br in active_bullish_breakers_eligible_before_bar(t):
if expired(br):
br.state = EXPIRED; cancel_future_orders(br); continue
if C[t] < br.low-br.buffer:
br.state = INVALIDATED; cancel_future_orders(br); continue
if first_retest_confirmed(br,t):
signal_for_next_quote_once(br); br.state = CONSUMED
A = ATR14[t-1]
if not finite_positive(A): return
buffer = max(2*tick,0.10*A)
for ob in active_bearish_OBs_published_before_bar(t):
if C[t] > ob.high+buffer:
invalidate_once(ob,at=t)
create_breaker_once(parent=ob.id,known_at=received_close_time(t),
eligible=t+1,buffer=buffer,expiry=t+20)
# Terminal breakers cannot revive; a failed parent creates at most one child.
ใช้ปริมาณซื้อขายแยกสมมติฐานช่วงทะลุกับช่วงกลับทดสอบ
วัด RVOL ตอนทะลุแยกจากปริมาณช่วงรีเทสต์ที่ยาวเท่ากัน การทะลุพร้อมปริมาณสูงแล้วกลับมาด้วยปริมาณต่ำอาจสอดคล้องกับแรงขายลดลง แต่ก็อาจเป็นเพียงการซื้อขายเบาลงตามปกติช่วงกลางวัน ใช้ฐานเวลาเดียวกันและห้ามนำปริมาณเต็มวันที่ยังไม่จบมาใช้ตัดสินใจตอนเช้า
OB, breaker และ BOS สามารถอยู่ในลำดับราคาเดียวกันได้ อย่ากำหนดการจัดสรรความเสี่ยงแยกต่างหากเพียงเพราะเหตุการณ์มีหลายชื่อ กลุ่มเหตุการณ์สามารถใช้เงินงบประมาณคงที่ร่วมกันได้สำหรับรายการที่เกี่ยวข้อง CVD เป็นคุณลักษณะเพิ่มเติมเฉพาะเมื่อการจำแนกประเภทการซื้อขายมีความน่าเชื่อถือเท่านั้น สีของแท่งเทียนไม่ได้สร้างค่าเดลต้าขึ้นมาใหม่
เก็บรีเทสต์ที่มีปริมาณซื้อขายสูงไว้ในตัวอย่างด้วย การตอบสนองแรงหลังอาจมีการดูดซับคำสั่งอาจมีกิจกรรมสูง ซึ่งไม่สอดคล้องกับเงื่อนไขปริมาณแห้งอย่างเคร่งครัด ควรทดสอบเป็นกลไกคนละสาขา ไม่เปลี่ยนคำอธิบายหลังเห็นว่ารายการใดชนะ
ตัวอย่างจำลองที่กำไรและขาดทุนในโซนเดียวกัน
ทราบ block[100,102] ขาลงอยู่แล้ว เมื่อใช้ ATR=2 และ tick=0.05 บัฟเฟอร์เท่ากับ0.20 ราคาปิด102.50สร้างเบรกเกอร์ขาขึ้น ต่อมาราคาแตะ104 กลับมาทำจุดต่ำ101.80และปิด102.40 ซื้อด้วยราคาเสนอที่จับคู่ได้ถัดไป102.45 วางจุดหยุด99.80และเป้าหมาย107.75 จะมีความเสี่ยง2.65และผลตอบแทนเป้าหมาย5.30 หรือ2Rก่อนต้นทุน
หากเป้าหมายโครงสร้างถัดไปที่ทราบคือ 104.50 เท่านั้น การป้องกันที่กว้างเช่นนั้นอาจทำให้ผลตอบแทนไม่เพียงพอ ปฏิเสธตามกฎที่เลือกไว้ล่วงหน้า อย่าเลื่อนจุดหยุดขาดทุนขึ้นไปที่ 101.80 หลังจากทราบว่าเป็นจุดต่ำสุดของการทดสอบซ้ำที่ประสบความสำเร็จ เว้นแต่แบบจำลองการเข้าซื้อเดิมจะใช้จุดต่ำสุดที่สังเกตได้แล้วนั้นอย่างชัดเจน
ในเส้นทางล้มเหลว การกลับมาครั้งแรกปิดที่99.70 แบบรอยืนยันไม่เปิดสถานะและยกเลิกชุดเงื่อนไข ส่วนคำสั่งลิมิตที่วางอยู่ที่102อาจจับคู่แล้วออกที่99.75 จึงเสีย2.25 สถานะขายชอร์ตที่เปิดจากบล็อกขาลงเดิมยังต้องมีผลลัพธ์ของตัวเอง การรายงานเฉพาะเบรกเกอร์ที่กำไรภายหลังจะบิดเบือนลำดับทั้งหมด
ตัวเลือกการสั่งซื้อและจำนวนครั้งที่ลอง
เลือกเข้าที่ราคาเสนอถัดไปหลังยืนยัน หรือวางคำสั่งลิมิตที่ขอบหรือกึ่งกลางซึ่งกำหนดไว้ก่อนราคาแตะโซน ห้ามอ้างการปิดแท่งที่ดูดีเพื่อสมมติว่าจับคู่ได้ที่ราคาลิมิตดีที่สุด พร้อมกับละทิ้งลิมิตที่จับคู่แล้วเสียเปรียบ การจับคู่และคำสั่งป้องกันต้องสอดคล้องกับตลาดที่ใช้ [3]
การหมดอายุ การทะลุเกินขอบ หรือเงื่อนไขโครงสร้างที่ขัดแย้งที่ประกาศไว้ล่วงหน้า สามารถยกเลิกตัวเลือกที่รออยู่ได้ สำหรับตำแหน่งที่เปิดอยู่ การหยุดขาดทุนแบบแข็ง (Hard Stop) และการออกเมื่อปิด (Close-based Exit) เป็นการกระทำที่แตกต่างกัน การรอให้ปิดไม่ได้ป้องกันไม่ให้คำสั่งหยุดขาดทุนเชิงป้องกัน (Protective Stop) ที่ใช้งานอยู่แล้วได้รับการเติมเต็ม
แนวทางพื้นฐานที่เสนออนุญาตให้ลองได้หนึ่งครั้งต่อบล็อกหลัก และหนึ่งตำแหน่งต่อกลุ่มเหตุการณ์ หากอนุญาตให้เข้าใหม่ ให้ถือเป็นการซื้อขายใหม่และคงต้นทุนสะสมไว้ เลือกเป้าหมายเป็นค่าแกว่งตัวตรงข้ามที่ทราบ หรือค่า R คงที่หลายเท่าก่อนที่จะสังเกตเส้นทางในอนาคต
การทดสอบจุดหยุดขาดทุนเฉพาะที่ที่แคบลงนั้นมีประโยชน์ แต่จะเปลี่ยนสมมติฐานที่ใช้ในการซื้อขาย อาจช่วยปรับปรุงอัตราส่วนผลตอบแทน/ความเสี่ยงในเชิงนามธรรม ในขณะเดียวกันก็เพิ่มความถี่ในการหยุดขาดทุนและสัดส่วนของความเสี่ยงที่รับโดยสเปรด เปรียบเทียบผลลัพธ์สุทธิที่แท้จริง ไม่ใช่แค่ระยะห่างระหว่างจุดเข้าและเป้าหมายบนกราฟที่ได้กำไร
เปรียบเทียบเบรกเกอร์กับรีเทสต์แนวรับแนวต้านทั่วไป
ตัวควบคุมที่มีประโยชน์คือการทดสอบการทะลุแนวต้านซ้ำที่ระดับที่ไม่มีประวัติการปิดกั้นคำสั่งซื้อขาย โดยจับคู่ตามความกว้างของโซน อายุ ความแข็งแกร่งของการทะลุแนวต้าน และระยะการเข้าซื้อ หากตัวทะลุแนวต้านไม่ช่วยปรับปรุงผลลัพธ์หลังจากการจับคู่ องค์ประกอบที่มีประโยชน์อาจเป็นการทดสอบซ้ำมากกว่าจุดเริ่มต้นของการปิดกั้น
รายงานฐานตัวอย่างทุกขั้น ได้แก่ บล็อกเดิม การถูกลบล้าง รีเทสต์ภายหลัง การยืนยัน และคำสั่งที่จับคู่ เก็บโซนที่ถูกลบจากกราฟสุดท้ายด้วย การเล่นข้อมูลซ้ำทีละช่วงต้องยืนยันว่าป้ายเปลี่ยนบทบาทในอดีตไม่ได้ถูกใช้ตัดสินใจก่อนเวลาที่รู้ได้
แบ่งตามลำดับเวลาและเก็บลูกหลานทั้งหมดของผู้ปกครองคนเดียวกันไว้ในกลุ่มการตรวจสอบเดียวกัน ประเมิน TTL บัฟเฟอร์ กฎการสัมผัสครั้งแรก และสมมติฐานต้นทุนที่อยู่ใกล้เคียง แผนภูมิหลังเหตุการณ์ที่ประสบความสำเร็จเพียงแผนภูมิเดียวไม่สามารถประมาณความน่าจะเป็นที่จะชนะของเครื่องสถานะทั้งหมดได้ โดยเฉพาะอย่างยิ่งเมื่อบล็อกผู้ปกครองสร้างความสูญเสียขึ้นมาก่อน
ข้อผิดพลาดที่พบบ่อย
ลบรายการซื้อขายที่ขาดทุนเดิมออก
เบรกเกอร์ที่กำไรภายหลังไม่ได้ลบการขาดทุนของบล็อกก่อนหน้า
เข้าที่จุดอ้างอิงซึ่งวาดย้อนหลัง
โซนที่ภายหลังถูกวาดลงบนอดีตไม่ได้แปลว่ารู้จักและซื้อขายได้ในเวลานั้น
ชื่อหลายชื่อย่อมเพิ่มความเสี่ยงหนึ่งอย่าง
BOS, breaker และ retest สามารถอธิบายเหตุการณ์พื้นฐานหนึ่งเหตุการณ์ได้
รายการตรวจสอบก่อนใช้วิธีนี้
ทำเครื่องหมายแต่ละข้อหลังตรวจสอบกับข้อมูลของคุณแล้ว ความคืบหน้าจะบันทึกในเบราว์เซอร์นี้ แต่ไม่ได้รับรองว่ากลยุทธ์ทำกำไรได้
คำถามที่พบบ่อย
ควรเทรดทุกบล็อกที่ถูกลบล้างเป็นเบรกเกอร์หรือไม่?
ไม่ การลบล้างสร้างเพียงชุดเงื่อนไขรอเข้า หากไม่มีรีเทสต์ หมดอายุ หรือถูกลบล้างอีก อาจไม่มีการเปิดสถานะเลย
จำเป็นต้องมีการกวาดล้างสภาพคล่องล่วงหน้าหรือไม่?
ไม่ใช่ในเกณฑ์พื้นฐานที่อิงตามขั้วนี้ การกำหนดให้มีการกวาดจะสร้างเวอร์ชันเพิ่มเติมที่ต้องมีการทดสอบแยกต่างหาก
แหล่งวิจัย
แต่ละแหล่งสนับสนุนคำจำกัดความหรือหลักฐานที่อธิบายไว้ข้างกัน รหัสเทียม ตัวอย่างสมมติ และพารามิเตอร์ที่เสนอต้องผ่านการตรวจสอบแยกต่างหาก
- Order Blocks & Breaker BlocksLuxAlgo. ได้อ่านคำอธิบายต้นฉบับและคำเตือนเรื่องป้ายที่วาดย้อนหลัง แต่ไม่มีประวัติผลลัพธ์ที่ตรวจสอบแล้ว ตรวจสอบเมื่อ: .
- RepaintingTradingView. ได้ตรวจเอกสารเวลาที่ข้อมูลพร้อมใช้และพฤติกรรมการแสดงผล ตรวจสอบเมื่อ: .
- Futures Order TypesCME Group. ได้ตรวจเอกสารกลไกคำสั่งเพื่อแยกการยืนยันเงื่อนไขราคาออกจากการจับคู่จริง ตรวจสอบเมื่อ: .
วิธีการที่เกี่ยวข้อง
หมายเหตุความเสี่ยง
เนื้อหานี้ใช้เพื่อการศึกษาและออกแบบงานวิจัย ไม่ใช่คำแนะนำทางการเงิน Backtest เป็นการจำลองข้อมูลในอดีต ไม่รับประกันผลในอนาคตและไม่ส่งคำสั่งซื้อขายจริง วิธีการในคลังนี้ไม่ได้หมายความว่ามีเป็นฟีเจอร์ในแอปทั้งหมด ดู ระเบียบวิธี และ ศูนย์การเรียนรู้.
ตรวจสอบกฎก่อนเสี่ยงด้วยเงินจริง
ตรวจสอบความสามารถของแอป ข้อมูล และแต่ละรายการซื้อขายจำลอง ตัวตรวจจับขั้นสูงอาจต้องพัฒนาแยกต่างหาก
ดาวน์โหลด Backtest บน App Store