fbpx

เขียนโค้ตแต่ไม่มีผลแสดง

  • ผู้สร้าง
    กระทู้
  • #15568
    Golf6666
    Participant

    ผมเป็นมือใหม่พึ่งเริ่มเขียนโค้ต amibroker

    ผมอยากลองเขียนโค้ตที่เป็นระบบ rotational รายสัปดาห์โดยคิด score วันพฤหัส และซื้อ-ขาย ในวันศุกร์ แต่ผลไม่แสดงผมไม่ทราบว่าต้องแก้โค้ตอย่างไรครับ (โค้ตที่เขียนอยู่ในไฟล์ที่แนบ)

    โค้ดที่เขียน

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

    สวัสดีครับ เท่าที่ลอง Code ตามด้านลน และลอง Explore ค่าก็ออกนะครับ ลองตรวจสอบดูว่า เลือกช่วงระยะเวลาไหน, มีการ Filter Data อะไรไว้หรือเปล่าครับ

    #15572
    Golf6666
    Participant

    ขอบคุณมากครับ แต่ ผม run ใน backtest ข้อมูลไม่ออกครับไม่มีการทำการซื้อขาย  ผม explore ค่าออกครับ

    #15614

    มันซื้อขายไม่ได้อยู่แล้วครับ เพราะในโค้ดไม่มีตัวแปร Buy-Sell ให้ Amibroker นำไป Process ต่อ ดังนั้นต้องใส่ Buy = …, Sell = … ด้วยครับผม ใส่ตามหลังส่วน Condition ดูนะครับ 😀

     

     

    #15615
    Golf6666
    Participant

    ขอบคุณมากครับ แต่ในความเข้าใจของผม ระบบที่เป็น rotational ไม่จำเป็นต้องมี buy, sell  ใช้แค่ Position Score รึป่าวครับ

    http://www.siamquant.com/wp-content/uploads/hm_bbpui/15615/d1qbb12j983dbamqmqs77yv9f6iy0v84.PNG

    Attachments:
    You must be logged in to view attached files.
    #15618

    โอ้ โทษทีครับ พอดีดูผ่านๆเลยพลาดไป ไม่เห็นว่าเป็น Rotational Trading Mode ของ Amibroker ถ้าเรื่องนี้ลองอ่านในลิงค์นี้ไหมครับ เป็นเรื่องของ Data Whole (หรือไม่แน่ใจว่าจริงๆแล้วคุณ Golf6666 ไปตั้งถามไว้เองหรือปล่าว :D)

    http://forum.amibroker.com/t/dayofweek-issues-in-a-rotation-strategy/2319/6

    เห็น Tomasz เค้าเขียนไว้ว่า

     

    Assumption that the “data is clean” and can be ignored is far from reality. Assumptions are not facts.

    You need to understand what you wrote and you need to understand your data. With this:

    Tradeday = DayofWeek() == 5;
    PositionScore = IIf(Tradeday, Score, scoreNoRotate);

    You are telling the program to trade only if on ALL SYMBOLS under test you have FRIDAY data present.

    In other words if ANY of your symbols has data hole on Friday, it won’t trade.
    scoreNoRotate has top precedence. If if occurs on ANY symbol it will stop trading.

    Typically you WILL have data holes.
    First check your “Pad and align” setting and CHECK YOUR DATA using the Exploration (see my previous post). Typically you will need to turn on padding to some reference symbol (like index) to ensure that your data are hole-free.

    As I explained Exploration is extremely powerful tool that you should use to understand your formula and your data. For example to count how many fridays you have in your data you can use this:

    Filter = Status(“lastbarinrange”);
    FridayQty = Cum( DayOfWeek() == 5 And Status(“barinrange”) );
    AddColumn( FridayQty, “FridayQty” );

    Ideally you should see same number in all symbols.

    If you run this with “pad and align” you will always get same number. But if you run it without “pad and align” then you will see if there are any missing Fridays.

     

    ปล. จริงๆ Rotational Backtesting Mode มันยังมีรายละเอียดหลายอย่างที่เป็น Limitation อยู่ด้วยนะครับ เช่นถ้าจำไม่ผิดเนี่ย เวลาจะปรับ slippage ต่างๆโดยใช้คำสั่ง BuyPrice =…, SellPrice =… เนี่ยมันไม่มีผล ดังนั้นจริงๆอยากแนะนำให้เขียนโค้ด Rotational แต่อยู่ในโหมดธรรมดาแบบที่ทีมงาน SiamQuant ทำดูดีกว่าครับ เหมือนจะ bug น้อยกว่าครับ

    #15621
    Golf6666
    Participant

    ขอบคุณมากครับ ผมไม่ได้โพสครับ ผมเคยลองไปดูแล้วโพสนั้นมาแล้วครับ แต่ผมก็ยังไม่ทราบว่าควรทำยังต่อไปครับ พอชี้ทางให้ผมรันออกได้ไหมครับ

    #15622

    จริงๆปัญหามันมาจากเรื่องของการตั้ง Trade Delay ใน Rotational Mode ครับ วิธีการแก้คือให้ลบส่วนโค้ด TradeDelay() ออกไป แล้วไปตั้งค่า Trade Delay ใน Backtester Setting ให้เป็น 0 ให้หมด หลังจากนั้นมันจะรันค่าออกเอง อันนี้เป็นผลที่ผมแค่ตัดส่วน Trade Delay ทิ้งไปจากสูตรนะครับ

    ปล. อย่างที่บอกไปคือโหมดนี้มันความสามารถค่อนข้างจำกัดแล้วก็มีรายละเอียดที่เค้าไม่ได้ชี้แจงไว้หลายส่วน ยังไงลองอ่านคำอธิบายจากโพสท์นี้ดูนะครับ

    http://www.siamquant.com/webboard/topic/%E0%B8%84%E0%B8%B3%E0%B8%96%E0%B8%B2%E0%B8%A1%E0%B8%88%E0%B8%B2%E0%B8%81%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%AA%E0%B8%B9%E0%B8%95%E0%B8%A3-afl-%E0%B8%82%E0%B8%AD%E0%B8%87/#post-10179

    #15625
    Golf6666
    Participant

    ขอบคุณมากจริงๆ ครับ ผมลองหาข้อมูลดูๆ มาแล้วหลายสัปดาห์แต่ก็ยังไม่แสดผล

    ผมอยากทราบอีกหน่อยนะครับ ผมเคยลองใช้สูตรแบบข้างบนที่มี Trade Delay  กับข้อมูลน้อยๆ เช่น หุ้นสัก 50 ตัวแต่ก็แสดงผลนะครับ พอจะทราบไหมครับว่าข้อมูลน้อยๆ เกี่ยวกับการ backtest ด้วยรึป่าวครับ

    ขอบคุณมากจริงๆ ครับ =D

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