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

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

สำหรับ2016–2023 ผู้เขียนรายงานผลตอบแทนรวม+1,637%, IRR41.6%, Sharpe2.81 และ drawdown สูงสุด12% โดยมีค่าคอมมิชชั่น$0.0035ต่อหุ้นและไม่มีแบบจำลอง slippage แยก นี่คือผลวิจัยที่รายงาน ไม่ใช่การทำซ้ำใหม่หรือผลบัญชีที่ตรวจสอบอิสระ [1]

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

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

ขั้นตอนสำหรับ การทะลุแนวรับ/แนวต้านช่วงเปิดตลาดด้วย RVOL: กฎและหลักฐาน
ขั้นตอนทั้งหมดอธิบายไว้ด้านล่าง ทุกขั้นต้องบันทึกเหตุผลที่คัดออกเมื่อข้อมูลไม่ครบหรือเงื่อนไขไม่ผ่าน
  1. เตรียมข้อมูลย้อนหลังใช้ชุดหุ้นและข้อมูลย้อนหลังที่พร้อมก่อนเปิดรอบซื้อขาย
  2. รอครบช่วงราคาเปิดรอจนครบช่วงห้านาทีและบันทึกเวลาที่ข้อมูลพร้อมใช้
  3. ตรึงอันดับ RVOLตรึงหุ้นที่เลือก ทิศทาง และงบทุน
  4. ส่ง stop เพื่อเข้าสถานะเปิดใช้คำสั่งหลังประมวลผล เก็บกรณีปฏิเสธและพลาดเข้าไว้
  5. ปกป้องและชำระบัญชีปกป้องตำแหน่งการซื้อขายจริงและปิดตำแหน่งตามตารางเวลาการซื้อขาย

ปริมาณการซื้อขายเป็นตัวคัดเลือกหุ้น ส่วนราคาเป็นตัวกำหนดทิศทาง

หุ้นหลายตัวเคลื่อนไหวอย่างรวดเร็วในช่วงนาทีแรกของการเปิดตลาด ข้อเสนอที่สามารถทดสอบได้คือ การทะลุแนวต้านจะมีพฤติกรรมที่แตกต่างกันเมื่อกิจกรรมการซื้อขายสูงผิดปกติเมื่อเทียบกับกิจกรรมการเปิดตลาดปกติของหุ้นนั้น ปริมาณการซื้อขายสัมพัทธ์ไม่ได้ระบุผู้ซื้อหรือผู้ขาย: ทุกการซื้อขายที่เสร็จสมบูรณ์มีทั้งสองฝ่าย ทิศทางต้องมาจากกฎราคาที่แยกต่างหาก ในขณะที่ปริมาณการซื้อขายวัดความเข้มข้นของการมีส่วนร่วม

กำหนดปริมาณการซื้อขายสัมพัทธ์ในช่วงเปิดตลาดเป็น RVOL(d) = V(d, opening window) / mean(V(d−j, same window), j=1…14) โดยตัวหารต้องได้มาจากช่วงการซื้อขายก่อนหน้า การเปรียบเทียบปริมาณการซื้อขายห้านาทีแรกกับปริมาณการซื้อขายเฉลี่ยทั้งวันจะให้คำตอบที่แตกต่างออกไปและทำให้หน่วยเวลาไม่เข้ากัน TradingView แยกความแตกต่างระหว่างปริมาณการซื้อขายสะสมกับปริมาณการซื้อขาย ณ เวลาที่ตรงกัน การใช้งานจะต้องเลือกคำจำกัดความใดคำจำกัดความหนึ่งอย่างสม่ำเสมอ [3]

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

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

แยกโครงสร้างของเอกสารออกจากตัวเลือกในการนำไปใช้

ค่าตั้งอ้างอิงใช้ราคาเปิดมากกว่า$5 ปริมาณเฉลี่ย14วันก่อนหน้าอย่างน้อยหนึ่งล้านหุ้น ATR14 มากกว่า$0.50 และหุ้น20อันดับแรกที่ RVOL ห้านาทีอย่างน้อยหนึ่ง แท่งเปิดเขียวกำหนดการทะลุฝั่งลอง แท่งแดงกำหนดฝั่งชอร์ต และข้าม doji จุดตัดขาดทุนห่างจากราคาที่จับคู่จริง0.1 ATR ปิดสถานะภายในวัน เสี่ยง1%ของทุนที่จัดสรร และจำกัดเลเวอเรจสี่เท่า [1]

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

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

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

เครื่องสถานะป้องกันการเข้าซื้อขายย้อนหลัง

คำสั่งเข้ามีอยู่หลังคัดเลือก ประมวลผล และส่งคำสั่งเท่านั้น การข้ามระดับก่อนลำดับนี้ไม่อาจจับคู่คำสั่งใหม่ หากราคาผ่าน trigger ไปแล้วเมื่อ stop-market เริ่มทำงาน อาจจับคู่ทันทีใกล้ราคาตลาดปัจจุบัน การกำหนดราคาจับคู่เท่ากับ trigger เก่าคือการสร้างราคาที่ได้เปรียบซึ่งไม่มีจริง

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

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

on_opening_range_ready(session):
    snapshot = freeze_available_data(session)
    candidates = rank_eligible_by_rvol(snapshot)
    selected = candidates[:20]
    for asset in selected:
        side = sign(asset.or_close - asset.or_open)
        if side == 0: continue
        trigger = asset.or_high if side > 0 else asset.or_low
        submit_stop_after_processing_delay(asset, side, trigger)
on_entry_fill(fill):
    stop_distance = 0.1 * frozen_daily_atr[fill.asset]
    protective_stop = fill.price - fill.side * stop_distance
    protect_filled_quantity(fill, protective_stop)
on_session_liquidation_deadline():
    cancel_pending_entries()
    close_remaining_positions()

ทุนที่จัดสรรต่างจากมูลค่าสุทธิทั้งบัญชี

บัญชีจำลอง$100,000แบ่งเป็น20ส่วน ส่วนละ$5,000 เสี่ยง1%ของส่วนหนึ่งหมายถึง$50ต่อหุ้นหนึ่งบริษัท หากอ่านเป็น1%ของทั้งบัญชีจะเป็น$1,000ต่อบริษัท ต่างยี่สิบเท่าตั้งแต่ยังไม่พูดถึงเลเวอเรจ ความต่างนี้สำคัญเมื่อเทียบระบบที่ใช้ชื่อกลยุทธ์คล้ายกัน

ด้วยระยะหยุด $0.20 และยังไม่รวมต้นทุนใดๆ งบประมาณการขาดทุน $50 อนุญาตให้มีหุ้น 250 ได้ ที่ราคาหุ้น $50 มูลค่าตามสมมติฐานคือ $12,500 ซึ่งเกินกว่าการจัดสรรเงินสด $5,000 ดังนั้นขนาดที่แท้จริงต้องเป็นไปตามขั้นต่ำของขีดจำกัดความเสี่ยง ขีดจำกัดมูลค่าตามสมมติฐาน ความสามารถในการกู้ยืม และความจุของพอร์ตโฟลิโอที่เหลืออยู่

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

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

ความสำเร็จ ความล้มเหลว และแท่งกราฟที่ไม่ชัดเจนที่สร้างขึ้น

สมมติช่วงเปิด O=50, H=50.30, L=49.90 และ C=50.20 ปริมาณ600,000หุ้น เทียบค่าเฉลี่ยอดีต200,000หุ้น จึงมี RVOL=3 ค่า ATR รายวันที่ทราบก่อนคือ2 หลังผลคัดเลือกพร้อม buy-stop ที่50.30จับคู่จริง50.34 จึงวาง stop ป้องกัน50.14 ขายสิ้นวันที่51.14ได้กำไร$0.80ต่อหุ้น หรือ4Rก่อนต้นทุน เมื่อ R=$0.20ต่อหุ้น

จากการตั้งต้นเดียวกัน ราคากลับตัวอาจทำให้ stop จับคู่ที่50.10 ขาดทุน$0.24ต่อหุ้น หรือ1.2Rก่อนค่าคอมมิชชั่น ห้ามบังคับผลเป็น−1Rเพียงเพราะตั้ง stop ที่50.14 ความต่างนี้คือความเสี่ยงในการจับคู่ที่ stop แคบขยายผลได้

หากผู้ให้ข้อมูลแก้ปริมาณช่วงเปิดตลาดจาก600,000เป็น150,000ภายหลัง ให้เก็บค่าที่ได้รับเดิมแยกจากฉบับแก้ การประเมินการตัดสินใจจริงด้วยค่าเดิมต้องไม่ทำเสมือนทราบค่าใหม่แล้วตอนคัดเลือก

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

อ่านผลลัพธ์สาธารณะภายในขอบเขตที่แท้จริง

การใช้งาน QuantConnect สาธารณะรายงานการทดสอบ 2016 ด้วยกลุ่มหุ้น 1,000 และ Sharpe 2.396 การอภิปรายระบุถึงความแตกต่างระหว่างเวอร์ชัน Python เริ่มต้นและการใช้งาน C# [2] เป็นจุดเริ่มต้นที่มีประโยชน์สำหรับการจำลอง แต่ไม่ได้ตรวจสอบการศึกษาแปดปีทั้งหมดอย่างอิสระ

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

แผนแยกทดสอบใช้ A: ORB ราคาอย่างเดียว; B: ORB เพิ่มเกณฑ์ RVOL; C: เกณฑ์พร้อมอันดับ top-20 เทียบจำนวนโอกาส คำสั่งรับแล้ว การจับคู่จริง อัตราหมุนเวียน และผลสุทธิในปฏิทินประเมินที่ตรึงเหมือนกัน รายงานต้นทุนเทียบ R ของแต่ละเทรด ไม่ใช่เฉพาะสัดส่วนเล็กน้อยของมูลค่าสถานะ

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

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

จัดอันดับราคาเปิดโดยใช้ข้อมูลสิ้นวัน

ข้อมูลปริมาณการซื้อขายตลอดทั้งวันไม่พร้อมใช้งานที่ 09:35 การใช้ข้อมูลนี้ในการเลือกเปิดการซื้อขายจะทำให้เกิดอคติจากการมองล่วงหน้า

ใช้ stop แคบร่วมต้นทุนต่ำเกินจริง

ค่าความคลาดเคลื่อนหรือส่วนต่างเพียงไม่กี่เซนต์ก็สามารถใช้เงิน R ไปเป็นจำนวนมากได้ โปรดรายงานการกระจายของต้นทุนในหน่วยความเสี่ยง

การหน่วงเวลาการป้องกันหนึ่งแท่ง

ตั้ง stop ช้าไปหนึ่งแท่งหลังเข้าอาจพลาดการกลับตัวทันที จำลองลำดับเข้าแล้วป้องกันด้วยสมมติฐานเวลาประมวลผลจริง

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

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

0/8 ข้อ

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

หุ้น RVOL ที่สูง หมายความว่านักลงทุนที่มีข้อมูลกำลังซื้ออยู่หรือไม่?

ไม่ครับ ตัวชี้วัดนี้ใช้วัดกิจกรรมการซื้อขายที่ผิดปกติ ทิศทางและตัวตนของผู้เข้าร่วมต้องใช้หลักฐานที่แตกต่างกัน

สามารถเปลี่ยนช่วงเวลาเปิดเป็นนาที 15 ได้หรือไม่?

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

แหล่งวิจัย

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

  1. A Profitable Day Trading Strategy For The U.S. Equity MarketZarattini, Barbon, Aziz — 16/02/2024. อ่านไฟล์ PDF ฉบับเต็ม; ตาราง 2 อยู่ในหน้า PDF จริง 17 และหน้าพิมพ์ 16 ผลลัพธ์ใช้สมมติฐานของผู้เขียน ไม่มีการทดสอบย้อนหลังใหม่ ตรวจสอบเมื่อ: .
  2. Opening Range Breakout for Stocks in PlayDerek Melchin — QuantConnect. อ่านบทความ ตัวอย่างโค้ด และการอธิบายวิธีการใช้งานแล้ว แต่โค้ดไม่ได้ถูกเรียกใช้งาน ตรวจสอบเมื่อ: .
  3. Relative Volume at TimeTradingView. เอกสารหลักที่ใช้กำหนดปริมาณสัมพัทธ์ในเวลาเดียวกัน ไม่ได้กำหนดความสามารถในการทำกำไรของ ORB ตรวจสอบเมื่อ: .

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

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

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

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

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

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