fbpx

สอบถามเรื่องการ ranking ครับ

  • ผู้สร้าง
    กระทู้
  • #31990
    PnT1MM
    Participant

    ต้องการ ranking  market cap แต่ผลที่ออกมา มันไม่ rank 1,2,3….. ตามลำดับมันกับข้ามไปเริ่มต้นค่า 27 ตามรูปจะแก้ยังไงดีครับ หรือผม code ตรงไหนผิด

    wlnum = “ALLSTOCK”;
    catNum = CategoryFind( wlnum, categoryWatchlist );
    List = CategoryGetSymbols( categoryWatchlist, catNum ) ;

    if ( Status(“stocknum”) == 0 )
    {
    StaticVarRemove( “values*” );

    for ( n = 0; ( Symbol = StrExtract( List, n ) ) != “” ; n++ )
    {
    if ( Symbol != “0SET” )
    {
    SetForeign ( symbol );
    values =MA(SQMKC(),60);
    RestorePriceArrays();
    StaticVarSet ( “values” + symbol, values );
    _TRACE( symbol );
    }
    }

    StaticVarGenerateRanks( “rank”, “values”, 0, 1224 );
    }

    symbol = Name();

    MarketCap = StaticVarGet ( “values” + symbol );
    rank = StaticVarGet ( “rankvalues” + symbol );

    Attachments:
    You must be logged in to view attached files.
กำลังดู 1 ข้อความตอบกลับ - 1 ผ่านทาง 1 (ของทั้งหมด 1)
  • ผู้เขียน
    ข้อความตอบกลับ
  • #31992
    SiamQuant Team
    Keymaster

    สวัสดีครับ สำหรับการทำ Ranking บนพื้นฐานโปรแกรม Amibroker นั้นจะมีข้อควรระวังอยู่คือ การคำนวณค่าโดยใช้ Indicator ในระหว่าง Loop การทำ Ranking นั้นอาจจะมีข้อผิดพลาดได้ ดังนั้นในส่วนนี้จึงไม่ควรมีการคำนวณระหว่าง Loop ครับ

    ประเด็นถัดมาคือ สำหรับการ Ranking นั้น การใช้ข้อมูลพื้นฐาน เช่น Market Cap. นั้นจะไม่สามารถใช้ฟังก์ชั่นปกติเช่น SQMKC() ได้ ซึ่งทีมงานได้เตรียมฟังก์ชั่นที่ลงท้ายด้วย BySymbol() ไว้ให้ ยกตัวอย่างเช่น

    values = SQMKCBySymbol( symbol, False );

    ซึ่งฟังก์ชั่นเหล่านี้จะใช้สำหรับการดึงค่าพื้นฐานใน Loop ของการ Ranking เท่านั้นครับ โดยรายละเอียดเพิ่มเติมสามารถดูได้ที่ คู่มือ หน้า 195 ครับ

    และอันนี้เป็นตัวอย่างการใช้งาน SQMKCBySymbol() ใน Loop ของการทำ Ranking ครับ

    catNum = CategoryFind( wlnum, categoryWatchlist );
    List = CategoryGetSymbols( categoryWatchlist, catNum ) ;

    if ( Status(“stocknum”) == 0 )
    {
    StaticVarRemove( “values*” );

    for ( n = 0; ( Symbol = StrExtract( List, n ) ) != “” ; n++ )
    {
    if ( Symbol != “0SET” )
    {
    SetForeign ( symbol );
    values = SQMKCBySymbol( symbol, False );
    RestorePriceArrays();
    StaticVarSet ( “values” + symbol, values );
    _TRACE( symbol );
    }
    }

    StaticVarGenerateRanks( “rank”, “values”, 0, 1224 );
    }

    symbol = Name();

    MarketCap = StaticVarGet ( “values” + symbol );
    rank = StaticVarGet ( “rankvalues” + symbol );

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

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

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

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

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

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