fbpx

รบกวนถามเรื่อง Backtesting ครับ?

  • ผู้สร้าง
    กระทู้
  • #5784
    Avatarนิรนาม
    ไม่เปิดใช้

    พอดีผมได้ลองๆสร้างระบบมาระบบนึง แล้วก็ลอง backtesting กับ Amibroker ดู
    ทีนี้ปัญหาที่ผมพบ และอยากรบกวนถามหน่อยครับ

    สมมติว่า parameters ของ ระบบไม่มีการเปลี่ยนแปลงนะครับ เปลี่ยนเฉพาะที่ผมจะบอกต่อไปนี้

    – ผมลองเปลี่ยน time frame ที่เทสไปๆมาๆ เช่น 2000-2012, 1990-2012,2010-2012 ปรากฏว่าพอดู report มันมีผลกับ %CAR มากเลย คือ

    ถ้า timeframe มากๆเช่น 1990-2012 จะได้ %CAR เยอะ
    แต่ถ้าสั้นแบบ 2010-2012 จะได้ %CAR ต่ำลงมาก

    – ลองเปลี่ยน Position Sizing เป็น 5% 10% 20% 30% (ของ Portfolio) พวก 20% 30% จะให้ %CAR สูงมาก(CAR 20%-30%) แต่มันก็ให้ Risk/Reward ratio ออกมาไม่ดีคือได้ เกิน 1.0 เลยทีเดียว

    Note:
    – ระบบผมให้ค่า expectancy เป็นบวกทั้งหมดครับ มากน้อย ตามแต่เปลี่ยน parameters
    – ระบบได้ Win% ประมาณ 35%
    Loss% ประมาณ 65%

    ทีนี้ ผมเลยอยากขอคำแนะนำหน่อยอะครับว่าเราจะเอาบรรทัดฐานไหนในการเทสระบบ
    เช่น ต้องเทสให้ได้ CAR มากๆที่สุด, เทสให้ Risk/Reward ratio ต่ำสุด, ได้ %Win %Loss ให้ใกล้ 50/50 ที่สุด, และอื่่นๆ

    คือตอนนี้ไม่รู้ว่าระบบที่สร้างขึ้นมาแ้ล้วเทสๆมาเนี่ย มันดีจริงหรือเปล่านะครับ…T_T
    เพราะปรับบางตัวมันให้ %CAR ตั้ง 25%-35% ปรับบางตัว CAR ตกเหลือน้อยกว่า 10% ก็มี…

    ทีนี้ตอนไปปฏิบัติจริงผมก็ไม่มั่นใจนะครับว่าเราจะไว้ใจสัญญาณของระบบเราได้หรือไม่?

    พร่ามยาวไปนิดนะครับ…

กำลังดู 25 ข้อความตอบกลับ - 26 ผ่านทาง 50 (ของทั้งหมด 88)
  • ผู้เขียน
    ข้อความตอบกลับ
  • #5847
    Avatarนิรนาม
    ไม่เปิดใช้

    ใช่ครับ อยากทำ Backtest มาก แต่ก็ทำไม่เป็นครับ 555

    แต่ผมก็นำวิธีการ การลงทุนมาจากรูปแบบอื่นๆที่มี MAX DD น้อย และเหมาะกับสไตล์การลงทุนของตัวเอง

    ไม่ทราบคุณ AonzZung พอมีการเขียน formula ของ Amibroker ที่เป็นภาษาไทยไหมครับ เพราะพื้นฐานการเขียนภาษาผมไม่มีเลยจริงๆ

    อยากศึกษาเพื่อนำมาทำการ Backtest และ Scan หุ้นที่ต้องการครับ

    เพราะตอนนี้ผมต้องมาดูหุ้นทีละตัวๆ เพื่อคัดหุ้นจาก Value ของหุ้น ^^”

    แต่เห็นด้วยครับ ของๆเรา มันก็จะเป็นของๆเราวันยังค่ำครับ 🙂

    #5846
    Avatarนิรนาม
    ไม่เปิดใช้

    manual ภาษาไทยไม่มีเลยอะครับ อ่านแต่ตัว manual ภาษาอังกฤษคับ ลองอ่านภาษาอังกฤษก็ได้นะครับ มันไม่ซับซ้อนมาก
    ถ้าพื้นฐานไม่มีเริ่มๆอาจจะงงๆ แต่ผมว่าไม่ซับซ้อนมาก ส่วนใหญ่เป็นฟังชั่นเรียกใช้ได้เลยครับ
    แต่ถ้า advance ก็คงต้องเขียนเอง ทีนี้จะซับซ้อนละ ^_^

    #5845
    Avatarนิรนาม
    ไม่เปิดใช้

    พอดีผมได้เขียนโค้ดที่ช่วยเช็คไม่ให้มีการ trade ในช่วงเวลาพิเศษของหุ้นรายตัวเช่น แตกพาร์, เพิ่มทุน, รวมพาร์ ฯลฯ เพราะเวลาทำ Backtest แล้วเราอาจจะเจอการขาดทุน หรือกำไรแบบมหาศาลได้ในวันเด๊ว(ซึ่งมันไม่ได้เกิดขึ้นจริง) ดังนั้นเราจะเอาให้ช่วงเวลาพวกนี้ออกไปจากการเทรดครับ จะทำให้ Backtest ใกล้เคียงสถานะการจริงมากขึ้น

    เอามาแชร์เล่นๆครับ เผื่อใครสนใจ
    Idea คือถ้ามีสัญญาณ Buy ในช่วงหนึ่งเดือนก่อนเกิด Special event แล้วให้ Cancel สัญญาณ Buy ในช่วงนั้นทั้งหมด

    // Exclude Trade on Specific Period of Specific Stocks
    function isSpecialEventException()
    {
    result = False;
    maxDateTime = 0;
    minDateTime2 = 0;
    if( Name()==”CPALL”)
    {
    //Event Date “2012-May-02”
    //Must not buy CPALL betweeb “2012-Apr-02” and “2012-May-02”
    maxDateTime = DateTimeConvert( 0, StrToDateTime(“2012-May-02”) );
    minDateTime2 = DateTimeConvert( 0, StrToDateTime(“2012-Apr-02″) );
    }
    if( Name()==”AGE”)
    {
    //Event Date – Split Pars 23/9/2011
    //Must not buy between “2012-Apr-02” and “2012-May-02”
    maxDateTime = DateTimeConvert( 0, StrToDateTime(“2011-Sep-23”) );
    minDateTime2 = DateTimeConvert( 0, StrToDateTime(“2011-Aug-23″) );
    }
    if( Name()==”NIPPON”)
    {
    //Event Date – Increase Capital Stocks 4/7/2012
    //Must not buy between “2012-Apr-02” and “2012-May-02”
    maxDateTime = DateTimeConvert( 0, StrToDateTime(“2012-Jul-4”) );
    minDateTime2 = DateTimeConvert( 0, StrToDateTime(“2012-Jun-4″) );
    }
    if( Name()==”NMG”)
    {
    //Event Date – Increase Capital Stocks 4/7/2012
    //Must not buy between “2012-Apr-02” and “2012-May-02”
    maxDateTime = DateTimeConvert( 0, StrToDateTime(“2011-Jun-24”) );
    minDateTime2 = DateTimeConvert( 0, StrToDateTime(“2011-May-24″) );
    }
    if( Name()==”SPALI”)
    {
    //Event Date – Increase Capital Stocks 4/7/2012
    //Must not buy between “2012-Apr-02” and “2012-May-02”
    maxDateTime = DateTimeConvert( 0, StrToDateTime(“2003-Mar-25”) );
    minDateTime2 = DateTimeConvert( 0, StrToDateTime(“2003-Feb-25”) );
    }

    result = IIf( DateNum() =minDateTime2,True,False);

    return result;
    }

    วิธีใช้ก็
    Buy=!isSpecialEventException() AND …Buying Rules ของท่าน…

    ปล ฟังก์ชั่น datetime ของ ami นี่มันไม่เหมือนชาวบ้านเค้าเลยนะเนี่ย เข้าใจยากมาก…

    #5844
    Avatarนิรนาม
    ไม่เปิดใช้

    เอ โพสโค้ดแล้วเพี้ยนแหะ
    บรรทัดนี้ต้องเป็น
    result = IIf( DateNum() น้อยกว่าเท่ากับ maxDateTime AND DateNum() มากกว่าเท่ากับ minDateTime2,True,False);

    #5843
    Avatarนิรนาม
    ไม่เปิดใช้

    มาไล่ตอบให้นะครับ
    – ทำงานประจำครับและไม่เกี่ยวข้องกับหุ้นเลยครับ
    ใช่ครับเล่นหมดเลยหุ้น วอแรนต์ เฟค ออปชั่น DW และ Forex แต่หลังๆ Forex ไม่ได้เล่นแล้วครับแทบจะไม่มีเวลา แค่หุ้นไทยเฉพาะตอนนี้ก็คงพอก่อน
    TRUE01CD พูดง่ายๆคือแทงขึ้นหุ้น TRUE ครับ เป็น Derivative Warrant หรือออปชั่นหุ้น

    อ่อ…ระบบที่ผมทำอยู่(สำหรับซื้อหุ้นอย่างเด๊ว) ผมได้เอา สภาพตลาด(SET) มาใช้เป็นส่วนหนึ่งของ rules of entry ด้วยนี่ผมทำได้ไม่ผิดใช่มั้ยครับ?
    – ทำได้ครับ ไม่มีข้อจำกัดอยู่แล้วครับ ที่ผมห่วงคืออย่ายัดอภิมหาสมการใส่ตูมๆๆๆเพื่อ Curve Fit ให้มันมากไปครับ มันจะตีกันยุบยับแล้วสุดท้ายเราจะไม่ได้อะไรและเหนื่อยเปล่าครับ โดยเฉพาะเวลาตลาดอยู่นอกเหนือสิ่งที่มันเคยเจอมา ฉะนั้นออกแบบให้มันเรียบง่ายไว้ดีที่สุดครับ

    Monte Carlo / Walk Forward Test
    – ลอง Export ผลการเทรดแล้วใช้โปรแกรม TradeSim หรือ Market System Analyzer มาช่วยวิเคราะห์ Monte Carlo ให้จะสะดวกกว่าครับ ส่วนคอนเซ็ปเข้าใจถูกแล้วครับ หลักการง่ายๆคือ เราเป็นคนสร้างโมเดลทำนายแนวโน้มหุ้นขึ้นมาแล้วเราอยากรู้ว่ามันเก่งกาจแค่ไหน เราก็แกล้งมันด้วยการยัด Input ให้มันด้วยวิธีการมั่วสุ่มครับ เช่น มั่วจุดซื้อ มั่วจุดขาย มั่วตัวหุ้น มั่วช่วงเวลาทดสอบระบบ ฯลฯ ทีนี้พอเราสุ่มด้วยจำนวนที่มากๆและมากพอ ในทางสถิติเราจะสามารถเอาผลมาบอกว่าระบบเราเชื่อมั่นได้แค่ไหนครับ เช่น เราเชื่อมัน 95% ว่าระบบเราให้ผลตอบแทน 30% ต่อปี บวกลบ 0.5% อะไรทำนองนี้ครับ มันก็เหมือนตอนเรียนนั่นแหละครับ เพียงแต่ตอนนี้เรางงเฉยๆว่าชีวิตจริงมันเอามาใช้ยังไง

    ที่อยากให้เน้นหนักจริงๆคือจิตใจครับ Psychology เรามักจะหาระบบที่ให้ผลตอบแทนสูงอยู่เสมอโดยกล้ายอมรับความเสี่ยง ระบบพวกนี้ย่อมแลกกับต้นทุนทางเวลาและต้นทุนทางจิตใจที่สูงครับ เราอาจทนอยู่กับมันได้สักพักจนถึงจุดๆหนึ่งที่ใจเราจะรับไหวแล้วเราก็จะเริ่มจิตเสื่อม เช่น เจอ Drawdown เข้าไป 20 ล้าน 2 ปี ในตอนที่อายุ 50 ปี เงินจำนวนนี้เราได้ทั้งเบนซ์ขับได้ทั้งคอนโดหรูๆอยู่สบายไปมากกว่า 20 ปีจนเราตาย ทั้งๆที่เมื่อเทียบกับเงินต้นแล้วมันอาจเป็นแค่ MaxDD 20% ก็ได้ครับ ดังนั้นเมื่อถึงจุดๆหนึ่งเราก็จะหันมาสร้างระบบที่ให้ผลตอบแทนกลางๆความเสี่ยงกลางๆแต่ได้ความสม่ำเสมอมาแทนครับ ผมเองก็ไม่อยากเห็นเรามีสภาพจิตใจแบบนั้นตอนอายุ 50 แล้วต้องมานั่งสร้างระบบเทรดหุ้นใหม่ๆ ซึ่งตอนนั้นเราก็แก่เกินกว่าจะทำไหวแล้วครับ

    #5842
    Avatarนิรนาม
    ไม่เปิดใช้

    ขอบคุณคุณ Coppuck ทีี่มาช่วยตอบให้อีกครั้งครับ ^_^

    ผมก็ทำระบบพังไปหลายตัวแล้วครับ เรื่องที่จับสูตรนู่นนี่ยัดใส่กันเต็มไปหมด สุดท้ายเน่าไปเลย โค้ดก็เละ ผลเทสก็แย่กว่าเก่า >_<

    ตอนนี้ผมเลยพยายามทำให้มัน simple แต่มีประสิทธิภาพแทน แล้วก็ไม่เ้น้นเรื่อง %CAR มากนัก โดยจะพยายามเน้นที่ CAR/MDD ที่เหมาะสม, %MDD ที่ต่ำที่สุดที่จะทำได้โดยไม่ให้ CAR ลดจนเกินไป, %Win ให้ได้ 40-50% เพื่อช่วยให้จิตใจไม่ต้องกดดันจากการเจอ loss มากเกินไป, และก็จำนวนการเทรดน้อยๆ ผมไม่อยากต้องมานั่งเทรดเยอะๆจนเกินไป มันเครียด ถึงแม้เทรดน้อยลง CAR จะลดลง แต่ก็น่าจะเป็นผลดีก็สภาพจิต

    ตอนนี้พยายามทดลองระบบ 2 ระะบบที่ผมออกแบบไว้ ตัวนึงเทรดมากหน่อย ตัวนึงเทรดน้อยหน่อย หวังว่าน่าจะให้ผลลัพธ์ออกมาไม่แย่นัก ^_^

    #5841
    Avatarนิรนาม
    ไม่เปิดใช้

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

    ผมเองก็ใช้หลักๆอยู่สองสามระบบเช่นกัน ระบบเล่นหุ้นและอนุพันธ์ของหุ้น, ระบบ SET Index เล่นเฟค กองทุนรวม LTF ออปชั่น และเสริมด้วยหุ้นพื้นฐานดีๆมีปันผลจงถือลืมครับ

    อยากให้ลองอ่านนี่ดูครับ เทรดเดอร์ 5 ขั้น http://www.fxcen.com/2009/12/5-steps.html ผมชอบคอนเซ็ปนี้มากเพราะมันตรงกับชีวิตจริงและหลักธรรมครับ สรรพสิ่งย่อมมีเวียนว่ายตายเกิด ถ้าเราเข้าใจธรรมชาติ มองมันให้เป็นธรรมชาติ เราจะบรรลุหรือหลุดพ้นครับ

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

    #5840
    Avatarนิรนาม
    ไม่เปิดใช้

    ลืมบอกประเด็นสำคัญไปครับ ได้กำไรอย่าลืมทำบุญด้วยนะครับ ยิ่งให้ยิ่งได้ครับ ยิ่งได้ยิ่งต้องให้

    เป็นการพัฒนาจิตใจ ฝึกสมาธิ สติ ปัญญา และมันคือการ Sharpen the Saw ด้วยครับ

    #5839
    Avatarนิรนาม
    ไม่เปิดใช้

    ขอบคุณครับ ^_^

    #5838
    Avatarนิรนาม
    ไม่เปิดใช้

    คุณ Coppuck เทรดหลากหลายมากเลยครับ เด๊วผมคงต้องลองๆศึกษาดูบ้าง เผื่อว่าอนาคตอาจจะเทรดบ้าง
    ขอบคุณสำหรับบทความด้วยครับ เดีวจะตามไปอ่านคับ ^^

    อยากบอกว่าตอนนี้ทำตามระบบมาซักพักแล้ว รู้สึกสบายใจสบายกายมากขึ้น พอลองสำรวจตัวเอง เมื่อก่อนเหมือนมวยวัด มั่วๆไม่เป็นระบบ
    บางวันบ้าหน่อยก็นั่ง refresh port มันทั้งวัน ดูราคาขึ้นลงแล้วก็อารมณ์แปรปรวนไปๆมาๆ ซื้อขายตามอารมณ์…
    เข้าเว็ปบอร์ดเป็นบ้าเป็นหลัง งานการไม่ทำ นั่งดูว่าวันนี้มีใครอัพเดตอะไรเกี่ยวกับหุ้นเราบ้างมั้ย…
    รู้สึกว่าเสียเวลาไปกับเรื่องที่ไม่มีประโยชน์มากมาย แถมกำไรที่ได้มาก็เหมือนจะไม่คุ้มกับสุขภาพกายสุขภาพจิตที่ใช้ไป…

    เด๊วนี้พอมีระบบแล้ว มีเวลามากขึ้น แทนที่จะเอาเวลาไปทำแบบนั้น กลางวันก็ทำงานประจำ มีเวลาก็เอาเวลามาพัฒนาระบบบ้าง หาบทความ หาความรู้อื่นๆอ่านบ้าง เว็ปบอร์ดแทบไม่เข้าหรือเข้าบ้างตามอารมณ์…แล้วจากระบบที่ทำอยู่ ผมตั้งไว้ว่าซื้อตอน Open ของวันถัดไปที่เกิดสัญญาณ ก็ทำให้ผมไม่ต้องรีบร้อนอะไรเลย ระหว่างวันไม่ต้องไปนั่งดู ticker เลย(หรือดูน้อยลง แค่ เช้า เที่ยง เย็น) แล้วถ้าจะซื้อเด๊วนี้ก็ไม่คิดมากเปิดมาก็ซื้อได้เลยตามระบบไม่ต้องต่อราคาอะไรกันมาก

    …แล้วงานของผมจริงๆจะเริ่มหลังตลาดปิด เพราะระบบจะวิเคราะห์ราคาปิด ดังนั้นเราก็มาวิเคราะห์กันหลังตลาดปิด เพื่อวางกลยุทธสำหรับวันถัดไป ดูระบบหาสัญญานู่นนี่ ใช้เวลาไม่นาน เวลาเหลือไปออกกำลังกายอีก ^_^

    เด๊วนี้ก็ไม่ยึดติด หรือรักหุ้นที่เราวิเคราะห์ จนเกินไป เมื่อก่อนก็ยึดติดมากเหมือนกัน เพราะคิดว่าเสียเวลาวิเคราะห์มาอย่างดิบดีแล้ว ยังไงมันต้องขึ้นตามที่คิด ผิดทางก็ฝืนถือซะอีก…แต่ตอนนี้มองมันเป็นสินค้าตัวหนึ่งที่เราเป็นพ่อค้า ถ้าเราซื้อมาแล้วมันขายไม่ดีเราก็ไม่จำเป็นต้องฝืน ยังมีสินค้าอื่นในตลาดอีกมากมาย…

    วันนี้พร่ำเพ้อพอสมควรแล้วครับ
    ขอไปพักก่อน 555+

    #5837
    Avatarนิรนาม
    ไม่เปิดใช้

    คุยกันเยอะจนผมหาคำถามไม่เจอจริงๆครับ เหมือนคำถามมันจะหายไปหรือปล่าว แต่ก็ต้องขอบคุณคุณ Coppuck มากๆเลยนะครับที่มาช่วยทำบุญให้ความรู้แก่ทุกๆคนที่แวะเข้ามาอ่าน

    เรื่องระบบผมว่าจะสร้างให้ดีได้ต้องตอบคำถามตัวเองให้ได้ก่อนว่าเราต้องการอะไรไม่ว่าจะเป็นในเชิงปริมาณและคุณภาพครับ จริงๆผมว่าน่าจะลองเริ่มจาก Lifestyle ของเราดูก่อนก็ได้ ว่าเราอยากมีชีวิตแบบไหนอย่างไร แล้วเดี๋ยวมันก็จะค่อยๆไล่ไปหาเรื่องของรูปแบบการเทรด, ผลตอบแทนและความเสี่ยงที่เราต้องการเองครับ

    ผมคิดว่าถ้าเราเข้าใจหลักการของการเทรดและยอมรับถึงความไม่แน่นอนในตลาดได้จริงๆ แล้วค่อยๆพัฒนาระบบจากตัวเราโดยหาจุดที่มันสอดคล้องกับตลาดได้ พอทำไปสักพักเดี๋ยวเราจะไม่รู้สึกว่ามันเป็นระบบแล้วครับ เพราะเราคือระบบ … ระบบก็คือเรา มันจะเป็นอะไรที่ไม่ตะขิดตะขวงใจหรือฝืนความรู้สึกเท่าไหร่เลย เพราะมันคือสิ่งที่เราต้องการอยู่แล้ว ทุกวันนี้ผมก็ไม่ได้รู้สึกว่าผมใช้ระบบหรือฝืนอะไรก็เพราะแบบนี้แหละครับ 😀

    คนส่วนใหญ่เริ่มที่ Data แทนที่จะเป็นตัวเอง เลยเทรดยากเล่นตามระบบได้ไม่เท่าไหร่ก็ต้องกลับไปเทรดมือก็เพราะแบบนี้นะครับผมว่า ^_^

    ปล. สำนักไร้ใจผมคงอยู่ขั้น 0 ครับตอนนี้ หลายๆครั้งผมยังจำไม่ได้เลยว่าถือตัวไหนอยู่ 555 น่าเขกหัวตัวเองจริงๆ

    #5836
    Avatarนิรนาม
    ไม่เปิดใช้

    มีคำถามเก่าอันนึงครับ คุณ Coppuck มาช่วยตอบให้บ้าง แต่ผมยังไม่เคลียเรื่องโค้ดที่ผมจะเขียนนะครับ ยังไงขอคำแนะนำด้วยนะคับ


    Monte Carlo เท่าที่อ่านมา ไอเดียก็คือการเทสแบบสุ่ม ซ้ำไปซ้ำมาหลายครั้งมากๆๆๆ

    ผมก็เลยคิดว่าอันนี้มันน่าจะเป็น Monte Carlo ได้มั้ยนะครับ?

    ***ผมเพิ่มโค้ดอันนี้เข้าไปตอนเทสระบบเพื่อให้มันสุ่มเลือกหุ้นที่จะซื้อ

    PS=Optimize(“Postion Score”,1,1,y,1);
    PositionScore = mtRandomA()*PS;

    โดย y คือจำนวนครั้งในการรันเทส เช่น 1000 แล้วไปกดปุ่ม optimize แทน

    ไม่รุว่าโค้ดข้างบนจะถือว่าเป้นการทำ Monte Carlo แล้วมั้ย เพราะมันคือการสุ่มเหมือนกัน?

    ปล. คุณ Coppuck แนะนำว่่าให้ใช้ tradeSim หรือ Market System Analyser มาช่วยทำ Monte Carlo ด้วยได้
    (ผมยังไม่ได้ลอง เพราะผมหาโหลดไม่ได้เลย มีใครจะช่วยบริจาคโปรแกรมให้ผมหลังไมค์มั้ยครับ >_<)

    #5835
    Avatarนิรนาม
    ไม่เปิดใช้

    ผมคิดว่าจริงๆ Program ที่ช่วยทำ Montecarlo ในท้องตลาดทั่วๆไปจะมีอยู่ 2 สำนักหลักๆครับ

    1. คือแบบช่วยสุ่มเลือกหุ้น Random PositionScore คือเอาเวลาที่เงินไม่พอแต่สัญญาณเกินมา พวกนี้ก็จะเป็นแบบ Tradesim หรือ Code จาก Amibroker ที่อ้างมาตามด้านบน

    2. คือแบบ Trades/Equity Curve Shuffle คือนำเอา Trade ที่เกิดขึ้นหรือนำเอา Equity Curve มาตัดเป็นส่วนๆแล้วสุ่มเลือกขึ้นมาแบบ Sample With Replacement (ดึงลูกแก้วออกมาแล้วโยนเข้าไปใหม่ในกองเรื่อยๆ) พวกนี้ก็เช่น Market System Analyser หรือ TradingBlox ครับ

    จะเลือกใช้แบบไหนก็คงต้องเป็นรสนิยมของเราเพราะแต่ละแบบมีทั้งข้อดีข้อด้อยที่แตกต่างกันไป หรือไม่ถ้าทำได้ก็ทำทั้ง 2 แบบครับ แบบแรกจะเห็นภาพว่าถ้าเราสุ่มเลือกจาก Insample Data จะเป็นอย่างไร แบบที่สองจะเห็นภาพว่าถ้าอนาคตมันแตกต่างออกไปจากอดีตสักหน่อยจะเป็นอย่างไร (Time Shift)

    แต่ไม่ว่าจะเลือกแบบไหนเราต้องเข้าใจด้วยว่า Limitation ของการทำ MonteCarlo คือมันตั้งอยู่ในเงื่อนไขที่ว่า เราเชื่อว่าค่าต่างๆของระบบเช่น %win, Pay-Off, Number of Trades มันจะยังคงคงที่ในอนาคตโดยอยู่ในระดับที่ไม่แตกต่างออกไปจากผล Backtest ที่เราทำ Backtest เอาไว้เพราะพวกนี้เป็นปัจจัยหลักที่โปรแกรมจะนำไปทำ MonteCarlo ครับ ^_^

    #5834
    Avatarนิรนาม
    ไม่เปิดใช้

    ข้อแีรกนี่ผมพอเข้าใจนะครับ

    แต่ข้อสองนี่ผมไม่ค่อยเข้าใจศัพท์เทคนิคหนะคับ >_< ที่ว่า "Trades/Equity Curve Shuffle" "Equity Curve มาตัดเป็นส่วนๆ" "Sample With Replacement" แล้วมันคือเท่ากับการดึงลูกแก้วออกมาแล้วโยนกลับไปใหม่ยังไงครับ?

    ถ้าตามที่คุณ Mod บอก แสดงว่าก่อนนำระบบมาทำ Monte Carlo นั้น ให้เอาระบบไป optimize parameter ต่างๆมาก่อนให้เรียบร้อย จนพอใจ ช่ายมั้ยครับ เพราะ param พวกนั้นเราจะไม่เปลี่ยนอีกแล้วตอนมาเทส Monte Carlo เพราะการเทส Monte Carlo ก็เหมือนการเทสความ Robust หรือ Stability ของระบบ(ประมาณเราเอารถเราไปเข้า test car ปะคับ?)

    #5833
    Avatarนิรนาม
    ไม่เปิดใช้

    แบบที่ 2 คือเราเอา Trade List ที่เกิดขึ้นจากระบบมาตัดต่อกันใหม่แบบ Random ครับ ที่ใช้เป็น Sample With Replacement คือการนำเอา Trade ที่สุ่มขึ้นมาแล้วโยนกลับเข้าไปในกล่องเพื่อสุ่มใหม่อีกทีหนึ่งครับ การจัดเรียงลำดับ Sequence ของผล Trade ใหม่จะทำให้เห็นสิ่งที่สำคัญมากๆสิ่งหนึ่งคือ Drawdown ที่จะเกิดขึ้นเพราะแม้ขนาดว่าเรามีผลการเทรดเหมือนๆกันอยู่ 2 กลุ่มแต่ลำดับไม่เหมือนกันค่าของ DD จะแตกต่างกันออกไปครับ

    การ MonteCarlo พูดภาษาบ้านๆคือเหมือนการพยายามหาความแน่นอนจากความไม่แน่นอนครับ คือ Input สุ่มเข้าไปแล้วหา Distribution การกระจายตัวของผลลัพธ์ออกมา แล้วก็อาจนำมาหา Confident Level จากระบบการลงทุนของเราเช่นว่า xx% ของผลจาก MonteCarlo มีค่า CAR เท่าไหร่มี MaxDD เท่าไหร่ประมาณไหนครับ

    ถ้าผลออกมาไกล้เคียงกันไม่แตกต่างกันเกินไปก็จะเห็นถึงความเสถียรของระบบครับ ถ้ามันกระจัดกระจายไม่เป็นกลุ่มเป็นก้อนเลยก็ต้องระวังเป็นพิเศษเพราะในอนาคตรายละเอียดมันย่อมแตกต่างจากเดิมไปบ้างไม่มากก็น้อย เราจึงต้องการระบบที่มันให้ค่าที่มันไกล้เคียงกันออกมาเยอะๆครับเพราะจะช่วย Safe เราจากความไม่แน่นอนออกไปได้ส่วนหนึ่ง

    ปล. จริงๆถ้าเราตั้งต้นด้วยการหา Entry หรือตัวแปรที่มีความเสถียรมากๆมาเป็นรากฐานของระบบ (ลองดู Shape ของผลตอบแทนเวลาปรับ Optimize Parameter) เวลาทำ Stress Test เช่น Walk Forward หรือ MonteCarlo มันจะออกมาค่อนข้างดีครับ แต่ถ้ามั่วใส่อภิมหาสมการอย่างที่คุณ Coppuck ว่าไว้ผลก็จะออกมาไม่สวยเท่าไหร่ครับ

    #5832
    Avatarนิรนาม
    ไม่เปิดใช้

    ขอบคุณ คุณ Mod ครับผม เดียวไงว่างๆ จะลองทำ Monte Carlo ดูครับ จะได้เข้าใจชัดเจนขึ้น ^_^
    แล้วอาจจะมีคำถามมารบกวนคุณ Mod อีกครับ >_<

    #5831
    Avatarนิรนาม
    ไม่เปิดใช้

    สิ่งที่คุณ Mod กับคุณ Coppuck สอนมา ไม่ได้เสียแรงเปล่าแน่นอนครับ
    เลยขออัพเดตผลการทดลองระบบที่ลองพัฒนาอยู่ซักนิดครับ

    เนื่องจาก ระบบให้สถิติ Avg Bar Held ที่ประมาณ 15 bars
    รูปที่แนบจิงเป็นสถานะพอร์ตทดลองหลังจากซื้อตอนมีสัญญาณ (ระหว่างทางก็มีปรับบ้างเล็กๆน้อยๆ) และถือมาประมาณ 15 bars ครับ

    แต่มันอาจจะเป็นเำพราะว่าช่วงนี้ตลาดเป็นขาขึ้นก็ได้ เลยทำให้มันดูดี
    แต่ยังไงก็ตามระบบที่สร้างมาก็เพื่อส่งสัญญาณ Buy Signal และเน้นเฉพาะช่วงตลาดดีเท่านั้น…

    #5830
    Avatarนิรนาม
    ไม่เปิดใช้

    ตลาดขาขึ้น คุณมดเคยบอกไว้อย่างเหมาะเหม็งว่ามันเป็นเบาะชั้นเยี่ยมครับ ดีแล้วครับ ผมก็ชอบเล่นขาขึ้นมันง่ายดีครับ
    ปอดคุณดูดีหายเป็นมะเร็งแล้วดีใจด้วยครับ ส่วนปอดผมลืมไปแล้วว่ากี่ bar น่าจะประมาณ 25-30 ได้มั้งครับ เอ้า..ลูกศิษย์คุณมดรายงานปอดหมดแล้ว กดดันให้คุณมดโชว์บ้างดีกว่า
    อย่าลืมฝึกให้เป็นสำนักไร้ใจนะครับ แล้วก็ถ่ายทอดความรู้วิชาให้คนอื่นๆแบบคุณมดด้วยครับ

    ฝากถึงหลายๆคนที่แอบอ่านแต่ไม่ได้โพสต์นะครับ มีอะไรก็ถามได้คุณมดใจดีไม่กัดครับ ผมก็ยินดีตอบให้ครับ แต่เรื่องเขียนโปรแกรมโค้ดที่ซับซ้อนต้องถามคุณมดล่ะผมไม่ถนัดเลย
    แล้วถ้าไม่รู้จะเริ่มยังไงแต่อยากเทรดเป็นระบบ ให้ลองอ่านบทความคุณมดดูไล่จากล่าสุดไปเก่าสุดก่อนก็ได้ครับ อ่านหลังๆสุดก่อนผมเกรงว่าจะมึนตึ้บจนหมดกำลังใจซะก่อน
    และอย่าเชื่อจนกว่าจะได้ลองเองกับมือตัวเองนะครับ

    #5829
    Avatarนิรนาม
    ไม่เปิดใช้

    มีระบบในใจแล้วครับ แต่สงสัยอยู่ 2 เรื่องครับ

    1. จากพอร์ตคุณ Coppuck น่าจะเป็นการสแกนหุ้นที่ทำนิวไฮ 20 วันหรือเปล่าครับ ? ตอนนี้ผมก็ทำแบบนี้อยู่ แต่ละวันมีหุ้นทำนิวไฮหลายตัว ทั้งเป็นเวฟแรก และ เวฟสอง ตอนนี้ผมเลือกเฉพาะหุ้นที่เบรค 20 วันเป็นวันแรก เพราะหุ้นมีจำนวนเยอะเหลือเกิน แบ่งซื้อกันไม่หมด ตอนนี้มีหุ้นอยู่ 10 ตัว แต่หลายครั้งที่หุ้นเบรค 20 วัน ที่ผมไม่ได้ซื้อกลับขึ้นเอาๆ T_T เลยอยากถามว่าใช้หลักเกณฑ์อะไร ในการสแกนหุ้นครับ?

    สำหรับผมเลือกเป็นหุ้นใน SET 100, ราคาไม่เกิน 20 บาท, Value วันแรกที่เบรคไม่เกิน 50m ลองแชร์ไอเดียกันครับ

    2. ผม copy formula ที่ใช้กับ Amibroker มาจากที่หนึ่ง ซึ่งจำเว็บไม่ได้ครับ

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

    Liquidity = MA( C * V, 21 );
    New20DayHigh = High == HHV( High, 20 );
    New10DayLow = Low == LLV( Low, 10 );
    Filter = Liquidity >= 1000000;
    AddColumn( New20DayHigh, 20 Day High, 1.0 );
    AddColumn( New10DayLow, 10 Day Low, 1.0 );

    #5828
    Avatarนิรนาม
    ไม่เปิดใช้

    มารอดูพอร์ตมดด้วยคน อิอิ…

    #5827
    Avatarนิรนาม
    ไม่เปิดใช้

    2. ผม copy formula ที่ใช้กับ Amibroker มาจากที่หนึ่ง ซึ่งจำเว็บไม่ได้ครับ

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

    Liquidity = MA( C * V, 21 );
    New20DayHigh = High == HHV( High, 20 );
    New10DayLow = Low == LLV( Low, 10 );
    Filter = Liquidity >= 1000000;
    AddColumn( New20DayHigh, 20 Day High, 1.0 );
    AddColumn( New10DayLow, 10 Day Low, 1.0 );


    มาแก้ให้นะคับ
    แก้เป็น

    Liquidity = MA( C * V, 21 );
    New20DayHigh = High == HHV( High, 20 );
    New10DayLow = Low == LLV( Low, 10 );
    Filter = Liquidity >= 1000000;
    AddColumn( New20DayHigh, "20 Day High", 1.0 );
    AddColumn( New10DayLow, "10 Day Low", 1.0 );

    ผมยังไม่ได้ลองเช็คนะ แต่คิดว่าไม่ error ละ พอดีผมรีบ อิอิ

    #5826
    Avatarนิรนาม
    ไม่เปิดใช้

    คุณ Coppuck สำนักไร้ใจ นี่ เราควรจะไร้ใจกับเรื่องอะไรบ้างครับ?

    #5825
    Avatarนิรนาม
    ไม่เปิดใช้

    เรื่องแสกนหุ้นนี่ก็ยากแฮะผมถ่ายทอดลำบาก เพราะเขียนให้ใช้ประสบการณ์ตัวเองเป็นส่วนหนึ่งของระบบด้วยครับ เพื่อให้ไดนามิคกับตลาด
    ถ้าหุ้นมีหลายตัวพร้อมๆกัน ผมจะเป็นคนเลือกเองว่าจะคัดตัวไหนเข้าปอด โดยจะขึ้นกับสภาพตลาด มุมมอง ประสบการณ์ ข่าว และสัญชาตญาณครับ

    ส่วนปอดนี้ไม่ได้ใช้การเบรกไฮเลยครับ ความจริงผมก็ชอบนะฟังก์ชั่น HHV เรียบง่ายดี

    เรื่องสำนักไร้ใจ เด๋วได้ฝึกแน่ๆตอนเป็นขาลงครับ … ไม่ต้องทำอะไรมากมาย ประคองจิตใจให้รอดแล้วทำตามระบบให้ได้ก็น่าจะพอครับ

    ปล. คุณ Unsign ผมว่าต้องโชว์ปอดมหาเทพของคุณมาช่วยกดดันก่อนครับ โดยเฉพาะอย่างยิ่งเด้ง UMI หรือหมู BLAND … สดๆร้อนๆ

    #5824
    Avatarนิรนาม
    ไม่เปิดใช้

    แหม.. คุณ Coppuck ก็ว่าไป
    ฝีมือการลงทุนผม อยู่ใน level ล่างๆเองครับ …

    ตอนนี้หุ้นขาขึ้น ก็เลยพอมีแปะบ้าง
    เดี๋ยวตอนขาลง จะมี Series หนังชีวิตอันกรอบแกบแทนครับ T__T

    #5823
    Avatarนิรนาม
    ไม่เปิดใช้

    อะไรนะครับ ฝีมือการลงทุน อยู่ในระดับที่ leverage เป็นแค่เรื่องล่างๆเลยหรอครับ โหดจริงๆนับถือเลย 😀

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