"อย่าให้กำไรกลายเป็นขาดทุน" คำนี้คงเคยได้ยินกันมาบ้างนะครับ
ระบบ trade บางระบบอาจมีข้อเสียตรงที่กว่าจะร้องออกมาว่า "ขายได้แล้ว" กำไรเราก็หดไปเยอะแล้ว วิธีนึงที่ช่วยรักษากำไรไว้คือการใส่ trailing stop เข้าไปในระบบ เมื่อเราเห็นว่าราคาปิดลงมาถึงเส้น stop แล้วเราก็ขายทำกำไรไปก่อน
ผมไปอ่านเจอ Trailing Stop ตัวนึงเรียกว่า Chandelier Exit เห็นว่าน่าสนใจดีเลยเอามาแชร์ครับ Chandelier Exit เป็นทฤษฎีที่กำหนดจุดขายเพื่อรักษากำไรไว้ โดยอาศัยค่า Average True Range (ATR)
ผมเอาสูตรจาก บทความที่แล้ว มาปรับเพิ่มเส้น stop เข้าไปครับ
// Revision History
//- version1. initial version
//- version2. Add trailing stop line
ema10 = EMA(C,10);
ema20 = EMA(C,20);
Buy = Cross(ema10, ema20);
Sell = Cross (ema20, ema10);
Plot(C,"Test EMA system",colorDefault,styleCandle);
PlotShapes(shapeUpArrow*Buy,ParamColor("UpArrow",10),0,L);
PlotShapes(shapeDownArrow*Sell,ParamColor("DownArrow",11),0,H);
ATRPeriod=22;
PricePeriod=22;
multiplier=0.5; //ค่า multiplier ยิ่งต่ำ ค่าของ stop loss ก็จะยิ่งใกล้กับราคาปิดมากขึ้น
TrailTop=HHV(C,PricePeriod) - ATR(ATRPeriod) * multiplier;
TrailBtm=LLV(C,PricePeriod) + ATR(ATRPeriod) * multiplier;
Plot(TrailTop,"TrailTop",colorBrightGreen,styleLine);
Plot(TrailBtm,"TrailBtm",colorRed,styleLine);
Download สูตรได้จาก link นี้ครับ
สูตรนี้จะแสดง Trailing stop ทั้งขา long (ดูที่เส้นสีเขียว) และ short (ดูที่เส้นสีแดง)
สำหรับคนที่ trade หุ้นอย่างเดียวดูแค่เส้นสีเขียวก็พอครับ เมื่อเราได้กำไรมาระดับนึงแล้ว (ราคาปิดอยู่เหนือเส้นสีเขียว) พอราคาหุ้นปิดต่ำกว่าเส้นเขียวก็ขายทำกำไรออกมา จะขายหมดเลยหรือขายบางส่วนก็แล้วแต่ครับ
ลองมาดูรูปกัน
จะเห็นได้ว่าสัญญาณขายเกิดขึ้น ณ จุดที่ 2 แต่ถ้าเราขายไปก่อน ณ จุดที่ 1 เราจะรักษากำไรไว้ได้มากกว่า
การใช้ trailing stop ควรดู trend ประกอบด้วยนะครับ ถ้าใช้ช่วงเริ่มต้น trend ก็อาจจะเป็นการขายหมูได้ ใช้ในช่วงปลายๆ trend หรือ sideway น่าจะเหมาะกว่าครับ
Prevent copy paste
!->
Saturday, March 28, 2015
Saturday, March 21, 2015
ทดลองทำระบบ Trade โดยใช้ AmiBroker
ใครที่สนใจการ trade แบบใช้ระบบเข้ามาช่วยหาจุดซื้อจุดขายแต่ไม่รู้จะเริ่มยังงัย วันนี้ผมมีวิธีการ setup ระบบมาแชร์ครับ
สิ่งที่ต้องมีคือ
1. ตัวโปรแกรม ผมแนะนำ AmiBroker เบื้องต้นใช้ free version ไปก่อนแต่จะมีข้อเสียคือเราต้องโหลด (import) ข้อมูลหุ้นใหม่ทุกครั้งที่มีการปิดเปิดโปรแกรม
2. ข้อมูลหุ้นที่อยู่ในรูปแบบของ text file อันนี้น่าจะหากันเองได้นะครับ
3. สูตรของระบบ ในบทความนี้จะใช้ EMA Cross ครับ
เริ่มกันเลย
1. โหลดโปรแกรม AmiBroker (ตามลิ้งค์นี้)ผมใช้ version 32bit ครับ พอลงโปรแกรมเสร็จแล้วเปิดขึ้นมาจะเห็นว่ามีหุ้นของอเมริกาอยู่บางตัว ผมเข้าใจว่าให้มาดูเป็นตัวอย่าง เราลบพวกนี้ทิ้งก่อนเลย ลบเสร็จแล้วก็จะได้หน้าจอว่างๆแบบในรูป
2. เตรียมข้อมูลใส่ text file ในที่นี้ผมใช้ข้อมูลของ Set ย้อนหลัง 5 ปีครับ ลองหาข้อมูลจาก siamchart.com , google/yahoo finance ดูครับ
จัด Format แบบนี้
symbol,date,open,high,low,close,volume
date นี้ format เป็น yyyymmdd นะครับ
3. โหลดข้อมูลเข้า AmiBroker
ไปที่เมนู File -> Import ASCII จากนั้นไปเลือกไฟล์ที่เราเตรียมไว้
** ต้องเลือก File type เป็น Omega SC ASCII นะครับ
4. เตรียมไฟล์ที่กำหนดเงื่อนไขการซื้อขาย ในที่นี้ผมจะให้ Buy เมื่อ EMA10 ตัดขึ้นเหนือ EMA20 และขายเมื่อ EMA10 ตัดลงต่ำกว่า EMA20
Copy code นี้แล้วเอาไป save เป็น text file ลงในเครื่องตัวเองนะครับ แล้วตั้งชื่อว่า SimpleEMASystem.afl
หรือจะโหลด จากลิ้งค์นี้ ก็ได้
/////START////
ema10 = EMA(C,10);
ema20 = EMA(C,20);
Buy = Cross(ema10, ema20);
Sell = Cross (ema20, ema10);
Plot(C,"Test EMA system",colorDefault,styleCandle);
PlotShapes(shapeUpArrow*Buy,ParamColor("UpArrow",10),0,L);
PlotShapes(shapeDownArrow*Sell,ParamColor("DownArrow",11),0,H);
/////END////
สูตรที่ใช้ใน AmiBroker จะคล้ายๆกับการเขียนโปรแกรมครับ ผมเองก็ลองมั่วๆดู
ถ้าสนใจสูตรต่างๆเพิ่มเติมลองดูที่ http://www.wisestocktrader.com/indicators
5. กลับไปที่โปรแกรม AmiBroker แล้วเลือกเมนู Analysis -> New Analysis
จากนั้นเลือกไฟล์สูตรที่ได้จากข้อ 4, เลือกช่วงเวลาของข้อมูลที่จะทำการทดสอบ จากนั้นกดปุ่ม Backtest ผลลัพท์ที่ได้คือข้อมูลการซื้อขายที่เกิดขึ้นโดยอิงเงื่อนไขจากสูตรในข้อ 4 รายละเอียดจะค่อนข้างเยอะ เราไปดู report สรุปกันดีกว่า
6. Summary Report
กดที่ปุ่ม Report
มาวิเคราะห์กันว่าระบบที่เราตั้งไว้มีค่าอะไรน่าสนใจบ้าง
- เริ่มต้น Jan-2010 ด้วยเงิน 10,000 บาท ณ March-2015 มีเงิน 60,507.55 บาท (กำไร 505.08%)
- เทรดไปทั้งหมด 62 ครั้ง
- Win Trade 29 ครั้ง (คิดเป็น 46.77%)
- Lost Trade 33 ครั้ง (คิดเป็น 53.23%)
- Lost Trade ติดๆกันมากสุด 8 ครั้ง
** ตรงนี้แปลว่าถ้าเราจะยังคงใช้ระบบนี้ต่อไปในอนาคต การซื้อแต่ละครั้งต้องไม่ลงเงินเกิน 1 ใน 8 ของพอร์ต เพราะถ้าพลาดจะได้ยังพอมีเงินเหลือกลับมาแก้ตัว
- Max system drawdown ช่วงเวลาที่ขาดทุนมากที่สุดคิดเป็น - 25.23% ถ้าจะใช้ระบบนี้ต้องทำใจยอมรับการขาดทุนที่เท่านี้ให้ได้นะขอรับ
7. ดูจุดซื้อขายใน Graph
เผื่อบางคนเทียบกับกราฟว่าซื้อตรงไหนขายตรงไหน ทำตามนี้ครับ
- ในโปรแกรม AmiBroker กดปุ่ม Formular Editor (จะมีโปรแกรม AFL Formula Editor โผล่ขึ้นมา)
- ในโปรแกรม AFL Formula Editor กดปุ่ม Open แล้วเลือก file ที่ save มาจากข้อ 4
- ในโปรแกรม AFL Formula Editor กดปุ่ม Apply
- กลับไปที่ โปรแกรม AmiBroker จะมี panel ใหม่โผล่มาซึ่งจะแสดงจุดซื้อขายตามเงื่อนไขของระบบ
8. สรุป
- การใช้ระบบเข้ามาช่วยก็ดีตรงที่ตัดอารมณ์ความรู้สึกออกไป ระบบบอกให้ซื้อก็ซื้อให้ขายก็ขาย
- ระบบมีมากมายหลายแบบ บางระบบใช้ RSI, MACD, Peak&Through ลอง Run Backtest ดูแล้วหาระบบที่เหมาะสมกับตัวคุณดูครับ
- ** สำคัญมากๆคือวินัย ห้ามซื้อขายนอกเหนือจากที่ระบบบอก
- ทั้งหมดนี้เพื่อการศึกษาวิธีการทดลองการ Trade โดยใช้ระบบเข้ามาช่วย ไม่ได้เป็นการบอกว่าใช้ระบบตัวอย่างนี้แล้วจะ work นะครับ
ระบบนี้ถ้าเอาไปใช้กับหุ้นตัวอื่นอาจให้ผลติดลบก็ได้
Backtest และวิเคราะห์ผลจนมั่นใจแล้วถึงค่อย Trade ครับ
สิ่งที่ต้องมีคือ
1. ตัวโปรแกรม ผมแนะนำ AmiBroker เบื้องต้นใช้ free version ไปก่อนแต่จะมีข้อเสียคือเราต้องโหลด (import) ข้อมูลหุ้นใหม่ทุกครั้งที่มีการปิดเปิดโปรแกรม
2. ข้อมูลหุ้นที่อยู่ในรูปแบบของ text file อันนี้น่าจะหากันเองได้นะครับ
3. สูตรของระบบ ในบทความนี้จะใช้ EMA Cross ครับ
เริ่มกันเลย
1. โหลดโปรแกรม AmiBroker (ตามลิ้งค์นี้)ผมใช้ version 32bit ครับ พอลงโปรแกรมเสร็จแล้วเปิดขึ้นมาจะเห็นว่ามีหุ้นของอเมริกาอยู่บางตัว ผมเข้าใจว่าให้มาดูเป็นตัวอย่าง เราลบพวกนี้ทิ้งก่อนเลย ลบเสร็จแล้วก็จะได้หน้าจอว่างๆแบบในรูป
2. เตรียมข้อมูลใส่ text file ในที่นี้ผมใช้ข้อมูลของ Set ย้อนหลัง 5 ปีครับ ลองหาข้อมูลจาก siamchart.com , google/yahoo finance ดูครับ
จัด Format แบบนี้
symbol,date,open,high,low,close,volume
date นี้ format เป็น yyyymmdd นะครับ
3. โหลดข้อมูลเข้า AmiBroker
ไปที่เมนู File -> Import ASCII จากนั้นไปเลือกไฟล์ที่เราเตรียมไว้
** ต้องเลือก File type เป็น Omega SC ASCII นะครับ
4. เตรียมไฟล์ที่กำหนดเงื่อนไขการซื้อขาย ในที่นี้ผมจะให้ Buy เมื่อ EMA10 ตัดขึ้นเหนือ EMA20 และขายเมื่อ EMA10 ตัดลงต่ำกว่า EMA20
Copy code นี้แล้วเอาไป save เป็น text file ลงในเครื่องตัวเองนะครับ แล้วตั้งชื่อว่า SimpleEMASystem.afl
หรือจะโหลด จากลิ้งค์นี้ ก็ได้
/////START////
ema10 = EMA(C,10);
ema20 = EMA(C,20);
Buy = Cross(ema10, ema20);
Sell = Cross (ema20, ema10);
Plot(C,"Test EMA system",colorDefault,styleCandle);
PlotShapes(shapeUpArrow*Buy,ParamColor("UpArrow",10),0,L);
PlotShapes(shapeDownArrow*Sell,ParamColor("DownArrow",11),0,H);
/////END////
สูตรที่ใช้ใน AmiBroker จะคล้ายๆกับการเขียนโปรแกรมครับ ผมเองก็ลองมั่วๆดู
ถ้าสนใจสูตรต่างๆเพิ่มเติมลองดูที่ http://www.wisestocktrader.com/indicators
5. กลับไปที่โปรแกรม AmiBroker แล้วเลือกเมนู Analysis -> New Analysis
จากนั้นเลือกไฟล์สูตรที่ได้จากข้อ 4, เลือกช่วงเวลาของข้อมูลที่จะทำการทดสอบ จากนั้นกดปุ่ม Backtest ผลลัพท์ที่ได้คือข้อมูลการซื้อขายที่เกิดขึ้นโดยอิงเงื่อนไขจากสูตรในข้อ 4 รายละเอียดจะค่อนข้างเยอะ เราไปดู report สรุปกันดีกว่า
6. Summary Report
กดที่ปุ่ม Report
มาวิเคราะห์กันว่าระบบที่เราตั้งไว้มีค่าอะไรน่าสนใจบ้าง
- เริ่มต้น Jan-2010 ด้วยเงิน 10,000 บาท ณ March-2015 มีเงิน 60,507.55 บาท (กำไร 505.08%)
- เทรดไปทั้งหมด 62 ครั้ง
- Win Trade 29 ครั้ง (คิดเป็น 46.77%)
- Lost Trade 33 ครั้ง (คิดเป็น 53.23%)
- Lost Trade ติดๆกันมากสุด 8 ครั้ง
** ตรงนี้แปลว่าถ้าเราจะยังคงใช้ระบบนี้ต่อไปในอนาคต การซื้อแต่ละครั้งต้องไม่ลงเงินเกิน 1 ใน 8 ของพอร์ต เพราะถ้าพลาดจะได้ยังพอมีเงินเหลือกลับมาแก้ตัว
- Max system drawdown ช่วงเวลาที่ขาดทุนมากที่สุดคิดเป็น - 25.23% ถ้าจะใช้ระบบนี้ต้องทำใจยอมรับการขาดทุนที่เท่านี้ให้ได้นะขอรับ
7. ดูจุดซื้อขายใน Graph
เผื่อบางคนเทียบกับกราฟว่าซื้อตรงไหนขายตรงไหน ทำตามนี้ครับ
- ในโปรแกรม AmiBroker กดปุ่ม Formular Editor (จะมีโปรแกรม AFL Formula Editor โผล่ขึ้นมา)
- ในโปรแกรม AFL Formula Editor กดปุ่ม Open แล้วเลือก file ที่ save มาจากข้อ 4
- ในโปรแกรม AFL Formula Editor กดปุ่ม Apply
- กลับไปที่ โปรแกรม AmiBroker จะมี panel ใหม่โผล่มาซึ่งจะแสดงจุดซื้อขายตามเงื่อนไขของระบบ
8. สรุป
- การใช้ระบบเข้ามาช่วยก็ดีตรงที่ตัดอารมณ์ความรู้สึกออกไป ระบบบอกให้ซื้อก็ซื้อให้ขายก็ขาย
- ระบบมีมากมายหลายแบบ บางระบบใช้ RSI, MACD, Peak&Through ลอง Run Backtest ดูแล้วหาระบบที่เหมาะสมกับตัวคุณดูครับ
- ** สำคัญมากๆคือวินัย ห้ามซื้อขายนอกเหนือจากที่ระบบบอก
- ทั้งหมดนี้เพื่อการศึกษาวิธีการทดลองการ Trade โดยใช้ระบบเข้ามาช่วย ไม่ได้เป็นการบอกว่าใช้ระบบตัวอย่างนี้แล้วจะ work นะครับ
ระบบนี้ถ้าเอาไปใช้กับหุ้นตัวอื่นอาจให้ผลติดลบก็ได้
Backtest และวิเคราะห์ผลจนมั่นใจแล้วถึงค่อย Trade ครับ
Subscribe to:
Posts (Atom)