สารบัญบทความ

หลักฐานและขอบเขต

การใช้งานดั้งเดิมอธิบายถึงการเปลี่ยนแปลงขั้วและระบุป้ายกำกับประวัติศาสตร์ที่ถูกวาดทับไว้อย่างชัดเจน กฎการซื้อขายที่เสนอมานั้นไม่มีบันทึกผลการดำเนินงานที่ได้รับการตรวจสอบโดยอิสระ

ข้อมูลและตลาดOHLCV พร้อมข้อมูลเซสชั่น ราคาติ๊ก และสเปรด แท่งเทียนไม่ได้ระบุว่าใครเปลี่ยนตำแหน่งในโซนนั้น
กรอบเวลาที่ใช้วิจัยสามารถศึกษาข้อมูลแบบรายห้านาที รายชั่วโมง และรายวันแยกกันได้ อายุของโซนที่วัดเป็นแท่งแสดงถึงช่วงเวลาที่ผ่านไปแตกต่างกันในแต่ละช่วงเวลา
ราคาถูกต้านที่100–102ก่อนทะลุขึ้นและกลับมาทดสอบโซนในบทบาทเบรกเกอร์ขาขึ้นเปิดภาพประกอบขนาดเต็ม
ราคาและปริมาณเหตุการณ์จำลอง โซน 100–102 จะเปลี่ยนบทบาทหลังจากปิด 102.50 นี่ไม่ใช่ชุดข้อมูล OHLC ที่สมบูรณ์ หรือผลการซื้อขายจริง

ขั้นตอนปฏิบัติ

ขั้นตอนสำหรับ บล็อกเบรกเกอร์: ทดสอบการเปลี่ยนแปลงขั้วหลังจากบล็อกคำสั่งล้มเหลว
ขั้นตอนทั้งหมดอธิบายไว้ด้านล่าง ทุกขั้นต้องบันทึกเหตุผลที่คัดออกเมื่อข้อมูลไม่ครบหรือเงื่อนไขไม่ผ่าน
  1. เริ่มต้นด้วยบล็อกที่ทราบแล้วเก็บขอบเขตราคาและเวลาเผยแพร่ไว้
  2. สังเกตการทำให้เป็นโมฆะต้องมีราคาปิดเลยขอบฝั่งไกลและบัฟเฟอร์
  3. สร้างเบรกเกอร์ใช้ ID ใหม่ที่เชื่อมโยงกับ ID หลักเดิม
  4. ประเมินผลการทดสอบซ้ำครั้งแรกใช้เงื่อนไขปฏิเสธและกฎเข้าซื้อขายที่เลือกไว้
  5. ออกหรือยกเลิกรักษาจุดหยุด เป้าหมาย และอายุการใช้งานที่กำหนดไว้ล่วงหน้า

การเปลี่ยนบทบาทแนวรับแนวต้านต้องมีประวัติครบถ้วน

ออร์เดอร์บล็อกขาลงเดิมถูกเฝ้าดูเป็นแนวต้าน เมื่อราคาปิดเหนืออย่างชัดเจน สมมติฐานแนวต้านเดิมถูกลบล้าง เบรกเกอร์ขาขึ้นตั้งคำถามใหม่ว่าการกลับมาครั้งแรกจากด้านบนจะยืนโซนได้หรือไม่ ส่วนบล็อกขาขึ้นที่ล้มเหลวสร้างสมมติฐานขาลงที่สอดคล้องกันจากด้านล่างโซน

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 สามารถอธิบายเหตุการณ์พื้นฐานหนึ่งเหตุการณ์ได้

รายการตรวจสอบก่อนใช้วิธีนี้

ทำเครื่องหมายแต่ละข้อหลังตรวจสอบกับข้อมูลของคุณแล้ว ความคืบหน้าจะบันทึกในเบราว์เซอร์นี้ แต่ไม่ได้รับรองว่ากลยุทธ์ทำกำไรได้

0/7 ข้อ

คำถามที่พบบ่อย

ควรเทรดทุกบล็อกที่ถูกลบล้างเป็นเบรกเกอร์หรือไม่?

ไม่ การลบล้างสร้างเพียงชุดเงื่อนไขรอเข้า หากไม่มีรีเทสต์ หมดอายุ หรือถูกลบล้างอีก อาจไม่มีการเปิดสถานะเลย

จำเป็นต้องมีการกวาดล้างสภาพคล่องล่วงหน้าหรือไม่?

ไม่ใช่ในเกณฑ์พื้นฐานที่อิงตามขั้วนี้ การกำหนดให้มีการกวาดจะสร้างเวอร์ชันเพิ่มเติมที่ต้องมีการทดสอบแยกต่างหาก

แหล่งวิจัย

แต่ละแหล่งสนับสนุนคำจำกัดความหรือหลักฐานที่อธิบายไว้ข้างกัน รหัสเทียม ตัวอย่างสมมติ และพารามิเตอร์ที่เสนอต้องผ่านการตรวจสอบแยกต่างหาก

  1. Order Blocks & Breaker BlocksLuxAlgo. ได้อ่านคำอธิบายต้นฉบับและคำเตือนเรื่องป้ายที่วาดย้อนหลัง แต่ไม่มีประวัติผลลัพธ์ที่ตรวจสอบแล้ว ตรวจสอบเมื่อ: .
  2. RepaintingTradingView. ได้ตรวจเอกสารเวลาที่ข้อมูลพร้อมใช้และพฤติกรรมการแสดงผล ตรวจสอบเมื่อ: .
  3. Futures Order TypesCME Group. ได้ตรวจเอกสารกลไกคำสั่งเพื่อแยกการยืนยันเงื่อนไขราคาออกจากการจับคู่จริง ตรวจสอบเมื่อ: .

วิธีการที่เกี่ยวข้อง

หมายเหตุความเสี่ยง

เนื้อหานี้ใช้เพื่อการศึกษาและออกแบบงานวิจัย ไม่ใช่คำแนะนำทางการเงิน Backtest เป็นการจำลองข้อมูลในอดีต ไม่รับประกันผลในอนาคตและไม่ส่งคำสั่งซื้อขายจริง วิธีการในคลังนี้ไม่ได้หมายความว่ามีเป็นฟีเจอร์ในแอปทั้งหมด ดู ระเบียบวิธี และ ศูนย์การเรียนรู้.

ตรวจสอบกฎก่อนเสี่ยงด้วยเงินจริง

ตรวจสอบความสามารถของแอป ข้อมูล และแต่ละรายการซื้อขายจำลอง ตัวตรวจจับขั้นสูงอาจต้องพัฒนาแยกต่างหาก

ดาวน์โหลด Backtest บน App Store