[NHÁ HÀNG] Thuật toán dựa vào Tiến hoá tự nhiên

[NHÁ HÀNG] Thuật toán dựa vào Tiến hoá tự nhiên

[NHÁ HÀNG] Thuật toán dựa vào Tiến hoá tự nhiên
Có 1 vấn đề: Đó là quá nhiều tham số để lựa chọn. Phải xây dựng cơ sở dữ liệu để lưu các tham số rồi sau này phải tìm kiếm trong đó. Rủi ro nữa là khi chọn nhầm thao số.

Làm sao để trời mưa nó mặc áo mưa và trời nắng nó mặc quần tà lõn?

Làm sao để nó học thị trường lên, thị trường xuống và đứng hình thì nó không nhảy vào, khi lên thì vô.

Làm sao???

Ta đã có cách giải quyết, kaka. :cool:

Vì không ai tham gia nên ta sẽ bán EA và signal với giá chóng mặt. Hãy đợi đó. :p
Tôi muốn tham gia nhưng tôi không biết code liệu có được không?
Tôi biết cái nội dung bạn nói tới từ lâu và biết sử dụng manual thôi.
 
Robot bác chủ thớt code dạng kiểu trí tuệ nhân tạo deep learning đẳng cấp pro, hóng chờ xem kết quả nếu ok được chủ thớt bán tín hiệu trên MQL5 thì mua tín hiệu. Quan trọng giờ là tùy chỉnh tham số nói chung phải mất rất nhiều thời gian và công sức giống như kiểu Edison phải mất 10000 lần thử nghiệm chất liệu thì mới tìm ra được chất liệu tốt nhất làm dây tóc bóng đèn, mà kiểu này chỉ cần có khoảng 10 tham số đầu vào thôi tùy chỉnh rồi cho con robot nó chén cũng tốn thời gian công sức lắm.
 
Mình đi con đường này rồi, khẳng định là có kết quả (robot của mình hiện đã make profit). Tuy nhiên, nó không nhẹ nhàng và đơn giản như ý tưởng hiện giờ của chủ thớt. Chủ thớt nên đọc thêm về các mô hình toán và machine learning. Mình đưa một số ý kiến từ trải nghiệm của bản thân để giúp chủ thớt tiết kiệm thời gian (và tiền bạc) nếu quyết đi theo hướng này đến cùng. Đi được đến cùng hay không thì lại phải trông chờ vào chủ thớt.
  1. Cái tiến hoá tự nhiên mà chủ thớt đang nhắc đến, trong machine learning nó là genetic algorithms (GA). GA đã được implement trong chức năng backtest optimization của MT4. Nên chỉ cần mở chức năng này lên, chọn mấy tham số cần tối ưu, chọn tiêu chí muốn tối ưu, nó sẽ làm tự động cho mình. Hiệu quả hơn làm bằng tay.
  2. Backtest hay optimize tham số bằng GA không work! Mặc dù dân tài chính rất thích backtest, mặc dù MT4 implement hẳn hoi GA cho trader nhưng gần như tất cả các model chạy backtest cho kết quả tuyệt đẹp ra ngoài thực tế đều chết thê thảm. Nguyên nhân là vì overfitting (cũng 1 thuật ngữ nữa của machine learning). Ví dụ cho dễ hiểu. Con robot của chủ thớt quan sát 10 lần, thấy hết 7 lần là lá rơi thì trời mưa, thế là nó kết luận cứ lá rơi thì vô lệnh. Đem cái rule đó chạy trên 10 lần nó vừa quan sát thì nó win hết 7 (backtest). Ra chạy thực tế 1 tuần thì nó win còn 5/5 (forward test tuần đầu). Tới tuần sau thì win 0/10. Dĩ nhiên nguyên nhân gây ra overfitting thì phức tạp hơn và cái ví dụ dễ hiểu của mình thì không diễn đạt hết được. Cho dù có test trên data 10 năm, 20 năm, 50 năm cũng không fix được vấn đề này. Cách fix là phải làm sao cho con robot học những rule đủ mạnh. Ví dụ như trời đen kịt thì sắp có mưa.
Hồi xưa mình đi con đường này cũng rất đau khổ. Chia sẻ 1 vài cái hố để chủ thớt có muốn đi thì bớt khổ hơn mình ngày xưa.
 
Mình đi con đường này rồi, khẳng định là có kết quả (robot của mình hiện đã make profit). Tuy nhiên, nó không nhẹ nhàng và đơn giản như ý tưởng hiện giờ của chủ thớt. Chủ thớt nên đọc thêm về các mô hình toán và machine learning. Mình đưa một số ý kiến từ trải nghiệm của bản thân để giúp chủ thớt tiết kiệm thời gian (và tiền bạc) nếu quyết đi theo hướng này đến cùng. Đi được đến cùng hay không thì lại phải trông chờ vào chủ thớt.
  1. Cái tiến hoá tự nhiên mà chủ thớt đang nhắc đến, trong machine learning nó là genetic algorithms (GA). GA đã được implement trong chức năng backtest optimization của MT4. Nên chỉ cần mở chức năng này lên, chọn mấy tham số cần tối ưu, chọn tiêu chí muốn tối ưu, nó sẽ làm tự động cho mình. Hiệu quả hơn làm bằng tay.
  2. Backtest hay optimize tham số bằng GA không work! Mặc dù dân tài chính rất thích backtest, mặc dù MT4 implement hẳn hoi GA cho trader nhưng gần như tất cả các model chạy backtest cho kết quả tuyệt đẹp ra ngoài thực tế đều chết thê thảm. Nguyên nhân là vì overfitting (cũng 1 thuật ngữ nữa của machine learning). Ví dụ cho dễ hiểu. Con robot của chủ thớt quan sát 10 lần, thấy hết 7 lần là lá rơi thì trời mưa, thế là nó kết luận cứ lá rơi thì vô lệnh. Đem cái rule đó chạy trên 10 lần nó vừa quan sát thì nó win hết 7 (backtest). Ra chạy thực tế 1 tuần thì nó win còn 5/5 (forward test tuần đầu). Tới tuần sau thì win 0/10. Dĩ nhiên nguyên nhân gây ra overfitting thì phức tạp hơn và cái ví dụ dễ hiểu của mình thì không diễn đạt hết được. Cho dù có test trên data 10 năm, 20 năm, 50 năm cũng không fix được vấn đề này. Cách fix là phải làm sao cho con robot học những rule đủ mạnh. Ví dụ như trời đen kịt thì sắp có mưa.
Hồi xưa mình đi con đường này cũng rất đau khổ. Chia sẻ 1 vài cái hố để chủ thớt có muốn đi thì bớt khổ hơn mình ngày xưa.
Đi được tới đâu rồi bác? Cho anh em đi ké đoạn đường với
 
Mình đi con đường này rồi, khẳng định là có kết quả (robot của mình hiện đã make profit). Tuy nhiên, nó không nhẹ nhàng và đơn giản như ý tưởng hiện giờ của chủ thớt. Chủ thớt nên đọc thêm về các mô hình toán và machine learning. Mình đưa một số ý kiến từ trải nghiệm của bản thân để giúp chủ thớt tiết kiệm thời gian (và tiền bạc) nếu quyết đi theo hướng này đến cùng. Đi được đến cùng hay không thì lại phải trông chờ vào chủ thớt.
  1. Cái tiến hoá tự nhiên mà chủ thớt đang nhắc đến, trong machine learning nó là genetic algorithms (GA). GA đã được implement trong chức năng backtest optimization của MT4. Nên chỉ cần mở chức năng này lên, chọn mấy tham số cần tối ưu, chọn tiêu chí muốn tối ưu, nó sẽ làm tự động cho mình. Hiệu quả hơn làm bằng tay.
  2. Backtest hay optimize tham số bằng GA không work! Mặc dù dân tài chính rất thích backtest, mặc dù MT4 implement hẳn hoi GA cho trader nhưng gần như tất cả các model chạy backtest cho kết quả tuyệt đẹp ra ngoài thực tế đều chết thê thảm. Nguyên nhân là vì overfitting (cũng 1 thuật ngữ nữa của machine learning). Ví dụ cho dễ hiểu. Con robot của chủ thớt quan sát 10 lần, thấy hết 7 lần là lá rơi thì trời mưa, thế là nó kết luận cứ lá rơi thì vô lệnh. Đem cái rule đó chạy trên 10 lần nó vừa quan sát thì nó win hết 7 (backtest). Ra chạy thực tế 1 tuần thì nó win còn 5/5 (forward test tuần đầu). Tới tuần sau thì win 0/10. Dĩ nhiên nguyên nhân gây ra overfitting thì phức tạp hơn và cái ví dụ dễ hiểu của mình thì không diễn đạt hết được. Cho dù có test trên data 10 năm, 20 năm, 50 năm cũng không fix được vấn đề này. Cách fix là phải làm sao cho con robot học những rule đủ mạnh. Ví dụ như trời đen kịt thì sắp có mưa.
Hồi xưa mình đi con đường này cũng rất đau khổ. Chia sẻ 1 vài cái hố để chủ thớt có muốn đi thì bớt khổ hơn mình ngày xưa.

ý bạn là để robot có tầm nhìn bao quát hơn phải ko ;)
thay vì để ý tiểu tiết lá rơi-trời mưa, thì nên có tầm nhìn rộng mây đen-trời mưa
vậy theo bạn để có thể làm robot loại này thì nên chọn khung thời gian nào là hợp lý ?:p
 
  1. Cái tiến hoá tự nhiên mà chủ thớt đang nhắc đến, trong machine learning nó là genetic algorithms (GA). GA đã được implement trong chức năng backtest optimization của MT4. Nên chỉ cần mở chức năng này lên, chọn mấy tham số cần tối ưu, chọn tiêu chí muốn tối ưu, nó sẽ làm tự động cho mình. Hiệu quả hơn làm bằng tay.
  2. Backtest hay optimize tham số bằng GA không work! Mặc dù dân tài chính rất thích backtest, mặc dù MT4 implement hẳn hoi GA cho trader nhưng gần như tất cả các model chạy backtest cho kết quả tuyệt đẹp ra ngoài thực tế đều chết thê thảm. Nguyên nhân là vì overfitting (cũng 1 thuật ngữ nữa của machine learning)....
Cảm ơn bác đã chia sẽ. Nhưng mà nói thiệt là mình không biết backtest bằng MT4, bởi vì nó theo ý mình, MT4 như *** để trade EA. Lý do:
1. Nó bị mất bars. Mình ghét nhất. Chắc bác cũng biết, và chắc hầu như mọi người không biết.
Ví dụ: Period của bạn bằng 10, từ phút thứ 1 đến phút thứ 10, nhưng mà nếu khúc đó bị mất 1 bar nào đó, sẽ thành phút 0 đến phút 10.
2. Theo mình được biết, MT4 không cho backtest nhiều cặp tiền.

Mình dùng Grid Search, không phải GA.
Em nó chạy 30 phút chỉ để học mua và chỉ 30 phút để học bán trên 2 tháng dữ liệu.

Bác có thể giải thích cho mình?
Mình cho em nó học năm 2016, từ tháng 7 đến tháng 9, chỉ cho em nó bán không thôi
ai.imgur.com_70jCYas.png


Và cho em nó chạy trên 2014, thị trường tăng
ai.imgur.com_VNHYm0v.png


Và kết quả
ai.imgur.com_UrtPgji.png

Low to High của 2014 là khoảng 15000 pips, em nó lại lời 7810 pips.

Mình không lấy 2015 và 2016 vì thị trường cũng xuống, bác lại nói mình overfitting.

Mình không phải tự cao gì. Vì mình nghĩ bác hiểu sai ý mình.
Mình viết riêng công cụ để mình backtest. Và mình nghĩ cách thức của bác và mình khác nhau.

Bác có thể nói cách thức của bác, và mình có thể nói cách thức của mình để so sánh.
 
Tôi muốn tham gia nhưng tôi không biết code liệu có được không?
Tôi biết cái nội dung bạn nói tới từ lâu và biết sử dụng manual thôi.

1. Nếu bác biết code thì hay hơn.

2. Hiện tại mình bận, không có thời gian để viết hướng dẫn đâu.

Mà mình viết thuật toán mới rồi, cái này khỏi ngồi tí là tìm ra tham số ngay. Bác có thể xem ở journal của mình
 
Cảm ơn bác đã chia sẽ. Nhưng mà nói thiệt là mình không biết backtest bằng MT4, bởi vì nó theo ý mình, MT4 như *** để trade EA. Lý do:
1. Nó bị mất bars. Mình ghét nhất. Chắc bác cũng biết, và chắc hầu như mọi người không biết.
Ví dụ: Period của bạn bằng 10, từ phút thứ 1 đến phút thứ 10, nhưng mà nếu khúc đó bị mất 1 bar nào đó, sẽ thành phút 0 đến phút 10.
2. Theo mình được biết, MT4 không cho backtest nhiều cặp tiền.

Mình dùng Grid Search, không phải GA.
Em nó chạy 30 phút chỉ để học mua và chỉ 30 phút để học bán trên 2 tháng dữ liệu.

Bác có thể giải thích cho mình?
Mình cho em nó học năm 2016, từ tháng 7 đến tháng 9, chỉ cho em nó bán không thôi
View attachment 5003

Và cho em nó chạy trên 2014, thị trường tăng
View attachment 5004

Và kết quả
View attachment 5005
Low to High của 2014 là khoảng 15000 pips, em nó lại lời 7810 pips.

Mình không lấy 2015 và 2016 vì thị trường cũng xuống, bác lại nói mình overfitting.

Mình không phải tự cao gì. Vì mình nghĩ bác hiểu sai ý mình.
Mình viết riêng công cụ để mình backtest. Và mình nghĩ cách thức của bác và mình khác nhau.

Bác có thể nói cách thức của bác, và mình có thể nói cách thức của mình để so sánh.
Ở đây mình chỉ chia sẻ bài học rút ra từ trải nghiệm bản thân. Mình không có nhu cầu tranh luận hay so sánh gì cả. Việc này không có lợi cho mình. Mình chỉ xuất phát từ ý muốn muốn giúp đỡ bạn thôi. Mình cũng chỉ post thêm bài này nữa thôi.

1. Không chỉ MT4 mà các backtest optimizer khác (bạn có thể search thêm, trên thị trường có rất nhiều công cụ backtest và optimizer) đều implement 2 nhóm thuật toán là grid search và GA. Khi số lượng tham số trở nên quá nhiều, grid search trở nên không còn hiệu quả (thử tưởng tượng 10 tham số với 50 giá trị khác nhau của mỗi tham số, không gian tìm kiếm sẽ lên đến 50^10), người ta phải dùng đến GA.
2. Vấn đề bị mất bar mình đã từng gặp. 2 nguyên nhân lớn nhất của mình là dữ liệu không chuẩn và lỗi trong quá trình convert sang file của MT4. Tuy nhiên dữ liệu hoàn toàn chính xác là không có, dữ liệu mình bỏ tiền để mua vẫn bị thiếu 1 vài minute, tuy nhiên tỉ lệ rất thấp.
3. Test trên dữ liệu out of sample (như trong ví dụ của bạn) không giải quyết được vấn đề overfitting. Bạn có thể tham khảo thêm trong 2 link này: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2308659, https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2326253
4. Từ quan điểm của mình, có 2 hướng khả thi để kiếm được tiền từ nghề trading:
  1. Tự học: tự mình quan sát nhiều, thử nghiệm nhiều, tự rút ra những quy luật của thị trường, xây dựng hệ thống cho mình. Sau khi rút ra được quy luật, xây dựng được hệ thống cho mình, một số bạn có thể sẽ viết 1 con robot để tự động hoá về trading nhưng vẫn dựa trên những quy luật bạn "tự học" được.
  2. Máy học (machine learning, AI): để máy quan sát từ dữ liệu quá khứ và rút ra quy luật. Hướng này khoai không kém gì hướng 1.
Khi mình nói "con đường của bạn", mình đang ám chỉ bạn sẽ đi theo hướng 2. Mình đi theo hướng 2, có được 1 ít thành quả, thấy có người cũng muốn đi con đường này nên nghĩ chia sẻ của mình sẽ giúp bạn tránh được nhiều sai lầm đáng tiếc vì chia sẻ theo hướng 1 còn tìm được chứ chia sẻ theo hướng 2 thì ít lắm.
 
Chỉnh sửa lần cuối:
Khi mình nói "con đường của bạn", mình đang ám chỉ bạn sẽ đi theo hướng 2. Mình đi theo hướng 2, có được 1 ít thành quả, thấy có người cũng muốn đi con đường này nên nghĩ chia sẻ của mình sẽ giúp bạn tránh được nhiều sai lầm đáng tiếc vì chia sẻ theo hướng 1 còn tìm được chứ chia sẻ theo hướng 2 thì ít lắm.
Bác đi rồi thì chỉ đường cho anh em đi sau với. Kẻo bao nhiêu tiền anh em newbies vào rổ bọn broker hết.
 
Ở đây mình chỉ chia sẻ bài học rút ra từ trải nghiệm bản thân. Mình không có nhu cầu tranh luận hay so sánh gì cả. Việc này không có lợi cho mình. Mình chỉ xuất phát từ ý muốn muốn giúp đỡ bạn thôi. Mình cũng chỉ post thêm bài này nữa thôi.

1. Không chỉ MT4 mà các backtest optimizer khác (bạn có thể search thêm, trên thị trường có rất nhiều công cụ backtest và optimizer) đều implement 2 nhóm thuật toán là grid search và GA. Khi số lượng tham số trở nên quá nhiều, grid search trở nên không còn hiệu quả (thử tưởng tượng 10 tham số với 50 giá trị khác nhau của mỗi tham số, không gian tìm kiếm sẽ lên đến 50^10), người ta phải dùng đến GA.
2. Vấn đề bị mất bar mình đã từng gặp. 2 nguyên nhân lớn nhất của mình là dữ liệu không chuẩn và lỗi trong quá trình convert sang file của MT4. Tuy nhiên dữ liệu hoàn toàn chính xác là không có, dữ liệu mình bỏ tiền để mua vẫn bị thiếu 1 vài minute, tuy nhiên tỉ lệ rất thấp.
3. Test trên dữ liệu out of sample (như trong ví dụ của bạn) không giải quyết được vấn đề overfitting. Bạn có thể tham khảo thêm trong 2 link này: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2308659, https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2326253
4. Từ quan điểm của mình, có 2 hướng khả thi để kiếm được tiền từ nghề trading:
  1. Tự học: tự mình quan sát nhiều, thử nghiệm nhiều, tự rút ra những quy luật của thị trường, xây dựng hệ thống cho mình. Sau khi rút ra được quy luật, xây dựng được hệ thống cho mình, một số bạn có thể sẽ viết 1 con robot để tự động hoá về trading nhưng vẫn dựa trên những quy luật bạn "tự học" được.
  2. Máy học (machine learning, AI): để máy quan sát từ dữ liệu quá khứ và rút ra quy luật. Hướng này khoai không kém gì hướng 1.
Khi mình nói "con đường của bạn", mình đang ám chỉ bạn sẽ đi theo hướng 2. Mình đi theo hướng 2, có được 1 ít thành quả, thấy có người cũng muốn đi con đường này nên nghĩ chia sẻ của mình sẽ giúp bạn tránh được nhiều sai lầm đáng tiếc vì chia sẻ theo hướng 1 còn tìm được chứ chia sẻ theo hướng 2 thì ít lắm.

Bác vô ăn me xong đi ra để người khác thèm chơi vậy bác:mad:? Khi rảnh bác quay lại viết vài bài cho anh em học hỏi.

3. Cảm ơn bác dẫn link. Mới sáng ra đọc chẳng hiểu mô tê gì cả. Để mình đọc sau vậy.

4. Mình đi theo hướng hoà hợp hoài hoà giữa 1 và 2. Mình dùng 2 để loại bỏ những lỗi mà mình mắc phải khi dùng 1. Mình nghĩ đây là cách tốt nhất.

Lấy nhu chế cương
Lấy tĩnh chế động
Khí tại đan điền
Âm dương hoà hợp.


Hi vọng gặp lại bác. :)
 
Từ khi biết code tới giờ đã hơn 15 năm, chính thức theo nghề cũng hơn 11 năm, nghe bác BIBO nói sao mình cảm thấy bay bổng quá. Mong bác mau chế biến ý tưởng thành món ngon cho anh em backtest đỡ thèm.
 
Từ khi biết code tới giờ đã hơn 15 năm, chính thức theo nghề cũng hơn 11 năm, nghe bác BIBO nói sao mình cảm thấy bay bổng quá. Mong bác mau chế biến ý tưởng thành món ngon cho anh em backtest đỡ thèm.
o_O

Vãi...

Bác đã ít kỹ, không giúp thì thôi. Mà mặt còn dày nữa...
 
Hiện mình mới phát triển model mới. Đây là kết quả của:
sto.SetTimeRange(new DateTime(2014, 2, 11, 0, 0, 0, DateTimeKind.Utc), new DateTime(2014, 10, 24, 0, 0, 0, DateTimeKind.Utc));

ai.imgur.com_WYk9BAl.png

Ai có thể giúp đỡ code alo ở đây nhé.
 
Ngôn ngữ lập trình gì mà khó hiểu rứa bác Huy? Như tiếng Ả rập ấy nhỉ? kaka:rolleyes:;):(:D:p
 
Ngôn ngữ lập trình gì mà khó hiểu rứa bác Huy? Như tiếng Ả rập ấy nhỉ? kaka:rolleyes:;):(:D:p
Bên nhà thương Biên Hòa nó đang thiếu bệnh nhân trong giới tài chính nên nó tung loại code này ra. TraderViet đang làm IB cho bển. Cứ 1 em vào nó rebate cho 1000 usd. Vậy nên phải tung lên cho anh em đọc đặng mau vô trỏng
 
Quên nữa, mình chưa nói rõ ý show hàng lần này:

Đây là dự án lâu dài từ 3 đến 6 tháng.
Mình muốn mọi người cùng nhau thử nghiệm. Hi vọng thuật toán này hoàn thiện và chạy có lời và rủi ro thấp để cùng nhau hưởng.

Không ai tham gia thì mình đành theo hướng kinh doanh signal.

Hi vọng mọi người tham gia. Chỉ ở http://traderviet.org/forums/ này thôi nhé.

Gặp lại sau...

Cùng nhau hưởng nghe sợ sợ.

Hồi nhỏ xem cổ trang tvb hay nghe câu "dễ dàng cùng chung hoạn nạn, khó lòng cùng hưởng vinh hoa".
 

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

  • The Blade trong Kiến thức Trading - Kinh nghiệm Trading 70,279 Xem / 38 Trả lời
  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 1,642 Xem / 80 Trả lời
  • TraderViet News trong Chuyện bên lề 258 Xem / 1 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 451 Xem / 24 Trả lời
  • ngoi_sao_co_doc trong Phân tích Forex - Vàng - Hàng hóa 24,145 Xem / 83 Trả lời
  • Quíc Óp trong Phân tích Forex - Vàng - Hàng hóa 343 Xem / 3 Trả lời
  • Berkeley trong Phân tích Forex - Vàng - Hàng hóa 121 Xem / 2 Trả lời
  • LuTienSinh trong Phân tích Forex - Vàng - Hàng hóa 201 Xem / 3 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