fbpx

การกำหนด หุ้น วันที่ซื้อ เขียนอย่างไงครับ

  • ผู้สร้าง
    กระทู้
  • #10700
    Zinut
    Participant

    พอดีต้องการเขียนสูตร การกำหนด หุ้น และวันที่ซื้อครับ

    ตัวอย่าง กำหนด ให้ซื้อ kbank  วันที่ 17/5/2016 ราคาปิด

    แล้ว ดูผลตอบแทน จากวันที่ ซื้อ ถึงวันปัจจุบัน ทุกวัน เช่น วันที่ 18 , 19 , 20 , /5/16…….. อีก 30 วัน

    และ ดูผลตอบแทนก่อนที่เราจะซื้อ เที่ยบกับวันที่ ซื้อ เช่น วันที่ 11, 12, 13, 14 ,16 , /5/16 ………… อีก 3o วัน

    คืออยากรู้ครับ ว่า เราซื้อหุ้น ก่อน xd ผลตอบแทนเป็นอย่างไง และหลัง xd ผลตอบแทนเป็นอย่างไง

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

กำลังดู 11 ข้อความตอบกลับ - 1 ผ่านทาง 11 (ของทั้งหมด 11)
  • ผู้เขียน
    ข้อความตอบกลับ
  • #10702
    Amibroker Platform
    Participant

    ใช้ ROC ก็ได้คับง่ายๆ

    หรือ คำนวณ Profit จาก Buy เเล้ว Explore ก็จะเห็นทุกๆวันว่าเปลี่ยนแปลงไปยังไงคับ

    #10703
    Amibroker Platform
    Participant

    Buy = DateNum() == 1120214;

     

    Value = ValueWhen(Buy,C);

    Profit = -100*((C-Value)/Value);

     

    Filter = 1;

    AddColumn(C,”Close”,1.2,colorBlack,colorLime);

    AddColumn(Profit,”Profit”,1.2,colorBlack,colorLime);

     

    ลองเช็คดูคับ เเบบนี้พอได้มั้ยคับ

    #10708
    Zinut
    Participant

    ขอบคุณ ท่าน Amibroker Platform มากๆ เลยนะครับ

    กำลัง เอาไปสร้าง ต่อนะครับ พอดีเขียน โค๊ตไม่ค่อยเป็นครับ พอดีหาข้อมูลเพิ่มเติม

    เรื่องค่า DateNum()

    SYNTAX datenum()
    RETURNS ARRAY
    FUNCTION Returns the array with numbers that represent quotation dates coded as follows:
    10000 * (year – 1900) + 100 * month + day, so 2001-12-31 becomes 1011231 and 1995-12-31 becomes 951231
    EXAMPLE datenum();

     

    // Convert specific dates (e.g. June 27, 2007 - July 16, 2007) to
    DateNum
    
    myAABuyDate = ((2007 - 1900) * 10000); // Year
    myAABuyDate += (6 * 100);              // Month
    myAABuyDate += 27;                     // Day
    
    myAASellDate = ((2007 - 1900) * 10000); // Year
    myAASellDate += (7 * 100);              // Month
    myAASellDate += 16;                     // Day
    
    อย่างไร น่าจะมีคำถาม อีกเยอะเลยครับ ขอบคุณมากๆ นะครับ
    
    
    #10710
    Amibroker Platform
    Participant

    คุณ Zinut เขียน Code DateNum ทำให้เเก้ไขวันที่ได้ง่ายสุดยอดเลยคับ

    เขียนดีกว่าผมอีกคับ 555

    #10711
    Zinut
    Participant

    ผม ลอกเข้ามาครับ แต่พอมาทำเองแล้วเขียนไม่ได้

    https://www.mail-archive.com/amibroker@yahoogroups.com/msg43348.html

    You can do this by expressing the specific date as a DateNum then
    triggering a Buy/Sell/Short/Cover for a specific symbol Name when
    DateNum() == your date. You can hard code the dates in your script
    
    // Convert specific dates (e.g. June 27, 2007 - July 16, 2007) to
    DateNum
    
    myAABuyDate = ((2007 - 1900) * 10000); // Year
    myAABuyDate += (6 * 100);              // Month
    myAABuyDate += 27;                     // Day
    
    myAASellDate = ((2007 - 1900) * 10000); // Year
    myAASellDate += (7 * 100);              // Month
    myAASellDate += 16;                     // Day
    
    // Trade specific symbol for specific dates
    
    SetTradeDelays(0, 0, 0, 0);
    
    dates = DateNum();
    
    Buy = Name() == "AA" AND myAABuyDate == dates;
    BuyPrice = Open;
    
    Sell = Name() == "AA" AND myAASellDate == dates;
    SellPrice = Open;
    
    Plot(Close, "Price", colorDarkGrey, styleBar);
    PlotShapes(shapeUpArrow * Buy, colorGreen);
    PlotShapes(shapeDownArrow * Sell, colorRed);

    แต่พอผมเอามาใช่ ทำไมได้ครับ งง ตรงชื่อหุ้น ผมเขียนไม่เป็นอ่ะครับ

    #10712
    Amibroker Platform
    Participant

    ผมว่าชื่อหุ้นไปกำหนดที่ตอน Backtest เอาก็ได้คับ โดยเอาไปใส่ WatchList คับ

    #10801
    Oyoyo
    Participant

    หากจะใช้ afl ที่คุณ Zinut โพส จะกำหนดชื่อหุ้นได้ 2 วิธีครับ

    วิธีที่ 1 : กำหนดชื่อหุ้นใน Code

    แก้ code จาก

    เป็น

    โดยสามารถเปลี่ยนชื่อหุ้นที่ต้องการได้โดยใส่ใน “…” ของบรรทัดที่ 9 ครับ

    วิธีที่ 2 : กำหนดชื่อหุ้นนอก Code

    แก้ code จาก

    เป็น

    จากนั้นเลือกหุ้นที่ต้องการโดย

    1. เปิดกราฟหุ้นนั้นๆไว้

    2. เลือก Apply to *Current แทน *Filter ก่อนกด backtest ครับ (หรือจะเอาหุ้นที่ต้องการไปใส่ใน Wathclist ตามที่คุณไฮ้ว่าก็ได้ครับ)

     

    #10817
    Amibroker Platform
    Participant

    สุดยอดคับ พี่ Oyoyo

    วิธีที่เเรก ผมพึ่งรู้ว่าประกาศตัวแปรก่อนถึงใช้ได้ เพราะเเบบไม่แก้ Code กับแก้ Code เเล้ว ดูจาก Code น่าจะผลเเบบเดียวกัน

    หรือเป็นเพราะ == “” ไม่ทำงานกับ String  โดยตรง (ความรู้ใหม่)

    ส่วนใหญ่ผมกำหนด Filter ง่ายกว่าคับ

    #10818
    Zinut
    Participant

    ขอบคุณ ทั้งสองคนมากๆ เลยนะครับ ที่ให้ความรู้

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

    ผมมี ตาราง excel วันสุดท้ายการจ่ายเงิน และชื้อหุ้น ผมเลย อยากเขียน สูตร ขึ้นมาครับ

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

    คุณ amibroker platform ครับ การเขียน roc นี้อย่าไงหรือครับ //////ขอบคุณนะครับ

    คุณ Oyoyo ครับ เราให้ amibroker link กับ excel ที่เรามีได้ไหมครับ////////ขอบคุณนะครับ

    #10846
    Amibroker Platform
    Participant

    ผมไม่รู้ว่าให้เขียน ROC หมายถึงเขียนเเบบไหน เเต่เห็นพูดถึง Excel น่าจะประมาณนี้คับ

     

    P = 20;

    ROCs  = ROC(C,P);

     

    Filter = 1;

     

    AddColumn(C,”Close”,1.2);

    AddColumn(ROCs,”ROC”,1.2);

    เปลี่ยนวันที่ตัว P เอาคับ

     

    ส่วน amibroker link กับ excel ผมไม่เคยทำ มีเเต่ Explore เเล้วก็อปผลไปใส่ Excel คำนวณต่อ

    กับเขียน Winscript หรือ VBscript ใน amibroker เเล้วมันจะเขียน Excel ออกมาคับ

    #10855
    Oyoyo
    Participant

    ไม่แน่ใจว่า link ที่คุณ Zinut ว่าหมายถึงการให้ Amibroker อ่านข้อมูลจาก Excel หรือเปล่า

    ถ้าใช่ Amibroker สามารถอ่านข้อมูลจาก Excel ผ่าน DDE link ได้ครับ แต่นิยมใช้กับข้อมูลชนิด Realtime มากกว่า

    หากเป็นข้อมูลในอดีตแนะนำให้ Save เป็นไฟล์ csv หรือ txt แล้ว Import เข้า Amibroker เพื่อทดสอบจะง่ายกว่าครับ

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

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

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

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

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

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