EA vs Overfitting Problems

EA vs Overfitting Problems

EA vs Overfitting Problems

NamVu82

Active Member
671
844
Khi lập trình EA, việc chạy Optimize để lấy tham số tối ưu không là việc lạ với anh em. Tuy nhiên, để đánh giá việc tham số tối ưu có khiến EA trở lên Overfitting hay không thì anh em lại ít đánh giá xem lại.

Dưới đây là kết quả optimize (tham số ngẫu nhiên: 7 tham số, tổng cộng 28,158,000 bộ số kết hợp)
Mình chạy đc 77 kết quả trong 133 tiếng.
Anh em cho xin chút ý kiến về vấn đề Overfitting nhé.
Cám ơn anh em.

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

Optimization Report
gama02_sep212019
Darwinex-Live (Build 1220)


SymbolXAUUSD (Gold vs US Dollar )
PeriodDaily (D1) 2011.07.25 00:00 - 2019.10.18 00:00 (2011.07.25 - 2019.10.19)
ModelEvery tick (the most precise method based on all available least timeframes)
Initial deposit2000.00
Spread20
[TBODY] [/TBODY]
OptimizationReport.gif


PassProfitTotal tradesProfit factorExpected PayoffDrawdown $Drawdown %
1144853.973591.14403.49181291.9273.66
273089.605121.11142.75145493.2594.82
31192.443731.033.2010412.5191.42
4810845.613921.132068.481334362.4276.35
5141680.825391.06262.86468366.0090.72
643549.112811.25154.9836390.8781.80
796556.134751.08203.28197997.7081.07
81681.853011.025.5921166.6885.64
96897.363831.0518.0151149.0587.56
1083103.804121.12201.71144022.0785.80
112312.031571.1914.735281.3983.34
12267586.214501.20594.64282449.7581.45
132071043.073811.135435.814481813.6676.33
142450.001791.0913.6911210.6586.08
1553614.335281.04101.54328408.6788.46
162027.714021.015.0430500.5389.02
17933496.533821.222443.711258646.8461.87
18125864.764711.06267.23576656.6581.85
1932141.573051.20105.3840740.5387.10
2073871.482691.15274.62231929.9077.18
216734.173301.0520.4144177.5287.70
22501.771401.043.583476.7084.17
23388899.593921.24992.09638026.3579.51
2430182.763951.2076.4141932.9293.34
258526936.344421.2619291.719854230.1582.30
26308.294911.000.6321157.8390.73
27271822.993341.21813.84308226.4176.83
28244096.832851.26856.48364742.2375.58
2915476.211821.4985.0313308.5578.33
30343001.283951.16868.36454894.9975.47
310.0000.000.000.000.00
3214274.623651.1439.1125567.9091.54
3337240.984431.1484.0754599.0194.60
342724255.074231.226440.325232855.4572.11
3541510.613761.21110.4033475.3883.40
36113636.293961.11286.96282205.5978.06
37666247.674131.221613.19469433.2884.15
380.0000.000.000.000.00
3937530.002911.12128.97138520.1284.22
4019937.275901.0333.79108086.8394.24
411928.102161.108.934806.5983.81
42-1558.502140.89-7.287473.1394.86
43216.254421.000.4920059.8391.13
441341307.573691.343634.981609480.6870.94
45119.272531.000.4731716.2993.74
469474170.743931.3124107.307521478.2582.98
47-1566.202110.90-7.425186.4092.28
48215.731571.021.375761.1094.55
49393070.443211.231224.52339543.9070.40
500.0000.000.000.000.00
5140328.801881.35214.5158774.9585.12
520.0000.000.000.000.00
53113918.223361.17339.04116050.9381.81
54-1173.551740.97-6.7416175.5295.16
550.0000.000.000.000.00
565952.595181.0111.4986432.7093.81
57-1497.26790.81-18.9510426.1195.40
5826734.344361.0561.32122282.0289.89
59-462.17330.81-14.011534.6966.59
60-1429.521790.76-7.993970.9093.32
610.0000.000.000.000.00
6243742.285221.0483.80277318.4392.82
637941.752261.2535.147839.8674.96
6482096.312961.22277.35100850.1789.28
654246.871471.3128.894522.8890.13
66-1660.59840.76-19.776704.4495.18
671178869.903401.163467.261565444.8479.58
6827281.783291.0782.92117228.0093.66
6918631.484911.0337.95123759.7587.29
705742.472141.1926.836818.6688.75
711399741.704451.113145.493338658.7072.87
72-741.323350.99-2.2125406.9395.34
7361149.863641.15167.99100332.5291.74
740.0000.000.000.000.00
75437616.174031.111085.901238913.5373.81
7651583.172381.22216.7450407.1774.62
771131.032801.064.043701.8791.86
[TBODY] [/TBODY]
 

Giới thiệu sách Trading hay
Khám phá Nghệ thuật Giao dịch Tiền tệ Chuyên nghiệp

Sách được viết bởi FX Trader chuyên nghiệp, có gần 30 năm giao dịch Forex cho các ngân hàng lớn thế giới như Citi, Nomura hay HSBC, đồng thời từng trading cho quỹ đầu cơ có vốn hàng chục triệu đô la
Xin hỏi ngu Overfitting ở đây nghĩa là gì vậy? Optimization nó dùng thuật toán gì vậy? tại sao lại có liên quan đến Overfitting vậy bác?
 
Bác cho hỏi 7 tham số bác dùng là gì vậy?

Vấn đề overfitting lúc bác fit model thì chịu thôi, nói chung kinh nghiệm là chính. Hoặc bác có thể giải thích model của mình có sự hợp lý về mặttài chính được thì tốt.

Anyway, mô hình bác chạy drawdown to quá!
 
Bác cho hỏi 7 tham số bác dùng là gì vậy?

Vấn đề overfitting lúc bác fit model thì chịu thôi, nói chung kinh nghiệm là chính. Hoặc bác có thể giải thích model của mình có sự hợp lý về mặttài chính được thì tốt.

Anyway, mô hình bác chạy drawdown to quá!
7 tham số của tớ là các tham số của indicator (ví dụ Ma period, MACD period, ATR period....), tớ chỉ chạy tối ưu các tham số hệ thống thôi. EA của tớ không có tham số tùy chọn (kiểu stop loss bao nhiêu pips hay take profit bao nhiêu pips)

Về phần dd cao thì các kết quả này chỉ đại diên cho 77 bộ số trên 28 triệu bộ số thôi :D thêm nữa, vol mình sử dụng max đòn bẩy của Darwin (1:20), các tham số thực chạy của tớ đáp ứng đc dd tầm 20% :D

Quan trọng ở đây là tớ muốn tham khảo anh em xem có ai có kinh nghiệm trong vụ phòng chống rủi ro từ EA Overfitting.
 
Xin hỏi ngu Overfitting ở đây nghĩa là gì vậy? Optimization nó dùng thuật toán gì vậy? tại sao lại có liên quan đến Overfitting vậy bác?
Overfitting là việc lập trình dựa trên dữ liệu quá khứ một cách quá mức. Việc này dẫn tới mức độ hoạt động hiệu quả của EA trong tương lai giảm thiểu.
Ví dụ đơn giản: Bạn dựa vào dữ liệu 100 giao dịch gần nhất, ở đó, giá thường đi ngược với lệnh bạn tầm 30 pips sau đó đi theo chiều bạn đặt lệnh. Như vậy, khi bạn lập trình, bạn sẽ đặt stoploss của bạn ở mức 36 pips chẳng hạn, như vậy bạn sẽ có 1 EA ở đó DD thấp, hiệu suất cao.

Optimization là quá trình thay đổi các thông số tham số, chạy ra kết quả, sau đó so sánh các kết quả để có một bộ tham số tối ưu.
Mình ví dụ bạn có 3 tham số, mỗi tham số có 3 lựa chọn. Như vậy bạn sẽ có 9 bộ số để chạy optimization (tối ưu).
Sau khi chạy 9 bộ số này, bạn sẽ biết bộ số nào là tối ưu với hệ thống của bạn.
Tuy nhiên, việc 1 bộ số trong 9 bộ số này có thể chỉ là Kết quả đẹp trong dữ liệu quá khứ bạn chọn để chạy tối ưu, nó không có nghĩa là tương lai khi bạn chạy real nó cũng ra kết quả tương tư. (Đây là EA Overfitting).
 
Cập nhập tiến trình optimization (142 kết quả, 222 tiếng chạy)

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

Optimization Report
gama02_sep212019
Darwinex-Live (Build 1220)


SymbolXAUUSD (Gold vs US Dollar )
PeriodDaily (D1) 2011.07.25 00:00 - 2019.10.18 00:00 (2011.07.25 - 2019.10.19)
ModelEvery tick (the most precise method based on all available least timeframes)
Initial deposit2000.00
Spread20
[TBODY] [/TBODY]
OptimizationReport.gif

PassProfitTotal tradesProfit factorExpected PayoffDrawdown $Drawdown %
1144853.973591.14403.49181291.9273.66
273089.605121.11142.75145493.2594.82
31192.443731.033.2010412.5191.42
4810845.613921.132068.481334362.4276.35
5141680.825391.06262.86468366.0090.72
643549.112811.25154.9836390.8781.80
796556.134751.08203.28197997.7081.07
81681.853011.025.5921166.6885.64
96897.363831.0518.0151149.0587.56
1083103.804121.12201.71144022.0785.80
112312.031571.1914.735281.3983.34
12267586.214501.20594.64282449.7581.45
132071043.073811.135435.814481813.6676.33
142450.001791.0913.6911210.6586.08
1553614.335281.04101.54328408.6788.46
162027.714021.015.0430500.5389.02
17933496.533821.222443.711258646.8461.87
18125864.764711.06267.23576656.6581.85
1932141.573051.20105.3840740.5387.10
2073871.482691.15274.62231929.9077.18
216734.173301.0520.4144177.5287.70
22501.771401.043.583476.7084.17
23388899.593921.24992.09638026.3579.51
2430182.763951.2076.4141932.9293.34
258526936.344421.2619291.719854230.1582.30
26308.294911.000.6321157.8390.73
27271822.993341.21813.84308226.4176.83
28244096.832851.26856.48364742.2375.58
2915476.211821.4985.0313308.5578.33
30343001.283951.16868.36454894.9975.47
310.0000.000.000.000.00
3214274.623651.1439.1125567.9091.54
3337240.984431.1484.0754599.0194.60
342724255.074231.226440.325232855.4572.11
3541510.613761.21110.4033475.3883.40
36113636.293961.11286.96282205.5978.06
37666247.674131.221613.19469433.2884.15
380.0000.000.000.000.00
3937530.002911.12128.97138520.1284.22
4019937.275901.0333.79108086.8394.24
411928.102161.108.934806.5983.81
42-1558.502140.89-7.287473.1394.86
43216.254421.000.4920059.8391.13
441341307.573691.343634.981609480.6870.94
45119.272531.000.4731716.2993.74
469474170.743931.3124107.307521478.2582.98
47-1566.202110.90-7.425186.4092.28
48215.731571.021.375761.1094.55
49393070.443211.231224.52339543.9070.40
500.0000.000.000.000.00
5140328.801881.35214.5158774.9585.12
520.0000.000.000.000.00
53113918.223361.17339.04116050.9381.81
54-1173.551740.97-6.7416175.5295.16
550.0000.000.000.000.00
565952.595181.0111.4986432.7093.81
57-1497.26790.81-18.9510426.1195.40
5826734.344361.0561.32122282.0289.89
59-462.17330.81-14.011534.6966.59
60-1429.521790.76-7.993970.9093.32
610.0000.000.000.000.00
6243742.285221.0483.80277318.4392.82
637941.752261.2535.147839.8674.96
6482096.312961.22277.35100850.1789.28
654246.871471.3128.894522.8890.13
66-1660.59840.76-19.776704.4495.18
671178869.903401.163467.261565444.8479.58
6827281.783291.0782.92117228.0093.66
6918631.484911.0337.95123759.7587.29
705742.472141.1926.836818.6688.75
711399741.704451.113145.493338658.7072.87
72-741.323350.99-2.2125406.9395.34
7361149.863641.15167.99100332.5291.74
740.0000.000.000.000.00
75437616.174031.111085.901238913.5373.81
7651583.172381.22216.7450407.1774.62
771131.032801.064.043701.8791.86
78-24.231921.00-0.1339129.7295.19
790.0000.000.000.000.00
80828381.074721.111755.041264711.1886.85
810.0000.000.000.000.00
8216928.804441.1138.1340210.2479.83
8322413.743091.1372.5434483.9585.31
845626.111391.1340.4810116.9166.91
850.0000.000.000.000.00
86-1787.541150.68-15.544643.5395.62
87-1143.961770.90-6.465241.7194.48
880.0000.000.000.000.00
890.0000.000.000.000.00
900.0000.000.000.000.00
91-1034.331260.85-8.213339.6788.87
9220244.902551.3079.3922117.2493.58
930.0000.000.000.000.00
9470512.034581.06153.96258316.2490.04
951148404.314511.212546.351485582.3377.29
961895855.293251.115833.404454866.3078.74
97-1720.941620.84-10.625502.7195.17
98-1781.161330.61-13.393729.1194.62
99872490.653381.222581.331273177.7476.54
100-905.602330.92-3.894541.0792.81
10158039.954181.15138.85100910.3388.15
1020.0000.000.000.000.00
10355568.114421.13125.72117978.6182.61
10416168.193421.1547.2834975.9086.00
105-135.702491.00-0.5410378.4289.23
106-1714.90890.43-19.272502.8089.77
1071271.192511.015.0662362.8995.09
108303636.044031.11753.441004345.4883.23
109-1677.731310.79-12.816618.0795.36
1100.0000.000.000.000.00
111983165.113321.272961.341307310.9779.10
1120.0000.000.000.000.00
1130.0000.000.000.000.00
1140.0000.000.000.000.00
1157188.502771.1025.9522348.6991.17
1160.0000.000.000.000.00
117-1724.561880.83-9.175922.4195.56
118-1338.821050.94-12.7513708.6895.40
119358805.214861.06738.28915629.1282.78
120174389.583421.20509.91287441.9183.04
121-1254.581820.87-6.893825.1591.61
1220.0000.000.000.000.00
1233997.002221.1518.006030.7680.51
124-1830.47840.46-21.793292.2795.10
1252578802.835421.084757.948460674.8983.46
126130245.654211.14309.37289233.6078.42
127627200.674901.121280.001467568.1070.28
1280.0000.000.000.000.00
12917249.132911.1559.2842114.7783.00
130-1755.80840.70-20.904688.8495.05
1310.0000.000.000.000.00
1327621666.764881.2415618.177490815.0880.41
133-942.492870.98-3.2820288.1595.05
1346982649.034341.3716089.056379327.1868.44
13553045.293531.11150.2794962.7184.00
1361492.645221.012.8631881.6091.57
1370.0000.000.000.000.00
138-1472.26790.85-18.6410751.9495.32
139-1845.571290.51-14.312994.8995.10
140344636.043061.341126.26438583.0966.44
1410.0000.000.000.000.00
142540236.525861.08921.911546404.7389.14
[TBODY] [/TBODY]
 
Overfitting là việc lập trình dựa trên dữ liệu quá khứ một cách quá mức. Việc này dẫn tới mức độ hoạt động hiệu quả của EA trong tương lai giảm thiểu.
Ví dụ đơn giản: Bạn dựa vào dữ liệu 100 giao dịch gần nhất, ở đó, giá thường đi ngược với lệnh bạn tầm 30 pips sau đó đi theo chiều bạn đặt lệnh. Như vậy, khi bạn lập trình, bạn sẽ đặt stoploss của bạn ở mức 36 pips chẳng hạn, như vậy bạn sẽ có 1 EA ở đó DD thấp, hiệu suất cao.

Optimization là quá trình thay đổi các thông số tham số, chạy ra kết quả, sau đó so sánh các kết quả để có một bộ tham số tối ưu.
Mình ví dụ bạn có 3 tham số, mỗi tham số có 3 lựa chọn. Như vậy bạn sẽ có 9 bộ số để chạy optimization (tối ưu).
Sau khi chạy 9 bộ số này, bạn sẽ biết bộ số nào là tối ưu với hệ thống của bạn.
Tuy nhiên, việc 1 bộ số trong 9 bộ số này có thể chỉ là Kết quả đẹp trong dữ liệu quá khứ bạn chọn để chạy tối ưu, nó không có nghĩa là tương lai khi bạn chạy real nó cũng ra kết quả tương tư. (Đây là EA Overfitting).
cảm ơn bác đã giải thích. Đây là bài toán rất khó, vì nếu ai có hướng xử lý được thì đã có chén thánh rồi. Kinh nghiệm của mình là không nên sử dụng quá nhiều tham số (ban đầu có thể nhiều nhưng sau tinh chỉnh và bỏ đi các tham số không quan trọng) thì sẽ làm tăng tính ổn định của 1 chiến lược.
 
1. Không dùng Genetic Algorithm để tối ưu
2. Chỉ optimize 1-2 tham số 1 lúc, không optimize cả 7 tham số cùng 1 lúc
3. Đánh giá stability của cả các giá trị xung quanh optimal value
4. Dùng fixed lot chứ ko dùng %balance để đánh giá kq
5. Mỗi Step tối ưu không được quá chặt
6. Design robust rules - nếu design đúng thì hầu hết các kết quả test sẽ đều lãi với bất kỳ giá trị tham số nào

Robust rules thì optimize sẽ ra kết quả ntn:
upload_2019-11-26_1-47-52.png
 
Chỉnh sửa lần cuối:
1. Không dùng Genetic Algorithm để tối ưu
2. Chỉ optimize 1-2 tham số 1 lúc, không optimize cả 7 tham số cùng 1 lúc
3. Đánh giá stability của cả các giá trị xung quanh optimal value
4. Dùng fixed lot chứ ko dùng %balance để đánh giá kq
5. Mỗi Step tối ưu không được quá chặt
6. Design robust rules - nếu design đúng thì hầu hết các kết quả test sẽ đều lãi với bất kỳ giá trị tham số nào

Robust rules thì optimize sẽ ra kết quả ntn:
View attachment 123778
Cám ơn bạn nhiều.
 
Mình cũng hay code EA nhưng mình không biết cách dùng Optimize để tối ưu hóa tham số. Có bạn nào chỉ cách chạy cái này như thế nào không. Nếu được thì cho mình càng chi tiết càng tốt. Cảm ơn 500 anh em trước.
 
1. Không dùng Genetic Algorithm để tối ưu
2. Chỉ optimize 1-2 tham số 1 lúc, không optimize cả 7 tham số cùng 1 lúc
3. Đánh giá stability của cả các giá trị xung quanh optimal value
4. Dùng fixed lot chứ ko dùng %balance để đánh giá kq
5. Mỗi Step tối ưu không được quá chặt
6. Design robust rules - nếu design đúng thì hầu hết các kết quả test sẽ đều lãi với bất kỳ giá trị tham số nào

Robust rules thì optimize sẽ ra kết quả ntn:
View attachment 123778
cao thủ đây rồi, con EA của bác ngon quá, có link myfxbook không bác? cho em mở rộng tầm mắt tí :D
 
1. Không dùng Genetic Algorithm để tối ưu
2. Chỉ optimize 1-2 tham số 1 lúc, không optimize cả 7 tham số cùng 1 lúc
3. Đánh giá stability của cả các giá trị xung quanh optimal value
4. Dùng fixed lot chứ ko dùng %balance để đánh giá kq
5. Mỗi Step tối ưu không được quá chặt
6. Design robust rules - nếu design đúng thì hầu hết các kết quả test sẽ đều lãi với bất kỳ giá trị tham số nào

Robust rules thì optimize sẽ ra kết quả ntn:
View attachment 123778
Tham số bạn sử dụng là tham số thống kê hay tham số hệ thống (mô hình)?
 
Không hiểu ý bạn lắm. Nếu tối ưu MACD có 3 tham số thì phải tối ưu từng tham số. Tương tự SL TP hay tất cả mọi tham số khác.
Tham số MACD là tham số hệ thống
Tham số Stop loss, take profit, nếu là tham số động (theo indicator nào đó hoặc theo thuật toán, ko phải tham số tĩnh) thì được coi là tham số hệ thống. Ngược lại, nếu những tham số này là con số rõ ràng, được chỉ định (kiểu stop loss 30 pips, take profit 80 pips) thì được coi là tham số thống kê (tham số tối ưu thông qua thống kê các giao dịch trong quá khư (tập dữ liệu)).
 
À nếu vậy thì tất cả đều phải là tham số động hết.
Không bao giờ nên design EA theo tham số tĩnh.
 

BÌNH LUẬN MỚI NHẤT

  • DuongHuy trong Hệ thống giao dịch - Trading system 37,489 Xem / 18 Trả lời
  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 1,561 Xem / 94 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 367 Xem / 29 Trả lời
  • Quíc Óp trong Phân tích Forex - Vàng - Hàng hóa 345 Xem / 18 Trả lời
  • AdBlock Detected

    We get it, advertisements are annoying!

    Sure, ad-blocking software does a great job at blocking ads, but it also blocks useful features of our website. For the best site experience please disable your AdBlocker.

    Back
    Bên trên