สารบัญบทความ
- หลักฐานและขอบเขต
- ภาพประกอบ
- กระบวนการ
- กรอบราคาที่ขึ้นกับเวลาภายในวัน
- การจัดเรียงข้อมูลจะกำหนดว่าสิ่งใดที่สามารถทราบได้
- แปลงแนวคิดให้เป็นกฎตำแหน่งเป้าหมายที่ชัดเจน
- การปรับขนาดสถานะตามความผันผวนเปลี่ยนการรับความเสี่ยง
- เลขคณิตสังเคราะห์และการต่อที่ไม่สำเร็จ
- หลักฐานที่ตีพิมพ์และการเปรียบเทียบที่สามารถทำซ้ำได้
- ข้อผิดพลาดที่พบบ่อย
- รายการตรวจสอบเชิงปฏิบัติ
- คำถามที่พบบ่อย
- แหล่งวิจัย
หลักฐานและขอบเขต
งานวิจัยรายงานผลตอบแทนรวม+1,985%, IRR19.6%, Sharpe1.33 และการลดลงสูงสุดจากจุดสูงสุด25% ในช่วงพฤษภาคม2007–เมษายน2024 รวมค่าคอมมิชชั่นและslippageตามสมมติฐาน เป็นผลที่ผู้เขียนรายงาน บทความนี้ไม่ได้ทดสอบซ้ำอย่างอิสระ [1]
ขั้นตอนปฏิบัติ
- เตรียมข้อมูลย้อนหลังจัด14เซสชันก่อนหน้าให้ตรงเวลาภายในวัน แล้วคำนวณความผันผวนรายวัน
- สร้างแถบราคาอ้างอิงจากราคาเปิดและราคาปิดก่อนหน้า โดยใช้การดำเนินการของบริษัทที่สอดคล้องกัน
- อัปเดต VWAPใช้ปริมาณซื้อขายเซสชันปัจจุบันที่ได้รับแล้วเท่านั้น
- ประเมินตามกำหนดเวลาหลังแท่งที่จุดตรวจปิด กำหนดเป้าหมายถือซื้อ ขายชอร์ต หรือไม่มีสถานะ
- ดำเนินการและชำระบัญชีคิดต้นทุนทุกการเปลี่ยนสถานะและปิดทั้งหมดภายในเส้นตายของเซสชัน
- แยกผลของแต่ละองค์ประกอบเปรียบเทียบแถบราคา VWAP และการปรับขนาดด้วยข้อมูลตรวจสอบที่ยังไม่เคยใช้
กรอบราคาที่ขึ้นกับเวลาภายในวัน
ความผันผวนในช่วงเปิดตลาดและความผันผวนในช่วงพักกลางวันมีการกระจายตัวที่แตกต่างกัน แนวคิดเรื่องแถบสัญญาณรบกวนจะวัดการเคลื่อนไหวสัมบูรณ์ปกติจากราคาเปิดตลาดแยกกันในแต่ละช่วงเวลาของวัน การสังเกตการณ์ในช่วงสายๆ จะถูกนำมาเปรียบเทียบกับการสังเกตการณ์ในช่วงสายๆ จากช่วงเวลาก่อนหน้า แทนที่จะเปรียบเทียบกับลำดับนาทีที่อยู่ติดกัน
สำหรับเวลา k ให้กำหนด sigma(d, k) = mean(abs(P(d−j, k)/Open(d−j)−1), j=1…14) การใช้เฉพาะเซสชันก่อนหน้าที่เสร็จสมบูรณ์แล้วทำให้เส้นฐานเป็นเหตุเป็นผล ขอบเขตบนคือ U(d, k)=max(Open(d), PreviousClose(d))×(1+sigma(d, k)); ค่าล่างคือ L(d, k)=min(Open(d), PreviousClose(d))×(1−sigma(d, k)) ตัวยึดที่คำนึงถึงช่องว่างทำให้ซองกว้างขึ้นในช่วงช่องว่างข้ามคืน
ค่าซิกมานี้คือค่าเฉลี่ยของการเปลี่ยนแปลงสัมบูรณ์ ไม่ใช่ค่าเบี่ยงเบนมาตรฐานของผลตอบแทนรายนาที การแทนที่ด้วยตัวชี้วัดความผันผวนแบบเคลื่อนที่แบบดั้งเดิมจะเปลี่ยนสัญญาณ นอกจากนี้ ช่องว่างราคาเปิดขนาดใหญ่ยังมีผลแตกต่างจากการเคลื่อนไหวขนาดใหญ่หลังเปิดตลาด เนื่องจากจุดยึดและการเปลี่ยนแปลงระหว่างวันมีบทบาทที่แตกต่างกัน
สมมติฐานของกลยุทธ์คือความต่อเนื่องหลังจากราคาเคลื่อนไหวเกินกว่าความผันผวนระหว่างวันปกติ กลยุทธ์นี้อาจล้มเหลวได้เมื่อข่าวสำคัญพลิกลับ เมื่อช่วงการซื้อขายก่อนหน้า 14 ประเมินความผันผวนในปัจจุบันต่ำเกินไป หรือเมื่อราคาข้ามเส้นแบ่งเขตซ้ำๆ อย่างไรก็ตาม ผลลัพธ์เหล่านี้ไม่ได้ถูกตัดออกไปโดยการทะลุแนวต้านที่มีปริมาณการซื้อขายสูง
การจัดเรียงข้อมูลจะกำหนดว่าสิ่งใดที่สามารถทราบได้
การศึกษานี้ใช้ข้อมูลรายนาทีจาก IQFeed ผลลัพธ์ที่รายงานประกอบด้วยค่าคอมมิชชั่น $0.0035 และความคลาดเคลื่อนต่อหุ้น $0.001 [1] ซึ่งเป็นสมมติฐานที่ระบุไว้อย่างชัดเจน ไม่ใช่การรับประกันว่าคำสั่งซื้อขายในอดีตทุกรายการจะสามารถดำเนินการได้ด้วยต้นทุนดังกล่าว
สร้างเมทริกซ์อดีตตามเซสชันของตลาดและเวลาบนนาฬิกา ต้องจัดการวันหยุด การเปลี่ยนเวลาออมแสง และวันซื้อขายสั้นตามปฏิทิน ข้อมูล10:00ที่ขาดหายไม่ใช่ผลตอบแทนศูนย์ ระบุว่าจะตัดเซสชันอดีตที่ไม่ครบหรือปิดการตัดสินใจปัจจุบัน
ใช้รูปแบบการบันทึกราคาหุ้นที่สอดคล้องกันสำหรับราคาเปิด ราคาปิดก่อนหน้า และราคาย้อนหลัง การนำราคาปิดก่อนหน้าที่มีการปรับแล้วมาผสมกับราคาเปิดปัจจุบันที่ยังไม่ได้ปรับ อาจทำให้เกิดช่องว่างราคาได้ ควรจัดเก็บข้อมูลการซื้อขายดิบแยกต่างหากจากข้อมูลที่แปลงแล้วซึ่งใช้ในการประมาณผลตอบแทน
เซสชั่น VWAP ต้องใช้เฉพาะการซื้อขายที่ได้รับหรือแท่งราคาที่เสร็จสมบูรณ์แล้วเท่านั้น การประมาณค่าแบบอิงแท่งราคา สามารถใช้ราคาเฉลี่ย (H+L+C)/3 โดยถ่วงน้ำหนักด้วยปริมาณแท่งราคา ซึ่งแตกต่างจากเกณฑ์มาตรฐานระดับธุรกรรม ควรวัดความแตกต่างเมื่อมีข้อมูลที่มีความละเอียดสูงกว่า โดยเฉพาะอย่างยิ่งสำหรับแท่งราคาที่มีช่วงกว้าง
แปลงแนวคิดให้เป็นกฎตำแหน่งเป้าหมายที่ชัดเจน
แบบวิจัยนี้ประเมินเฉพาะจุดตรวจทุกครึ่งชั่วโมงที่กำหนด ถ้าราคาเหนือmax(U, VWAP)เป้าหมายคือถือซื้อ ถ้าต่ำกว่าmin(L, VWAP)คือขายชอร์ต กรณีอื่นเป้าหมายคือไม่มีสถานะ ส่งเป้าหมายหลังได้รับข้อมูลแท่งนั้นแล้ว การปิดเพื่อป้องกันตลอดเวลาและการปรับสถานะตามกำหนดเป็นกฎต่างกัน ห้ามถือว่าเหมือนกันโดยไม่ระบุ
ระหว่างจุดตรวจสอบ การข้ามขอบเขตชั่วคราวจะไม่ก่อให้เกิดการตัดสินใจใหม่ในรูปแบบนี้ หากต้องการหยุดป้องกันอย่างต่อเนื่อง ให้ระบุเป็นกฎที่ขับเคลื่อนด้วยเหตุการณ์แยกต่างหาก และทดสอบการหมุนเวียนเพิ่มเติม กลยุทธ์ที่มีกำหนดการเข้าทุกครึ่งชั่วโมงและการออกระดับติ๊กจะมีความขึ้นอยู่กับเส้นทางที่แตกต่างจากกลยุทธ์ที่เปลี่ยนแปลงการเปิดรับทั้งหมดทุกครึ่งชั่วโมงเท่านั้น
เป้าหมายคือสถานะที่ต้องการ ไม่ใช่คำสั่งให้เพิ่มสถานะใหม่ซ้ำๆ การเปลี่ยนจาก +q หุ้นเป็น −q ต้องขายหุ้น 2q หุ้น การเปลี่ยนจาก +q เป็นศูนย์ต้องขายหุ้น q หุ้น ต้นทุนควรเป็นไปตามการเปลี่ยนแปลงสถานะจริง รวมถึงทั้งสองส่วนของการกลับตัวด้วย
เมื่อถึงเส้นตายปิดสถานะ ต้องปิดทั้งหมดก่อนพิจารณาสัญญาณเข้าใหม่ ในระบบใช้งานจริงให้ยกเลิกคำสั่งเข้าที่ยังไม่จับคู่ก่อนร้องขอออกสุดท้าย และตรวจรวมการจับคู่ที่เกิดระหว่างกระบวนการยกเลิก
before_session(d):
bands = build_from_completed_sessions(d, lookback=14)
daily_vol = sample_std(previous_14_daily_returns)
if data_incomplete or not isfinite(daily_vol) or daily_vol <= 0:
disable_session(); return
multiplier = min(4, 0.02 / daily_vol)
shares = floor(previous_equity * multiplier / session_open)
on_completed_bar(k):
if is_liquidation_deadline(k):
cancel_pending_entries(); submit_flat(); return
if session_disabled: return
update_session_vwap()
if is_decision_time(k):
target = 1 if close > max(upper[k], vwap) else (
-1 if close < min(lower[k], vwap) else 0)
submit_target_after_available_at(target * shares)
การปรับขนาดสถานะตามความผันผวนเปลี่ยนการรับความเสี่ยง
ข้อกำหนดขนาดสถานะแบบหนึ่งคือ multiplier = min(4, 0.02/s) โดย s คือส่วนเบี่ยงเบนมาตรฐานของตัวอย่างจากผลตอบแทนรายวัน 14 ค่าก่อนหน้าที่จบแล้ว จำนวนหุ้นเท่ากับ floor(previous account equity × multiplier / session open) เป้าหมาย 2% และเพดานเลเวอเรจเป็นส่วนหนึ่งของการกำหนดค่านี้ มิใช่คำแนะนำความเสี่ยงสากล
เมื่อ s เป็นศูนย์ ขาดหาย หรือไม่จำกัด การปิดใช้งานเซสชันจะปลอดภัยกว่าการอนุญาตให้การหารสร้างขนาดที่ไม่จำกัด การกำหนดระดับความผันผวนขั้นต่ำจะเป็นกฎที่แตกต่างออกไป ชุดการกำหนดขนาดจะต้องถูกกำหนดไว้ก่อนเริ่มเซสชัน แทนที่จะคำนวณใหม่โดยใช้ผลตอบแทนปิดของวันปัจจุบัน
ควรแสดงเวอร์ชันที่ใช้เลเวอเรจกับเวอร์ชันที่ไม่ใช้เลเวอเรจแยกกัน ในงานวิจัย เวอร์ชันอัตราทดหนึ่งเท่ารายงานผลตอบแทนรวม +380%, IRR 9.7%, Sharpe 1.24 และการลดลงสูงสุดจากจุดสูงสุด 12% [1] ไม่อาจอธิบายความแตกต่างของผลการดำเนินงานทั้งหมดด้วยสัญญาณเข้าที่ดีขึ้น หากนโยบายการเปิดรับความเสี่ยงเปลี่ยนไปด้วย
ข้อจำกัดด้านขนาดการลงทุนจำเป็นต้องมีข้อจำกัดในการดำเนินงานเพิ่มเติม ตรวจสอบกำลังซื้อ มูลค่าตามสัญญาโดยรวม มาร์จินของโบรกเกอร์ และการมีส่วนร่วมในช่วงเวลาการดำเนินการ กฎการเปิดรับความเสี่ยงที่อิงจากช่วงเวลาที่ตลาดสงบเมื่อเร็วๆ นี้ อาจสร้างสถานะการลงทุนขนาดใหญ่ขึ้นทันทีก่อนที่ความผันผวนจะพุ่งสูงขึ้น ดังนั้น การทดสอบภาวะวิกฤตจากช่องว่างราคาและการปิดสถานะล่าช้าจึงมีความจำเป็น
เลขคณิตสังเคราะห์และการต่อที่ไม่สำเร็จ
สมมติว่าราคาปิดก่อนหน้าคือ 500 ราคาเปิดวันนี้คือ 505 และค่าซิกมา ณ จุดตรวจสอบคือ 0.003 จากนั้นจะเป็น U=505×1.003=506.515 และ L=500×0.997=498.50 ความไม่สมมาตรเกิดจากช่องว่างราคาเปิด แถบสมมาตรรอบ 505 จะไม่ใช่การคำนวณแบบเดียวกัน
ที่ 10:00 ให้ VWAP เป็น 506.20 และราคาปิดที่เสร็จสมบูรณ์คือ 506.80 กฎที่เสนอมีเป้าหมายเป็นการซื้อ (long) เนื่องจาก 506.80 สูงกว่า max(506.515,506.20) หากคำสั่งซื้อขายเสร็จสมบูรณ์ที่ 506.86 และปิดที่ 509.00 กำไรจากราคาจะเป็น $2.14 ต่อหุ้นก่อนหักค่าใช้จ่าย การดำเนินการซื้อขายนั้นตั้งใจให้เกิดขึ้นช้ากว่าและแตกต่างจากราคาปิดของสัญญาณ
กรณีล้มเหลว ราคาปิด10:30คือ506.30 ขอบบนใหม่506.60 และVWAP506.50 เป้าหมายจึงเป็นไม่มีสถานะ ถ้าออกจริง506.24จากจุดเข้า506.86 ขาดทุน$0.62ต่อหุ้น ห้ามนำการตัดลงใต้แถบก่อนหน้านั้นมาย้อนให้ราคาปิดสถานะที่ดีกว่าแก่กฎตัดสินใจตามกำหนด
ทดสอบกรณีเท่ากันและจังหวะเวลาให้ชัด เพราะใช้การเปรียบเทียบแบบมากกว่าและน้อยกว่าอย่างเคร่งครัด ราคาปิดที่เท่ากับเกณฑ์พอดีจึงให้เป้าหมายไม่มีสถานะ ข้อมูลที่มาช้าใช้ราคาซื้อขายก่อนรับข้อมูลไม่ได้ และเซสชันที่ประวัติไม่พอประมาณแถบครบไม่ได้ กรณีเล็กเหล่านี้มักอธิบายความต่างใหญ่ระหว่างโค้ดสาธารณะ
หลักฐานที่ตีพิมพ์และการเปรียบเทียบที่สามารถทำซ้ำได้
อัตราความสำเร็จรายวันของเอกสารนี้คือ 43% ในขณะที่ตารางการซื้อขายรายงาน 37% จากการซื้อขาย 7,668 [1] ตัวเลขเหล่านี้ตอบคำถามที่แตกต่างกัน เก็บ IRR ผลตอบแทนรวม อัตราการชนะต่อการซื้อขาย และความถี่ของวันที่ทำกำไรไว้ในช่องแยกต่างหาก
บทความและโค้ดผู้เขียนช่วยตรวจVWAP การปรับสถานะ และกลไก แต่ตัวอย่างเต็มรวมกลยุทธ์กลับสู่ค่าเฉลี่ยของช่องว่างข้ามคืนด้วย [2] มูลค่าบัญชีรวมจึงยกให้เป็นผลงานโมเมนตัมระหว่างวันเพียงส่วนเดียวไม่ได้
ไฟล์ README ของแหล่งเก็บข้อมูลสาธารณะแยกต่างหาก รายงานค่า Sharpe นอกช่วงตัวอย่าง 0.39 ผลตอบแทนรายปี 4.8% และการลดลงสูงสุด 18.5% สำหรับเดือนพฤษภาคม 2024 ถึงมีนาคม 2026 เมื่อเทียบกับค่า Sharpe ในช่วงตัวอย่าง 1.34 มีการตรวจสอบเฉพาะไฟล์ README เท่านั้น ข้อมูลที่ได้รับอนุญาตและการดำเนินการทั้งหมดไม่ได้ถูกจำลองขึ้นใหม่โดยอิสระ [3]
เปรียบเทียบแถบราคาอย่างเดียว แถบราคาบวกVWAP และสัญญาณเดิมพร้อมปรับขนาดตามความผันผวน คงวิธีจับคู่คำสั่ง การปรับข้อมูล และวันที่ประเมินเหมือนกัน แล้วรายงานว่าVWAPเปลี่ยนคุณภาพจุดเข้า เวลาออก ระยะมีสถานะ หรือเพียงอัตราหมุนเวียนรายการ
เปรียบเทียบอาร์เรย์ค่าแถบราคาของแต่ละวันและเวลาของเป้าหมายสถานะก่อนเปรียบเทียบผลตอบแทน จากนั้นทดสอบต้นทุนตามสมมติฐานและต้นทุนที่สูงขึ้น การหน่วงหนึ่งแท่ง ความยาวย้อนหลังใกล้เคียง และช่วงตลาดอิสระ เพื่อหาว่าสมมติฐานใดรองรับผล ไม่ใช่ปรับจนได้ตัวเลขพาดหัวที่อยากเห็น
ข้อผิดพลาดที่พบบ่อย
การแทนที่สถิติเสียงรบกวนโดยไม่เปลี่ยนชื่อตัวแปร
การเปลี่ยนแปลงเฉลี่ยสัมบูรณ์ของการเปิดตามเวลาไม่ใช่ค่าเบี่ยงเบนมาตรฐานแบบเคลื่อนที่ การแทนที่นี้เปลี่ยนทั้งมาตราส่วนเกณฑ์และการตีความทางเศรษฐกิจ
การส่งสัญญาณตามกำหนดเวลาเพื่อดำเนินการอย่างต่อเนื่อง
หากอ้างตัดสินทุกครึ่งชั่วโมงแต่ใช้ทุกการตัดเกณฑ์ภายในแท่งเพื่อออก ผลย้อนหลังอาจดูดีเกินจริง ระบุความถี่เหตุการณ์ของทั้งเข้าและออก
การกำหนดตัวอย่างโค้ดแบบรวมให้กับส่วนประกอบเดียว
ตัวอย่างที่ประกอบด้วยการกลับตัวสู่ค่าเฉลี่ยของช่องว่างและโมเมนตัม จำเป็นต้องมีการระบุที่มาแยกต่างหากก่อนจึงจะสามารถตรวจสอบความถูกต้องของส่วนประกอบใดส่วนประกอบหนึ่งได้
รายการตรวจสอบก่อนใช้วิธีนี้
ทำเครื่องหมายแต่ละข้อหลังตรวจสอบกับข้อมูลของคุณแล้ว ความคืบหน้าจะบันทึกในเบราว์เซอร์นี้ แต่ไม่ได้รับรองว่ากลยุทธ์ทำกำไรได้
คำถามที่พบบ่อย
VWAP เหมือนกับแถบสัญญาณรบกวนด้านบนหรือด้านล่างหรือไม่?
ไม่เหมือนกัน VWAPคือราคาอ้างอิงของเซสชันปัจจุบันถ่วงน้ำหนักด้วยปริมาณ ส่วนแถบประมาณการเคลื่อนจากราคาเปิดที่พบทั่วไปในเซสชันอดีต ณ เวลาเดียวกัน
ตัวเลข Sharpe ที่รายงานมานั้นสะท้อนถึงผลกำไรในปัจจุบันหรือไม่?
ไม่ มันอธิบายถึงตัวอย่างและแบบจำลองต้นทุนเฉพาะเท่านั้น หลักฐานในระยะหลัง การจำลองการดำเนินการ และความไม่แน่นอนจะต้องได้รับการประเมินแยกต่างหาก
แหล่งวิจัย
แต่ละแหล่งสนับสนุนคำจำกัดความหรือหลักฐานที่อธิบายไว้ข้างกัน รหัสเทียม ตัวอย่างสมมติ และพารามิเตอร์ที่เสนอต้องผ่านการตรวจสอบแยกต่างหาก
- Beat the Market: An Effective Intraday Momentum Strategy for S&P500 ETF (SPY)Zarattini, Aziz, Barbon — bản 03/02/2025. อ่านไฟล์ PDF ฉบับเต็ม รวมถึงเวอร์ชันลงวันที่ 3 กุมภาพันธ์ 2025 ตาราง 3 และ 4 ปรากฏบนหน้ากระดาษจริงและหน้าพิมพ์ 15 และ 16 ไม่มีการจำลองข้อมูลใหม่เกิดขึ้น ตรวจสอบเมื่อ: .
- Designing a Profitable Intraday Strategy Using Python and AlpacaConcretum Group. อ่านบทความและโค้ดสาธารณะของผู้เขียนแล้ว ตัวอย่างที่สมบูรณ์ประกอบด้วยส่วนประกอบช่องว่างข้ามคืนเพิ่มเติม และไม่ใช่การจำลองโมเมนตัมที่บริสุทธิ์โดยอัตโนมัติ ตรวจสอบเมื่อ: .
- Out-of-Sample Evaluation of an Intraday Momentum Strategy for SPYSheimy Paz Serpa. ตรวจเฉพาะREADME ไม่ได้สร้างซ้ำอย่างอิสระด้วยข้อมูลนำเข้าที่ต้องมีสิทธิ์ใช้งานครบชุด หรือทวนการจับคู่คำสั่งนอกตัวอย่างที่รายงาน ตรวจสอบเมื่อ: .
วิธีการที่เกี่ยวข้อง
หมายเหตุความเสี่ยง
เนื้อหานี้ใช้เพื่อการศึกษาและออกแบบงานวิจัย ไม่ใช่คำแนะนำทางการเงิน Backtest เป็นการจำลองข้อมูลในอดีต ไม่รับประกันผลในอนาคตและไม่ส่งคำสั่งซื้อขายจริง วิธีการในคลังนี้ไม่ได้หมายความว่ามีเป็นฟีเจอร์ในแอปทั้งหมด ดู ระเบียบวิธี และ ศูนย์การเรียนรู้.
ตรวจสอบกฎก่อนเสี่ยงด้วยเงินจริง
ตรวจสอบความสามารถของแอป ข้อมูล และแต่ละรายการซื้อขายจำลอง ตัวตรวจจับขั้นสูงอาจต้องพัฒนาแยกต่างหาก
ดาวน์โหลด Backtest บน App Store