fbpx

สอบถามเรื่องการหา ROC ของ Set ครับ

SiamQuant Minimal Home – White Webboard ห้องโปร : Professional Membership Support สอบถามเรื่องการหา ROC ของ Set ครับ

  • ผู้สร้าง
    กระทู้
  • #10540
    Disinfect
    Participant

    คือผมหา Rate of Change ของ Set ในรอบจำนวน x วัน และมีปัญหาครับตอน explore ออกมาดูแล้วมีค่าที่ error ตามรูป และ Code ที่ใช้ตามรูปครับ ผมหาไมเจอว่าผิดตรงไหน ขอบคุณครับ

กำลังดู 5 ข้อความตอบกลับ - 1 ผ่านทาง 5 (ของทั้งหมด 5)
  • ผู้เขียน
    ข้อความตอบกลับ
  • #10544
    SiamQuant Team
    Keymaster

    สวัสดีครับ

    จากการตรวจสอบพบว่า ROCSET ที่เพี้ยนไปสำหรับหุ้นบางตัวนั้น เกิดจากการที่ หุ้นตัวนั้นๆมีจำนวนวันที่ไม่มีการซื้อขายอยู่ ทำให้การอิงจำนวนวันของ ROC ที่ไปใช้ กับ Foreign ของ SET นั้นผิดเพี้ยนไปครับ

    ทางทีมงานกำลังหาวิธีในการ ทำให้ ROCSET อิงให้อยู่นะครับ จะมาแจ้งอีกครั้งหนึ่งครับ

    #10546
    Disinfect
    Participant

    โอ้ขอบคุณมากๆเลยครับ

    #10549
    BlueStepz
    Participant

    สวัสดีครับคุณ Disinfect

     

    เนื่องจากสูตร ROC นั้นจะนับค่าย้อนหลังตามจำนวนแท่ง (Bars) ที่มีการซื้อขายครับ

    หากหุ้นตัวไหนมีวันที่ไม่มีการซื้อขาย ก็จะไม่มีข้อมูลของแท่งนั้นให้โปรแกรมมันนับครับ

    ทำให้กว่าจะนับครบตามจำนวนแท่งที่เราระบุ มันเลยไปอ้างอิงจำนวนวันที่ห่างไปมากขึ้นนั่นเองครับ

     

    แนวทางแก้ปัญหาเบื้องต้น

    จะใช้การนับจำนวนวันเอาครับ เช่น ROC( C, 20 )

    เราก็หาว่า 20 แท่งย้อนหลัง หุ้นส่วนใหญ่ที่มีการซื้อขายมีจำนวนวันห่างกันกี่วัน

    ส่วนหุ้นตัวไหนที่มีจำนวนวันห่างกันมากกว่าปกติ แสดงว่าในระหว่าง 20 แท่งนั้นมีวันที่ไม่มีการซื้อขายเกิดขึ้น (ข้อมูลฟันหล๋อ 55+)

    การนับจำนวนวันตามตัวอย่างจะใช้คำสั่ง DaysSince1900() นะครับ

     

     

    ผลลัพธ์จากการทดสอบ Explore ALLSTOCK ของวันที่ 2016-06-20 (YMD) ครับ

     

    จะเห็นว่าคำสั่ง DaysSince1900 จะนับข้อมูลของแท่งวันที่ 2016-06-20 มีค่าเท่ากับ 42,541 วัน (ตัวแปร Days)

    และข้อมูล 20 แท่งย้อนหลังมีค่าเท่ากับ 42,513 วัน (ตัวแปร Days ref-20)

    ทำให้มีจำนวนวันที่ห่างกันใน 20 แท่งนี้เท่ากับ 28 วัน (ตัวแปร DaysDiff)

    ซึ่งในภาพจะพบหุ้นที่ไม่มีข้อมูลการซื้อขายในช่วง 20 แท่งย้อนหลัง 2 ตัว

    คือหุ้น ABPIF และ ALUCON ทีมีค่า ROC และ SETROC ผิดเพี้ยนไปจากหุ้นตัวอื่นที่มีการซื้อขายทุกวัน

    ดังนั้นหากไม่ต้องการหุ้นที่มีค่าผิดเพี้ยน เนื่องจากมีการซื้อขายไม่ครบทุกวัน

    สามารถเข้าไปแก้โค้ดบรรทัดที่ 22 โดยเปลี่ยนจาก Filter = 1; เป็น

    Filter = DaysDiff == 28;

    แค่นี้ก็จะไม่มีหุ้นที่มีการซื้อขายไม่ครบทุกวันถูก Explore ออกมาละครับ

     

    ปล. ค่า DaysDiff == 28 เป็นของวันที่ 2016-06-20 นะครับ

    หากมีการเปลี่ยนวันที่ Explore ต้องไปดูใหม่ว่า DaysDiff ของหุ้นที่มีการซื้อขายทุกวันส่วนใหญ่มีค่าเป็นเท่าไร

    เนื่องจากแต่ละวันที่ Explore อาจมีค่า DaysDiff ไม่เหมือนกัน

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

     

    ขอบคุณครับ 😀

    ทีมงาน SiamQuant

    #10552
    BlueStepz
    Participant

    /*==================================================
    Main Code
    ==================================================*/

    Prd             =    20;                                   //Look Back Periods (Bars)
    PrdStr         = NumToStr( Prd, 1.0 );        //Change Number to String
    Days             = DaysSince1900();
    DaysDiff     = Days – Ref( Days, -Prd );

    SetForeign( “^SET” );
    SETC     = C;
    SETROC    = ROC( C, Prd );
    RestorePriceArrays();

    /*==================================================
    Filter and Explore
    ==================================================*/

    Filter = 1;

    AddColumn( C, “Close” );
    AddColumn( Ref( C, -Prd ), “Close ref-” + PrdStr );
    AddColumn( ROC( C, Prd ), “ROC” );

    AddColumn( SETC, “SETC” );
    AddColumn( Ref( SETC, -Prd ), “SETC ref-” + PrdStr );
    AddColumn( SETROC, “SETROC” );

    AddColumn( Days, “Days”, 1.0, colorBlack, colorLightYellow );
    AddColumn( Ref( Days, -Prd), “Days ref-” + PrdStr, 1.0, colorBlack, colorLightYellow );
    AddColumn( DaysDiff, “DaysDiff”, 1.0, colorBlack, colorSkyblue );

    #10553
    Disinfect
    Participant

    ขอบคุณมากๆครับ ^^

กำลังดู 5 ข้อความตอบกลับ - 1 ผ่านทาง 5 (ของทั้งหมด 5)
  • คุณต้องเข้าสู่ระบบเพื่อตอบกลับกระทู้นี้

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

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • เปิดใช้งานตลอด

บันทึกการตั้งค่า