หน้าแรก ตัวชี้วัดทางเทคนิค โพสต์

การวิเคราะห์สเปกตรัมเดี่ยว: ตัวชี้วัดแนวโน้มสำหรับ MetaTrader 5

ไฟล์แนบ
15865.zip (7.77 KB, ดาวน์โหลด 0 ครั้ง)

การวิเคราะห์แนวโน้มและการกรองเสียงรบกวนด้วยวิธีการวิเคราะห์สเปกตรัมเดี่ยว (Singular Spectrum Analysis) การปรับพารามิเตอร์ของตัวชี้วัดจะช่วยควบคุมความเรียบของแนวโน้มที่ได้และเกณฑ์การกรองเสียงรบกวน

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

ตัวชี้วัดแนวโน้มที่ใช้วิธีการ "หนอนผีเสื้อ" (Caterpillar) เกี่ยวข้องกับการขยายชุดราคาให้เป็นองค์ประกอบเพิ่มเติม ซึ่งไม่ต้องการให้ชุดราคาเป็นสถานะคงที่ หรือรู้จักโมเดลแนวโน้มหรือข้อมูลเกี่ยวกับการมีอยู่ของส่วนประกอบตามช่วงเวลาและระยะเวลา [1-4]

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


พารามิเตอร์ของตัวชี้วัด

พารามิเตอร์หลักคือ:

  1. SegmentLength — ความยาวของส่วน "ประวัติศาสตร์ล่าสุด" ในชุดราคา
  2. SegmentLag — ความยาวของหนอนผีเสื้อ เลือกในช่วงจาก 1/4 ถึง 1/2 ของความยาวของส่วน มีผลต่อความสามารถในการแยกองค์ประกอบและความเรียบของแนวโน้ม
  3. EigMax — จำนวนขององค์ประกอบหลัก (โหมดการแยก) กำหนดมิติของอวกาศสัญญาณและพิจารณาการเปลี่ยนแปลงที่มีขนาดต่างกัน
  4. EigNoiseFlag — ธงในการคำนวณจำนวนขององค์ประกอบหลัก เพื่อสลับระหว่างจำนวนโหมดที่ "ตายตัว" และระดับเสียงที่อนุญาต ตัวเลือก = 0, 1, 2
  5. EigNoiseLevel — เปอร์เซ็นต์เสียงที่อนุญาตใน "พลังงานการเปลี่ยนแปลง" โดยรวมของชุด ถ้า EigNoiseFlag != 0 จะมีผลต่อ EigMax ในการคำนวณ

ตัวเลือกของพารามิเตอร์จำนวนเต็ม EigNoiseFlag:

  • 0 - มิติของอวกาศสัญญาณถูกกำหนดไว้: [1,EigMax] (EigNoiseLevel จะถูกละเลย หาก EigMax มากกว่าที่อนุญาต จะถูกจำกัดตามค่าอนุญาต)
  • 1 — ส่วนของค่าโหมดแต่ละตัวต่อผลรวมทั้งหมดไม่น้อยกว่าความผิดพลาดที่กำหนด EigNoiseLevel EigMax จะถูกเลือกโดยอัตโนมัติ
  • 2 — พิจารณาโหมดที่มีส่วนรวมแตกต่างจาก "หนึ่ง" (เต็ม) ไม่เกิน EigNoiseLevel. EigMax จะถูกเลือกโดยอัตโนมัติ

การเลือกพารามิเตอร์ทั่วไปและผลกระทบ:

  • SegmentLength — ความยาวของส่วนชุดราคาในตอนท้ายของประวัติศาสตร์ข้อมูล จะเลือกตามความเสถียรของประวัติและลักษณะการเปลี่ยนแปลงในข้อมูลหรือระยะเวลาของกลยุทธ์
  • SegmentLag — กำหนดมิติสำหรับ "ความกว้างของฟิลเตอร์" สำหรับโหมดเฉพาะ (มีความสัมพันธ์ผกผัน) มีผลต่อความเรียบและการปรับของแนวโน้มต่อความผันผวนของกราฟราคา
  • EigMax — กำหนดมิติให้กับ "อวกาศสัญญาณ" ที่มีข้อมูลที่มีประโยชน์ ตั้งค่าขีดจำกัด "เสียง"
  • EigNoiseLevel — กำหนดค่า "เสียง" ในการกระจายโดยรวมของชุด ควรกำหนดในรูปแบบ เปอร์เซ็นต์.

การนำไปใช้

คลาส CCaterpillar ที่ถูกนำไปใช้ในไฟล์ CCaterpillar.mqh มีทุกอย่างที่จำเป็นสำหรับการคำนวณแนวโน้ม ยกเว้นวิธีการพีชคณิตเชิงเส้น (ห้องสมุด ALGLIB ถูกใช้ในการแยกสัญญาณจากเมทริกซ์เส้นทาง) โค้ดที่นำเสนอในไฟล์ประกอบด้วยคำอธิบายสำหรับสมาชิกและวิธีการของคลาส

การทำงานของตัวชี้วัดต้องการไฟล์:

  • 1) MQL5\Include\SSA\CCaterpillar.mqh
  • 2) MQL5\Indicators\SingularMA.mq5
  • ห้องสมุด ALGLIB (ฉันอยู่ข้างคนจำนวนมากที่ขอบคุณ Sergey Bochkanov สำหรับการให้ห้องสมุด ALGLIB ที่ยอดเยี่ยม)

ลักษณะเฉพาะของการใช้งาน

ไม่แนะนำให้ตั้งค่าข้อมูลส่วนที่มีค่ามากกว่า 300 เพราะจะทำให้เกิดภาระการคำนวณสูง ควรใช้ค่าที่เหมาะสมระหว่าง 150-200 คุณสามารถเปลี่ยนไปใช้ช่วงเวลาของกราฟการคำนวณเพื่อครอบคลุมช่วงประวัติศาสตร์ที่กว้างขึ้น

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

หากมีการไหลของข้อมูลที่ช้าในกราฟราคา ทางออกที่เป็นไปได้คือ: a) ลดความยาวของส่วน; b) เพิ่มพารามิเตอร์ ReCalcLim ของความละเอียดการคำนวณในฟังก์ชัน OnCalculate.

ช่วงเวลา 5 นาที สองแนวโน้ม SSA(120,50,4), SSA(50,20,7) และค่าเฉลี่ยเคลื่อนที่ MA(14)

รูปที่ 1. ช่วงเวลา 5 นาที สองแนวโน้ม SSA(120,50,4), SSA(50,20,7) และค่าเฉลี่ยเคลื่อนที่ MA(14)


ช่วงเวลา 1 ชั่วโมง สองแนวโน้ม SSA(120,50,4), SSA(50,20,7) และค่าเฉลี่ยเคลื่อนที่ MA(14)

รูปที่ 2. ช่วงเวลา 1 ชั่วโมง สองแนวโน้ม SSA(120,50,4), SSA(50,20,7) และค่าเฉลี่ยเคลื่อนที่ MA(14)


ช่วงเวลา 1 วัน สองแนวโน้ม SSA(120,50,4), SSA(50,20,7) และค่าเฉลี่ยเคลื่อนที่ MA(14)

รูปที่ 3. ช่วงเวลา 1 วัน สองแนวโน้ม SSA(120,50,4), SSA(50,20,7) และค่าเฉลี่ยเคลื่อนที่ MA(14)

การใช้การวิเคราะห์สเปกตรัมเดี่ยวเพื่อสร้างตัวชี้วัดแนวโน้มในรูปแบบนี้เป็นการแสดงตัวอย่างพื้นฐาน การใช้วิธี SSA อย่างแพร่หลายในภาคการเงินสำหรับการวิเคราะห์และคาดการณ์ชุดเวลาได้รับการนำเสนอใน [5-7]


เอกสารอ้างอิง

  1. Elsner J.B., Tsonis A.A. การวิเคราะห์สเปกตรัมเดี่ยว: เครื่องมือใหม่ในการวิเคราะห์ชุดเวลา Plenum Press. New York, 1996. 164 หน้า.
  2. D. L. Danilov และ A. A. Zhiglyavskii องค์ประกอบหลักในชุดเวลา: วิธีการหนอนผีเสื้อ St. Petersburg State Univ., St. Petersburg, 1997 - 308 หน้า.
  3. N. E. Golyandina วิธีการ "หนอนผีเสื้อ"-SSA: การวิเคราะห์ชุดเวลา: คู่มือการศึกษา St. Petersburg: 2004. - 76 หน้า.
  4. Principal Components in Time Series: the Caterpillar Method, แก้ไขโดย D. L. Danilov, A. A. Zhigljavsky. St. Petersburg: Presskom, 1997. หน้า 308.
  5. วิธีการ «หนอนผีเสื้อ»-SSA — ARIMA — SIGARCH และ ARSIMA — SIGARCH สำหรับการวิเคราะห์และคาดการณ์ชุดเวลาเศรษฐกิจและการเงิน: เอกสารการประชุมวิทยาศาสตร์นานาชาติครั้งที่สอง "วิธีการ คณิตศาสตร์ โมเดล และเทคโนโลยีสารสนเทศในเศรษฐศาสตร์", 4-6 พฤษภาคม 2011, Chernivtsi. — หน้า 306—308.
  6. Kozhihova N.A., Shiryaev V.I. การคาดการณ์ชุดเวลาโดยใช้ส่วนประกอบที่ยุ่งเหยิง Bulletin of the South Ural State University, № 22, 2010, หน้า 22-25.
  7. A.M. Avdeenko ที่ปรึกษาและตัวชี้วัดที่อิงตามโมเดล SSA และการทั่วไปที่ไม่เป็นเชิงเส้น // ดูได้ที่ arXiv:

โพสต์ที่เกี่ยวข้อง

ความคิดเห็น (0)