Quant là cái giống gì?

Quant là cái giống gì?

Quant là cái giống gì?
Đại loại vậy. Cái này thật ra liên quan đến một khái niệm rất quan trọng của quant là portfolio managing. Giống như anh em bên chứng quản lý danh mục đầu tư, quant cũng quản lý danh mục nhưng là danh mục chiến thuật, mục tiêu tương tự như chứng là để đa dạng hóa và giảm drawdown. Sau khi tạo ra một rổ mô hình giao dịch tương thích với một lớp tài sản (asset class) nào đó, người ta sẽ phải tìm cách phân bổ vốn cho từng mô hình một, và đa dạng hóa timeframe cũng là một trong các cách để đa dạng hóa danh mục chiến thuật.
Đây là bảng so sánh hiệu suất portfolio của Ray Dalio (đường xanh) so sánh với S&P500 (đường đỏ), return là giống nhau nhưng drawdown của Ray nhỏ hơn cỡ 500% chỉ nhờ vào đa dạng hóa.
Còn chuyện mấy trăm lệnh một ngày thì không nhất thiết. Nhà em biết có những hệ thống quant chuyên đánh swing, tần suất vào lệnh cũng tương đối thấp, cỡ khoảng và ba chục lệnh một tuần cho 1 cặp. Quan trọng là mình có phương án tiếp cận hợp lý chứ ko phải cứ quant là phải lấy số lượng bù chất lượng
View attachment 202999
Mình đã code cả mấy chục con để trade nhưng chưa hiệu quả, khi code đến con EA chạy mô hình thì ưng nhất nhưng có vẻ nặng, máy chạy bị lag. Bạn cho xin ý kiến có nên tiếp tục dùng mq4 để code hay dùng gián tiếp của một phan mềm khác.
 
Đọc bài viết giúp mình mở mang được nhiều thứ.
Mong có nhiều bài viết như thế này.
Tks bác nhiều. :D
 
Mình đã code cả mấy chục con để trade nhưng chưa hiệu quả, khi code đến con EA chạy mô hình thì ưng nhất nhưng có vẻ nặng, máy chạy bị lag. Bạn cho xin ý kiến có nên tiếp tục dùng mq4 để code hay dùng gián tiếp của một phan mềm khác.
MT4 rất là cùi vì cái engine nó tới giờ là mười mấy năm rồi, nó chạy được single core thôi nên nếu được thì cụ nên chuyển qua mql5, tối ưu hóa multicore tốt hơn, strategy tester cũng được bổ sung thêm, ngôn ngữ cũng có nhiều tương đồng nên dễ làm việc. Còn nếu cụ thích thì có thể qua cTrader, về nền tảng thì nó ngon hơn MT nhiều nhưng lại ít hỗ trợ vì ít người dùng
 
MT4 rất là cùi vì cái engine nó tới giờ là mười mấy năm rồi, nó chạy được single core thôi nên nếu được thì cụ nên chuyển qua mql5, tối ưu hóa multicore tốt hơn, strategy tester cũng được bổ sung thêm, ngôn ngữ cũng có nhiều tương đồng nên dễ làm việc. Còn nếu cụ thích thì có thể qua cTrader, về nền tảng thì nó ngon hơn MT nhiều nhưng lại ít hỗ trợ vì ít người dùng

mt5 cũng cùi bắp luôn, bác nên chuyển qua c++, tự do hơn nhiều
 
mt5 cũng cùi bắp luôn, bác nên chuyển qua c++, tự do hơn nhiều
thớt hỏi MT4 thì nhà em mới khuyên chuyển qua MT5, còn nếu được bắt đầu từ đầu thì chắc chắn nhà em sẽ chọn python và R hoặc matlab để làm datamining cho nó nét, khổ cái là ko có gốc lập trình nên học mất công quá :(
 
Cho mình hỏi mql5 sao lại cùi bắp và chuyển qua c++ có gì tốt hơn, thanks.
Khi code của bạn lên tầm 5000 line bạn tự nhiên sẽ thấy. Chưa kể đủ thứ chiêu trò của nhà cái nữa (trên cả mt4 và mt5). Khi bạn chuyển qua c++ nó giảm phần lớn những chuyện này. Một cái dễ nhìn, khi bạn mở đồng thời nhiều cửa sổ với các TF khác nhau trên cùng 1 symbol, mình phát hiện cái này khu mình vừa trade vừa code, lúc mình chạy debug và đang dừng rồi vô tình kiểm tra lệnh mình thấy là tất cả các cửa sổ này đều bị dừng, tức là bạn mở bao nhiêu cửa sổ trên cùng 1 symbol, bất kể TF cửa các cửa sổ này như thế nào, tất cả đều trên cùng 1 thread. Khi đang ở giai đoạn mua bán có lời, EA của bạn bị reset liên tục, làm cho bạn bị mất cơ hội. Khi EA của bạn là dll, bạn vô hiệu được phần lớn chiêu trò của nhà cái.
Mà cũng phải thôi, nhà cái phải trả cho MetaQuotes 100k trump một tháng trên 200k người dùng với mt4, mt5 là 70k trump. Họ cho bạn sài free. Bạn nghĩ họ mở cty để làm từ thiện à. Bạn tự nghĩ nếu bạn là nhà cái đi, bạn sẽ làm gì ?
MetaQuotes cung cấp 1 cái plugin trên server để nhà cái thích làm gì thì làm. Nó có cả tên đấy nhưng mình quên rồi Thôi quá nhiều rồi, stop gấp
 
Chỉnh sửa lần cuối:
thớt hỏi MT4 thì nhà em mới khuyên chuyển qua MT5, còn nếu được bắt đầu từ đầu thì chắc chắn nhà em sẽ chọn python và R hoặc matlab để làm datamining cho nó nét, khổ cái là ko có gốc lập trình nên học mất công quá :(

Bài viết của bạn rất hay, mình tặng bạn triệu like để khuyến khích bạn chia sẻ nhiều hơn giúp cộng đồng coder Việt nam mình, VN nghèo và lạc hậu quá.

Nếu có thể bạn mở 1 topic về datamining giúp mọi người.

Mình bonus thêm cho bạn 1 câu Trồng dưa được dưa, trồng đậu được dậu, Nguyên lý này bao quát và đúng cho toàn vũ trụ. Trong vật lý thể hiện ở lực và phản lực. Trong hóa thể hiện ở phản ứng hóa học. Ở các lĩnh vực khác các bạn tự suy nghiệm. Mình gốc là dân VL

Các nhà từ thiện đích thực là các nhà đầu tư xuyên thời gian. Ông bà mình cũng hay lắm: Ăn thì mất, cho thì còn mãi
 
Chỉnh sửa lần cuối:
Khi code của bạn lên tầm 5000 line bạn tự nhiên sẽ thấy. Chưa kể đủ thứ chiêu trò của nhà cái nữa (trên cả mt4 và mt5). Khi bạn chuyển qua c++ nó giảm phần lớn những chuyện này. Một cái dễ nhìn, khi bạn mở đồng thời nhiều cửa sổ với các TF khác nhau trên cùng 1 symbol, mình phát hiện cái này khu mình vừa trade vừa code, lúc mình chạy debug và đang dừng rồi vô tình kiểm tra lệnh mình thấy là tất cả các cửa sổ này đều bị dừng, tức là bạn mở bao nhiêu cửa sổ trên cùng 1 symbol, bất kể TF cửa các cửa sổ này như thế nào, tất cả đều trên cùng 1 thread. Khi đang ở giai đoạn mua bán có lời, EA của bạn bị reset liên tục, làm cho bạn bị mất cơ hội. Khi EA của bạn là dll, bạn vô hiệu được phần lớn chiêu trò của nhà cái.
Mà cũng phải thôi, nhà cái phải trả cho MetaQuotes 100k trump một tháng trên 200k người dùng với mt4, mt5 là 70k trump. Họ cho bạn sài free. Bạn nghĩ họ mở cty để làm từ thiện à. Bạn tự nghĩ nếu bạn là nhà cái đi, bạn sẽ làm gì ?
MetaQuotes cung cấp 1 cái plugin trên server để nhà cái thích làm gì thì làm. Nó có cả tên đấy nhưng mình quên rồi Thôi quá nhiều rồi, stop gấp
Viết trên 5000 dòng mình đã viết rồi nhưng phải sử dụng song song notepad++, công nhận editor của mql khá cùi thật. Mình cũng đã nghe plugin của MT có khả năng làm chậm thời gian vào lệnh nhưng là ở bên server chứ ko phải ở terminal. Nếu bạn viết bằng c++ hay bằng ngôn ngữ gì thì cũng phải thông qua API đặt lệnh hoặc qua chính MT thì sàn vẫn có thể can thiệp được nếu muốn.
 
Viết trên 5000 dòng mình đã viết rồi nhưng phải sử dụng song song notepad++, công nhận editor của mql khá cùi thật. Mình cũng đã nghe plugin của MT có khả năng làm chậm thời gian vào lệnh nhưng là ở bên server chứ ko phải ở terminal. Nếu bạn viết bằng c++ hay bằng ngôn ngữ gì thì cũng phải thông qua API đặt lệnh hoặc qua chính MT thì sàn vẫn có thể can thiệp được nếu muốn.
Mình nói cho bạn biết là nó biên dịch sai luôn. Cái này cũng tình cờ phát hiện. Mình hay có cái trò đánh dấu chỗ đang viết bằng các gõ đại các ký tự búa lua xua rồi đi sửa code ở 1 chỗ khác. Sửa xong nhấn biên dịch để nó báo lỗi => tìm chỗ đang viết nhanh cấp kỳ. Khi code bạn đủ dài, nó bơ luôn. Một ví dụ khác, EA của mình phát lệnh khi có giao cắt, nhìn chart rõ ràng nó phải mở lệnh nhưng nó bơ luôn. Để tìm nguyên nhân, mình cho indi gốc hiện thị mũi tên ở chỗ giao cắt, debug vẫn chạy ngon lành cành đào, nhưng chạy thực thì MetaQuotes ăn mất mũi tên của mình rồi, kkk

Mình nói cho bạn biết 1 điều này nữa để bạn hiểu tại sao phải từ bỏ MQL, khi bot của bạn chạy quá lâu, mình không rõ là bao nhiêu, MetaQuotes cho bạn đơ luôn. Lúc đầu không biết, lúc sau mình cho bot hiển thị giờ thì thấy lúc kiếm ăn được MetaQuotes cho mình đơ. Bực quá tách bot ra là 2 phần, 1 phần mở lệnh phần còn lại quản lý, kiểm tra nhau liên tục theo kiểu watchdog, con này phát hiện con kia bị đơ thì tự động mở lại con bị đơ. Cũng chỉ đỡ 1 phần, MetaQuotes cho cả 2 con cùng đơ luôn.
Không khắc phục được đành chia tay MetaQuotes
 
Chỉnh sửa lần cuối:
Mình nói cho bạn biết là nó biên dịch sai luôn. Cái này cũng tình cờ phát hiện. Mình hay có cái trò đánh dấu chỗ đang viết bằng các gõ đại các ký tự búa lua xua rồi đi sửa code ở 1 chỗ khác. Sửa xong nhấn biên dịch để nó báo lỗi => tìm chỗ đang viết nhanh cấp kỳ. Khi code bạn đủ dài, nó bơ luôn. Một ví dụ khác, EA của mình phát lệnh khi có giao cắt, nhìn chart rõ ràng nó phải mở lệnh nhưng nó bơ luôn. Để tìm nguyên nhân, mình cho indi gốc hiện thị mũi tên ở chỗ giao cắt, debug vẫn chạy ngon lành cành đào, nhưng chạy thực thì MetaQuotes ăn mất mũi tên của mình rồi, kkk
Đánh dấu vị trí bạn ấn ctr+1..9, đến vị trí đấy thì ấn alt+1..9. Thường thì lỗi ko vào lệnh là do người viết chưa debug kỹ, mình hay print ra khi nào điều kiện vào lệnh đạt được, có thực hiện mở lệnh hay chưa, kết quả mở lệnh, lỗi nếu có...để dễ kiểm soát. Còn nếu bạn xác định lỗi đấy là do mql thì đưa lên diễn đàn cho họ kiểm tra và fix lại. Còn biên dịch thì công nhận có vài lần cảm thấy nó cũng hơi lag thế nên biên dịch xong phải test kỹ chứ ko tin tưởng 100% được.
 
Đánh dấu vị trí bạn ấn ctr+1..9, đến vị trí đấy thì ấn alt+1..9. Thường thì lỗi ko vào lệnh là do người viết chưa debug kỹ, mình hay print ra khi nào điều kiện vào lệnh đạt được, có thực hiện mở lệnh hay chưa, kết quả mở lệnh, lỗi nếu có...để dễ kiểm soát. Còn nếu bạn xác định lỗi đấy là do mql thì đưa lên diễn đàn cho họ kiểm tra và fix lại. Còn biên dịch thì công nhận có vài lần cảm thấy nó cũng hơi lag thế nên biên dịch xong phải test kỹ chứ ko tin tưởng 100% được.

Bạn chưa hiểu ý mình, Cái chỗ mình nói MQ ăn mất mũi tên là chính xác 100%, chạy debug đến đoạn đó rõ ràng là có mũi tên, nhưng chạy thực ngay chỗ đó kg có. Rất thường xuyên luôn.
Thôi thì tình duyên với MQ chỉ đến đấy thôi, khi mà quyền lợi kg trùng nhau thì đường ai nấy đi vậy. Hiện tại mình chỉ dùng MQL test logic, test xong bắn qua C++

Mình nói cho bạn biết, tất cả đấy kg phải là bug, MQ phải phục vụ khách hàng của mình => Nhà cái chứ không phải là tôi hay bạn hay hàng triệu coder như chúng ta. Bạn đừng có nằm mơ giữa ban ngày nữa
 
Bạn chưa hiểu ý mình, Cái chỗ mình nói MQ ăn mất mũi tên là chính xác 100%, chạy debug đến đoạn đó rõ ràng là có mũi tên, nhưng chạy thực ngay chỗ đó kg có. Rất thường xuyên luôn.
Thôi thì tình duyên với MQ chỉ đến đấy thôi, khi mà quyền lợi kg trùng nhau thì đường ai nấy đi vậy. Hiện tại mình chỉ dùng MQL test logic, test xong bắn qua C++

Mình nói cho bạn biết, tất cả đấy kg phải là bug, MQ phải phục vụ khách hàng của mình => Nhà cái chứ không phải là tôi hay bạn hay hàng triệu coder như chúng ta. Bạn đừng có nằm mơ giữa ban ngày nữa
Nói chung là nếu muốn mượt nhất thì các cụ chỉ có nước đi chơi với mấy loại prime broker như Swissquote hay Saxo thôi, rồi sau đó cắm API chạy algo là ngon, chứ metaquotes hay thậm chí là cTrader đi nữa thì cũng vẫn bị coi là đồ của retail, đám institutional nó khinh cái một. Các nền tảng ngon (từ cỡ Ninjatrader trở lên đã tính là ngon, chứ hạng Eikon, Bloomberg Terminal... thì thôi không nói) bây giờ thì chắc chắn phải có trả phí, chứ dùng đồ chùa thì kiểu gì các cụ cũng bị bên provider nó track thôi à :)))
 
Giả sử hàm OnCalculate và OnTimer process xong hết x (ms) nhưng nếu Set Timer < x ms hoặc 2 tick liên tục cách nhau <x ms thì xác định EA sẽ bị treo nếu máy yếu (thường do thuê vps giá rẻ) chưa kể nếu vps bèo thì tự chết timer luôn. Các cụ liu í nhé
 
Mình thường bật 1 cái cờ lên, tính xong hạ cờ xuống. Đang tính mà bị gọi 1 lần nữa thấy cờ đang bật đi ra để không làm hỏng dữ liệu đang tính và kg bị tràn stack. Chia chương trình thành nhiều đoạn, gọi timer tính từng đoạn, giống như thread.
Kiểm tra cờ STOP, nhưng mà lúc cao trào nó cứ STOP liên tục á, mình đã thử nhiều giải pháp nhưng chẳng hiệu quả => vứt mẹ nó đi cho rảnh.
Mình thấy bọn Nga nó dùng AI tạo bot, chạy 1 cặp tiền, 1 TF, mỗi tuần là 1 con bot mới nên họ vẫn kiếm tiền đều đều
 
Chỉnh sửa lần cuối:
Hóng bài tiếp theo của chủ thớt
Rất cảm ơn cụ đã utheo dõi ủng hộ, đợt rồi em bận quá không kiếm được thời gian đâu mà trade chứ đừng nói tới viết lách, hy vọng thời gian tới sẽ có nhiều cơ hội để viết thêm. Nhân tiện, cụ có muốn em viết về chủ đề gì cụ thể không?
 
Rất cảm ơn cụ đã utheo dõi ủng hộ, đợt rồi em bận quá không kiếm được thời gian đâu mà trade chứ đừng nói tới viết lách, hy vọng thời gian tới sẽ có nhiều cơ hội để viết thêm. Nhân tiện, cụ có muốn em viết về chủ đề gì cụ thể không?

Cám ơn bạn reply, mình quan tâm tới vấn đề backtest. Bạn backtest như thế nào?
 
Cám ơn bạn reply, mình quan tâm tới vấn đề backtest. Bạn backtest như thế nào?
Biết ngay, vậy bài tới em sẽ viết về backtest. Để trả lời cụ, em test và tối ưu hóa theo phương pháp walk forward analysis, nôm na là sử dụng một khối data mẫu làm cơ sở tối ưu hóa, rồi sau đó sử dụng một khối data khác ngoài mẫu để xác minh tính hiệu quả để tránh overfit, và lặp lại chu kỳ optimize/verify đó trong suốt chiều dài của khối lượng data. Hiện tại cả Build alpha và SQX đều có tính năng walk forward. Ngoài ra cụ có thể tham khảo Walk Forward Pro, nó là phần mềm độc lập nhưng xây dựng riêng cho MT4 và MT5. Hiện tại em đang làm cùng một vài người bạn nước ngoài trong một dự án riêng, bọn em đang hướng đến xây dựng một phần mềm khác tương tự như Walk Forward Pro
edit: Bonus cái hình cho cụ dễ hình dung. Đây chính là lý do vì sao độ lớn của mẫu thử rất quan trọng. Những bài test dành cho các hệ thống định lượng thường có mẫu thử lên đến hàng nghìn, thậm chí hàng vạn lệnh. Đơn giản là nếu mẫu thử nhỏ thì nó gây sai số lớn cho những bài đánh giá backtest về sau
ablackwellglobal-com_wp_content_uploads_2017_08_btwfmgr_wfa_diagram_01-gif.198621
 
Biết ngay, vậy bài tới em sẽ viết về backtest. Để trả lời cụ, em test và tối ưu hóa theo phương pháp walk forward analysis, nôm na là sử dụng một khối data mẫu làm cơ sở tối ưu hóa, rồi sau đó sử dụng một khối data khác ngoài mẫu để xác minh tính hiệu quả để tránh overfit, và lặp lại chu kỳ optimize/verify đó trong suốt chiều dài của khối lượng data. Hiện tại cả Build alpha và SQX đều có tính năng walk forward. Ngoài ra cụ có thể tham khảo Walk Forward Pro, nó là phần mềm độc lập nhưng xây dựng riêng cho MT4 và MT5. Hiện tại em đang làm cùng một vài người bạn nước ngoài trong một dự án riêng, bọn em đang hướng đến xây dựng một phần mềm khác tương tự như Walk Forward Pro

Cám ơn bạn nhiều
 

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

  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 96 Xem / 14 Trả lời
  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 176 Xem / 7 Trả lời
  • Mạc An trong Phân tích Forex - Vàng - Hàng hóa 1,278 Xem / 58 Trả lời
  • DuongHuy trong Phân tích Forex - Vàng - Hàng hóa 393 Xem / 24 Trả lời
  • nlinh trong Lập trình MQL - Expert Advisor - Indicator 13,932 Xem / 15 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