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

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

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

ข้อมูลและตลาดแบบจำลองราคาแบบลอการิทึมต้องการราคาปิดที่เป็นบวก ราคาที่เป็นลบหรือศูนย์ต้องใช้แบบจำลองเชิงเส้นที่กำหนดแยกต่างหาก หรือการแปลงรูปแบบอื่นที่ถูกต้อง
กรอบเวลาที่ใช้วิจัยN=60 บน H=1 หรือแท่งรายวันเป็นการตั้งค่าแบบทดลอง ความยาวของหน้าต่าง มาตราส่วนส่วนเหลือ และต้นทุนการดำเนินการจำเป็นต้องได้รับการประเมินสำหรับแต่ละตลาด
ค่าตกค้างลดลงเหลือ −2.225sigma จากนั้นกลับเข้ามาใหม่ที่ −1.715sigma และกลับไปเป็นศูนย์ในเส้นทางสังเคราะห์ที่ประสบความสำเร็จเปิดภาพประกอบขนาดเต็ม
ค่า z ตกค้างสังเคราะห์ดั้งเดิมและปริมาณจากช่องราคาที่สมมติขึ้นว่าคงที่ แกนตั้งแสดงค่าเบี่ยงเบนมาตรฐานของค่าตกค้างแทนที่จะเป็นราคา จุดศูนย์กลางที่ราบเรียบแสดงถึง b=0

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

ขั้นตอนสำหรับ Regression Channel: แยกความพอดีของเส้นจากความได้เปรียบ mean reversion
ขั้นตอนทั้งหมดอธิบายไว้ด้านล่าง ทุกขั้นต้องบันทึกเหตุผลที่คัดออกเมื่อข้อมูลไม่ครบหรือเงื่อนไขไม่ผ่าน
  1. ฟิตข้อมูลอดีตใช้ OLS ราคาแบบลอการิทึมโดยมีค่าคงที่ และไม่รวมแถบการตรวจจับ
  2. ตรวจสอบบริบทปฏิบัติตามข้อกำหนดด้านความลาดชันและค่าคงเหลือที่ลงทะเบียนไว้
  3. ตรึงโมเดลเมื่อออกนอกแถบจัดเก็บค่าสัมประสิทธิ์ที่ไม่สามารถเปลี่ยนแปลงได้และจุดกำเนิด
  4. รอกลับเข้าแถบต้องปิดในแถบแต่ต่ำกว่าจุดกลางเป้าหมาย
  5. ประเมินความเสี่ยงทดสอบ 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² ให้เป็นอัตราการชนะ

ความสอดคล้องเชิงอธิบายภายในตัวอย่างไม่เหมือนกับประสิทธิภาพการซื้อขายเชิงพยากรณ์

เทรดสวนช่วงที่สภาวะตลาดเปลี่ยน

ช่องทางเดิมอาจหมดความสำคัญลงเมื่อข้อมูลใหม่เข้ามาเปลี่ยนแปลงราคาของตราสารนั้น

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

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

0/8 ข้อ

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

การวิเคราะห์การถดถอยดีกว่า Bollinger Bands เสมอหรือไม่?

ไม่เสมอ เพราะเพิ่มความชันและตัวเลือกโมเดล ต้องเทียบด้วยกฎเทรดและการจับคู่ที่ตรงกันเพื่อแยกคุณค่าที่เพิ่ม

พหุนามสามารถช่วยให้การประมาณค่าแม่นยำขึ้นได้หรือไม่?

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

แหล่งวิจัย

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

  1. Linear Regression IndicatorFidelity. อ่านนิยามค่าปลายเส้นของตัวชี้วัดถดถอยแล้ว ตรวจสอบเมื่อ: .
  2. statsmodels OLSstatsmodels. อ่านเรื่องinterceptของOLS ข้อมูลหาย และวิธีฟิตแล้ว ตรวจสอบเมื่อ: .
  3. Are the model residuals well-behaved?NIST/SEMATECH. อ่านสมมติฐานresidualแบบดั้งเดิมแล้ว ไม่ใช่ข้อสรุปว่าทำนายตลาดได้ ตรวจสอบเมื่อ: .

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

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

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

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

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

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