lỗi zero divide in là lỗi gì?

saigon

Member
Các bak cho mình hỏi cái lỗi : zero divide là lỗi gì vậy?

mình bị cái lỗi này, nó hiện ra khi cho robot chạy, kiểm tra mục Experts thì thấy :

2016.11.24 14: 15:59.620 robot-so5 GBPUSD,H1: zero divide in 'robot-so5.mq4' (101,53)

khi bị lỗi này, con robot đứng im luôn! và không làm gì nữa! mà khi Compile trong code thì không báo lỗi gì cả!

Mà bình thường thì robot vẫn chạy, nhưng có lúc nào đó, thỉnh thoảng mới bị lỗi! không phải lúc nào cũng có lỗi đâu!

tks
 

LangTu

<br><font color=blue><b>"Thiên Ngoại Hữu Thiên"</f
Các bak cho mình hỏi cái lỗi : zero divide là lỗi gì vậy?

mình bị cái lỗi này, nó hiện ra khi cho robot chạy, kiểm tra mục Experts thì thấy :

2016.11.24 14: 15:59.620 robot-so5 GBPUSD,H1: zero divide in 'robot-so5.mq4' (101,53)

khi bị lỗi này, con robot đứng im luôn! và không làm gì nữa! mà khi Compile trong code thì không báo lỗi gì cả!

Mà bình thường thì robot vẫn chạy, nhưng có lúc nào đó, thỉnh thoảng mới bị lỗi! không phải lúc nào cũng có lỗi đâu!

tks


Lỗi zero divide in là lỗi trong mql4 hoặc mql5 , khi mình cho robot (Expert Advisors) hoạt động , mặc dù trong code thì khi Compile hoàn toàn sạch sẽ. và thậm chí khi chi bộ cho robot hoạt động thì nó sẽ vẫn hoạt động bình thường.

tuy nhiên, khi 1 phép toán hoặc 1 chỉ số, biến nào đó được gọi ra thì nó mới báo lỗi, và robot sẽ đứng im, không làm gì nữa (lúc đó, chỉ có xóa sạch các lệnh đang có thì sẽ hoạt lại hoạt động bình thường!) còn bình thường, khi không được gọi ra thì robot vẫn hoạt động ổn định!

vậy nó là lỗi gì? nó chính là lỗi phép tính chia cho 0 ! ví dụ X= a/b

và bình thường thì không sao, b luôn > hoặc <0 . nhưng tại 1 trường hợp đặc biệt nào đó, thì b = 0. và lúc đó, phép toán sẽ bị lỗi. và chương trình sẽ ngừng.

vì thế, chi bộ cần kiểm tra lại các phép tính của mình, xem có đoạn nào có phép tính Chia (/) hay không, thì kiểm tra biến, hàm có lúc nào sẽ bị =0 hay không, và loại bỏ nó đi, đặt giá trị khác đi!

 

saigon

Member
tks bak Lãng, mình đã tìm ra lỗi rồi bak ạ.

đúng như bak nói, do mình tính toán chênh lệch số lot mua và bán. nên khi trường hợp đối ứng thì khối lượng lệnh buy = sell.

cho nên, lúc đó chênh lệch sẽ =0. nên mới phát sinh ra lỗi.

còn bình thường thì chênh lệch đó luôn khác 0 khi kiểm tra. cho nên không bị lỗi!

tks bak!
 
Top