23.9.18

Amibroker Backtesting Report

การอ่านผลการ Backtest ในโปรแกรม Amibroker

Exposure % - "เงินของเราออกศึกในการลงทุนไปกี่%"
Net Risk Adjusted Return % - (Net profit % divided by Exposure %) - "กำไรทั้งหมด หารด้วย เงินออกศึก"
Annual Return % (CAR) - "ผลกำไรต่อปี"
Risk Adjusted Return % - Annual return % divided by Exposure % - "กำไรต่อปี หารด้วย เงินออกศึก" (ผลกำไรต่อความเสี่ยง ยิ่งมากยิ่งดี)
Avg. Profit/Loss, also known as Expectancy ($) - (Profit of winners + Loss of losers)/(number of trades), represents expected dollar gain/loss per trade "ความคาดหวัง"
Avg. Profit/Loss %, also known as Expectancy (%) - '(% Profit of winners + % Loss of losers)/(number of trades), represents expected percent gain/loss per trade "%ความคาดหวัง"
Avg. Bars Held - sum of bars in trades / number of trades "เฉลี่ยการถือPosition"
Max. trade drawdown - The largest peak to valley decline experienced in any single trade. The lower the better "Equity ใน 1 ครั้ง ที่เคยขาดทุนสูงสุด"
Max. trade % drawdown - The largest peak to valley percentage decline experienced in any single trade. The lower the better "%Equity ใน 1 ครั้ง ที่เคยขาดทุนสูงสุด"
Max. system drawdown - The largest peak to valley decline experienced in portfolio equity. The lower the better "Equity ใน Portfolio ที่เคยลดลงต่ำสุด"
Max. system % drawdown - The largest peak to valley percentage decline experienced in portfolio equity. The lower the better "%Equity ใน Portfolio ที่เคยลดลงต่ำสุด"

Recovery Factor - Net profit divided by Max. system drawdown "กำไรสุทธิ/MaxDD"

CAR/MaxDD - Compound Annual % Return divided by Max. system % drawdown. "Good if bigger than 2" 
RAR/MaxDD - Risk Adjusted Return divided by Max. system % drawdown. "Good if bigger than 2"
Profit Factor - Profit of winners divided by loss of losers
Payoff Ratio - Ratio average win / average loss

Standard Error - Standard error measures chopiness of equity line. The lower the better.
Risk-Reward Ratio - Measure of the relation between the risk inherent in a trading the system compared to its potential gain. Higher is better. Calculated as slope of equity line (expected annual return) divided by its standard error.
Ulcer Index - Square root of sum of squared drawdowns divided by number of bars
Ulcer Performance Index - (Annual profit - Tresury notes profit)/Ulcer Index'>Ulcer Performance Index. Currently tresury notes profit is hardcoded at 5.4. In future version there will be user-setting for this.
Sharpe Ratio of trades - Measure of risk adjusted return of investment. Above 1.0 is good, more than 2.0 is very good. More information http://www.stanford.edu/~wfsharpe/art/sr/sr.htm . Calculation: first average percentage return and standard deviation of returns is calculated. Then these two figures are annualized by multipling them by ratio (NumberOfBarsPerYear)/(AvgNumberOfBarsPerTrade). Then the risk free rate of return is subtracted (currently hard-coded 5) from annualized average return and then divided by annualized standard deviation of returns.

K-Ratio - Detects inconsistency in returns. Should be 1.0 or more. The higher K ratio is the more consistent return you may expect from the system. Linear regression slope of equity line multiplied by square root of sum of squared deviations of bar number divided by standard error of equity line multiplied by square root of number of bars. More information: Stocks & Commodities V14:3 (115-118): Measuring System Performance by Lars N. Kestner

https://www.amibroker.com/guide/h_report.html

Market Classification (MKC)

การวิเคราะห์ตลาดด้วยการทำ Market Classification 
เป็นการวิเคราะห์ตลาดแบบนึงที่ช่วยทำให้ Performance ในการเทรดดีขึ้น ซึ่งเป็นการดึงข้อมูลด้านนอก (ข้อมูลจากราคา Index อื่นมาเป็นตัว Indicator สำหรับซื้อขาย) เพื่อทำการส่งสัญญานซื้อและขาย จากตัวอย่าง กรณีนี้ ใช้ MACD ของค่า SET เป็นตัว MKC (Market Classification) 

* Annual Return = กำไรต่อปี
* Risk Adjusted Return = อัตราผลตอบแทนในการลงทุนเมื่อเทียบกับความเสี่ยง
= Annual Return / Exposure
*


จากตัวอย่างในตาราง และแผนภูมิ จะเห็นได้ว่า การใช้ MKC เพื่อกรองสัญญานซื้อและขายนั้น เป็นตัวช่วยให้ กำไรเพิ่มขึ้น และมี MaxDD% ที่ต่ำลง เป็นการเพิ่มประสิทธิภาพของระบบได้อีกทางหนึ่ง


ดูไฟล์Excel ได้ที่ : https://drive.google.com/open?id=1dyn2zWUP5iraD_UDQczb1mnjMYNyT1Gc

22.9.18

SetForeign รับค่าจากราคาหุ้นอื่น

คำสั่ง SetForeign ใน Amibroker 

SetForeign

- replace current price arrays with those of foreign security

- เป็นการรับค่าจากข้างนอกเข้ามาคำนวนในระบบ 


https://www.amibroker.com/guide/afl/setforeign.html


จากตัวอย่าง เป็นการรับค่าจาก SET โดยให้รับค่าการคำนวนเป็น MACD(); ของ SET แล้วนำมาPlot


จากภาพ จะเป็นกราฟราคา SET ค่าที่ได้ก็จะเท่ากับค่าของ MACD("SET") นั้นเอง
แต่ถ้าเราเปลี่ยนกราฟราคาให้เป็นตัวอื่น ค่าของ MACD("SET") ยังคงอยู่เหมือนเดิม

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


21.9.18

General Nature of Market - พฤติกรรมพื้นฐานของตลาด

การศึกษาตลาดให้ดี เป็นสิ่งที่จำเป็นสำหรับนักลงทุน ซึ่งสามารถแบ่งเป็นหัวข้อต่างๆดังนี้
- ตลาด จะมีการเติบโตเฉลี่ยที่ 8% - 12% (คำนวนจากข้อมูลย้อนหลัง 100ปี
- ตลาดที่ปรับตัวขึ้น จะไม่ขึ้นเป็นเส้นตรง แต่จะมีการแกว่งตัวขึ้นๆลงๆ และเข้าสู่ Sideway และ Downtrend ในที่สุด
- ตลาดที่มีเทรน จะมีสัดส่วนโดยประมาณ 1 ใน 3 ของระยะเวลาของตลาดทั้งหมด
- ตลาดที่มีเทรน จะถูกขับเคลื่อนด้วยหุ้นที่มี Market Capital ที่ใหญ่ ฉุดดึงตลาดขึ้นไป 
- ตามมาด้วยหุ้นเล็กๆ 
- พอใกล้ๆจะหมดเทรน หุ้นตัวเล็กก็จะหมดแรง และปรับตัวลดลงก่อน 
- และจบลงด้วยหุ้นใหญ่นั้นเอง
ดังนั้น การใช้ Market Breadth ค่าความแตกต่างของหุ้นที่ทำ New Low และ New High จะช่วยตรวจสอบสภาพ หรือความแข็งแกร่งของเทรนได้เป็นอย่างดี เช่น ตลาดที่ขึ้นมา แล้วใกล้จะหมดเทรน จะมีจำนวนหุ้นที่ปรับตัวลงมากขึ้น แต่ราคายังคงไปต่อด้วยหุ้นใหญ่ นั้นเอง

ABXC (Amibroker Extreme Course) by Thaiquants.com 

************************************************************************************************
ดังนั้น การให้ความสำคัญกับการศึกษาพฤติกรรมของตลาด เป็นข้อได้เปรียบเป็นอย่างมาก เพราะเราจะสามารถรู้แนวโน้มของตลาดได้นั้นเอง
************************************************************************************************

20.9.18

Your Best Teacher is your Last Mistake!!!


"Your Best Teacher is Your Last Mistake"
ครูที่ดีที่สุด คือ ความผิดพลาดครั้งสุดท้าย


ความผิดแต่ละครั้ง หากไม่มีการจดบันทึก เราก็มักจะผิดซ้ำแล้วซ้ำเล่า ตัวอย่างการผิดพลาดของผมคือ ล้างพอร์ต ครั้งแรก ของการเทรด Forex ครับ


ความสามารถในการลงทุนแล้วล้างพอร์ต ภายในเวลาไม่ถึง 1 เดือน ด้วยเงินลงทุน $1000 จนเหลือ $37.93 เสียดายมั้ย? เสียดายสิครับ เงินตั้งสามหมื่น ซื้ออะไรได้ตั้งเยอะแยะ มาลงทุนก็ต้องการกำไร ใครอยากจะขาดทุนละครับ 

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

1. Plan your Trade and Trade your Plan
บอกได้เลยว่า ที่ผ่านมา ไม่มีแผนครับ ใช้indicator คือ MACD, Stochastic, และ ADX ในการเทรด แต่ไม่มีรูปแบบที่ชัดเจน  เห็นSignal Line ตัด ก็เข้า แต่ออก เคยคิดว่าจะออกตอนตัดออก พอเห็นราคาดีด ก็ตกใจ ไม่กล้าขาย แล้วก็ติดดอยครับ ดังนั้น ถ้าแผนไม่ชัดเจน ก็ตายตั้งแต่ต้นครับ เพราะหลังจากที่แผนชัด ยังต้องทำให้ได้ตามแผนอีกต่างหาก นี่คือกฎข้อแรกครับ

2. Money Management (Risk-Reward) 
ตอนแรกคิดว่า เทรดครั้งละ 0.01lot ยังไงก็ไม่ล้างพอร์ต แต่สิ่งที่เกิดจริงคือ ความโลภ อารมณ์ต่างๆ มันทำให้สิ่งเหล่านี้เกิดขึ้น 
       - พอถูกทาง กำไรนิดเดียวเอง น่าจะเล่นมากกว่านี้
       - พอผิดทาง ขาดทุนนิดเดียวเอง ช่างมัน ไม่มีผลเท่าไหร่
แล้วมันก็นำทางมาสู่การเพิ่ม Position ที่มากขึ้นเรื่อยๆ ผลที่ตามมาก็คือ สภาพจิตใจยังโตไม่ทันกับ Position ที่ใหญ่มากขึ้น ทำให้การบริหารเงินลงทุนไม่เป็นรูปแบบ สุดท้ายคือการเทรดที่ไร้แบบแผนนั้นเอง 

3. No Martingale 
การ Martingale หรือการเบิ้ลLot เพื่อแก้ไม้ ไม่ใช่ว่าไม่ดี แต่ความเสี่ยงที่จะถือ Position ที่มากเกินไป กับสภาวะจิตใจ มักจะทำให้เกิดการล้างพอร์ตตามมา ดังนั้น หมั่นสำรวจสภาวะจิตใจในการเทรดของตัวเองอยู่เสมอ 

4. Trade Like a Business
ความหมายที่ว่า เทรดให้เหมือนการทำธุรกิจ คือ ธุรกิจที่ไม่ใส่ใจ ไม่ดูแล มันก็จะไปไม่รอด มักจะเกิดปัญหา และถ้าไม่ได้รับการแก้ไข ธุรกิจก็จะขาดทุน และเจ๊งในที่สุด เปรียบเสมือนการเทรดที่มีไม้ที่ขาดทุน แต่ไม่แก้ไข ไม่Stoploss และหวังว่าโชคจะเข้าข้างเรา ราคาอาจจะดีกลับมา โดยไม่ทำอะไร สุดท้ายก็จะขาดทุนไปเรื่อยๆจนแผลเหวอะหว่ะ จนรับไม่ได้กับการCut loss และถูก Margin call ในที่สุด 

Cr. Alex C

18.9.18

Trading for Living - Dr. Alexander Elder





********************************************************************

The Trading For Living  (Dr. Alexander Elder) จากส่วนหนึ่งของหนังสือ

1. คุณอยู่ในตลาดที่ต้องต่อสู้ในระยะยาว นั้นคือ คุณต้องตั้งเป้าหมายเรื่องเวลาอย่างน้อย 20ปีต่อจากนี้

2.จงเรียนรู้ให้มาก อ่านและฟังผู้เชี่ยวชาญ ด้วยการตั้งข้อสงสัยเกี่ยวกับสิ่งต่างๆ และไม่เชื่อสิ่งที่ได้รับฟังมาง่ายๆ ต้องวิจัยให้ถ่องแท้ด้วย

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

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

5.คอยพัฒนาการบริหารจัดการเงิน(Money Management) เป้าหมาย1 คือการอยู่รอดในตลาด เป้าหมายที่2 คือการขยายพอร์ตลงทุน
และเป้าหมายที่3 เพิ่มกำไรให้มากที่สุด นักเก็งกำไรส่วนใหญ่ มักจะเอาเป้าหมายที่3 มาเป็นอันดับแรก โดยไม่คิดถึงเป้าหมายที่1&2 

6.จุดอ่อนของการเทรดแบบมีระบบ คือ นักเทรดนั้นเอง 

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

********************************************************
Part1 Individual Phychology Page.30

ปล. กฏเหล่านี้ เป็นกฎที่ดร.ใช้ คุณควรจะปรับเปลี่ยนกฏต่างๆ เพื่อให้เหมาะกับตัวของคุณเอง

16.9.18

SQN (System Quality Number)

SQN (System Quality Number) 


นักพัฒนาระบบทุกคนคงต้องรู้จักเป็นอย่างดี Dr. Van Tharp เป็นผู้อยู่ในวงการการลงทุน และพัฒนาค้นคว้าเกี่ยวกับ Position Sizing Startegy ท่านได้คิดค้นการวัดค่าระบบการเทรดที่เกิดขึ้น และเรียกว่า      System Quality Number (SQN)  โดยหลักการคือ ระบบที่มีค่า SQN มาก ย่อมเป็นระบบที่ดี

นิยามของ SQN คือ


Avg.R  =  ค่าเฉลี่ยของความเสี่ยง(R) ของระบบ
SD.R   =  ค่า Standard Deviation ของ R
Sqrt(Number of Trade) = ค่า Square Root ของจำนวนการเทรด
Sqrt(100) = ค่า 100  ซึ่งเท่ากับ 10 

ตารางเปรียบเทียบค่า SQN 

จะเห็นได้ว่า ค่า SQN จะแปรผันกับค่า Expectency และ Standard Diviation ของระบบ
ถ้าระบบ มีความสามารถทำกำไรมาก มีค่าExpectancy สูง ก็จะมีค่าSQN สูง 
แต่ระบบที่มีค่า Std Dev สูง จะทำให้ค่า SQN ต่ำ หมายความว่า 

เนื่องจาก บางครั้งระบบที่สามารถทำกำไรสูง เกิดจากการฟลุ๊ก หรือโชคช่วย ผลคือค่า Std Dev ก็จะสูงขึ้นไป หรือมีกำไรเวอร์ๆอยู่ใน Sample ด้วย 
จากภาพ จะมีกำไรที่ 16.41R ซึ่งเกิดขึ้นน้อยครั้งมาก หมายความทางสถิติคือ โชคช่วย หรือฟลุ๊กนั้นเอง
นักพัฒนาอาจจะตัด Sampling ส่วนนี้ออกเพื่อดูว่า ถ้าระบบไม่มีโชคช่วยแล้ว จะสามารถอยู่รอดในตลาดได้หรือไม่นั้นเอง แต่การตัดส่วนที่เรียกว่า Outlier (นอกเหนือที่จะพิจารณา) ก็ต้องคำนึงถึงกลยุทธของระบบด้วย เพราะบางระบบอาจจะต้องทนขาดทุนเล็กๆ เพื่อให้เจอกำไรใหญ่ๆก็เป็นได้ ดังนั้นผู้พัฒนาต้องพิจารณาด้วย

Dr. Van Thap ได้ให้ตารางเปรียบเทียบไว้




เครดิตภาพ : CDC Course 2018  (www.chaloke.com)

The Risk-Reward Ratio, R-Multiple and Trade Expectancy

The Risk-Reward Ratio, R-Multiple and Trade Expectancy
หัวข้อหลักที่สำคัญของการทำ Money Management คือ ค่าต่างๆเหล่านี้
The R-Multiple
Trade Expectancy
Risk-Reward Ratio
ค่า R หรือ Risk คือค่าความเสี่ยงนั้นเอง เราสามารถคำนวนค่า R เพื่อนำมาตั้งจุด Stop Loss และสามารถนำมาวัดค่า Reward เพื่อตั้ง Target Point ด้วย โดยทั่วไป จะคำนวนค่าความเสี่ยงอยู่ที่ 1R แล้วตั้ง Reward เป็นจำนวนเท่า เช่น 1.5R, 2R, 2.5R,... ตามกลยุทธหรือ Strategy ต่างๆ 

การหาค่า R ก็สามารถหาจากการ Backtest และนำ%loss มาหาค่า average ก็สามารถนำค่ามาเป็นค่าตั้งต้นสำหรับค่า Risk(R) ของระบบได้เลย 

ยกตัวอย่าง

Losers
22 x 1R loss    (เทรดเสีย 22 ครั้ง เสียครั้งละ 1R)
Winners
3 x 5R, 3 x 4R, 2 x 3R  (เทรดได้ 3ครั้งที่ได้5R, 3ครั้งที่ได้ 4R, และ 2ครั้งที่ได้ 3R)
Trade Expectancy
จากตัวอย่างข้างบน มีการเทรดทั้งหมด 30 ครั้ง เทรดได้ 8ครั้ง เสีย 22 ครั้ง.
จะสังเกตุได้ว่า เวลาเทรดเสีย จะเสียครั้งละ 1R ซึ่งรวมแล้ว ได้ 22R
แต่เวลาที่เราเทรดได้ จะได้มากกว่า 1R จากตัวอย่าง รวมแล้วได้ 33R
ดังนั้น ในระยะยาวแล้ว เราก็จะมีโอกาสทำกำไรได้
การคำนวนหาค่า Expectancy โดยคิดจากค่า R จะสามารถคำนวนได้คือ
33R / 22R = 1.5R
หมายความว่า ทุกครั้งที่เราเทรด เราจะมีความเสี่ยงที่ 1.5R คือ ถ้าเราลงทุน 1,000,000
เราก็จะคาดหวังผลตอบแทนอยู่ที่ 1,500,000 ในการลงทุนระยะยาวนั้นเอง



Dr. Tharp states in his book “Financial Trading Through Electronic Day Trading”
The golden rule of trading is to keep losses at a level of 1 R as often as possible and to make profits that are high-R multiples.

Risk-Reward Ratio
ส่วนค่า Risk-Reward Raito นี้ เป็นการมองที่ค่าความเสี่ยง เทียบกับค่ากำไรที่เราจะคาดหวัง อธิบายคือ ค่าRisk คือค่าที่เรายอมเสี่ยงได้ หรือจุดที่เราจะตั้ง Stoploss นั้นเอง ส่วนค่า Reward คือขนาดของกำไรที่เราคาดหวัง โดยคิดเป็นกี่เท่าของ R ยกตัวอย่างในตลาด Forex หากเราตั้ง Stoploss ที่ 10 pips และ Take Profit ที่ 50 pips. ค่า Risk-Reward คือ 1:5 แปลว่า เรายอมเสีย 1บาท เพื่อแลก 5 บาท นั้นเอง
Determining Risk
แล้วเราจะประเมินค่าความเสี่ยงอย่างไร? 
ค่า Risk-Reward Ratio เป็นกลยุทธทางการเทรด เพื่อที่จะสามารถทำกำไรได้ในระยะยาว แต่ค่าR:R Ratio จะต้องเหมาะสมสอดคล้องกับระบบที่ถูกออกแบบมาด้วย ซึ่งจะแตกต่างกันไปตามสินค้าที่เราเทรด, Timeframe ที่เราเทรด ด้วย ผู้ออกแบบระบบ จะต้องทำการหาค่า R:R ratio ที่เหมาะสมกับตลาดนั้นๆก่อน เพื่อให้กลยุทธมีประสิทธิภาพมากขึ้น 
การหาค่า RR ที่เหมาะสำ สามารถหาได้จากการทำ Backtest analysis ของระบบ ที่มีกลยุทธ จุดเข้าที่ชัดเจน มี SL(Stoploss) และ TP(Take Profit) ที่แน่นอน แล้วทดสอบดูว่า สามารถทำกำไรและอยู่รอดในตลาดหรือไม่ ก่อนที่จะทำการเทรดจริง
Average Profitability Per Trade
What matters is that your APPT comes up positive and that your overall profits are more than your overall losses.

Average Profitability Per Trade =
(Probability of Win x Average Win) – (Probability of Loss x Average Loss)
= average amount you can expect to win or lose per trade




Example 1:
  1. a statistical sample of 100 trades
  2. you win 20 and lose 80
  3. win rate is 20% or 0.2
  4. the probability of loss is 0.8
  5. average winning trade makes $1000
  6. average losing trade loses $500
In this scenario, the APPT is:
(0.2 x $1000) – (0.8 x $500) = -$200
The profit/loss ratio is 2:1 but still we have a negative APPT: for every trade you take, you will likely lose -$200.

Example 2: 
  1. a statistical sample of 100 trades
  2. you win 50 and lose 80
  3. win rate is 50% or 0.5
  4. the probability of loss is 0.5
  5. average winning trade makes $1000
  6. average losing trade loses $500
In this scenario, the APPT is:
(0.5 x $1000) – (0.5 x $500) = $250
Eventually, you will make profits over time.


แปลและคัดกรองจากเว็บ:  https://macrospike.com/risk-reward-ratio/

15.9.18

Trade List Update for SET100

การUpdate หรือการหา Trading List ในหุ้นต่างๆ เช่น SET100
ปกติแล้ว รายชื่อหุ้น ของ SET100 จะมีการเปลี่ยนแปลงทุกๆครึ่งปี
หรือจะมีการปรับรายชื่อหุ้นเข้า และออก ดังนั้น เราจะต้อง Update
รายชื่อให้ถูกต้อง  เพื่อความถูกต้องของการวิเคราะห์ข้อมูล

Update รายชื่อหุ้นที่ใช้คำนวนดัชนี
https://www.set.or.th/th/market/constituents.html
รายชื่อหุ้นที่ถูกปรับเข้า และ เอาออก

แต่ข้อมูลของทางSETTRADE จะให้มาเป็น PDF ซึ่งไม่สะดวกที่จะนำไปทำ List สำหรับ Amibaoker
ดังนั้นต้องเข้าหน้า




เลือกรายชื่อทั้งหน้า ของ SET100 แล้วนำไป plate ใน Excel
จากนั้นก็ลบส่วนที่ไม่ต้องการออก เอาให้เหลือไว้แค่รายชื่อ
หลังจากวางใน Excel แล้วก็ลบส่วนที่ไม่ต้องการออก
ใช้วิธี Copy รายการทั้ง Column แล้วนำไปวางที่ A2 แล้ว Plate แบบ Transpose
ก็จะได้รายชื่อเป็นแนวนอน

จะได้รายชื่อหุ้น เรียงตามแนว Row เป็นที่เรียบร้อย


ให้ทำการ Export File เป็น CSV
เท่านี้ก็จะได้รายชื่อหุ้นเป็น List โดยมี Comma เป็นตัวคั่นเรียบร้อย

Welcome to Trading System World

หลังจากที่ได้รับการศึกษาที่ Chaloke ในปี 2018 คอร์สใหญ่ เสร็จสิ้น
วันนี้มีโอกาสได้ลองเข้าร่วมกับ Trading Lab ของชมรม โดยมีโจทย์ดังนี้

************************************************************
โครงงาน ก่อนเข้าร่วม ทีมงาน CDC Trading Lab

ให้ใช้ Program Amibroker เขียน AFL เพื่อ ออกแบบระบบการ Traded  และทำการทดสอบ
โดยมีข้อกำหนดดังต่อไปนี้
1. Expectancy >0  ( In sample )
2. Trade Lists =  SET100 2018 2nd Half
3. In sample   1/1/2008 - 31/12/2014
4. Out of sample 1/1/2015 - 31/8/2018
5. หาค่า Expectancy ของ In sample
6. หาค่า Expectancy ของ out of  sample
7. หาค่า SQN100 ของ In sample
8. หาค่า SQN100 ของ out of  sample


เงื่อนไข Entry  ใช้    Trend
เงื่อนไข Exit    ใช้    Momentum
Stop Loss  ( Options )


สิ่งที่ต้องนำส่ง
1. Code AFL   ที่ ออกแบบ
2. ผล Backtest in sample / Out of sample
3. การหาค่า SQN100
4. การหาค่า Expectancy
5. Comment โครงงานที่ทำ

ส่ง file excel และ AFL นะจ๊ะ
ชื่อไฟร์ให้ก๊อบจากบนหัว เช่น 001alex9994.xls
แนบ file แล้วส่ง Email ตามด้านล่างหรือส่งในห้อง line นะครัช 
กำหนดส่งงานก่อนเที่ยงคืนวันจันทร์เด้อ(17กย.62)


ปล.ใครไม่ผ่าน ไม่ต้องเสียใจ มาเป็น coaching ปีหน้านะจ๊ะ (รับยัดใต้โต๊ะ bank)
*************************************************************************************

**********************RESULT*************************
ผมได้เลือกใช้โมเดลการทดสอบดังนี้
Buy Signal =  Break High 200day และ MACD() > 0
Sell Signal =  Momentum < 75 และ MACD() <0

ค่าที่ได้ออกมาจากการทดสอบระบบ มีดังนี้



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

จากการทดลองทำระบบ ทำให้ผมได้เรียนรู้เกี่ยวกับการทำ Trading System ที่มีรายละเอียดขึ้น ดังนี้
1. ค่า Expectancy
2. ค่า SQN 
3. การทำ Normal Distribution ด้วย Excel 
4. การหาค่า Optimize และใช้ Optimize ให้ถูกต้องเหมาะสม
5. การทำระบบ เพื่อเก็บข้อมูล เพื่อทำการ Benchmark ในการพัฒนาระบบต่อไป

ซึ่งใน Journal หนัา จะทำการเจาะลึกถึงค่าต่างๆเหล่านี้ครับ