fbpx

สอบถามวิธีเขียน Code สำหรับหาจำนวนหุ้นที่เกิดสัญญาณครับ

SiamQuant Minimal Home – White Webboard ห้องโปร : Professional Membership Support สอบถามวิธีเขียน Code สำหรับหาจำนวนหุ้นที่เกิดสัญญาณครับ

  • ผู้สร้าง
    กระทู้
  • #13958
    ojektor
    ผู้เยี่ยมชม

    ถ้าเราต้องการทราบว่าวันนี้มีหุ้นที่เกิดสัญญาณกี่ตัว เช่น วันนี้มีหุ้นที่ MACD มากกว่า 0 กี่ตัว ต้องเขียน Code ยังไง รบกวนผู้รู้ด้วยครับ ขอบคุณครับ

กำลังดู 7 ข้อความตอบกลับ - 1 ผ่านทาง 7 (ของทั้งหมด 7)
  • ผู้เขียน
    ข้อความตอบกลับ
  • #13959
    Koedkao Peeratiyuth
    Participant

    สามารถใช้คำสั่ง Exploration ใน Amibroker ได้ครับ โดย code ในการ Explore ง่ายๆคือดังนี้ครับ

    Filter = MACD() > 0; //ส่วนนี้จะเป็นการใส่ Condition สำหรับให้คัดกรองหุ้นออกมา ในกรณีที่ถามมาคือ MACD มากกว่า 0

    AddColumn(MACD(), “MACD”) //ส่วนนี้จะเป็นการเพิ่มเติม แถวข้อมูลที่เราต้องการให้แสดงในหน้า Result โดย Default จะมี Symbol และวันที่ของหุ้นอยู่แล้ว

    อย่าลืมตั้งค่า Range ใหม่จาก From to Date เป็น Recent Day/ Recent Bar นะครับ เพื่อที่จะ Explore แค่วันเดียว (Bar เดียว)

     

    ข้อควรระวังคือบางทีถ้าหุ้นหยุด trade ไป แต่วันสุดท้ายมีสัญญาณ จะทำให้มาอยู่ใน List ด้วย อย่าลืมดูวันที่นะครับ 🙂

    #13960
    ojektor
    ผู้เยี่ยมชม

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

    #13962
    Koedkao Peeratiyuth
    Participant

    ถ้าต้องการแบบนั้นให้ ปรับค่า Range จากหน้า Analysis เป็น From to Date ครับ แล้วใช้ Watch List เป็นตัวกรองรายชื่อหุ้นที่สนใจครับ

    #13964
    ojektor
    ผู้เยี่ยมชม

    ขอบคุณครับ

    #13968

    ใช้คำสั่ง AddToComposite() ได้เลยครับ เช่น

    buy = cross( macd(), 0 );
    sell = cross( 0, macd() );

    AddToComposite( buy, “~signalCount”, “V” );

    ประเด็นคือคำสั่งนี้จะช่วยสร้างดัชนีสัญญาณรวมจากระบบใน Watchlist ที่เรากำหนดไว้ได้เลย (ต้องกด Scan นะครับ) อย่างไรก็ตาม อย่าลืมว่าถ้าเราใช้วิธีการเลือก Watchlist ที่จะให้ Scan นั้น ค่าที่ได้ในอดีตจะคลาดเคลื่อนอยู่พอสมควร เนื่องจากในอดีตนั้นหุ้นบางตัวในตอนนี้อาจจะไม่ได้อยู่ใน Watchlist ในอดีตก็ได้ เช่นหากเราเลือก Watchlist เป็น SET50 หรือ SET100 จำนวนสัญญาณก็จะต่างกัน ดังนั้น เราจึงควรใช้ค่า MICA หรือ Market Index & Corporate Action ของ SiamQuant ซึ่งเป็นข้อมูลที่บันทึกว่าหุ้นตัวใดๆอยู่ในดัชนีอะไรในวันนั้น ในการเขียนร่วมกันไปด้วยครับ เช่น

    //Composite Formula

    inSET50 = SQMKT() == 1;

    buy = cross( macd(), 0 ) AND inSET50;
    sell = cross( 0, macd() );

    AddToComposite( buy, “~buySignalCount”, “V” );

    //Composite Plot

    graphSig = Foreign( “~buySignalCount”, “V” );
    Plot( graphSig, “Buy Signal Count”, colorBlack, style=styleLine);

    โดยที่รูปด้านล่างเป็นการเปรียบเทียบระหว่างการสร้าง Composite จากค่า inSET50 ที่ได้จาก MICA กับ Static Watchlist ของ SET50 ซึ่งจะเห็นได้ว่ามันมีความแตกต่างกันอยู่พอสมควรครับ

    ซึ่งวิธีนี้จะทำให้เราได้สัญญาณจากหุ้นที่อยู่ใน SET50 จริงๆในขณะนั้น ไม่ใช่การได้สัญญาณจาก Watchlist ที่ตายตัวนั่นเองครับ

    โดยทั้งนี้ ถ้าเราอยากดูสัญญาณจากหลายๆ index ร่วมกันก็สามารถเขียนเพิ่มเติมง่ายๆจากค่า MICA ได้ แล้วเราก็จะได้ภาพประมาณแบบนี้ออกมาครับ (ผมยังไม่แปะโค้ดลงนะครับ มันเขียนง่ายแต่ยาวพอสมควรในกระทู้ครับ 55)

    ไม่แน่ใจว่าใช่อย่างที่อยากได้หรือปล่าว ยังไงลองดูที่นี่เพิ่มเติมได้ที่ Amibroker Manual ครับ

    https://www.amibroker.com/guide/a_addtocomposite.html

    #13969
    ojektor
    ผู้เยี่ยมชม

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

    #13970
    Amibroker Platform
    Participant

    เยี่ยมคับ

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

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

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

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

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

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