4-5 การตั้งค่าใน Optimization ให้เหมาะสม 2/2

การตั้งค่าใน Optimization ให้เหมาะสม โดยในบทนี้จะกล่าวต่อเนื่องมาจากบทที่แล้ว โดยทำการ ปรับปรุงค่าเพิ่มเติมในส่วนของ ApplyStop เพื่อปรับปรุงผลลัพธ์ที่มีประสิทธิภาพได้ดียิ่งขึ้นต่อไป

จุดประสงค์: การตั้งค่าใน Optimization ให้เหมาะสม

  1. เข้าใจการปรับแต่งค่าให้กับระบบ
  2. เข้าใจเทคนิค การปรับแต่งค่าให้ระบบ
  3. เข้าใจถึงคำสั่ง Optimize เพื่อทำการปรับแต่งค่า

เนื้อหา: การตั้งค่าใน Optimization ให้เหมาะสม

ในบทนี้จะกล่าวต่อเนื่องจากบทที่แล้ว คือ การปรับปรุงค่าให้กับระบบ โดยบทนี้จะทำการปรับปรุงในส่วนของ ApplyStop ซึ่งจะต้องทำการเพิ่ม code ดังนี้

oSl = Optimize (“oSl”, 15, 10, 20, 5); คือ การปรับค่า โดยเริ่มต้นที่ 10 และ จบลงที่ 20 โดยจะทำการปรับเพิ่มขึ้น ชั้นละ 5 ทำให้ได้ค่าออกมา คือ 10, 15, 20
oTs = Optimize (“oTs”, 25, 20, 30, 10); คือ การปรับค่า โดยเริ่มต้นที่ 20 และ จบลงที่ 30 โดยจะทำการปรับเพิ่มขึ้น ชั้นละ 10 ทำให้ได้ค่าออกมา คือ 20, 30

ApplyStop(stopTypeLoss, stopModePercent, oSl); คือ การเพิ่มค่าฟังชั่น Optimization
ApplyStop(stopTypeTrailing, stopModePercent, oTs); คือ การเพิ่มค่าฟังชั่น Optimization

หลังจาการทดสอบแล้วจะได้ผลลัพธ์ให้ทำการเลือกหาผลลัพธ์ที่เราต้องการ ในที่นี้จะขอเลือกผลลัพธ์ ดังนี้

[1] oMaSlow = 350
[2] oMaFast = 60
[3] oSl = 15
[4] oTs = 20
[5] oPs = 10

แล้วทำการ BackTest เพื่อหาข้อผิดพลาดที่อาจจะเกิดขึ้นกับระบบ เช่น หุ้นอาจจะมีการแตกพา ข้อมูล DataBase เราอาจจะคลาดเคลื่อน และทำการตรวจสอบค่าต่างๆ ว่าผลลัพธ์ ได้ตรงตามที่เราต้องการหรือไม่ เราสามารถตรวจสอบการเข้า Order ได้ โดยทำการคลิ้กขวาที่หุ้นที่เราต้องการแล้วไปที่คำสั่ง Show arrows for actual trades เพื่อตรวจสอบว่าระบบที่เราเขียนเป็นไปตามที่เราต้องการหรือไม่ ได้อีกด้วย

วีดีโอ: การตั้งค่าใน Optimization ให้เหมาะสม

คำบรรยายวีดีโอ

ว่าจะ optimize อะไรได้อีกบ้าง ดูนี่ครับ stop loss กับ trailing stop นี่น่ะครับ อย่างตัวนี้เราควรจะใช้ตัว parameter ให้ห่างหน่อยนี่น่ะครับ optimize stop loss น่ะครับ อ่า osl เท่ากับ optimize นี่นะครับและก็ osl โดยที่ค่า default เราเป็นเท่าไหร่ครับ ใส่เป็น 15ไป แต่นี่เราจะ optimizeส่วนเนี่ย stop loss จากเท่าไหร่ จาก 10% อันนี้เป็น trend following ก็อาจจะรับได้ถึง 20% ด้วยซ้ำไปนี่น่ะครับ ยอมรับ loss ได้ถึง20% โดย step ทีละเท่าไหร่ อันนี้ step ทีละ 5 เห็นไหมครับเราไม่อยากให้มันถี่เกินไปหรือห่างเกินไปและเราก็เอาค่านี้มาใช้ เหมือนกันคราวนี้optimize ปกติผมเรียก trailing stop อ่ะ trailing stop เท่ากับ optimize นี่น่ะครับ oTs น่ะครับ แล้วก็เริ่มทีละเท่าไหร่ ตัวนี้เราจะให้เริ่มที่ 25 ก็ได้ อันนี้ default เป็น 25 เริ่มที่ 25 และก็ไปจบที่ 50 step ทีละ 5 อ่ะอย่างงี้อาจจะถี่ไปหน่อยสำหรับตัว trailing stop น่ะครับก็แล้วแต่กรณี เอางี่ test เห็นภาพรวมก่อน default 25 ไม่เป็นไร แต่ minimum เริ่มที่ 20 พอ แล้วไปสุดที่ 50 โดยเพิ่มทีละ 10 เห็นไหมครับ นี่คือจะเห็นว่า percent เหมือนกันน่ะครับ stop เป็น stop เหมือนกัน แต่ผมมองว่า stop loss เนี่ยอาจจะต้องใช้ถี่หน่อย ทีละ 5 แล้ว range ก็จะเล็กหน่อยเห็นไหมครับ แต่พอเป็น trailing stopเนี่ย ผมก็จะ range เนี่ยก็จะกว้างน่ะครับและตัวนี้ก็จะใหญ่หน่อย อ่าคราวนี้พอเรา test ไป combination ก็จะคูณเข้าไปอีกเมื่อกี้เป็น 75 ใช่ไหมครับ อันนี้มีกี่ case น่ะครับ เริ่มจาก 5 , 15, 20 นี่น่ะครับ 75 คูณ 3 121 125 อ่ะยังไม่จบน่ะครับ คูณเข้าไปอีก อันนี้มีอะไรครับ มี 20 มี 30 มี 40 มี 50 นี่น่ะครับ ถามว่าเนี่ยทำไมผมถึงต้องวิ่งถึง 50 ของตัว trailing stop อันนี้เพราะว่าอะไร เราต้องการ let profit run ถูกไหมครับ และลงมาหน่อยอาจจะขาย แต่อันนี้อาจจะเยอะไปหรือป่าว เพราะอันนี้ไม่ใช่กรณี profit ถูกป่าวครับ นี่เป็นกรณี trailing stop ok งั้นจบที่ 40 เอางี้ดีกว่า 25 ถึง40 อันนี้ก็ต้องลองพิจารณาดูน่ะครับ อ่ะดีไหม 30 ลองเขียนออกมาดูน่ะครับ 35 นี่ยัง ok 40 เยอะไปแล้วสำหรับ trailing stop ลงมา 1ใน 3 นี่ไม่ขายไม่รู้ทำไงแล้วน่ะครับไม่เอาด้วยซ้ำเอางี้ดีกว่า และก็ลอง test กรณี 20ดู เป็นกรณีนี้หล่ะ trailing stop น่ะครับ protect your prefect น่ะครับ 25 , 20 วิ่งถึง 30 เอาทีละ 10 เลยหลักๆนี่นะครับ วิ่งจาก 20 ถึง30 น่ะครับ step ทีละ 10 ก็จะมี optimize ตัวนี้มา คราวนี้ท่านก็ไปคูณกันเองน่ะครับว่าตอนนี้มีทั้งหมดกี่ combination เดี๋ยวผมจะ run optimization ให้ดู นี่นะครับ 450 optimization step ก็คือ combination น่ะครับ ดูกันเพลินเลยครับ อ่ะไป แล้วก็มาที่นี้น่ะครับ รอให้มัน run เกินหน้ากระดาษ ตัว scroll bar จะโผล่ขึ้นมาน่ะครับ อ่ะเดี๋ยวผมจะขอหยุดแต่เพียงเท่านี้ดีกว่าแล้วเดี๋ยวผมจะกลับมาเปิดใหม่ตอนที่มัน run เสร็จแล้ว อ่ะคราวนี้มัน optimize เสร็จแล้วน่ะครับ อ่ะเดี๋ยวผมลอง scroll ขึ้นมาข้างบนก่อน แล้วก็ source โดย RAR กับ MDD ที่นี้เดี๋ยวผมคลิ๊กคร่าวๆตรงนี้น่ะครับแล้วกด shift ค้างไว้ ลงมาถึง 350 ตรงนี้น่ะครับ เนี่ยจะเห็นว่าในส่วนนี้มี Max.sys Drawdown เนี่ยที่ใกล้เคียงกันอยู่ประมาณต่ำกว่า 13 เราชอบอยู่แล้วน่ะครับ ต่ำกว่า 15 ก็ถือว่า ok ถือว่า ok น่ะครับ ต่ำกว่า 10 ต้องพิจารณาหน่อยว่าเป็นกรณีฟลุ๊กหรือป่าวน่ะครับ อ่า CAR/MDD เนี่ย อ่ะเกิน 1.5 ถือว่าใช้ได้น่ะครับ 2 ถือว่าดี 2.5ถือว่าดีมากน่ะครับ นี่ดีมากแต่ RAR/MDD ตัวนี้สูงสุดน่ะครับอ่าอันนี้ก็ว่ากันไป แล้วเราก็มาดูที่ percent อ่ะ percent return ก็เอาแค่ในชุดนี้น่ะครับก็จะเห็นว่าตรงนี้สูงสุดซึ่งนี่ครับ CAR/MDD เป็น 2.5 ที่เราชอบใช่ไหมครับเราก็ลอง source จากตัวนี้ดูบ้าง ที่นี้จะเห็นค่ามันกระจายออกไปเพราะว่านี้มาจากต้องที่เรา source RAR/MDDน่ะครับดูซิว่าตัวนี้ใช้ได้ไหม เอ่อ Max.sys Drawdown -13 % ok รับได้น่ะครับอันนี้อาจจะฟลุ๊กน่ะครับต้องลองเช็คดูอีกที แล้วจะเห็นว่าค่าที่สูงๆ ที่ได้ค่าดีๆ เราจะต้องใช้ optimize moving average slow นี่น่ะครับอยู่ที่ 350 แล้วส่วน fast อยู่ที่ 60 คราวนี้เนี่ย ตัว optimize position size เนี่ย อ่าสรุปไม่ได้อาจจะบอกเป็น 10 ก็ได้ อ่ะมาดู optimize stop loss sl stop loss ก็ยังไม่แน่ใจ แต่ optimize clearing stop เนี่ย 20% แน่นอนทีนี้ทำไงต่อเราก็เปิด code ขึ้นมาน่ะครับตัวนี้น่ะครับถูกไหมครับแสดงว่า default ที่เราบอกสรุปแน่นอนคือ 20 สรุปเลยน่ะครับ 20 ปิดทิ้งไป ตัว stop lossนี่ไม่แน่ใจอยู่ที่เท่าไหร่กระจายกันไปน่ะครับ เห็นไหมครับเพราะตัวที่ดีที่สุดใช้ 15 stop loss 15 ก็ไม่น่าเกียจถูกป่าวครับ ยอมนี่คือเราทำสรุปน่ะครับ สรุปแล้วเราเลยเอา optimize function เนี่ย comment ออกไป ออกไป ต่อมาเนี่ยตัว optimize slow นี่นะครับ moving average slow สรุปไปแล้วว่าเป็น 350 เห็นไหมครับ 350 สรุปไปแล้ว ตัว fast ก็สรุปแล้ว 60 หมดเลยเห็นไหมครับ อ่ะสรุปแล้ว 60 เอ่อใครไม่สรุปบ้าง position size อยู่ไหนเอย นี่ position size เห็นไหมครับ อยู่ที่ 10 ผมถือว่าเยอะ เยอะไปหน่อยน่ะครับ 7.5 อยู่กลางๆ อืมมต้องพิจารณาแล้วว่าจะเอายังไงดี ซึ่งตัวอื่นเราสรุปไปหมดแล้วเห็นไหมครับ comment out ไปหมดแล้ว อ่ะผมว่าเอา 5 แล้วกัน ถ้าเป็น 5 ปุ๊บเนี่ย ตัวนี้เป็น 5 MDD ต่ำมาก อ่ะว่ากันไปที่ 5 แล้วกัน 5 น่ะครับ อ่อถ้าเป็น 5 นี่ net profit หายไปเลยน่ะครับ อ่ะเอาว่าจังหวะนี้ผมโลภและกันผมเอา 10 อ่ะ อ่าเราได้ตัวนี้มา แล้วก็ run backtest ดูว่าจะได้ค่าอยู่ใน range ประมาณ 200 หรือป่าว นี่ run backtest ถูกป่าวครับ เปิดออกมาเห็นไหมครับ percent net profit อยู่ที่ 200 นี่นะครับอ่า และก็ต่อไป trade เห็นไหมครับเนี่ยออกมาแล้วว่าเรา trade 4 ปีใช่ไหมครับ4 หาร 28 ก็ประมาณ 20 นิดๆ แสดงว่าเนี่ย trade น้อยไป น้อยไปก็เสี่ยงน่ะครับ trade น้อยไป แต่อาจจะเป็นเพราะ Net profit run หรือป่าวก็ว่ากันไป นี่ครับ percent win สูงมาก ชอบน่ะครับ MDD นี่ 13 , 15 ติดลบเนี่ยชอบมาก อันนี้ 2.5 ถือว่าดีน่ะครับ อันนี้เกิน 3.5 ถือว่าดีน่ะครับ คราวนี้มาเช็คซิไอ้ตัวที่ net perfect เราเนี่ยจากตารางมีฟลุ๊กไหม scroll ดู โอ้โห มีตัวหนึ่งได้ 800 เท่าจริงไหมเนี่ย double click น่ะครับให้ตรงนี้ติดน่ะครับ double click ไปแล้ว click ขวา Show arrows on actual trades วันไหนครับ เดือน 5 ปี 2012
นี่น่ะครับ ไม่เชื่อแต่อย่าลบลู่ UMI อยู่ช่วงนั้นพอดีครับ นี่ผมมาเข้าแถวนี้ครับ น้องชายผมเข้าตรงนี้ครับไม่รู้อะไรเข้าสิง อันนี้เรื่องจริงอันนี้เป็นไปได้ ok ดีครับรอดไป อ่ะมา 180ดูซิเป็นยังไง เดือน 6 ปี 2012 เนี่ย ช่วงเนี่ยเป็นตลาดบ้านเราขึ้นน่ะครับ click ขวา Show arrow เดือน 6 เดือน6 อยู่ตรงนี้เห็นไหมครับวิ่งขึ้นมา ฝรั่งก็อัดเงินเข้ามาน่ะครับ อ่าก็เป็นไปได้ อ่ะอันนี้ลองไปดูที่ตัว report เปิดขึ้น และก็ลองไปดี equity curve ลองดูว่ามีอะไรผิดสังเกตหรือป่าวอันนี้เป็นการพิจารณาอย่างคร่าวๆน่ะครับ จะเห็นว่า strategy นี้วิ่งจังเลย ตอน 2012 อันนี้ก็ไม่ทำอะไรน่ะครับ แย่ แล้วก็วิ่งต่ออีกนิดนึง อ่ะซึ่งถามจริงๆอย่างงี้มีบ่อยไหมครับ ท่านต้องดู profit ทั้งหมดที่ท่านได้มาเนี่ย เนี่ยเราได้เท่าไรน่ะครับ 200 กว่า percent เนี่ยน่ะครับ มาจากช่วงนี้ปาไป 150 หรือป่าว 100 ต้นๆหรือป่าว ถามจริง ปี2012 กลับมาเมื่อไหร่ครับ อ่ะผมบอกท่านเลยน่ะครับถ้าไม่ 20 ปี กลับมาที ก็ 40 ปีกลับมารอบนึง เพราะฉะนั้นก็กลับมา trade ใหม่ปี 2052 น่ะครับ อ่ะไม่เป็นไร เอาเป็นว่าเราไป test strategy แล้วกันอะไรก็กลับที่เช็คดูน่ะครับ ตามที่เคยสอนไปแล้ว คราวนี้ก็อย่างที่บอกน่ะครับประเด็นสำคัญของ VDO ชุดนี้ คือเป็นการสอนให้พิจารณาในการตั้งค่าสำหรับการทำ optimization เห็นไหมครับ ว่าถ้าเป็น period พวกนี้เป็น period จะพิจารณายังไง ตัวเลขอะไรน่าเอามาใช้ อ่ะเป็น percent พิจารณา ตัวเลขประมาณไหนน่าเอามาใช้percent น่ะครับ และต่อให้เป็น percent เหมือนกันเนี่ย คนละอย่าง stop loss แค่ stop loss stopเหมือนกัน แค่คนละประเภทก็ใช้ไม่เหมือนกัน เพราะฉะนั้น stop กับตอนทำ optimize position size ก็ต้องมองต่างกัน ok น่ะครับ VDO ชุดนี้จบแต่เพียงเท่านี้ดีกว่า เดี๋ยวต่อไปเราจะมา test ตัวเนี่ย พวกเนี่ย ลอง test กับ period อื่นดูให้ท่านรู้ว่าโลกมันไม่ได้สวยงามเหมือนอย่างที่เราฝันน่ะครับ ขอบคุณครับ