สารบัญบทความ
- หลักฐานและขอบเขต
- ภาพประกอบ
- กระบวนการ
- เส้นที่เหมาะสมแสดงถึงหน้าต่างที่สังเกตได้
- เลือกใช้เฉพาะข้อมูลสังเกตการณ์ที่อยู่ก่อนแถบตรวจจับเท่านั้น
- ราคากลับเข้าแถบอาจสำเร็จหรือล้มเหลว
- ค่าสัมประสิทธิ์ที่คงที่ยังคงสามารถบ่งบอกถึงจุดศูนย์กลางที่เคลื่อนที่ได้
- การตรวจ residual ไม่ใช่ใบรับรองกำไร
- วอลลุ่มสามารถกรองเหตุการณ์ได้โดยไม่ต้องเขียนทับช่องสัญญาณ
- การทดสอบตามลำดับเวลาและการควบคุมที่มีประโยชน์
- ข้อผิดพลาดที่พบบ่อย
- รายการตรวจสอบเชิงปฏิบัติ
- คำถามที่พบบ่อย
- แหล่งวิจัย
หลักฐานและขอบเขต
Fidelity อธิบายตัวชี้วัดถดถอย ส่วน statsmodels และNISTสนับสนุนวิธีฟิตและตรวจโมเดล แหล่งเหล่านี้ไม่ได้พิสูจน์กำไรของกลยุทธ์กลับเข้าแถบที่เสนอนี้
ขั้นตอนปฏิบัติ
- ฟิตข้อมูลอดีตใช้ OLS ราคาแบบลอการิทึมโดยมีค่าคงที่ และไม่รวมแถบการตรวจจับ
- ตรวจสอบบริบทปฏิบัติตามข้อกำหนดด้านความลาดชันและค่าคงเหลือที่ลงทะเบียนไว้
- ตรึงโมเดลเมื่อออกนอกแถบจัดเก็บค่าสัมประสิทธิ์ที่ไม่สามารถเปลี่ยนแปลงได้และจุดกำเนิด
- รอกลับเข้าแถบต้องปิดในแถบแต่ต่ำกว่าจุดกลางเป้าหมาย
- ประเมินความเสี่ยงทดสอบ stop การออกตามเวลา และต้นทุนบนข้อมูลนอกชุดพัฒนา
เส้นที่เหมาะสมแสดงถึงหน้าต่างที่สังเกตได้
Fidelity อธิบายตัวชี้วัดการถดถอยเชิงเส้น (Linear Regression Indicator) โดยใช้จุดปลายของเส้นที่ลากผ่านช่วงเวลา N ช่วง ([1]) บทความนี้ขยายแนวคิดดังกล่าวด้วยแถบส่วนเหลือ (residual bands) จุดศูนย์กลางที่ลาดเอียงหมายความว่า การอยู่ต่ำกว่าเส้นมากไม่ได้หมายความว่าราคาจะถูกลงอย่างแท้จริงหรือกำลังจะปรับตัวสูงขึ้นในเร็วๆ นี้เสมอไป
แยกสองคำถาม: เส้นตรงอธิบายข้อมูลอดีตดีแค่ไหน และการเบี่ยงเบนวันนี้ทำนายการกลับมาภายหลังหรือไม่ R²ตอบคำถามแรก การลดลงสม่ำเสมออาจมีR²สูง ขณะที่ซื้อใต้เส้นซ้ำแล้วขาดทุน
ช่องราคาอาจใช้สำหรับการกลับตัวสู่ค่าเฉลี่ยหรือการต่อเนื่องของแนวโน้ม แต่สิ่งเหล่านี้เป็นสมมติฐานที่ขัดแย้งกัน เส้นฐานด้านล่างรอการเคลื่อนตัวลงและกลับเข้ามาภายในกรอบล่างที่ตรึงไว้ มันจะไม่เปลี่ยนไปใช้โมเมนตัมเมื่อการซื้อขายแบบกลับตัวสู่ค่าเฉลี่ยในอดีตล้มเหลว
เลือกใช้เฉพาะข้อมูลสังเกตการณ์ที่อยู่ก่อนแถบตรวจจับเท่านั้น
สำหรับ j=0…N−1 ให้ตั้งค่า y[j]=log(C[j]) และปรับ y=a+bj โดยใช้วิธีการกำลังสองน้อยที่สุดแบบธรรมดา ค่าความคลาดเคลื่อนคือ e[j]=y[j]−a−bj และ s=sqrt(sum(e²)/(N−2)) ที่ h ขั้นเกินกว่าหน้าต่างที่ปรับแล้ว m(h)=a+b(N−1+h) พร้อมช่วงราคา exp(m(h)±ks) การตั้งค่าที่เสนอคือ N=60, k=2; ปฏิเสธราคาที่ไม่เป็นบวกและค่า s ที่ใกล้ศูนย์
statsmodels OLSไม่เพิ่ม interceptใน design matrixให้อัตโนมัติ[2] จึงต้องมีคอลัมน์ค่าคงที่ ฟิตข้อมูลถึงt−1แล้วประเมินราคาปิดtที่h=1 หากรวมtในการฟิต shockจะเลื่อนทั้งจุดกลางและความกว้างที่ใช้ตัดสินshockนั้นเอง
ตัวกรองabs(b)×(N−1)/s≤1เทียบการเลื่อนตามแนวเส้นที่ฟิตกับขนาด residual เป็นเพียงกฎคัดกรอง ไม่ใช่การทดสอบ stationarity เมื่อออกนอกแถบจนเกิด candidate ให้เก็บa,b,s ดัชนีจุดเริ่ม และหน้าต่างข้อมูลที่ฟิต ห้าม refit candidateที่กำลังใช้งาน
การหมดอายุต้องมีความสำคัญเหนือกว่าการเริ่มการทำงาน รหัสเทียมแสดงลำดับนั้นอย่างชัดเจนและเริ่มต้นค่า previous_z เมื่อตรวจพบความผิดปกติครั้งแรก ข้อมูลที่ขาดหายไป ผลลัพธ์การปรับที่ไม่เป็นค่าจำกัด และค่าตกค้างเป็นศูนย์ จะทำให้ตัวเลือกนั้นใช้งานไม่ได้ แทนที่จะอนุญาตให้มีการหารด้วยศูนย์หรือค่า z-score ที่สุดขั้วเทียม
if no_candidate:
if invalid_or_nonpositive(close[t-N:t+1]): return
a,b,s = fit_log_ols(close[t-N:t], with_intercept=True)
if not finite(a,b,s) or s <= min_residual_scale: return
regime_ok = abs(b)*(N-1)/s <= 1.0
z = (log(C[t])-(a+b*N))/s
if regime_ok and z < -2:
freeze_candidate(a,b,s,origin=t-N,expiry=t+10,
previous_z=z,excursion_low=L[t])
else:
if t > candidate.expiry:
expire(); return
j = t-candidate.origin
z = (log(C[t])-(candidate.a+candidate.b*j))/candidate.s
update_excursion_low(L[t])
if candidate.previous_z < -2 and -2 <= z < 0:
emit_long(t)
candidate.previous_z = z
# Never refit an active candidate or backfill historical channels.
ราคากลับเข้าแถบอาจสำเร็จหรือล้มเหลว
ตัวอย่างสมมติ: จุดกลางประมาณ100 ความชัน0 และขนาดlog residual s=0.01 แถบล่างสองซิกมาประมาณ98.02 แถบบน102.02 ราคา97.8อยู่นอกแถบล่าง ก่อนราคาปิด98.3กลับเข้าแถบ หากเข้า98.4 stop97.5 เป้า100 จะเสี่ยง0.9และผลตอบแทนที่เป็นไปได้1.6 หรือประมาณ1.78Rก่อนต้นทุน
เส้นทางสังเคราะห์ที่ประสบความสำเร็จจะไปถึง 100 ก่อน ในเส้นทางที่ล้มเหลว ข้อมูลใหม่จะผลักดันราคาไปที่ 96 แล้วจึงไปที่ 94 ตำแหน่งจะต้องหยุดที่ราคาที่เหมาะสมใกล้กับ 97.5 หรือแย่กว่านั้นหากเกิดช่องว่างราคา การปรับตัวให้เข้ากับข้อมูลในอดีตที่ดีไม่สามารถป้องกันการเปลี่ยนแปลงในสภาพแวดล้อมที่สร้างราคาได้
อย่าขยายค่าซิกมาหลังจากราคาลดลงและประกาศว่าจุดหยุดก่อนหน้านี้ไม่เคยถูกละเมิดอย่างแท้จริง การทำเช่นนั้นจะเปลี่ยนภาพรวมการตัดสินใจโดยใช้ผลลัพธ์ การอัปเดตแบบจำลองสำหรับผู้สมัครในอนาคตจะต้องไม่เปลี่ยนแปลงการบัญชีของการซื้อขายที่มีอยู่
เส้นทางอีกเส้นทางหนึ่งกระโดดโดยตรงจาก 97.8 ไปยัง 101 แม้ว่าจะกลับมาอยู่ในช่วงราคาแล้ว แต่เส้นฐานต้องการ z<0 ดังนั้นจึงไม่ซื้อเหนือเป้าหมายตรงกลาง กฎนี้ถูกกำหนดไว้ล่วงหน้าแล้ว ไม่ได้เพิ่มเข้ามาหลังจากเห็นช่องว่างระหว่างผลตอบแทนกับความเสี่ยงที่ไม่ดี
ค่าสัมประสิทธิ์ที่คงที่ยังคงสามารถบ่งบอกถึงจุดศูนย์กลางที่เคลื่อนที่ได้
ตรึงaกับbไม่ได้ทำให้จุดกลางแนวนอน จุดกลางยังเดินตามความชันเดิมเมื่อเวลาเพิ่ม ณ สัญญาณให้ตรึงเป้าเท่าจุดกลางที่ฉายถึงเวลาคาดว่าจะเข้า และตรึง stop ใต้ low ต่ำสุดตลอดช่วงออกนอกแถบโดยหักบัฟเฟอร์
สถานะที่เสนอออกเมื่อครบสิบแท่งหากยังไม่ถึงเป้าหรือ stop นาฬิกาอายุcandidateกับเวลาถือสถานะต่างกัน: อย่างแรกจำกัดเวลารอ reclaim อย่างหลังจำกัดการถือหลังเข้า เก็บทั้งสองเพื่อไม่เผลอยืดอายุcandidateเมื่อเปิดเทรด
หากการดำเนินการล่าช้าเกินกว่าเวลาที่คาดไว้ ให้กำหนดว่าเป้าหมายที่ถูกตรึงไว้จะคงเดิมหรือถูกยกเลิกก่อนส่งตามกฎทางเศรษฐศาสตร์ อย่าเคลื่อนย้ายเป้าหมายหลังจากที่คำสั่งซื้อขายเสร็จสมบูรณ์แล้วเพียงเพื่อรักษาระดับผลตอบแทนที่อาจได้รับให้น่าดึงดูด
เปรียบเทียบสมมติฐานการเปิดครั้งถัดไปและราคาที่สามารถดำเนินการได้เกี่ยวกับการเคลื่อนไหวอย่างรวดเร็ว การตัดเส้นในอดีตไม่ได้รับประกันว่าจะได้ราคาที่เส้นนั้นเสมอไป หากเป้าหมายเป็นคำสั่งจำกัดราคาที่หยุดนิ่ง ให้สร้างแบบจำลองการเปิดใช้งาน ปริมาณ และความเป็นไปได้ที่ราคาจะไม่ถูกเติมเต็ม แทนที่จะให้เครดิตราคาตรงกลางโดยอัตโนมัติทุกครั้งที่แท่งเทียนในภายหลังครอบคลุมราคานั้น
การตรวจ residual ไม่ใช่ใบรับรองกำไร
NIST กล่าวถึงข้อสมมติฐานตกค้างแบบคลาสสิก เช่น ความเป็นอิสระและความแปรปรวนคงที่ [3] ราคาทางการเงินอาจละเมิดข้อสมมติฐานเหล่านี้ได้ ดังนั้น ±2s จึงไม่ใช่ช่วงการพยากรณ์ 95% สำหรับราคาถัดไปโดยอัตโนมัติ และค่า p-value ของความชัน OLS แบบดั้งเดิมไม่ใช่หลักฐานของความได้เปรียบในการซื้อขาย
ตรวจ autocorrelationของresidual พฤติกรรมหาง และความคงตัวของsข้ามหน้าต่าง หากresidualอยู่ฝั่งเดียวต่อเนื่อง อาจแปลว่ากลยุทธ์กำลังเทรดสวนแนวโน้มใหม่ ใช้การตรวจอธิบายพฤติกรรมโมเดล ไม่เลือกแต่ช่วงอดีตที่ให้ผลดี
การเปรียบเทียบเชิงปฏิบัติจะเก็บภาพนิ่งของผู้สมัครแต่ละรายไว้ และพล็อตการเคลื่อนไหวของราคาโดยสัมพันธ์กับภาพนิ่งเหล่านั้น หากการกลับตัวที่เห็นได้ชัดเกิดขึ้นเพียงเพราะจุดศูนย์กลางที่ปรับใหม่ซ้ำๆ เคลื่อนเข้าหาจุดราคา ผลที่ได้คือการปรับตัวของแบบจำลองมากกว่าการที่ราคากลับไปสู่จุดอ้างอิงเดิม
R² ค่าความคลาดเคลื่อนมาตรฐานและค่า z-score มีจุดประสงค์ที่แตกต่างกัน R² อธิบายถึงความเหมาะสม ค่าความคลาดเคลื่อนมาตรฐานสรุปมาตราส่วนตกค้างภายในหน้าต่าง และค่า z-score แสดงถึงความเบี่ยงเบนในปัจจุบันภายใต้มาตราส่วนที่คงที่นั้น ไม่ควรเปลี่ยนชื่อค่าใด ๆ เป็นความน่าจะเป็นที่การซื้อขายครั้งต่อไปจะชนะ
วอลลุ่มสามารถกรองเหตุการณ์ได้โดยไม่ต้องเขียนทับช่องสัญญาณ
สมมติฐานหนึ่งหลีกเลี่ยงการเทรดสวนการเคลื่อนไหวที่RVOLสูงผิดปกติ เพราะอาจเกิดจากการประเมินราคาใหม่ อีกสมมติฐานมองหากิจกรรมมากตอนออกนอกแถบแล้วเงียบลงตอนreclaim เลือกและลงทะเบียนตัวแปรก่อนดูผล ไม่ใช้สองเรื่องตามความสะดวก
ใช้ฐานเวลาเดียวกัน เก็บสเปรดและข่าวที่มีเวลาเผยแพร่หากมี ห้ามเอาปริมาณครบช่วงออกนอกแถบไปใช้ตัดสินก่อนช่วงนั้นจบ ตอนยืนยันreclaimสรุปข้อมูลที่เห็นได้แล้ว แต่available_atต้องสะท้อนเวลาที่ข้อมูลล่าสุดใช้ได้
เปลี่ยนOLSเป็นการถดถอยถ่วงน้ำหนักด้วยปริมาณซื้อขายคือเปลี่ยนโมเดลเอง ต้องทดสอบเป็นอีกเวอร์ชันเทียบแบบไม่ถ่วงน้ำหนัก มิฉะนั้นประโยชน์จากปริมาณอาจรวมผลของจุดกลาง ขนาดresidual และตัวกรองเข้าที่เปลี่ยนพร้อมกันโดยไม่รู้ว่าส่วนใดสำคัญ
การทดสอบตามลำดับเวลาและการควบคุมที่มีประโยชน์
เทียบช่องถดถอยกับค่าเฉลี่ยแนวนอนแบบBollingerและz-scoreไม่มีความชัน ด้วยกฎเข้าออกและต้นทุนเท่ากัน เลือกN,kและตัวกรองบนข้อมูลพัฒนา แล้วเก็บชุดทดสอบสุดท้ายที่ไม่เคยใช้ หากการแบ่งชุดทำให้ทั้งสองฝั่งใช้ผลจากการออกนอกแถบครั้งเดียวกัน ต้องตัดช่วงlabelเทรดที่ซ้อนทับออก
ตรวจ intercept จุดจบหน้าต่างt−1 สเกลlog องศาอิสระ sเป็นศูนย์ ข้อมูลหาย และผลอดีตคงเดิมเมื่อเติมอนาคต candidateที่หมดอายุแล้วกลับเข้าแถบในแท่งถัดไปต้องยังหมดอายุ ไม่ปล่อยสัญญาณช้า
รายงานผลตอบแทนสุทธิ ขาดทุนส่วนหาง เวลาที่ไม่เทรด และผลแยกตามสภาวะตลาดที่กำหนดล่วงหน้า ทดสอบความเครียดการจับคู่และgap หากกำไรต้องอาศัยสมมติว่าfillตรงจุดกลางในแท่งgapที่เส้นทางไม่ชัด ต้องแก้โมเดลจับคู่ก่อนสรุปความคุ้มค่า
พหุนามลำดับสูงอาจสอดคล้องกับประวัติศาสตร์ได้ดีกว่า ในขณะเดียวกันก็เพิ่มความไม่แน่นอนในการคาดการณ์และตัวเลือกการวิจัยที่มากขึ้น เส้นฐานเชิงเส้นมีคุณค่าเพราะสามารถตรวจสอบสัมประสิทธิ์ การฉายภาพ และกรณีความล้มเหลวได้โดยตรง
ข้อผิดพลาดที่พบบ่อย
ฟิตช่องในอดีตใหม่ย้อนหลัง
เส้นปัจจุบันเขียนทับสัญญาณก่อนหน้าและทำให้กราฟดูแม่นยำสม่ำเสมอ
การแปลง R² ให้เป็นอัตราการชนะ
ความสอดคล้องเชิงอธิบายภายในตัวอย่างไม่เหมือนกับประสิทธิภาพการซื้อขายเชิงพยากรณ์
เทรดสวนช่วงที่สภาวะตลาดเปลี่ยน
ช่องทางเดิมอาจหมดความสำคัญลงเมื่อข้อมูลใหม่เข้ามาเปลี่ยนแปลงราคาของตราสารนั้น
รายการตรวจสอบก่อนใช้วิธีนี้
ทำเครื่องหมายแต่ละข้อหลังตรวจสอบกับข้อมูลของคุณแล้ว ความคืบหน้าจะบันทึกในเบราว์เซอร์นี้ แต่ไม่ได้รับรองว่ากลยุทธ์ทำกำไรได้
คำถามที่พบบ่อย
การวิเคราะห์การถดถอยดีกว่า Bollinger Bands เสมอหรือไม่?
ไม่เสมอ เพราะเพิ่มความชันและตัวเลือกโมเดล ต้องเทียบด้วยกฎเทรดและการจับคู่ที่ตรงกันเพื่อแยกคุณค่าที่เพิ่ม
พหุนามสามารถช่วยให้การประมาณค่าแม่นยำขึ้นได้หรือไม่?
สามารถทำการวิจัยได้ แต่จะเพิ่มระดับความเป็นอิสระและความเสี่ยงในการคาดการณ์ การที่ข้อมูลทางประวัติศาสตร์มีความสอดคล้องกันมากขึ้นเพียงอย่างเดียวไม่ได้หมายความว่ากลยุทธ์นั้นจะดีกว่าเสมอไป
แหล่งวิจัย
แต่ละแหล่งสนับสนุนคำจำกัดความหรือหลักฐานที่อธิบายไว้ข้างกัน รหัสเทียม ตัวอย่างสมมติ และพารามิเตอร์ที่เสนอต้องผ่านการตรวจสอบแยกต่างหาก
- Linear Regression IndicatorFidelity. อ่านนิยามค่าปลายเส้นของตัวชี้วัดถดถอยแล้ว ตรวจสอบเมื่อ: .
- statsmodels OLSstatsmodels. อ่านเรื่องinterceptของOLS ข้อมูลหาย และวิธีฟิตแล้ว ตรวจสอบเมื่อ: .
- Are the model residuals well-behaved?NIST/SEMATECH. อ่านสมมติฐานresidualแบบดั้งเดิมแล้ว ไม่ใช่ข้อสรุปว่าทำนายตลาดได้ ตรวจสอบเมื่อ: .
วิธีการที่เกี่ยวข้อง
หมายเหตุความเสี่ยง
เนื้อหานี้ใช้เพื่อการศึกษาและออกแบบงานวิจัย ไม่ใช่คำแนะนำทางการเงิน Backtest เป็นการจำลองข้อมูลในอดีต ไม่รับประกันผลในอนาคตและไม่ส่งคำสั่งซื้อขายจริง วิธีการในคลังนี้ไม่ได้หมายความว่ามีเป็นฟีเจอร์ในแอปทั้งหมด ดู ระเบียบวิธี และ ศูนย์การเรียนรู้.
ตรวจสอบกฎก่อนเสี่ยงด้วยเงินจริง
ตรวจสอบความสามารถของแอป ข้อมูล และแต่ละรายการซื้อขายจำลอง ตัวตรวจจับขั้นสูงอาจต้องพัฒนาแยกต่างหาก
ดาวน์โหลด Backtest บน App Store