จากกระทู้ที่ผ่าน ๆ มานะครับ
http://ppantip.com/topic/32061608
http://ppantip.com/topic/32071377
ผมก็ได้หาวิธีการปรับปรุงระบบอะไรต่อไรมาเรื่อย ๆ จนได้ระบบสุดท้ายคือระบบนี้ครับ
MaxOpenPositions = 20;
Positionsize=-100/20;
volume ลิมิตไว้ที่ 3% ของ volume ทั้งหมดนะครับและก็ value การซื้อขาย > 1,000,000
ปี 2004-2014
เหมือนจะดูดีนะครับแต่ถ้าเราตัดตัวที่ได้กำไรมาก ๆ 5 ตัวแรกออกไปจะได้รูปนี้แทนครับ
ผลตอบแทนลดลงค่อนข้างมากนะครับ เนื่องจากผลตอบแทนค่อนข้างขึ้นอยู่กับครั้งที่เทรดได้กำไรมาก ๆ เลยทำให้ผมยังลังเลว่าระบบนี้เป็นระบบที่ดีแล้วหรือยัง ตัวอย่างเช่น APURE, TH, KASET, TSF ที่ขึ้นแบบลากพรวดไปเลย ถ้าล่าสุดระบบของผมก็มี EA, MAX, RASA (ปี 2014-ปัจจุบัน) ซึ่งพวกนี้มันขึ้นแบบแปลก ๆ ยังไงไม่รู้ผมเลยยังไม่ค่อยมั่นใจที่จะใช้ระบบเทรด เพราะว่าถ้าไม่ชอบหุ้นพวกนี้แล้วเราไปขายกลางคันมันก็จะส่งผลกระทบต่อผลตอบแทน
แต่ที่เห็นได้ชัดในการใช้ระบบเทรดร่วมในการซื้อขายคือ Max sys. drawdown ค่อนข้างน้อยกว่าแนว buy-hold แน่นอน
แต่สำหรับหุ้นบางตัวแล้ว Buy-Hold จะได้กำไรมากกว่า
สำหรับส่วนประกอบของระบบก็จะมี
1.การเลือกหุ้น - ระบบนี้ใช้ ROC
2.สภาวะตลาด - ใช้ High-Low Index กับ MA Index
3.สัญญาณซื้อขาย - ทะลุแนวรับซื้อ - แนวต้านขาย
4.การจัดหน้าตัก
สำหรับ High-Low Index และ MA Index คำนวนคล้าย ๆ กับจากหนังสือ Point & Figure ของ Thomas J. Dorsey นะครับ
(จริง ๆ ผมอยากออกแบบระบบที่ใช้ Point&Figure นะแต่ coding ไม่เป็น)
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้//Create Market Indicator
//10-Week Moving Average Index
Above10WeekMA = Null;
Below10WeekMA = Null;
Above10WeekMA = Close > MA(Close,50);
Below10WeekMA = Close < MA(Close,50);
//High-Low Index
NewHigh = Close > Ref(HHV(High,50),-1);
NewLow = Close < Ref(LLV(Low,50),-1);
toggle=Null;
Count=0;
for(i=1;i<BarCount;i++){
if(NewHigh[i] == True){
toggle=True;Count=0;}
else if(NewLow[i]==True){
toggle=False;Count=0;}
if(toggle==True AND Count<=4){
NewHigh[i]=True;
Count++;
}
else if(toggle==False AND Count<=4){
NewLow[i]=True;
Count++;
}
}
//Create Index
AddToComposite(IIf(Above10WeekMA==True,1,0),"~10-WeekMAIndex","1",atcFlagDeleteValues|atcFlagEnableInBacktest);
AddToComposite(IIf(Below10WeekMA==True,1,0),"~10-WeekMAIndex","2",atcFlagDeleteValues|atcFlagEnableInBacktest);
AddToComposite(IIf(NewHigh==True,1,0),"~High-LowIndex","1",atcFlagDeleteValues|atcFlagEnableInBacktest);
AddToComposite(IIf(NewLow==True,1,0),"~High-LowIndex","2",atcFlagDeleteValues|atcFlagEnableInBacktest);
Buy=False;
Sell=False;
MAIndex คำนวนโดยการนำหุ้นทุกตัวมาคำนวน
1.ถ้าหุ้นปิดเหนือ MA(close,50) จะได้ค่าเป็น 1 นำมารวมกันทุกตัว = x
2.ถ้าหุ้นปิดต่ำกว่า MA(close,50) จะได้ค่าเป็น 1 นำมารวมกันทุกตัว = y
100*x/(x+y) = MAIndex
ค่านี้จะมีตั้งแต่ 0-100 ถ้ามีค่าเป็น 70 ก็หมายความว่ามีหุ้นทำ หุ้นปิดเหนือ MA(close,50) ต่อ หุ้นปิดต่ำกว่า MA(close,50) = 7:3
ปกติแล้วถ้าเป็นตลาดขาขึ้นค่านี้จะมากกว่า 50 และน้อยกว่า 30 ในขาลงหนัก ๆ ถ้าค่านี้มีการปรับตัวลงก็ให้ชะลอการซื้อลงก่อนก็ได้
High-LowIndex คำนวนโดยการนำหุ้นทุกตัวมาคำนวน
1.ถ้าเกิดทะลุ High(Close) 50 วันก็จะได้ค่าเป็น 1 โดยค่านี้จะมีผล 5 วันหมายความว่าหลังชนไปแล้วนับไปอีก 5 วันจึงจะกลับมาให้ค่าเป็น 0 เหมือนเดิม นำค่านี้มารวมกัน = a
2.หุ้นที่ทะลุ Low(Close)50 วันก็จะให้ค่าเป็น 1 เหมือนกันโดยค่านี้จะมีผล 5 วันหมายความว่าหลังชนไปแล้วนับไปอีก 5 วันจึงจะกลับมาให้ค่าเป็น 0 เหมือนเดิม นำค่านี้มารวมกัน = b
นำ 100*a/(a+b) = High-LowIndex
เมื่อนำมาพลอตเป็นกราฟจะได้ประมาณนี้ครับ
ค่านี้จะมีตั้งแต่ 0-100 ถ้ามีค่าเป็น 70 ก็หมายความว่ามีหุ้นทำ New High 50 วัน ต่อ New Low 50 วัน = 7:3
ปกติแล้วถ้าเป็นตลาดขาขึ้นค่านี้จะมากกว่า 50 และน้อยกว่า 30 ในขาลงหนัก ๆ ถ้าค่านี้มากกว่า 70-80 แล้วมีการปรับตัวลงก็ให้ชะลอการซื้อลงก่อนก็ได้
ปกติถ้าตัวใดตัวหนึ่งต่ำกว่า 30 ก็ควรออกจากตลาดหรือเลื่อนจุดตัดขาดทุนมาใกล้ ๆ ถ้าเหนือกว่า 30 หรือ 50 (แล้วแต่ว่าระบบออกสัญญาณซื้อยากขนาดไหนถ้ายากก็ใช้ 30 ถ้าสัญญาณซื้อออกง่ายไม่ต้องรอยืนยันมากนักก็ใช้ 50) ก็บ่งบอกว่าตลาดเป็นช่วงที่ซื้อได้
ข้อเสีย ถ้าจำนวนหุ้นน้อยเกินไปจะทำให้ดัชนีนี้แกว่งมาก ๆ แล้วจะใช้ได้ไม่ดี
สำหรับผมระบบเทรดตัวนี้ยังไม่เคยนำมาใช้จริง ๆ เพราะฉะนั้นยังไม่สามารถจะระบุความสามารถในการทำกำไรในตลาดจริง ๆ ได้
ที่ยังไม่นำมาใช้จริงเนื่องจากตอนนี้ใจยังไม่แข็งพอที่จะเชื่อมันในระบบเทรดเลยขอลองศึกษาวิธีทางเลือกอย่างการวิเคราะห์ปัจจัยพื้นฐานดูหน่อยว่า ให้ผลตอบแทนดีกว่าหรือเปล่า ส่วนตัวแล้วผมคิดว่าถ้าซื้อหุ้นแล้วติดหุ้นพื้นฐานดีก็ยังดีกว่าติดหุ้นพื้นฐานแย่หละว้า
ตอนนี้ผมกำลังศึกษาการดูพื้นฐานของบริษัทดูบ้างแล้วจะลองเปรียบเทียบการทำกำไรจากการใช้พื้นฐานในสภาวะตลาดต่าง ๆ เทียบกับการใช้ระบบเทรดในสภาวะตลาดต่าง ๆ ดูครับ เดี๋ยวถ้าลองเปรียบเทียบได้ยังไงจะลองเอามาเขียนดูนะครับ
แก้ไข : ถ้าท่านใดใช้ระบบเก่ง ๆ จะแลกเปลี่ยน, เสริมหรือแก้ไขตรงไหนก็ได้นะครับยินดีรับฟังครับ
ระบบตัวที่ 3
http://ppantip.com/topic/32061608
http://ppantip.com/topic/32071377
ผมก็ได้หาวิธีการปรับปรุงระบบอะไรต่อไรมาเรื่อย ๆ จนได้ระบบสุดท้ายคือระบบนี้ครับ
MaxOpenPositions = 20;
Positionsize=-100/20;
volume ลิมิตไว้ที่ 3% ของ volume ทั้งหมดนะครับและก็ value การซื้อขาย > 1,000,000
ปี 2004-2014
เหมือนจะดูดีนะครับแต่ถ้าเราตัดตัวที่ได้กำไรมาก ๆ 5 ตัวแรกออกไปจะได้รูปนี้แทนครับ
ผลตอบแทนลดลงค่อนข้างมากนะครับ เนื่องจากผลตอบแทนค่อนข้างขึ้นอยู่กับครั้งที่เทรดได้กำไรมาก ๆ เลยทำให้ผมยังลังเลว่าระบบนี้เป็นระบบที่ดีแล้วหรือยัง ตัวอย่างเช่น APURE, TH, KASET, TSF ที่ขึ้นแบบลากพรวดไปเลย ถ้าล่าสุดระบบของผมก็มี EA, MAX, RASA (ปี 2014-ปัจจุบัน) ซึ่งพวกนี้มันขึ้นแบบแปลก ๆ ยังไงไม่รู้ผมเลยยังไม่ค่อยมั่นใจที่จะใช้ระบบเทรด เพราะว่าถ้าไม่ชอบหุ้นพวกนี้แล้วเราไปขายกลางคันมันก็จะส่งผลกระทบต่อผลตอบแทน
แต่ที่เห็นได้ชัดในการใช้ระบบเทรดร่วมในการซื้อขายคือ Max sys. drawdown ค่อนข้างน้อยกว่าแนว buy-hold แน่นอน
แต่สำหรับหุ้นบางตัวแล้ว Buy-Hold จะได้กำไรมากกว่า
สำหรับส่วนประกอบของระบบก็จะมี
1.การเลือกหุ้น - ระบบนี้ใช้ ROC
2.สภาวะตลาด - ใช้ High-Low Index กับ MA Index
3.สัญญาณซื้อขาย - ทะลุแนวรับซื้อ - แนวต้านขาย
4.การจัดหน้าตัก
สำหรับ High-Low Index และ MA Index คำนวนคล้าย ๆ กับจากหนังสือ Point & Figure ของ Thomas J. Dorsey นะครับ
(จริง ๆ ผมอยากออกแบบระบบที่ใช้ Point&Figure นะแต่ coding ไม่เป็น)
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
MAIndex คำนวนโดยการนำหุ้นทุกตัวมาคำนวน
1.ถ้าหุ้นปิดเหนือ MA(close,50) จะได้ค่าเป็น 1 นำมารวมกันทุกตัว = x
2.ถ้าหุ้นปิดต่ำกว่า MA(close,50) จะได้ค่าเป็น 1 นำมารวมกันทุกตัว = y
100*x/(x+y) = MAIndex
ค่านี้จะมีตั้งแต่ 0-100 ถ้ามีค่าเป็น 70 ก็หมายความว่ามีหุ้นทำ หุ้นปิดเหนือ MA(close,50) ต่อ หุ้นปิดต่ำกว่า MA(close,50) = 7:3
ปกติแล้วถ้าเป็นตลาดขาขึ้นค่านี้จะมากกว่า 50 และน้อยกว่า 30 ในขาลงหนัก ๆ ถ้าค่านี้มีการปรับตัวลงก็ให้ชะลอการซื้อลงก่อนก็ได้
High-LowIndex คำนวนโดยการนำหุ้นทุกตัวมาคำนวน
1.ถ้าเกิดทะลุ High(Close) 50 วันก็จะได้ค่าเป็น 1 โดยค่านี้จะมีผล 5 วันหมายความว่าหลังชนไปแล้วนับไปอีก 5 วันจึงจะกลับมาให้ค่าเป็น 0 เหมือนเดิม นำค่านี้มารวมกัน = a
2.หุ้นที่ทะลุ Low(Close)50 วันก็จะให้ค่าเป็น 1 เหมือนกันโดยค่านี้จะมีผล 5 วันหมายความว่าหลังชนไปแล้วนับไปอีก 5 วันจึงจะกลับมาให้ค่าเป็น 0 เหมือนเดิม นำค่านี้มารวมกัน = b
นำ 100*a/(a+b) = High-LowIndex
เมื่อนำมาพลอตเป็นกราฟจะได้ประมาณนี้ครับ
ค่านี้จะมีตั้งแต่ 0-100 ถ้ามีค่าเป็น 70 ก็หมายความว่ามีหุ้นทำ New High 50 วัน ต่อ New Low 50 วัน = 7:3
ปกติแล้วถ้าเป็นตลาดขาขึ้นค่านี้จะมากกว่า 50 และน้อยกว่า 30 ในขาลงหนัก ๆ ถ้าค่านี้มากกว่า 70-80 แล้วมีการปรับตัวลงก็ให้ชะลอการซื้อลงก่อนก็ได้
ปกติถ้าตัวใดตัวหนึ่งต่ำกว่า 30 ก็ควรออกจากตลาดหรือเลื่อนจุดตัดขาดทุนมาใกล้ ๆ ถ้าเหนือกว่า 30 หรือ 50 (แล้วแต่ว่าระบบออกสัญญาณซื้อยากขนาดไหนถ้ายากก็ใช้ 30 ถ้าสัญญาณซื้อออกง่ายไม่ต้องรอยืนยันมากนักก็ใช้ 50) ก็บ่งบอกว่าตลาดเป็นช่วงที่ซื้อได้
ข้อเสีย ถ้าจำนวนหุ้นน้อยเกินไปจะทำให้ดัชนีนี้แกว่งมาก ๆ แล้วจะใช้ได้ไม่ดี
สำหรับผมระบบเทรดตัวนี้ยังไม่เคยนำมาใช้จริง ๆ เพราะฉะนั้นยังไม่สามารถจะระบุความสามารถในการทำกำไรในตลาดจริง ๆ ได้
ที่ยังไม่นำมาใช้จริงเนื่องจากตอนนี้ใจยังไม่แข็งพอที่จะเชื่อมันในระบบเทรดเลยขอลองศึกษาวิธีทางเลือกอย่างการวิเคราะห์ปัจจัยพื้นฐานดูหน่อยว่า ให้ผลตอบแทนดีกว่าหรือเปล่า ส่วนตัวแล้วผมคิดว่าถ้าซื้อหุ้นแล้วติดหุ้นพื้นฐานดีก็ยังดีกว่าติดหุ้นพื้นฐานแย่หละว้า
ตอนนี้ผมกำลังศึกษาการดูพื้นฐานของบริษัทดูบ้างแล้วจะลองเปรียบเทียบการทำกำไรจากการใช้พื้นฐานในสภาวะตลาดต่าง ๆ เทียบกับการใช้ระบบเทรดในสภาวะตลาดต่าง ๆ ดูครับ เดี๋ยวถ้าลองเปรียบเทียบได้ยังไงจะลองเอามาเขียนดูนะครับ
แก้ไข : ถ้าท่านใดใช้ระบบเก่ง ๆ จะแลกเปลี่ยน, เสริมหรือแก้ไขตรงไหนก็ได้นะครับยินดีรับฟังครับ