Lập trình Robot cho giao dịch thuật toán của riêng bạn - những khái niệm cơ bản

Lập trình Robot cho giao dịch thuật toán của riêng bạn - những khái niệm cơ bản

Lập trình Robot cho giao dịch thuật toán của riêng bạn - những khái niệm cơ bản
Hi ae, nằm vùng cũng lâu, sắp tết nên chia sẽ với ae con bot mình đang dùng, theo mình thấy thì nó đơn giản và dễ tiếp cận hơn là dùng mql.
Sử dụng
  • Python
    • Hứng data từ tradingview, xử lý và phân tích để thực hiện mở đóng lệnh
    • Kết nối tới các sàn qua api(Xtb, ctrader), hầu hết các sàn đều có, free và có thể dùng cho cả demo account.
    • Notify tới slack để thông báo khi mở, đóng lệnh
  • Tradingview( cài đặt alert trên các indicator để lấy data)
Kết quả
  • Test ngon, lệnh chạy tốt ngay cả trên M1
  • Hiện tại đang sử dụng cùng lúc cho hơn 20 cặp tiền(M1 với M30)
  • Tự chạy trên máy ảo cùng mình(hiện tại mình đang dùng Cloud, mất tầm 15$/tháng, mình làm dev nên sài free của cty)
Screen Shot 2022-01-30 at 17.43.58.png
Screen Shot 2022-01-30 at 17.43.19.png
 
 

Đính kèm

  • Screen Shot 2022-01-30 at 17.43.19.png
    Screen Shot 2022-01-30 at 17.43.19.png
    296.8 KB · Xem: 79
Hi ae, nằm vùng cũng lâu, sắp tết nên chia sẽ với ae con bot mình đang dùng, theo mình thấy thì nó đơn giản và dễ tiếp cận hơn là dùng mql.
Sử dụng
  • Python
    • Hứng data từ tradingview, xử lý và phân tích để thực hiện mở đóng lệnh
    • Kết nối tới các sàn qua api(Xtb, ctrader), hầu hết các sàn đều có, free và có thể dùng cho cả demo account.
    • Notify tới slack để thông báo khi mở, đóng lệnh
  • Tradingview( cài đặt alert trên các indicator để lấy data)
Kết quả
  • Test ngon, lệnh chạy tốt ngay cả trên M1
  • Hiện tại đang sử dụng cùng lúc cho hơn 20 cặp tiền(M1 với M30)
  • Tự chạy trên máy ảo cùng mình(hiện tại mình đang dùng Cloud, mất tầm 15$/tháng, mình làm dev nên sài free của cty)
Screen Shot 2022-01-30 at 17.43.58.png
Screen Shot 2022-01-30 at 17.43.19.png
Theo mình thì dùng cái gì thì nó chỉ là phương tiện thôi cái quan trọng hơn là chiến thuật bên trong con bot đấy vào lệnh, đi lệnh, thoát lệnh như nào. Viết bằng ngôn ngữ mql là cách tiếp cận nhanh nhất để tạo bot rồi chẳng qua là nó phải thông qua nền tảng mt4, mt5 để gửi lệnh nên có người bảo là sàn can thiệp này kia (mặc dù chưa thấy chứng minh cụ thể).
 
 
Theo mình thì dùng cái gì thì nó chỉ là phương tiện thôi cái quan trọng hơn là chiến thuật bên trong con bot đấy vào lệnh, đi lệnh, thoát lệnh như nào. Viết bằng ngôn ngữ mql là cách tiếp cận nhanh nhất để tạo bot rồi chẳng qua là nó phải thông qua nền tảng mt4, mt5 để gửi lệnh nên có người bảo là sàn can thiệp này kia (mặc dù chưa thấy chứng minh cụ thể).
Bạn muốn chứng minh à, dễ thôi, nhờ tiến sỹ google chứng minh cho. Xem thử MQ có mấy loại API, mục đích từng API dùng làm gì. MQ chỉ bán server và terminal, API là phát hành miễn phí có khách hàng. Khách hàng (sàn) sài API vô chuyện gì là việc của sàn.

Cũng có 1 số cty họ mua white license về phát hành cái gọi MT4/MT5 Server API dùng vào việc kết nối trực tiếp với máy chủ của sàn thông qua 1 file dll, bán công khai trên mạng, cũng bỏng tay đấy: 6k source code + 1 lần update trong 12 tháng, lần sau thu thêm 800u/lần. Nếu kg có license mà làm vậy MQ kiện cho mà sấp mặt. MQ bán vũ khí, ai mua rồi tùy ý sử dụng.

Tìm hiểu đi, nếu muốn đi xa với nghề này
 
 
Chỉnh sửa lần cuối:
Bạn muốn chứng minh à, dễ thôi, nhờ tiến sỹ google chứng minh cho. Xem thử MQ có mấy loại API, mục đích từng API dùng làm gì. MQ chỉ bán server và terminal, API là phát hành miễn phí có khách hàng. Khách hàng (sàn) sài API vô chuyện gì là việc của sàn.

Cũng có 1 số cty họ mua white license về phát hành cái gọi MT4/MT5 Server API dùng vào việc kết nối trực tiếp với máy chủ của sàn thông qua 1 file dll, bán công khai trên mạng, cũng bỏng tay đấy: 6k source code + 1 lần update trong 12 tháng, lần sau thu thêm 800u/lần. Nếu kg có license mà làm vậy MQ kiện cho mà sấp mặt. MQ bán vũ khí, ai mua rồi tùy ý sử dụng.

Tìm hiểu đi, nếu muốn đi xa với nghề này
Mình không nói là MQ ko có mấy cái đấy, cái cần chứng minh là thực tế con bot bác viết lúc chạy real khác với debug ở đâu, ít nhất khi chạy real thì cũng chạy trên một tk demo tương đương để so sánh kết quả và code in ra các báo cáo trượt giá của lệnh, requote, delay...các kiểu. Đấy là các cách đơn giản nhất.
Nói như bác thì chắc bot bác viết lúc trước kiếm lợi nhuận nhiều lắm nên sàn mới nhắm vào? Ít nhất bác phải chứng minh được sàn làm ảnh hưởng bot của bác đến chức năng cụ thể nào chứ bảo bot chạy ko như lúc debug suy ra sàn chơi đểu bot bác thì cũng hơi một chiều.
Mình tìm hiểu cái gì cần thôi chứ ko học rộng như bác nhưng cái gì cần tranh luận thì vẫn phải tranh luận thôi :D:D
 
 
Mình không nói là MQ ko có mấy cái đấy, cái cần chứng minh là thực tế con bot bác viết lúc chạy real khác với debug ở đâu, ít nhất khi chạy real thì cũng chạy trên một tk demo tương đương để so sánh kết quả và code in ra các báo cáo trượt giá của lệnh, requote, delay...các kiểu. Đấy là các cách đơn giản nhất.
Nói như bác thì chắc bot bác viết lúc trước kiếm lợi nhuận nhiều lắm nên sàn mới nhắm vào? Ít nhất bác phải chứng minh được sàn làm ảnh hưởng bot của bác đến chức năng cụ thể nào chứ bảo bot chạy ko như lúc debug suy ra sàn chơi đểu bot bác thì cũng hơi một chiều.
Mình tìm hiểu cái gì cần thôi chứ ko học rộng như bác nhưng cái gì cần tranh luận thì vẫn phải tranh luận thôi :D:D

À, dễ thôi, bạn code thử cái chỉ báo stochastic đi, 1 cái dùng hàm của MQ, cái kia bạn áp công thức vô, tự tính, kg dùng hàm cho sẵn đi rồi thấy. Nói chung là cái hàm cho sẵn sẽ mượt mà hơn so với hàm tự viết 1 chút, nhưng hàm tự xây dựng từ công thức nên chẳng sai. Cái vụ này mình xem ở FF, lúc có việc cần đến chỉ báo sto thì thấy họ nói đúng, từ đấy về sau là mình không còn tin các hàm cho sẵn của MQ nữa.

Hoặc các chỉ báo có mũi tên ý, khi xem lại lịch sử sẽ thấy chúng khác nhau

Chỉ báo mà sai thì bot liệu có chạy đúng kg?

Còn muốn biết EA bị đá thì bạn tạo 2 con bot, 1 con ngoài và 1 con trong terminal gọi là ea, con ngoài là bot chính.gọi là bot. ea gởi data đều đặn cho bot, bot có 1 timer giám sát khoảng thời gian này, khi bạn có timer out thì biết là mất connect. Chờ hoài mà thấy ea chẳng làm gì, bạn chỉ cần thay đổi time frame trên chart, nơi có ea nằm ý là mọi chuyện bình thường trở lại. => ea đã bị nock out
 
 
Chỉnh sửa lần cuối:
Theo mình thì dùng cái gì thì nó chỉ là phương tiện thôi cái quan trọng hơn là chiến thuật bên trong con bot đấy vào lệnh, đi lệnh, thoát lệnh như nào. Viết bằng ngôn ngữ mql là cách tiếp cận nhanh nhất để tạo bot rồi chẳng qua là nó phải thông qua nền tảng mt4, mt5 để gửi lệnh nên có người bảo là sàn can thiệp này kia (mặc dù chưa thấy chứng minh cụ thể).
Theo mình thì dùng cái gì thì nó chỉ là phương tiện thôi cái quan trọng hơn là chiến thuật bên trong con bot đấy vào lệnh, đi lệnh, thoát lệnh như nào. Viết bằng ngôn ngữ mql là cách tiếp cận nhanh nhất để tạo bot rồi chẳng qua là nó phải thông qua nền tảng mt4, mt5 để gửi lệnh nên có người bảo là sàn can thiệp này kia (mặc dù chưa thấy chứng minh cụ thể).
Một phần là đống indicator trên tradingview rất nhiều, dễ custom.
Cái nữa là mình ko bị phụ thuộc vào data của sàn đang dùng, nên tin tưởng hơn(ko bàn tới việc bị trượt giá :)) )
 
 
À, dễ thôi, bạn code thử cái chỉ báo stochastic đi, 1 cái dùng hàm của MQ, cái kia bạn áp công thức vô, tự tính, kg dùng hàm cho sẵn đi rồi thấy. Nói chung là cái hàm cho sẵn sẽ mượt mà hơn so với hàm tự viết 1 chút, nhưng hàm tự xây dựng từ công thức nên chẳng sai. Cái vụ này mình xem ở FF, lúc có việc cần đến chỉ báo sto thì thấy họ nói đúng, từ đấy về sau là mình không còn tin các hàm cho sẵn của MQ nữa.

Hoặc các chỉ báo có mũi tên ý, khi xem lại lịch sử sẽ thấy chúng khác nhau

Chỉ báo mà sai thì bot liệu có chạy đúng kg?

Còn muốn biết EA bị đá thì bạn tạo 2 con bot, 1 con ngoài và 1 con trong terminal gọi là ea, con ngoài là bot chính.gọi là bot. ea gởi data đều đặn cho bot, bot có 1 timer giám sát khoảng thời gian này, khi bạn có timer out thì biết là mất connect. Chờ hoài mà thấy ea chẳng làm gì, bạn chỉ cần thay đổi time frame trên chart, nơi có ea nằm ý là mọi chuyện bình thường trở lại. => ea đã bị nock out
Các chỉ báo thường là repaint (lagging indicator), có thể khác nhau do timezone hoặc timefame, bác thử xem có phải do nó mà bị ảnh hưởng hay k
Như trên tradingview, mình chỉ dùng data khi kết thúc một khoảng timeframe.
 
 
Các chỉ báo thường là repaint (lagging indicator), có thể khác nhau do timezone hoặc timefame, bác thử xem có phải do nó mà bị ảnh hưởng hay k
Như trên tradingview, mình chỉ dùng data khi kết thúc một khoảng timeframe.
Chỉ báo repaint hay kg là do lập trình, nến cuối cùng - nến hiện tại lúc nào cũng repaint vì data thay đổi. Bởi vậy, khi trade bằng tay hoặc tự động đều chờ nến close rồi mới hành động.

Như chỉ báo stochastic ở trên, đa phần chúng đều giống nhau, nhưng ở những vị trí mà data có thay đổi đột ngột, hàm cho sẵn kg tính đúng, nó bị làm mượt nhìn cho đẹp thôi, mình mà lấy đó làm điều kiện cho bot chạy là toi mạng, còn trade tay thì kg sao vì con người đâu có để ý tới thay đổi nhỏ như vậy.

Mình phát hiện mấy trò đểu này khi làm con bot theo chiến lược của Thầy Alien. Khi làm việc với chỉ báo RSIOMA, mình chỉ làm đơn giản là cho bot buy/sell ở điểm giao cắt của rsi và ema của nó ở các vùng quá bán/ quá mua. Khi kiểm tra thấy bot lúc action lúc kg, mình mới kiểm tra chỉ báo thì thấy mũi tên lúc có lúc không. Mở mode debug lên chạy thì thấy nó chạy đúng. Từ đó về sau mình mất niềm tin với MQL.
 
 
Chỉ báo repaint hay kg là do lập trình, nến cuối cùng - nến hiện tại lúc nào cũng repaint vì data thay đổi. Bởi vậy, khi trade bằng tay hoặc tự động đều chờ nến close rồi mới hành động.

Như chỉ báo stochastic ở trên, đa phần chúng đều giống nhau, nhưng ở những vị trí mà data có thay đổi đột ngột, hàm cho sẵn kg tính đúng, nó bị làm mượt nhìn cho đẹp thôi, mình mà lấy đó làm điều kiện cho bot chạy là toi mạng, còn trade tay thì kg sao vì con người đâu có để ý tới thay đổi nhỏ như vậy.

Mình phát hiện mấy trò đểu này khi làm con bot theo chiến lược của Thầy Alien. Khi làm việc với chỉ báo RSIOMA, mình chỉ làm đơn giản là cho bot buy/sell ở điểm giao cắt của rsi và ema của nó ở các vùng quá bán/ quá mua. Khi kiểm tra thấy bot lúc action lúc kg, mình mới kiểm tra chỉ báo thì thấy mũi tên lúc có lúc không. Mở mode debug lên chạy thì thấy nó chạy đúng. Từ đó về sau mình mất niềm tin với MQL.
Lỗi hoạt động của EA có thể từ các nguyên nhân sau:
1. Lỗi người viết, cái này chiếm đa số, do ko debug kỹ, ko để ý các điều kiện của sàn...
2. Lỗi của của Metaquote -MT4, MT5 cũng là một phần mềm nên cũng có bug là chuyện bình thường, cái này ít nhưng vẫn có
3.Lỗi của sàn, mặc dù cùng thuê từ Metaquote nhưng mỗi sàn có đặc điểm riêng trong đó có nhiều lỗi khác nhau, mình đã gặp khá nhiều
4. Plugin của sàn do Metaquote cung cấp, cái này tùy vào sàn có muốn dùng hay ko.
Mình đã code thuê trên nhiều sàn nên gặp khá nhiều lỗi khó hiểu cần phải debug tới từng câu lệnh, từng điều kiện để tìm ra nguyên nhân. Đa số các trường hợp là lỗi do ko hiểu hết các đặc điểm của MQL cũng như của sàn. Một số trường hợp là lỗi của sàn và MQL.
Điểm khác nhau giữa lỗi của MQL/sàn và cố tình can thiệp bằng plugin là lỗi thì bác có thể chỉ ra nó sai ở đâu, ví dụ như công thức tính Stoch mà bác nói chẳng hạn chỉ cần test là thấy còn sàn can thiệp thì đa số liên quan đến tốc độ khớp lệnh, trượt giá... Bác khó có thể thể test và chỉ ra được. Nếu can thiệp mà để người khác chỉ ra được thì cả MQ và sàn đều mất uy tín ko có lợi gì.
Nếu bác ko ngại thì tải EA bác viết để test RSIOMA lên đây với nói tên sàn ra mình test thử nó là lỗi thuộc dạng nào, ko phải cứ thấy EA chạy sai là cứ phải là MQ hay sàn can thiệp :D:D
 
 
Lỗi hoạt động của EA có thể từ các nguyên nhân sau:
1. Lỗi người viết, cái này chiếm đa số, do ko debug kỹ, ko để ý các điều kiện của sàn...
2. Lỗi của của Metaquote -MT4, MT5 cũng là một phần mềm nên cũng có bug là chuyện bình thường, cái này ít nhưng vẫn có
3.Lỗi của sàn, mặc dù cùng thuê từ Metaquote nhưng mỗi sàn có đặc điểm riêng trong đó có nhiều lỗi khác nhau, mình đã gặp khá nhiều
4. Plugin của sàn do Metaquote cung cấp, cái này tùy vào sàn có muốn dùng hay ko.
Mình đã code thuê trên nhiều sàn nên gặp khá nhiều lỗi khó hiểu cần phải debug tới từng câu lệnh, từng điều kiện để tìm ra nguyên nhân. Đa số các trường hợp là lỗi do ko hiểu hết các đặc điểm của MQL cũng như của sàn. Một số trường hợp là lỗi của sàn và MQL.
Điểm khác nhau giữa lỗi của MQL/sàn và cố tình can thiệp bằng plugin là lỗi thì bác có thể chỉ ra nó sai ở đâu, ví dụ như công thức tính Stoch mà bác nói chẳng hạn chỉ cần test là thấy còn sàn can thiệp thì đa số liên quan đến tốc độ khớp lệnh, trượt giá... Bác khó có thể thể test và chỉ ra được. Nếu can thiệp mà để người khác chỉ ra được thì cả MQ và sàn đều mất uy tín ko có lợi gì.
Nếu bác ko ngại thì tải EA bác viết để test RSIOMA lên đây với nói tên sàn ra mình test thử nó là lỗi thuộc dạng nào, ko phải cứ thấy EA chạy sai là cứ phải là MQ hay sàn can thiệp :D:D

Đây là những gì mình nói từ kinh nghiệm thực tế của mình, bạn có thể kiểm tra lại bằng cách lặp lại thí nghiệm. Đừng thử bằng EA, thử bằng chỉ báo đi, nó dễ thấy lỗi hơn nhiều. Chỉ báo RSIOMA trên FF ý, down về thêm mũi tên khi có giao cắt, cái này cũng dễ mà. Tất cả những gì mình nói đều dễ dàng kiểm tra lại, nếu bạn chuyên nghiệp

Cái gì cũng cần kinh nghiệm tự thân mới tiến bộ. Hiện tại code mql mình kg còn lưu vì đã chuyển hết qua c++ rồi, nên kg có file nguồn cho bạn
 
 
Chỉnh sửa lần cuối:
Đây là những gì mình nói từ kinh nghiệm thực tế của mình, bạn có thể kiểm tra lại bằng cách lặp lại thí nghiệm. Đừng thử bằng EA, thử bằng chỉ báo đi, nó dễ thấy lỗi hơn nhiều. Chỉ báo RSIOMA trên FF ý, down về thêm mũi tên khi có giao cắt, cái này cũng dễ mà. Tất cả những gì mình nói đều dễ dàng kiểm tra lại, nếu bạn chuyên nghiệp

Cái gì cũng cần kinh nghiệm tự thân mới tiến bộ. Hiện tại code mql mình kg còn lưu vì đã chuyển hết qua c++ rồi, nên kg có file nguồn cho bạn
Cái indicator này code khá cũ rồi cần viết lại tí, với mình chắc chắn lỗi nằm ở code của indicator chứ ko phải của mql hay sàn.
Mình có thể thêm mũi tên vào các chỗ giao cắt đúng vị trí luôn cho bác nhưng phải có kèo mình mới làm vì cái indicator này ko hấp dẫn lắm :D
Thật ra chỉ muốn bác chỉ ra một lỗi cụ thể nào đấy mới mới để biết sau này tránh thôi chứ mấy lỗi này thì mình xử lí được.
 
 
Cái indicator này code khá cũ rồi cần viết lại tí, với mình chắc chắn lỗi nằm ở code của indicator chứ ko phải của mql hay sàn.
Mình có thể thêm mũi tên vào các chỗ giao cắt đúng vị trí luôn cho bác nhưng phải có kèo mình mới làm vì cái indicator này ko hấp dẫn lắm :D
Thật ra chỉ muốn bác chỉ ra một lỗi cụ thể nào đấy mới mới để biết sau này tránh thôi chứ mấy lỗi này thì mình xử lí được.

Thực ra lâu rồi kg còn chơi với mql

upload_2022-2-8_9-28-15.png


Nếu bạn kg rảnh để lặp lại thí nghiệm này, đưa mình 5 chai đi, mình làm lại cho, kaka. Nói mãi, chán
 
 
Chỉnh sửa lần cuối:
Anh em thảo luận sôi nổi quá nên mình cũng muốn chia sẽ 1 khái niệm để cùng thảo luận

Bình nguyên tham số (Parameter plateau)
Anh em làm EA muốn hệ thống mình hoạt động tốt và ổn định thì điều phải làm 1 bước là tối ưu hóa tham số.

Tuy nhiên không nên tối ưu hóa quá mức.
Vì khi tối ưu hóa quá mức sẽ khiến hệ thống có tính thích nghi kém và dễ dẫn đến thua lỗ khi đưa vào thực tế.

Dưới đây là hình minh họa cho tiêu chí đánh giá về Net Profit
(Có thể là các tiêu chí khác như RR, WinRate, Profit factor,... tùy vào mỗi người)
upload_2022-2-8_9-27-46.png

Chúng ta nên lựa chọn những tham số trong khu vực "bình nguyên" hơn là ở "đỉnh núi"
Về mặc xác suất thì "đỉnh núi" giống như 1 điểm kì dị, không ổn định và ít có khả năng xuất hiện trong thực tế
 
 
Anh em thảo luận sôi nổi quá nên mình cũng muốn chia sẽ 1 khái niệm để cùng thảo luận

Bình nguyên tham số (Parameter plateau)
Anh em làm EA muốn hệ thống mình hoạt động tốt và ổn định thì điều phải làm 1 bước là tối ưu hóa tham số.

Tuy nhiên không nên tối ưu hóa quá mức.
Vì khi tối ưu hóa quá mức sẽ khiến hệ thống có tính thích nghi kém và dễ dẫn đến thua lỗ khi đưa vào thực tế.

Dưới đây là hình minh họa cho tiêu chí đánh giá về Net Profit
(Có thể là các tiêu chí khác như RR, WinRate, Profit factor,... tùy vào mỗi người)
upload_2022-2-8_9-27-46.png

Chúng ta nên lựa chọn những tham số trong khu vực "bình nguyên" hơn là ở "đỉnh núi"
Về mặc xác suất thì "đỉnh núi" giống như 1 điểm kì dị, không ổn định và ít có khả năng xuất hiện trong thực tế
Có một số vấn đề không biết bác xử lí thế nào:
+ Vấn đề 1: Chỗ bình nguyên tham số có thể do step của tham số input tối ưu hóa nhỏ nên không tạo ra được sự khác biệt dẫn đến kết quả ít thay đổi tạo thành bình nguyên. Ví dụ EMA 20,21,22 nhiều khi kết quả trùng nhau.
+ Vấn đề 2: Sau một thời gian chạy thì kết quả tối ưu hóa các tham số có thể thay đổi nên cần tối ưu hóa lại theo định kỳ hoặc code tự động tối ưu.
Nhiều khi mình thấy phần tối ưu hóa này khá tốn thời gian nhưng cũng chẳng đảm bảo kết quả tốt hơn một bộ tham số ngẫu nhiên là mấy :)
 
 
Có một số vấn đề không biết bác xử lí thế nào:
+ Vấn đề 1: Chỗ bình nguyên tham số có thể do step của tham số input tối ưu hóa nhỏ nên không tạo ra được sự khác biệt dẫn đến kết quả ít thay đổi tạo thành bình nguyên. Ví dụ EMA 20,21,22 nhiều khi kết quả trùng nhau.
+ Vấn đề 2: Sau một thời gian chạy thì kết quả tối ưu hóa các tham số có thể thay đổi nên cần tối ưu hóa lại theo định kỳ hoặc code tự động tối ưu.
Nhiều khi mình thấy phần tối ưu hóa này khá tốn thời gian nhưng cũng chẳng đảm bảo kết quả tốt hơn một bộ tham số ngẫu nhiên là mấy :)
+ Vấn đề 1:
- step của tham số thì mình chọn tùy theo tham số đó là gì
Ví dụ: %stop loss step 0.1, MA step 1, Keltner Mult step 0.01
- Sau đó test khoảng thời gian dài ra, mình trade khung 1H và back-test từ 4-7 năm
+ Vấn đề 2:
- Nếu phải tối ưu hóa thường xuyên thì hệ thống của bạn có vẻ đã bị tối ưu hóa quá mức. hoặc bình nguyên bạn chọn chưa đủ ổn định.
- Theo ý kiến cá nhân của mình bình nguyên mình chọn swing trade phải có sự ổn định từ 4-7 năm, còn scalping thì chí ít cũng 2 năm
( tất nhiên là phải có số lượng lệnh hợp lý =]]]]]] )
- Để test nhiều thế thì tất nhiên là mình làm code tự động rồi :)
Thuật toán tối ưu thì có nhiều lắm, tham số ngẫu nhiên cũng là 1 cách, có thuật toán di truyền, thuật toán leo núi,...
 
 
EA của mình gồm 3 cụm:
1) Hệ thống tính hiệu
- Cái này mình code bằng pine script của tradingview
- Mình xây dựng ý tưởng, back-test, tối ưu hóa
2) Hệ thống tối ưu hóa, viết bằng python
- Thay đổi thông số và xuất ra thống kê
- Sau đó mình lấy dữ liệu thu được để làm thống kê và lựa chọn tham số
3) Hệ thống vào lệnh
Mình viết bằng python và build thành web api để hook từ tradingview
Gồm 2 cụm riêng
- Hệ thống vào lệnh Binance: trade tài khoản cá nhân
- Hệ thống vào lệnh trên MT5: trade quỹ
 
 
Các bạn mới muốn tạo ea đừng có theo đuổi ngôn ngữ mql, vì nó yếu, cơ bản không có tương lai. MQ luôn có các API để sàn thao túng, trên terminal có plugin "chăm sóc" khách hàng nhỏ, trên server có plugin "chăm sóc" khách hàng lớn, nhẹ nhàng nhất là giãn spread, delay lệnh.

Các bạn nên học thẳng c++, c#, nó mạnh mẽ hơn nhiều, bớt bị sàn chơi đểu. Bản thân mình chỉ còn sài ngôn ngữ mql ở giai đoạn đầu của việc phát triển bot để dễ debug, dự án tạm ổn là chuyển qua c++. Nếu cần giao diện người dùng thì sài c# cho dễ làm.

Mình đã rất vất vả với mql, nhưng khi mình thấy code mình viết chạy ở mode debug thì đúng, chạy thật thì sai nên quyết tâm từ bỏ nó. Nó không có sai 100%, lúc đúng lúc sai nên mình kg tin tưởng. Mọi người luôn đổ thừa test khác, real khác mà kg biết lý do sâu xa ở đàng sau: kg phải tại logic hay dữ liệu mà lý do chính tạo sự khác biệt là khi test kg bị thao túng, khi chạy thiệt bị thao túng. Lúc thua họ cho bot chạy, lúc ăn họ đá bot ra, thường mọi người đâu có biết bot bị đá lúc nào. Mình biết vì mình chạy bot viết bằng c++, kết nối với terminal bằng 1 con bot nhỏ nên bị đá lúc nào là mình biết liền

Hiện tại mình đang theo đuổi 1 dự án bỏ qua luôn terminal, kết nối thẳng với máy chủ của sàn, mục đích chính là giảm % thao túng của sàn, cũng sắp xong rồi.

upload_2022-1-30_7-52-9.png


Giao diện này viết bằng c#, lõi c++
upload_2022-1-30_7-55-0.png


Sau khi hoàn thành việc kết nối thẳng với máy chủ của sàn, bước tiếp theo của dự án này là display trực tiếp các chỉ báo, mục đích là dễ kiểm tra chiến lược, dễ phát triển các chiến lược mới kg cần thông qua mql.
Đích cuối cùng của dự án này là Trí tuệ nhân tạo, xong bước cuối cùng này là mình có thể nghỉ hưu đc rồi, kaka
tuyệt quá thuê bác viết mọt cái c# để gd dc khg bác
 
 
tuyệt quá thuê bác viết mọt cái c# để gd dc khg bác
Hiện tại mình chưa rảnh để viết code cho mọi người, bạn PM cho mình, ít bữa rảnh mình sẽ liên hệ.
Mà không biết bạn có đủ tiền để thuê mình kg nữa, vì code mình viết dựa trên 1 số thư viện phải mua từ bên thứ 3 với giá kg hề rẻ. Ví dụ thư viện kết nối trực tiếp với server. Phải mua thư viện thôi vì 1 tay sao che hết bầu trời đc. kakaka
 
 
Chỉnh sửa lần cuối:
Mình cũng ko muốn tranh luận với bác nữa vì cũng chẳng học hỏi thêm được gì :v :v
Nếu bạn vẫn trung thành với mql thì chẳng có gì để học thật. Bài học duy nhất ở đây là vứt mẹ mql đi, cũng khá đau đấy - kinh nghiệm bản thân, làm lại từ đầu với c++ hay c#
 
 

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

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

Miễn trừ trách nhiệm

Tất cả nội dung trên website này đều vì mục đích cung cấp thông tin và không phải lời khuyên đầu tư.

Tại Việt Nam, giao dịch CFD forex có các rủi ro nhất định, trong đó bao gồm rủi ro về pháp lý. Độc giả nên tìm hiểu kỹ trước khi đưa ra quyết định tham gia.