Đinh Toàn
Active Member
- 69
- 144
Bài viết này là bài thứ 2 trong chùm bài backtesting trong giao dịch thuật toán và định lượng. Trong bài này em sẽ đi sâu vào một chức năng rất hay và cũng cực kỳ gây nhầm lẫn là tối ưu hóa. Các cụ có thể đọc phần 1 tại đây Quant trading: Backtesting - câu chuyện muôn thuở | TraderViet
Tối ưu hóa (optimization) là hoạt động backtest hàng loạt các thiết đặt sẵn có của một hệ thống giao dịch để sao cho kết quả thu được là tối ưu nhất với một tập dữ liệu giá cho trước.
Ví dụ đơn giản, các cụ có một con EA chạy MACD(a, b, x) (thiết lập mặc định là 12,26,9), khi nào đường MACD cắt lên phía trên đường tín hiệu thì mua tại giá mở cửa cây nến tiếp theo, khi nào cắt xuống thì bán ở giá ở cửa cây nến tiếp theo. Logic có thể viết như thế này:
Khi cho con bot này vào chương trình tối ưu hóa và chọn bộ dữ liệu, ví dụ cặp EU khung H1 giai đoạn 2020 đến 2021, máy tính sẽ tự động thử toàn bộ các kết hợp thiết đặt cho các biến a, b và x và sắp xếp kết quả thu được theo thứ tự nhất định, và các cụ có thể xem bộ setting nào cho profit cao nhất, drawdown thấp nhất, profit factor cao nhất... hoặc gì nữa thì tùy các cụ chỉnh.
Đây là giao diện của chương trình backtest trên MT4 (hình chôm từ metatrader4.com, tại em lười test). Các cụ có thể ấn nút tick vào ô Optimization để máy chạy tự động.
...và đây là giao diện kết quả trên MT4. Mỗi chấm tương ứng với profit thu được với một kết hợp (a,b,x). Chẳng hạn nhìn vào đây có thể biết được ngay những cái chấm ở càng cao trên trục y thì cho lợi nhuận càng lớn, và các cụ hoàn toàn có thể so sánh được setting nào ngon nhất (ví dụ MACD(18,36,8) cho nhiều profit hơn (8, 12, 24). Ví dụ thôi nhé).
Nhà em sẽ không nói dài dòng về chức năng optimization trên MT4, cụ nào muốn tham khảo thì có thể search trên google, có rất nhiều hướng dẫn chạy tối ưu hóa rồi. Nhìn chung đây là một trong những tính năng rất quan trọng mà một người giao dịch thuật toán không được bỏ qua. Những ưu điểm lớn nhất phải kể đến là tốc độ xử lý của máy tính nhanh hơn người rất nhiều. Chỉ cần EA code tốt, đúng logic thì máy chạy được hết, và nó chắc chắn cho toàn bộ kết quả quan sát được một cách cực kỳ khách quan. Nói chung riêng về tốc độ và độ chính xác thì lợi thế của tự động hóa là khỏi bàn. Tuy nhiên vì nó chính xác quá, chính xác tới mức thuần túy cơ học nên nếu trade mà chỉ dựa vào kết quả tối ưu hóa tốt nhất thì chắc chắn là toang ngay, lý do là bởi có rất nhiều ngộ nhận trong quá trình này.
Nói một cách nôm na, tối ưu hóa giống như hành động gọt chân cho vừa giày. Một hệ thống giao dịch được coi là bền vững (có thuật ngữ riêng cho sự bền vững của một hệ thống, gọi là robustness) khi nó có khả năng khái quát hóa (generalize) cao, tức là nó đủ dẻo dai để sống sót qua nhiều điều kiện thị trường khác nhau, trong khi bản chất của tối ưu hóa lại tước đi khả năng khái quát hóa của hệ thống giao dịch để phục vụ cho duy nhất một tập dữ liệu cho trước. Chính vì sự mâu thuẫn này nên phần lớn, nếu không phải là tất cả các kết hợp MACD(a,b,x) kể trên có khả năng rất cao là không chạy được trong điều kiện thực tế.
Hãy tưởng tượng một anh thợ sửa ống nước có 5 năm kinh nghiệm làm việc trong một ngôi làng nhỏ và dân cư thưa thớt, và trong 5 năm hành nghề vừa qua anh ta chỉ cần mỗi một cái cờ lê cỡ 13mm là đủ để vặn tất cả các thể loại bu lông ốc vít cần thiết trong làng. Một ngày nọ, quá chán với nhịp sống buồn tẻ ở làng quê, anh ta bèn chuyển lên thành phố làm việc. Ngày đầu tiên đi làm, anh thợ cũng chỉ mang mỗi một chiếc cờ lê cỡ 13mm quen thuộc, và tự nhiên nó không khớp với cỡ bu lông của khách hàng. Bối rối quá, anh ta không còn cách nào khác ngoài việc chạy về nhà lấy thêm cờ lê, và rồi khách hàng phàn nàn với quản lý của anh thợ này. Sự việc tiếp diễn với người khách thứ 2, thứ 3 rồi thứ 4. Người quản lý cuối cùng không còn cách nào khác ngoài đuổi việc người thợ, trong khi anh ta cực kỳ bối rối. "Tôi có làm gì sai đâu", anh ta phân bua. Trong 5 năm qua tôi chỉ cần mỗi một chiếc cờ lê là có thể giải quyết được tất cả mọi việc trên đời, vậy tại sao bây giờ nó lại khiến tôi mất việc? Chẳng lẽ chiếc cờ lê 13mm bảo bối của tôi lại sai?
Điều mà có lẽ anh thợ của chúng ta không biết, trong khoa học thống kê có một thuật ngữ riêng cho trạng thái "gọt chân cho vừa giày" này, dân ngành gọi là Hiệu chỉnh đường cong (curve-fitting). Về mặt bản chất toán học, hiệu chỉnh đường cong là hành động thay đổi một mô hình nào đó sao cho nó "khớp" nhất với một khối dữ liệu rời rạc cho trước.
Ví dụ như trong hình, những cái chấm chấm là dữ liệu thô, và mô hình hiệu chỉnh là đường ngoằn ngoèo màu đỏ. Nếu bỏ qua mô hình hiệu chỉnh thì có thể nhận thấy là khối dữ liệu cho trước có giá trị tương đối rời rạc, và đường cong màu đỏ là mô hình khớp với phân phối dữ liệu này. Đặt vào văn cảnh của thị trường là tập hợp dữ liệu giá, đường màu đỏ chính là hệ thống giao dịch mà chúng ta đang xây dựng.
Đến đây nhiều cụ sẽ nghĩ là vậy phải làm cho mô hình càng khớp với dữ liệu thì càng tốt, nhưng điều này sẽ gây ra hậu quả tai hại nếu như dữ liệu thay đổi. Ví dụ như hình dưới (nhà em vẽ bằng paint, hơi xấu tí các cụ thông cảm), khi mô hình vẫn tiếp diễn như cũ nhưng dữ liệu thì lệch toàn phần. Đây là vấn đề nghiêm trọng nhất của tối ưu hóa. Các mô hình dạng này được gọi là các mô hình quá khớp (over-fitting), tức là nó khớp với dữ liệu cũ quá đà đến mức không có khả năng miêu tả các dữ liệu mới. Điều này cũng giống như việc trong một ngôi làng bé xíu và không có nhiều bu lông để mà vặn, anh thợ của chúng ta rất có thể chỉ cần một chiếc cờ lê cỡ 13 là đủ, nhưng điều đó không còn đúng khi anh thợ chuyển lên thành phố lớn.
Giai đoạn phía bên phải đường thẳng màu xanh mô tả một khối dữ liệu mà hệ thống chúng ta xây dựng không còn phù hợp.
Đây có lẽ là một sự thật tương đối đau lòng và mang tính hiện sinh với nhiều người xây dựng thuật toán giao dịch tự động: Bất kể họ có cố gắng đến đâu, bất kể hệ thống có phức tạp, tinh vi đến nhường nào, bất kể trông lợi tức của nó có ngon lành như thế nào trong quá khứ đi nữa thì tự nó cũng vẫn chỉ là các hệ thống tĩnh, và đến một lúc nào đó nó mất khả năng khái quát hóa trong một môi trường dữ liệu động và luôn thay đổi như dữ liệu thị trường.
Trong toán học, các đường cong là đồ thị của Đa thức. Đa thức càng nhiều biến thì đồ thị càng có nhiều đường cong hơn, và nó càng có nhiều cơ hội để đi sát hơn với khối dữ liệu mẫu, và càng nhiều nguy cơ khiến nó trở thành mô hình hiệu chỉnh đường cong. Càng có nhiều đường cong thì năng lực dự đoán (predictive power) của mô hình càng giảm. Cụ nào học giỏi xác suất thống kê thì sẽ liên tưởng ngay đến hồi quy tuyến tính. Mô hình hồi quy tuyến tính sử dụng hàm tuyến tính (tức chỉ gồm 2 biến x y) để dự đoán mức độ tương quan và giá trị số học trung bình của khối dữ liệu, đồng nghĩa với việc nó có khả năng khái quát hóa cao nhất. Rất không may nhà em lại dốt toán mà lại sợ lạc đề nên thôi không dám nói sâu vào chủ đề này. Tóm lại, để giảm bớt nguy cơ dính hiệu chỉnh, chúng ta phải giảm bớt số lượng Tham số (parameters) khi tiến hành tối ưu hóa.
Ví dụ: mô hình hiệu chỉnh đường cong khi so sánh với đường hồi quy tuyến tính (vẽ bừa nên có thể hơi sai tí các cụ thông cảm)
Thực tế, một con EA chạy kết hợp nhiều chỉ báo có thể xuất hiện rất nhiều tham số. Lấy ví dụ con bot MACD ở trên, nó có 3 tham số là a,b và x. Khi kết hợp nó với các chỉ báo khác, ví dụ thêm đường MA, số lượng tham số tăng lên thành 6 (chu kỳ, công thức tính và công thức giá). RSI có 2 tham số, Stochastic có 5... Càng nhiều tham số tham gia vào quá trình tối ưu hóa, kết quả thu được càng có nhiều khả năng khớp với dữ liệu mẫu. Tưởng tượng một chiếc xe đạp, khi nó càng có nhiều bộ phận chuyển động thì càng dễ xảy ra hỏng hóc, và càng khó sửa chữa. Đây là lý do vì sao hệ thống có quá nhiều chỉ báo thường không hiệu quả.
Hãy tiếp tục với anh thợ nước của chúng ta. Điên tiết và xấu hổ, anh ta quyết tâm xây dựng cho mình một cỗ máy thời gian. Anh quay về tận 10 năm trước để nghiên cứu xem tình hình bu lông ốc vít trước đây như thế nào, và anh ta phát hiện ra rằng hóa ra mình đã nhầm. Hóa ra trong 10 năm qua người ta dùng nhiều bu lông cỡ 18 hơn hẳn cỡ 13. Vậy đáng ra anh ta phải mang theo một chiếc cờ lê cỡ 18 chứ đúng không? Làm sao để anh thợ của chúng ta chắc chắn rằng bản thân chiếc cờ lê cỡ 18 cũng không phải là kết quả của một mô hình quá khớp nào đó? Anh ta dùng tới 10 năm dữ liệu nên chắc nó phải có độ tin cậy cao hơn chứ đúng không?
Không hẳn.
Để tránh quá khớp, trong quá trình tối ưu hóa, người ta chia khối dữ liệu ra thành 2 phần, gọi là dữ liệu mẫu (In sample data) và dữ liệu ngoài mẫu (Out of sample data). Trong ví dụ của anh chàng thợ nước, dữ liệu mẫu của anh ta là 5 năm làm việc trong một ngôi làng bé xíu và hẻo lánh, và hiển nhiên anh ta làm tốt vì trong làng còn không có nhiều bu lông đến thế. Mọi chuyện chỉ bắt đầu trở nên sai sai khi anh ta tiếp xúc với dữ liệu ngoài mẫu, tức là thành phố lớn. Đối với quá trình tối ưu hóa một hệ thống giao dịch, dữ liệu mẫu là khối dữ liệu dùng để trích xuất các tham số (ví dụ các cách kết hợp setting khác nhau của MACD chẳng hạn), và dữ liệu ngoài mẫu dùng để kiểm tra xem các tham số trích xuất được làm ăn ra sao trong một môi trường mà mô hình đó chưa từng gặp bao giờ. Phần lớn các mô hình tạo ra bởi quá trình tối ưu hóa sẽ dính tiêu chảy cấp ngay lập tức, nhưng sẽ có một vài mô hình có khả năng sống sót qua phép thử này. Đây là bước thử nghiệm đầu tiên để xây dựng một hệ thống giao dịch bền vững.
Vậy nên, quay trở lại với câu hỏi của anh thợ sửa ống nước, câu trả lời là tương đối đơn giản: Đáng lẽ ra anh ta phải sử dụng một chiếc mỏ lết chứ không phải cờ lê.
(còn tiếp)
Phần sau: Chiếc mỏ lết và các cách đánh giá hiệu quả của quá trình tối ưu hóa
Tối ưu hóa - tại sao có
Tối ưu hóa (optimization) là hoạt động backtest hàng loạt các thiết đặt sẵn có của một hệ thống giao dịch để sao cho kết quả thu được là tối ưu nhất với một tập dữ liệu giá cho trước.
Ví dụ đơn giản, các cụ có một con EA chạy MACD(a, b, x) (thiết lập mặc định là 12,26,9), khi nào đường MACD cắt lên phía trên đường tín hiệu thì mua tại giá mở cửa cây nến tiếp theo, khi nào cắt xuống thì bán ở giá ở cửa cây nến tiếp theo. Logic có thể viết như thế này:
Mã:
If (MACD(a,b) > Signal(MACD, x));
Buy(Open);
Else if (MACD(a,b) < Signal(MACD, x));
Sell(Open);
Khi cho con bot này vào chương trình tối ưu hóa và chọn bộ dữ liệu, ví dụ cặp EU khung H1 giai đoạn 2020 đến 2021, máy tính sẽ tự động thử toàn bộ các kết hợp thiết đặt cho các biến a, b và x và sắp xếp kết quả thu được theo thứ tự nhất định, và các cụ có thể xem bộ setting nào cho profit cao nhất, drawdown thấp nhất, profit factor cao nhất... hoặc gì nữa thì tùy các cụ chỉnh.
Đây là giao diện của chương trình backtest trên MT4 (hình chôm từ metatrader4.com, tại em lười test). Các cụ có thể ấn nút tick vào ô Optimization để máy chạy tự động.
...và đây là giao diện kết quả trên MT4. Mỗi chấm tương ứng với profit thu được với một kết hợp (a,b,x). Chẳng hạn nhìn vào đây có thể biết được ngay những cái chấm ở càng cao trên trục y thì cho lợi nhuận càng lớn, và các cụ hoàn toàn có thể so sánh được setting nào ngon nhất (ví dụ MACD(18,36,8) cho nhiều profit hơn (8, 12, 24). Ví dụ thôi nhé).
Nhà em sẽ không nói dài dòng về chức năng optimization trên MT4, cụ nào muốn tham khảo thì có thể search trên google, có rất nhiều hướng dẫn chạy tối ưu hóa rồi. Nhìn chung đây là một trong những tính năng rất quan trọng mà một người giao dịch thuật toán không được bỏ qua. Những ưu điểm lớn nhất phải kể đến là tốc độ xử lý của máy tính nhanh hơn người rất nhiều. Chỉ cần EA code tốt, đúng logic thì máy chạy được hết, và nó chắc chắn cho toàn bộ kết quả quan sát được một cách cực kỳ khách quan. Nói chung riêng về tốc độ và độ chính xác thì lợi thế của tự động hóa là khỏi bàn. Tuy nhiên vì nó chính xác quá, chính xác tới mức thuần túy cơ học nên nếu trade mà chỉ dựa vào kết quả tối ưu hóa tốt nhất thì chắc chắn là toang ngay, lý do là bởi có rất nhiều ngộ nhận trong quá trình này.
Tối ưu hóa - tại sao không
Nói một cách nôm na, tối ưu hóa giống như hành động gọt chân cho vừa giày. Một hệ thống giao dịch được coi là bền vững (có thuật ngữ riêng cho sự bền vững của một hệ thống, gọi là robustness) khi nó có khả năng khái quát hóa (generalize) cao, tức là nó đủ dẻo dai để sống sót qua nhiều điều kiện thị trường khác nhau, trong khi bản chất của tối ưu hóa lại tước đi khả năng khái quát hóa của hệ thống giao dịch để phục vụ cho duy nhất một tập dữ liệu cho trước. Chính vì sự mâu thuẫn này nên phần lớn, nếu không phải là tất cả các kết hợp MACD(a,b,x) kể trên có khả năng rất cao là không chạy được trong điều kiện thực tế.
Hãy tưởng tượng một anh thợ sửa ống nước có 5 năm kinh nghiệm làm việc trong một ngôi làng nhỏ và dân cư thưa thớt, và trong 5 năm hành nghề vừa qua anh ta chỉ cần mỗi một cái cờ lê cỡ 13mm là đủ để vặn tất cả các thể loại bu lông ốc vít cần thiết trong làng. Một ngày nọ, quá chán với nhịp sống buồn tẻ ở làng quê, anh ta bèn chuyển lên thành phố làm việc. Ngày đầu tiên đi làm, anh thợ cũng chỉ mang mỗi một chiếc cờ lê cỡ 13mm quen thuộc, và tự nhiên nó không khớp với cỡ bu lông của khách hàng. Bối rối quá, anh ta không còn cách nào khác ngoài việc chạy về nhà lấy thêm cờ lê, và rồi khách hàng phàn nàn với quản lý của anh thợ này. Sự việc tiếp diễn với người khách thứ 2, thứ 3 rồi thứ 4. Người quản lý cuối cùng không còn cách nào khác ngoài đuổi việc người thợ, trong khi anh ta cực kỳ bối rối. "Tôi có làm gì sai đâu", anh ta phân bua. Trong 5 năm qua tôi chỉ cần mỗi một chiếc cờ lê là có thể giải quyết được tất cả mọi việc trên đời, vậy tại sao bây giờ nó lại khiến tôi mất việc? Chẳng lẽ chiếc cờ lê 13mm bảo bối của tôi lại sai?
Điều mà có lẽ anh thợ của chúng ta không biết, trong khoa học thống kê có một thuật ngữ riêng cho trạng thái "gọt chân cho vừa giày" này, dân ngành gọi là Hiệu chỉnh đường cong (curve-fitting). Về mặt bản chất toán học, hiệu chỉnh đường cong là hành động thay đổi một mô hình nào đó sao cho nó "khớp" nhất với một khối dữ liệu rời rạc cho trước.
Ví dụ như trong hình, những cái chấm chấm là dữ liệu thô, và mô hình hiệu chỉnh là đường ngoằn ngoèo màu đỏ. Nếu bỏ qua mô hình hiệu chỉnh thì có thể nhận thấy là khối dữ liệu cho trước có giá trị tương đối rời rạc, và đường cong màu đỏ là mô hình khớp với phân phối dữ liệu này. Đặt vào văn cảnh của thị trường là tập hợp dữ liệu giá, đường màu đỏ chính là hệ thống giao dịch mà chúng ta đang xây dựng.
Đến đây nhiều cụ sẽ nghĩ là vậy phải làm cho mô hình càng khớp với dữ liệu thì càng tốt, nhưng điều này sẽ gây ra hậu quả tai hại nếu như dữ liệu thay đổi. Ví dụ như hình dưới (nhà em vẽ bằng paint, hơi xấu tí các cụ thông cảm), khi mô hình vẫn tiếp diễn như cũ nhưng dữ liệu thì lệch toàn phần. Đây là vấn đề nghiêm trọng nhất của tối ưu hóa. Các mô hình dạng này được gọi là các mô hình quá khớp (over-fitting), tức là nó khớp với dữ liệu cũ quá đà đến mức không có khả năng miêu tả các dữ liệu mới. Điều này cũng giống như việc trong một ngôi làng bé xíu và không có nhiều bu lông để mà vặn, anh thợ của chúng ta rất có thể chỉ cần một chiếc cờ lê cỡ 13 là đủ, nhưng điều đó không còn đúng khi anh thợ chuyển lên thành phố lớn.
Giai đoạn phía bên phải đường thẳng màu xanh mô tả một khối dữ liệu mà hệ thống chúng ta xây dựng không còn phù hợp.
Đây có lẽ là một sự thật tương đối đau lòng và mang tính hiện sinh với nhiều người xây dựng thuật toán giao dịch tự động: Bất kể họ có cố gắng đến đâu, bất kể hệ thống có phức tạp, tinh vi đến nhường nào, bất kể trông lợi tức của nó có ngon lành như thế nào trong quá khứ đi nữa thì tự nó cũng vẫn chỉ là các hệ thống tĩnh, và đến một lúc nào đó nó mất khả năng khái quát hóa trong một môi trường dữ liệu động và luôn thay đổi như dữ liệu thị trường.
Điều gì tạo ra hiệu chỉnh đường cong
Trong toán học, các đường cong là đồ thị của Đa thức. Đa thức càng nhiều biến thì đồ thị càng có nhiều đường cong hơn, và nó càng có nhiều cơ hội để đi sát hơn với khối dữ liệu mẫu, và càng nhiều nguy cơ khiến nó trở thành mô hình hiệu chỉnh đường cong. Càng có nhiều đường cong thì năng lực dự đoán (predictive power) của mô hình càng giảm. Cụ nào học giỏi xác suất thống kê thì sẽ liên tưởng ngay đến hồi quy tuyến tính. Mô hình hồi quy tuyến tính sử dụng hàm tuyến tính (tức chỉ gồm 2 biến x y) để dự đoán mức độ tương quan và giá trị số học trung bình của khối dữ liệu, đồng nghĩa với việc nó có khả năng khái quát hóa cao nhất. Rất không may nhà em lại dốt toán mà lại sợ lạc đề nên thôi không dám nói sâu vào chủ đề này. Tóm lại, để giảm bớt nguy cơ dính hiệu chỉnh, chúng ta phải giảm bớt số lượng Tham số (parameters) khi tiến hành tối ưu hóa.
Ví dụ: mô hình hiệu chỉnh đường cong khi so sánh với đường hồi quy tuyến tính (vẽ bừa nên có thể hơi sai tí các cụ thông cảm)
Thực tế, một con EA chạy kết hợp nhiều chỉ báo có thể xuất hiện rất nhiều tham số. Lấy ví dụ con bot MACD ở trên, nó có 3 tham số là a,b và x. Khi kết hợp nó với các chỉ báo khác, ví dụ thêm đường MA, số lượng tham số tăng lên thành 6 (chu kỳ, công thức tính và công thức giá). RSI có 2 tham số, Stochastic có 5... Càng nhiều tham số tham gia vào quá trình tối ưu hóa, kết quả thu được càng có nhiều khả năng khớp với dữ liệu mẫu. Tưởng tượng một chiếc xe đạp, khi nó càng có nhiều bộ phận chuyển động thì càng dễ xảy ra hỏng hóc, và càng khó sửa chữa. Đây là lý do vì sao hệ thống có quá nhiều chỉ báo thường không hiệu quả.
Hãy tiếp tục với anh thợ nước của chúng ta. Điên tiết và xấu hổ, anh ta quyết tâm xây dựng cho mình một cỗ máy thời gian. Anh quay về tận 10 năm trước để nghiên cứu xem tình hình bu lông ốc vít trước đây như thế nào, và anh ta phát hiện ra rằng hóa ra mình đã nhầm. Hóa ra trong 10 năm qua người ta dùng nhiều bu lông cỡ 18 hơn hẳn cỡ 13. Vậy đáng ra anh ta phải mang theo một chiếc cờ lê cỡ 18 chứ đúng không? Làm sao để anh thợ của chúng ta chắc chắn rằng bản thân chiếc cờ lê cỡ 18 cũng không phải là kết quả của một mô hình quá khớp nào đó? Anh ta dùng tới 10 năm dữ liệu nên chắc nó phải có độ tin cậy cao hơn chứ đúng không?
Không hẳn.
Để tránh quá khớp, trong quá trình tối ưu hóa, người ta chia khối dữ liệu ra thành 2 phần, gọi là dữ liệu mẫu (In sample data) và dữ liệu ngoài mẫu (Out of sample data). Trong ví dụ của anh chàng thợ nước, dữ liệu mẫu của anh ta là 5 năm làm việc trong một ngôi làng bé xíu và hẻo lánh, và hiển nhiên anh ta làm tốt vì trong làng còn không có nhiều bu lông đến thế. Mọi chuyện chỉ bắt đầu trở nên sai sai khi anh ta tiếp xúc với dữ liệu ngoài mẫu, tức là thành phố lớn. Đối với quá trình tối ưu hóa một hệ thống giao dịch, dữ liệu mẫu là khối dữ liệu dùng để trích xuất các tham số (ví dụ các cách kết hợp setting khác nhau của MACD chẳng hạn), và dữ liệu ngoài mẫu dùng để kiểm tra xem các tham số trích xuất được làm ăn ra sao trong một môi trường mà mô hình đó chưa từng gặp bao giờ. Phần lớn các mô hình tạo ra bởi quá trình tối ưu hóa sẽ dính tiêu chảy cấp ngay lập tức, nhưng sẽ có một vài mô hình có khả năng sống sót qua phép thử này. Đây là bước thử nghiệm đầu tiên để xây dựng một hệ thống giao dịch bền vững.
Vậy nên, quay trở lại với câu hỏi của anh thợ sửa ống nước, câu trả lời là tương đối đơn giản: Đáng lẽ ra anh ta phải sử dụng một chiếc mỏ lết chứ không phải cờ lê.
Phần sau: Chiếc mỏ lết và các cách đánh giá hiệu quả của quá trình tối ưu hóa
Giới thiệu sách Trading hay
Phương Pháp Wyckoff Hiện Đại - Kỹ thuật Nhận diện Xu hướng Thị trường Tiềm năng
Phương pháp Wyckoff là một phương pháp price action kinh điển và đem lại thành công cho nhiều trader. Phương pháp này là nền tảng của nhiều phương pháp trading nổi tiếng khác
Chỉnh sửa lần cuối:
Bài viết liên quan