Bất kỳ lời khuyên cho một EA thực hiện nhanh hơn?
Trang 1 trên 622 12 CuốiCuối
Results 1 to 10 of 12

Thread: Bất kỳ lời khuyên cho một EA thực hiện nhanh hơn?

  1. #1
    Howdy,

    Tôi đã tự hỏi liệu có ai có khả năng cung cấp một số gợi ý hoặc gợi ý về cách làm cho mã của bạn hoạt động nhanh hơn không. Tôi không cố gắng để xây dựng một bản chất HFT để thực hiện thời gian thực là thứ yếu (nhưng tất nhiên luôn luôn là một tiền thưởng). Thay vào đó, tôi đang cố gắng cắt giảm thời gian kiểm tra chiến lược giữa mỗi lần vượt qua.
    Điều này có thể có lợi ích rõ ràng cho việc sử dụng thời gian khi chạy một tối ưu hóa lớn (vì tôi).

    Tôi đang làm việc trong môi trường xung quanh MetaTrader nhưng hãy trò chuyện với bất kỳ ngôn ngữ nào mà ai đó có thể sử dụng.
    Tôi có những ý tưởng mà chúng tôi đã thực hiện:

    MetaTrader 5 (64 bit và sử dụng tất cả các lõi)
    CPU mạnh hơn (trong phạm vi ngân sách)
    Việc sử dụng các số nguyên
    Lập trình hướng đối tượng (Tôi không phải là 100% về điều này nhưng nó có vẻ hợp lý rằng một phạm vi số lượng nhỏ hơn .mqh tài liệu sẽ nhanh hơn một tài liệu khổng lồ .mq5 - ý tưởng?)

    Bất kỳ gợi ý nào khác?

    Cảm ơn rất nhiều!

  2. #2

    Quote Originally Posted by ;
    Lập trình hướng đối tượng (Tôi không phải là 100% về điều này nhưng nó có vẻ hợp lý rằng một số lượng nhỏ hơn .mqh tập tin sẽ nhanh hơn một tập tin .mq5 khổng lồ - ý tưởng?)
    Chắc là không. Đó không phải là cách máy tính hoạt động ... Mã này cũng được biên dịch.

  3. #3
    Cảm ơn bạn đã làm rõ.
    Tôi không có bất kỳ nền tảng nào trong máy tính nhưng đã tự dạy mình lập trình trong một thời gian, vì vậy sẽ có những giai đoạn lớn trong sự hiểu biết khoa học máy tính của tôi. Xin lỗi nếu đây là một sai lầm rõ ràng. Tìm kiếm các thói quen tốt để đón, mong muốn tìm hiểu.

  4. #4
    Quote Originally Posted by ;
    Cảm ơn bạn đã làm rõ.
    rằng tôi không có bất kỳ nền tảng nào trong máy tính nhưng đã tự dạy mình lập trình trong một thời gian, vì vậy sẽ có những chương lớn về sự hiểu biết khoa học máy tính cá nhân của tôi. Xin lỗi nếu đây là một sai lầm rõ ràng. Tìm kiếm những thói quen tốt để lựa chọn, mong muốn tìm hiểu.
    Tăng năng lượng tính toán là biện pháp cuối cùng bạn nên thực hiện. Trong việc tối ưu hóa các phép tính, việc tính toán thực sự giảm đi. Bạn có thể thấy tác động của tối ưu hóa thuật toán thực sự tốt nếu bạn cố gắng tính toán một số Fibonacci lặp lại so với đệ quy. Một trong những công cụ này. Trình soạn thảo mql45 có một công cụ xây dựng trong công cụ lược tả sẽ cung cấp cho bạn một sự hiểu biết cơ bản về phần nào của thuật toán mất một thời gian dài. Tần suất mã của bạn thực thi? Có thực sự cần thiết cho mọi dấu tích được bắt chước hay chỉ đủ để kiểm tra việc mở quán rượu? Điều này sẽ giúp bạn giảm thời gian trả lời. Có phần lớn mã không cần phải được triển khai lặp đi lặp lại không? Bạn sẽ soạn một cách đơn giản nếu kiểm tra và bỏ qua rất nhiều tính toán mỗi chu kỳ? Micro tối ưu hóa (nếu bạn thực sự muốn rằng bit cuối cùng mql4 có thể làm) như lập bản đồ thường xuyên sử dụng các giá trị thay vì tính toán chúng hơn và hơn nữa. Các biến điều kiện vòng đệm. Tôi nghĩ rằng các yếu tố địa phương có phần nhanh hơn cũng như phạm vi quốc tế. Vì vậy, bạn có thể tiết kiệm một phần của một khoảnh khắc ở đó. Sử dụng ít thay đổi thay vì chi nhánh. Cố gắng tránh xa modulo vv .... Tuy nhiên, đây là loại quá mức cần thiết cho bạn tôi đoán vậy.

  5. #5
    Xin chào, Trong số những gì tôi biết: MT5 đa lõi có thể được okay, nhưng bạn cần phải chương trình như vậy. Điều đó có nghĩa là chia mã của bạn thành các chuỗi có thể thực thi đồng thời. Mạnh mẽ hơn CPU, có, mà sẽ đẩy nhanh thời gian thực hiện của bạn, nhưng nếu thời gian truyền của bạn (internet) là chậm mà không có ý nghĩa. Sử dụng số nguyên? Tôi không biết điều này, bạn muốn chuyển đổi gấp đôi thành số nguyên và ngược lại? Thời gian chuyển đổi sẽ khiến bạn mất lợi ích khi sử dụng chúng trừ khi bạn tạo các phép tính khá nặng. OOP, không, cho phép chỉ giải mã mã, kết quả nhị phân không nhanh hơn mã thủ tục. Và thời gian của tệp tiêu đề hoặc có nhiều tệp tiêu đề thay vì một tệp lớn không có gì liên quan đến tốc độ thực thi. BT

  6. #6
    Quote Originally Posted by ;
    Cảm ơn bạn đã làm rõ.
    rằng tôi không có nền tảng trong máy tính nhưng đã tự dạy mình lập trình trong một thời gian, vì vậy sẽ có những giai đoạn lớn trong kiến ​​thức khoa học máy tính cá nhân của tôi. Xin lỗi nếu đây là một sai lầm rõ ràng. Trên Lookout cho thói quen tốt để chọn lên, quan tâm để tìm hiểu.
    Tôi không biết nhiều về MQL, tôi mới tham gia vào cuối tuần. Tuy nhiên, tôi có rất nhiều kiến ​​thức về các ngôn ngữ khác. Vấn đề là: ngôn ngữ thiết kế không được tạo ra cho máy tính, chúng được tạo ra cho con người. Máy tính đọc phiên bản đã dịch - được tạo bởi trình biên dịch. Đầu ra của trình biên dịch không quá giống với những gì bạn thấy trong trình soạn thảo của mình. Trình biên dịch sẽ thay đổi (Boost) rất nhiều, chẳng hạn như nội tuyến của mã mà sau đó sẽ làm cho mã thậm chí còn lớn hơn thay vì nhỏ hơn. Thông tin chung: Không đi cho tối ưu hóa vi mô cho đến khi mã của bạn thực sự hoạt động. Nó là một sự lãng phí thời gian. Giải quyết toàn bộ cấu trúc chương trình, logic và các phép tính của bạn (trong trường hợp bạn phụ thuộc nhiều vào các chương trình đó). Chỉ bằng cách xem xét việc xây dựng một EA ví dụ nó khá rõ ràng rằng nhiều (không cần thiết) tính toán trong OnTick () là một ý tưởng tồi như thường lệ được gọi là rất thường xuyên.

  7. #7

    Quote Originally Posted by ;
    quote Tăng công suất tính toán là biện pháp cuối cùng bạn nên thực hiện. Việc giảm tính toán thực sự đến trong việc tối ưu hóa các thuật toán. Bạn có thể quan sát hiệu quả của thuật toán tối ưu hóa khá tốt nếu bạn cố gắng tính toán một số Fibonacci lặp lại so với đệ quy. Một trong số này mất vài phút cái kia chỉ là một phần nghìn giây. Trình soạn thảo mql45 có một công cụ dựng sẵn, nó sẽ cho bạn một sự hiểu biết cơ bản về phần nào của thuật toán đòi hỏi khá lâu. Tần suất mã của bạn thực thi? Nó có thực sự quan trọng đối với mọi dấu tích ...
    Hi Kilian, Cảm ơn bạn đã trả lời. Iterative vs đệ quy Fibonacci: Không bao giờ nghe nói về điều này và là cái gì tôi sẽ tiếp tục đọc trên. Tìm thấy một số thứ trên stackoverflow. Công cụ lược tả trình biên tập Mql5: Không phải cái gì tôi đã sử dụng trước đó, đã tìm thấy một vài bài viết trên đó và đọc về nó ngày hôm nay. Giải pháp rõ ràng, cảm ơn bạn! OnTick: Tôi đã rất chú ý đến và cố gắng duy trì phần lớn các nhiệm vụ OnBar nhưng có một trong các loại giao dịch là OnTick đang ăn uống tại thời điểm xử lý. Điều này trông giống như một vài trái cây treo thấp. Các phần của mã được thực hiện nhiều lần? : Đây không phải là khu vực tôi đã cân nhắc nhiều và sẽ nghiên cứu. Tôi tin rằng bạn là chính xác nên có một vài hiệu quả tuyệt vời có sẵn ở đây. Tối ưu hóa vi mô: Yêu thích các đề xuất và khi tôi nhận được điều đó đến nay tôi chắc chắn sẽ cố gắng bất cứ điều gì (tuyệt vời cho việc học của tôi không có vấn đề). Nhiều đánh giá cao.

  8. #8

    Quote Originally Posted by ;
    Xin chào, Từ những gì tôi biết: MT5 đa lõi có thể được okay, nhưng bạn sẽ cần phải chương trình như vậy. Điều đó thường có nghĩa là chia mã của bạn thành các chuỗi có thể thực thi đồng thời. Mạnh mẽ hơn nhiều CPU, có, có thể đẩy nhanh thời gian thực hiện của bạn, nhưng nếu thời gian truyền của bạn (net) là chậm mà không có ý nghĩa. Sử dụng số nguyên? Tôi không biết điều này, bạn muốn chuyển đổi gấp đôi thành số nguyên và ngược lại? Giai đoạn chuyển đổi sẽ làm cho bạn loại bỏ lợi ích của việc sử dụng chúng nếu bạn không thực hiện các phép tính khá nặng. OOP, không, chỉ cho phép tổ chức lại ...
    Hey Broketrader, MT5 multicoreI không bao giờ nhận ra rằng có thể tách mã của bạn thành các luồng khác nhau như thế. Điều này có thể gây ảnh hưởng. Hiện tại bạn có được lợi thế của đa lõi khi tiến hành trình tối ưu hóa. (đó là một sự khác biệt sử thi trên mt4). CPU: Im đang xem xét việc có được một máy mới. Chip Haswell mới trông khá bóng bẩy. Tốc độ kết nối Internet không phải là một vấn đề. Tôi chỉ tập trung vào việc triển khai mã. Số nguyên: Tôi có thể hoàn toàn sai nhưng với số nguyên đọc hiểu hạn chế của tôi thì máy tính dễ dàng hơn so với nói Dual. Ví dụ. chỉ có chức năng trong pip hoặc _Points khi tính toán những thứ như điểm dừng và mục tiêu. Không xem xét chuyển đổi số nguyên và bật lên qua lại. Int StopLoss = 300;/StopLoss tại _Points không thể được thực hiện ở mọi nơi, chính xác nơi mà cơ hội thể hiện chính nó. Cảm ơn tất cả các đầu vào của bạn nó được đánh giá cao.

  9. #9

    Quote Originally Posted by ;
    Trích dẫn Tôi không biết nhiều về MQL, tôi chỉ có nó vào cuối tuần. Tôi có rất nhiều kiến ​​thức về các ngôn ngữ khác mặc dù. Vấn đề là: ngôn ngữ thiết kế không được tạo ra cho máy tính, chúng được tạo ra cho con người. Máy tính đọc phiên bản đã dịch - được tạo bởi trình biên dịch. Đầu ra của trình biên dịch không quá giống với những gì bạn thấy trong trình soạn thảo của mình. Trình biên dịch sẽ thay đổi (Boost) rất nhiều, chẳng hạn như nội tuyến mã mà sau đó có khả năng làm cho mã thậm chí còn lớn hơn thay vì nhỏ hơn. Lời khuyên chung: Đừng đi cho việc viết blog vi mô ...
    Cảm ơn thông tin chung. Tôi sẽ làm điều đó. Giải quyết vấn đề lớn hơn (cấu trúc, tính toán và logic) và sau đó làm việc theo cách của tôi xuống đến mức vi mô. OnTick () có vẻ như là một nơi tuyệt vời để bắt đầu cho lợi nhuận dễ dàng. Mới với mql? Tốt nhất trong giao dịch của bạn cho bạn! Nếu bạn đã quen thuộc với lập trình nói chung, bạn nên chạy qua mql khá nhanh. Mql4 chắc chắn là hương vị của lựa chọn, nhưng nếu bạn biết mọi thứ của bạn đi trực tiếp đến mql5. Những lợi ích trong phân tích ăn bất kỳ lợi thế mà mql4 có thể cung cấp. Một con ngựa già mệt mỏi của nó và mọi người cứ cứ nín nỉ nó.

  10. #10
    Tôi thấy cửa sổ công việc quản lý, tôi thấy mt4 chỉ có thể sử dụng 25 CPU tối đa, sau đó, mt4 mắc kẹt. Cách để tăng% sử dụng CPU cho mt4 để mt4 tiến hành nhanh, không bị mắc kẹt?

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'.