Có gì sai với dòng mã tính toán đơn giản này?
Results 1 to 7 of 7

Thread: Có gì sai với dòng mã tính toán đơn giản này?

  1. #1
    Xin chào mọi người.

    Tôi sẽ đi qua mái nhà trong một phút.
    Tại sao phép tính dưới đây trả về 0?

    Mã được chèn gấp đôi MyNewSL = OrderOpenprice () - (StopLoss * Point * BrokerDigitCalc); OrderSelect cho OrderOpenprice đã được gọi và orderOpenprice trả về giá trị phù hợp.
    StopLoss = gấp đôi, Giá trị 15,
    Nhà môi giớiDigitCalc = gấp đôi, Giá trị 10.

    Tôi không hiểu nó? Là MT có vấn đề với tính toán khung?
    Nếu tôi chỉ thay thế mọi thứ trong ngoặc bằng 0,
    Mã được chèn gấp đôi MyNewSL = OrderOpenprice () - (0) MyNewSL đó là OrderOpenprice, như mong đợi.

    Tôi biết nó đơn giản, nhưng tại thời điểm này tôi không hiểu ...

    Trân trọng.
    WorstCase

  2. #2

    Quote Originally Posted by ;
    Xin chào mọi người. Tôi sẽ đi qua mái nhà trong một phút. Tại sao phép tính dưới đây trả về 0? Mã được chèn gấp đôi MyNewSL = OrderOpenprice () - (StopLoss * Point * BrokerDigitCalc); OrderSelect cho OrderOpenprice đã được gọi và orderOpenprice trả về giá trị phù hợp. StopLoss = double, Value 15, BrokerDigitCalc = double, Value 10. Tôi không hiểu điều đó? Là MT có vấn đề với tính toán khung? Nếu tôi chỉ thay thế mọi thứ trong ngoặc bằng 0, Mã chèn đôi MyNewSL = OrderOpenprice () - (0) MyNewSL ...
    Hãy thử điều này: nhân đôi MyNewSL = OrderOpenprice () - (StopLoss * Point) * BrokerDigitCalc; Khác hơn là sẽ cần phải xem thêm mã. Không chắc chắn ý của bạn là gì: StopLoss = double, Value 15, BrokerDigitCalc = double, Value 10.

  3. #3

    Quote Originally Posted by ;
    Xin chào mọi người. Tôi sẽ đi qua mái nhà trong một phút. Tại sao phép tính dưới đây trả về 0? Mã được chèn gấp đôi MyNewSL = OrderOpenprice () - (StopLoss * Point * BrokerDigitCalc); OrderSelect cho OrderOpenprice đã được gọi và orderOpenprice trả về giá trị phù hợp. StopLoss = double, Value 15, BrokerDigitCalc = double, Value 10. Tôi không hiểu điều đó? Là MT có vấn đề với tính toán khung? Nếu tôi chỉ thay thế mọi thứ trong ngoặc bằng 0, Mã được chèn gấp đôi MyNewSL = OrderOpenprice () - (0) MyNewSL thì đó là OrderOpenprice, ...
    bạn chỉ cho chúng tôi một phần của bức tranh. tại sao bạn không thoát khỏi orderopenprice và xem những gì dấu ngoặc trả về. mà không biết Điểm bằng với gì và bạn đang ở biểu đồ nào, tôi chỉ có thể đoán rằng toán học của bạn đang trả về một giá trị nằm ngoài phạm vi giá bình thường .... tức là nếu Điểm = 1 thì orderopenprice của bạn - (150) sẽ là một số âm .... do đó nó được thay đổi thành 0 vì bạn không thể có giá âm.

  4. #4
    Điểm = 0,00001
    Quote Originally Posted by ;
    Không chắc chắn ý của bạn là gì: StopLoss = double, Value 15, BrokerDigitCalc = double, Value 10.
    Vì vậy - bỏ dấu ngoặc ra (dù sao không thực sự cần thiết) và mọi thứ đều ổn. Mã chèn gấp đôi MyNewSL = OrderOpenprice () -StopLoss * Point * BrokerDigitCalc; Vấn đề kỳ lạ. Có vẻ như MT không thể xử lý nhiều hơn 2 giá trị trong một dấu ngoặc ... ??

  5. #5

    Quote Originally Posted by ;
    Điểm = 0,00001 Vì vậy - bỏ dấu ngoặc ra (dù sao không thực sự cần thiết) và mọi thứ đều ổn. Mã chèn gấp đôi MyNewSL = OrderOpenprice () -StopLoss * Point * BrokerDigitCalc; Vấn đề kỳ lạ. Có vẻ như MT không thể xử lý nhiều hơn 2 giá trị trong một dấu ngoặc ... ??
    ngừng gây rối với dấu ngoặc bạn đã làm sai điều gì đó Tôi chắc chắn 99.9999999% rằng mql không có vấn đề gì với dấu ngoặc. xóa ORDEROPENPRICE và xem những gì BRACKETS trả về .... chúng tôi BIẾT rằng orderopenprice sẽ chính xác và bạn đã chứng minh điều đó cho chính mình .... vì vậy hãy tìm hiểu những gì đang xảy ra trong phần KHÁC. từ đó bạn có thể bắt đầu cố gắng tìm ra những gì đang xảy ra. chúng ta không cần biết giá trị đó là đúng, chúng ta cần biết giá trị sai! nếu bạn không giải quyết vấn đề trong trường hợp này thì bạn sẽ không bao giờ giải quyết vấn đề đó nếu nó lại xuất hiện .... vì vậy hãy tìm vấn đề ngay bây giờ và luôn đảm bảo bạn không mắc lỗi tương tự (vì tôi Tôi cá là đó là điều bạn đã làm sai ở đâu đó).

  6. #6
    Tôi đã thấy các lỗi toán học với MT4 khi bạn không bao gồm đầy đủ công thức trong (). (khi công thức đang làm nhiều hơn là chỉ nhân.) double xyz = OrderOpenprice () - myValue * Point * DigitSpace; double xyz = (OrderOpenprice () - ((myValue * Point) * DigitSpace)); Hoạt động bình thường của các phương trình toán học luôn luôn là nhân trước, nhưng để đảm bảo kết quả hoặc giải pháp cho công thức như ý bạn muốn sử dụng dấu ngoặc.

  7. #7

    Quote Originally Posted by ;
    Xin chào mọi người. Tôi sẽ đi qua mái nhà trong một phút. Tại sao phép tính dưới đây trả về 0?
    Bạn đã kiểm tra lỗi đúc loại? Tôi đã bị bắt với điều đó trước đây! Hãy đọc điều này nếu bạn chưa thực hiện ...
    http://docs.mql4.com/basis/types/casting

Quyền đăng bài

  • Bạn không thể đăng bài viết mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng tệp đính kèm
  • Bạn không thể chỉnh sửa bài đăng của bạn
  •  
Chính sách Cookie
Chính sách Cookie: Website forexibroker sử dụng cookies và khi tiếp tục sử dụng website bạn chấp thuận với điều này. Để có thêm thông tin, vui lòng đọc 'Thông tin Cookie'.