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

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

Fidelity อธิบายรีเทสต์และการพักตัวที่ปริมาณซื้อขายลดลง ส่วน SMB ทบทวนจุดเข้าตัวอย่าง เนื้อหาเหล่านี้ใช้เพื่อการศึกษา ไม่ใช่ผลทดสอบย้อนหลังของอัลกอริทึมที่เสนอนี้

ข้อมูลและตลาดOHLCV มีปฏิทินการซื้อขายที่ชัดเจน ปริมาณการซื้อขายหุ้น ฟิวเจอร์ส และคริปโตเคอร์เรนซี จำเป็นต้องมีการตรวจสอบความถูกต้องของฟีดและการดำเนินการแยกต่างหาก
กรอบเวลาที่ใช้วิจัยกราฟแท่งห้านาทีเป็นตัวอย่างของกราฟแสดงราคาภายในวัน ส่วนกราฟรายวันจะต้องมีการกำหนดระยะเวลาการถือครอง ช่องว่างราคา และสมมติฐานทางการเงินของตนเอง
ราคาทะลุระดับ 50 ด้วยปริมาณการซื้อขายที่สูงขึ้น กลับมาที่ 50.05 ด้วยปริมาณการซื้อขายที่เงียบกว่า และยืนยันการเคลื่อนไหวต่อเนื่องในที่สุดเปิดภาพประกอบขนาดเต็ม
ราคาและปริมาณการซื้อขายจำลองสำหรับลำดับการทะลุแนวต้านและการทดสอบซ้ำ ไม่ใช่การทดสอบย้อนหลังหรือชุดข้อมูล OHLC ที่สมบูรณ์

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

ขั้นตอนสำหรับ เบรกเอาต์และรีเทสต์ด้วยปริมาณซื้อขาย: การย่อแล้วต่อแนวโน้ม
ขั้นตอนทั้งหมดอธิบายไว้ด้านล่าง ทุกขั้นต้องบันทึกเหตุผลที่คัดออกเมื่อข้อมูลไม่ครบหรือเงื่อนไขไม่ผ่าน
  1. ทำลายระดับที่ทราบแล้วตรึง Q, ATR และ RVOL ตอนเบรกเอาต์
  2. รอรีเทสต์ครั้งแรกยอมรับเงื่อนไขที่กำหนดภายในแปดบาร์ มิฉะนั้นจะหมดอายุ
  3. วัดการลดลงของปริมาณซื้อขายเปรียบเทียบค่าเฉลี่ย RVOL ในเวลาเดียวกัน
  4. ยืนยันการดำเนินการต่อต้องมีราคาปิดแท่งภายหลังสูงกว่ายอดรีเทสต์บวกบัฟเฟอร์
  5. ดำเนินการและเปรียบเทียบใช้การจับคู่จริงและนับโอกาสที่ราคาวิ่งต่อโดยไม่ย่อกลับด้วย

การรอรีเทสต์ทำให้ชุดโอกาสซื้อขายเปลี่ยนไป

Fidelity หารือเกี่ยวกับการทดสอบการทะลุแนวต้านอีกครั้งด้วยกิจกรรมที่ลดลงในช่วงการรวมตัว [1] การตรวจสอบโดย SMB เน้นย้ำตำแหน่งการเข้าซื้อหลังจากทะลุแนวต้าน [2] คำถามวิจัยคือ การรอคอยจะช่วยปรับปรุงอัตราส่วนความเสี่ยง/ผลตอบแทนได้มากพอที่จะชดเชยการเคลื่อนไหวที่ไม่กลับมาหรือไม่

การทะลุแนวต้านไม่จำเป็นต้องมีการทดสอบซ้ำ การศึกษาเฉพาะกราฟที่กลับตัวและดีดตัวขึ้นจะพลาดโอกาสในการลงทุนในหุ้นที่มีศักยภาพสูงแต่ไม่มีจุดเข้าซื้อ และการทะลุแนวต้านที่ล้มเหลวเพราะราคาตกลงต่ำกว่าระดับนั้น สร้างโอกาสในการลงทุนเมื่อเกิดการทะลุแนวต้าน จากนั้นปล่อยให้ระบบจัดการสถานะทำการจำแนกการทดสอบซ้ำ การหมดอายุ หรือความล้มเหลว

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

ตรึงข้อมูลอ้างอิงและการทดสอบซ้ำครั้งแรกที่เข้าเกณฑ์ไว้

สำหรับรูปแบบการคาดการณ์ขาขึ้นในระยะเวลาห้านาที ให้ Q เป็นราคาสูงสุดของแท่งเทียน 20 ก่อนหน้าเวลา t โดยไม่รวมเวลา t ตั้งค่า A=ATR14[t−1], b=max(2 ticks,0.10A) และ eps=max(2 ticks,0.15A) การทะลุแนวต้านต้องมี C[t]>Q+b, C[t−1]≤Q, ราคาปิด location(C−L)/(H−L)≥0.70 และ RVOL[t]≥1.5 แท่งเทียนที่มีช่วงราคาเป็นศูนย์ไม่สามารถให้ค่าอัตราส่วนนั้นได้ ตรึงค่า Q, A และบัฟเฟอร์ทั้งสองไว้

ตั้งแต่ t+1 ถึง t+8 ให้ตรึงแท่งแรก r ที่มีราคาต่ำสุดอยู่ใน[Q−eps,Q+eps]และราคาปิดไม่น้อยกว่า Q ถ้าราคาปิดก่อนหน้านั้นต่ำกว่า Q−eps ให้ยกเลิกชุดเงื่อนไข ค่าเฉลี่ย RVOL จาก t+1 ถึง r ต้องไม่เกิน0.7เท่าของ RVOL ตอนทะลุ หากไม่ผ่านให้ปฏิเสธชุดนี้ ไม่เลือกรีเทสต์ภายหลังที่ดูดีกว่ามาแทน

ในสามแท่งถัดจาก r ราคาปิดครั้งแรกที่สูงกว่า H[r]+b ให้สัญญาณ ตั้งจุดหยุดที่ราคาต่ำสุดตั้งแต่ t+1 จนถึงแท่งสัญญาณแล้วลบ b และเข้าที่ราคาเสนอถัดไปที่จับคู่ได้จริง ความยาวและเกณฑ์ทั้งหมดเป็นค่าที่เสนอเพื่อวิจัย กรณีขายชอร์ตกลับด้านความสัมพันธ์ของราคา แต่ต้องทดสอบผลของปริมาณซื้อขายแยก

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

ปฏิเสธแท่งราคาที่ทะลุแนวต้านด้วย H≤L อัตราส่วนตำแหน่งปิดที่ไม่ระบุจะไม่ยกเลิกตัวกรอง รวมถึงแท่งราคาที่มีช่วงราคาเป็นศูนย์ซึ่งเปิดช่องว่างเกินระดับอ้างอิง

after_breakout_close(t):
  if H[t]<=L[t] or not complete_prior_features: reject(); return
  candidate = freeze(Q,A,b,eps,break_rvol,session_id,
                     cutoff=session_end-5_minutes,known_at=received_close_time(t))
  if received_close_time(t)>=candidate.cutoff: expire(); return
  r = None
  for u in t+1..t+8:
    if session_id(u)!=candidate.session_id or received_close_time(u)>=candidate.cutoff:
      expire(); return
    if C[u]<Q-eps: cancel(); return
    if first_valid_retest(u):
      r=u; break
  if r is None: expire_no_retest(); return
  if missing_rvol(t+1,r) or mean_rvol(t+1,r)>0.7*break_rvol:
    reject_volume(); return
  for u in r+1..r+3:
    if session_id(u)!=candidate.session_id or received_close_time(u)>=candidate.cutoff:
      expire(); return
    if C[u]<Q-eps: cancel(); return
    if C[u]>H[r]+b:
      stop=min(L[t+1:u+1])-b
      consume_candidate_then_order_on_next_quote_if_before_cutoff()
      return
  expire_no_confirmation()
# A session-close timer also expires waiting candidates when no new bar arrives.

เปรียบเทียบในช่วงเวลาเดียวกันของวัน

ตัวชี้วัด RVOL_bar ที่เสนอมานี้ จะหารปริมาณการซื้อขายปัจจุบันด้วยค่ามัธยฐานของปริมาณการซื้อขายในช่วงเวลาเดียวกันในรอบการซื้อขายก่อนหน้า 20 TradingView ใช้ค่าเฉลี่ยสำหรับตัวชี้วัดปริมาณการซื้อขายสัมพัทธ์ตามเวลา [3] โดยค่ามัธยฐานในที่นี้เป็นค่าที่ตั้งใจใช้ในการวิจัย ห้ามนำผลลัพธ์จากตัวชี้วัดหนึ่งไปใช้กับอีกตัวชี้วัดหนึ่งโดยไม่ทำการทดสอบซ้ำ

การทะลุแนวต้านหนึ่งแท่งและการดึงกลับหกแท่งไม่ควรนำมาเปรียบเทียบกันโดยใช้ปริมาณการซื้อขายรวมดิบ ค่าเฉลี่ย RVOL ในเวลาเดียวกันจะควบคุมทั้งระยะเวลาและรูปแบบกิจกรรมระหว่างวัน ช่วงเวลาที่สั้นลง การหยุดชะงัก และข้อมูลพื้นฐานที่ไม่พร้อมใช้งาน ควรใช้ค่า insufficient_data แทนค่าที่นำมาแทนที่อย่างสะดวก

สามารถเพิ่มเกณฑ์การขยายแท่งสัญญาณ เช่น RVOL≥1.2 เป็นการทดลองแยกต่างหากได้ ความแข็งแกร่งสัมพัทธ์หรือตัวกรองแนวโน้ม EMA ก็ควรวัดเพิ่มขึ้นทีละน้อยเช่นกัน ปริมาณการซื้อขายตอนสิ้นวันและหุ้นที่ชนะในท้ายที่สุดของวันไม่สามารถใช้เลือกจุดเข้าซื้อในตอนเช้าได้

ตัวอย่างจำลองรีเทสต์ที่ผ่านเกณฑ์และเส้นทางล้มเหลว

เมื่อ Q=50, A=1 และ tick=0.01 จะได้ b=0.10 และ eps=0.15 แท่งทะลุที่มี H50.80, L49.90 และ C50.70 มีตำแหน่งราคาปิด0.80/0.90 หรือประมาณ0.889 และปริมาณ RVOL2 ค่า RVOL ระหว่างย่อ1.0,0.8และ0.6มีค่าเฉลี่ย0.8 ต่ำกว่าเพดาน1.4 แท่งรีเทสต์มีราคาต่ำ50.05 สูง50.35 และปิด50.15

ราคาปิดถัดไป50.50สูงกว่า50.45 ซื้อที่50.55โดยใช้จุดต่ำช่วงย่อที่สังเกตแล้ว50.05 จะได้จุดหยุด49.95 ความเสี่ยง0.60 และเป้าหมาย2Rที่51.75 แบบรอยืนยันอ้างว่าเข้าที่50.00เพียงเพราะราคาเคยแตะ Q ก่อนยืนยันไม่ได้ คำสั่งลิมิตที่รออยู่ ณ Q ใช้ข้อมูลและเส้นทางการจับคู่อีกแบบ

การปิด 49.80 ก่อนการยืนยันจะยกเลิกตัวเลือกนั้น เนื่องจากราคาต่ำกว่า 49.85 แม้จะมีปริมาณการซื้อขายต่ำก็ตาม หลังจากเติมคำสั่งซื้อขายที่ถูกต้องแล้ว การดำเนินการ Stop Loss ของ 49.90 จะทำให้ 0.65 หายไปจาก 50.55 หากราคาวิ่งตรงไปยัง 52 โดยไม่มีการทดสอบซ้ำภายในแปดแท่งเทียน ให้บันทึกว่าไม่มีการทดสอบซ้ำ การวิ่งขึ้นนั้นไม่ใช่กำไรที่ได้จากกลยุทธ์ที่ไม่ได้ถือครองตำแหน่งใดๆ

เลือกการป้องกันก่อนที่จะเห็นผลลัพธ์

จุดหยุดขาดทุนที่อยู่ต่ำกว่าการดึงกลับทั้งหมดจะแตกต่างจากจุดหยุดขาดทุนที่อยู่ต่ำกว่า r เพียงอย่างเดียว เส้นฐานนี้ใช้จุดต่ำสุดที่ทราบจาก t+1 ผ่านสัญญาณ อย่าขยายการป้องกันไปยังฐานเก่าหลังจากเข้าซื้อเพียงเพื่อรักษาสถานะการเทรดที่ขาดทุนไว้

หากส่งคำสั่งหลังยืนยันเท่านั้น อาจปฏิเสธราคาเสนอที่กระโดดไกลเกินตามกฎความเสี่ยงหรือผลตอบแทนที่กำหนดไว้ แต่คำสั่งเข้าที่รออยู่แล้วต้องเก็บการจับคู่ใดๆ ที่เกิดก่อนยกเลิก ห้ามรวมข้อดีของสองวิธีเป็นการจำลองที่มองโลกดีเกินจริง

รูปแบบระหว่างวันที่เสนอออกเมื่อถึงเป้าหมาย2R จุดหยุดป้องกัน ครบ20แท่งหลังเข้า หรือก่อนจบช่วงซื้อขาย แล้วแต่เงื่อนไขใดเกิดก่อน คำนวณเป้าหมายจากราคาที่จับคู่จริง แบบเลื่อนจุดหยุดตามสวิงต้องใช้ตัวตรวจจับที่ไม่มองอนาคตและสถิติแยกต่างหาก

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

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

เทียบกับกลุ่มควบคุมที่เข้าทันทีหลังเบรกเอาต์

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

วัดความน่าจะเป็นของการทดสอบซ้ำ เวลาในการรอ ปริมาณการปฏิเสธ การไม่เติมเต็ม MAE/MFE และผลตอบแทนสุทธิ อัตราการชนะที่สูงขึ้นอาจเกิดขึ้นพร้อมกับกำไรโดยรวมที่ต่ำลงได้ เนื่องจากกลยุทธ์พลาดหุ้นที่มีราคาพุ่งแรง จับคู่การควบคุมตามเวลา แนวโน้ม และความผันผวน เพื่อตรวจสอบว่าปริมาณการซื้อขายเป็นเพียงการเลือกสภาวะที่เอื้ออำนวยหรือไม่

ใช้การตรวจสอบตามลำดับเวลาและจัดกลุ่มผู้สมัครที่ทับซ้อนกัน ตรวจสอบความยาวของการทดสอบซ้ำที่อยู่ใกล้เคียงและเกณฑ์ RVOL แทนที่จะใช้ค่าที่เหมาะสมที่สุดเพียงค่าเดียว การเล่นซ้ำคำนำหน้าควรพิสูจน์ได้ว่า Q ไม่ได้ตามจุดสูงสุดของการทะลุแนวต้านใหม่ และตัวตนของการทดสอบซ้ำครั้งแรกจะไม่เปลี่ยนแปลงไปตามข้อมูลในภายหลัง

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

ข้อผิดพลาดที่พบบ่อย

เลือกเฉพาะแผนภูมิที่มีการเด้งกลับ

กรณีไม่มีรีเทสต์และรีเทสต์ล้มเหลวเป็นส่วนสำคัญของฐานตัวอย่าง

คิดว่าปริมาณต่ำหมายถึงขาขึ้นเสมอ

กิจกรรมที่เงียบสงบเพียงอย่างเดียวไม่ได้หมายความว่าจะได้รับการสนับสนุนจากผู้ซื้อเสมอไป

ซื้อที่ Q หลังเห็นราคาเด้งแล้ว

ถ้าไม่ได้วางคำสั่งลิมิตรอไว้ก่อน นั่นคือสมมติการจับคู่ย้อนหลัง

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

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

0/7 ข้อ

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

หากไม่มีการทดสอบซ้ำ ควรใช้กลยุทธ์การไล่ตามหรือไม่?

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

การทดสอบซ้ำจำเป็นต้องกำหนดราคาที่แน่นอนราคาเดียวหรือไม่?

ไม่ ค่าความคลาดเคลื่อนถูกกำหนดไว้ในหน่วย ticks และ ATR ก่อนเกิดเหตุการณ์ ความกว้างของค่าความคลาดเคลื่อนเป็นพารามิเตอร์ที่ใช้ในการตรวจสอบความถูกต้อง

แหล่งวิจัย

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

  1. Entry and Exit Strategy: What you need to considerFidelity / OCC. ได้อ่านส่วนรีเทสต์ เบรกเอาต์ล้มเหลว และปริมาณซื้อขายในบทถอดเสียง ไม่ใช่การทดสอบย้อนหลัง ตรวจสอบเมื่อ: .
  2. How to improve your trading entriesSMB Capital. ได้อ่านบทถอดเสียงรีวิว ADT ต้นฉบับวันที่10 สิงหาคม2020 แต่ไม่มี P&L ของกลยุทธ์ที่ผ่านการตรวจสอบ ตรวจสอบเมื่อ: .
  3. Relative Volume at TimeTradingView. ได้อ่านนิยาม RVOL เทียบช่วงเวลาเดียวกัน ส่วนมัธยฐาน20ช่วงซื้อขายเป็นข้อเสนอแยกของบทความนี้ ตรวจสอบเมื่อ: .

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

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

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

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

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

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