Đếm nhiều đơn đặt hàng với nhiều số ma thuật trong một EA
Results 1 to 6 of 6

Thread: Đếm nhiều đơn đặt hàng với nhiều số ma thuật trong một EA

  1. #1
    OK, vì vậy tôi đã có thể tạo một EA có thể xử lý các mô-đun đồng thời với các thông số giao dịch khác nhau có thể chạy cùng một lúc hoặc bật và tắt. Mặc dù tôi đang chạy vào một bức tường với một số lượng đơn đặt hàng xử lý.

    Tôi muốn có số lượng MaxTotalPositions EA đối với Tổng số vị trí cho ModuleA và Tổng số vị trí cho ModuleB. EA không được vượt quá Max Total (A = B), nhưng nó cũng không được vượt quá TotalforModuleA và B tương ứng. Ví dụ, nếu MaxTotal là 2, và tổng ModuleA và B là mỗi cái, thì nó không thể vượt quá 2. Phần này rất dễ. Tuy nhiên, nếu Max là 2, và ModuleA là 1, nó vẫn còn giao dịch lên đến 2. Tôi đã thử gọi các đơn đặt hàng bằng phép thuật để làm cho nó dễ dàng hơn để đếm nhưng một nơi nào đó nó vượt quá MaxPerModule. Có ai có bất kỳ ý tưởng làm thế nào để tiếp cận này? Mã được biên dịch đúng cách nên không có lỗi cú pháp. Đây là phần của mã:

    /////////////////////////////////////////////////////////////////////////////

    TotalMaxPositions được khai báo trên toàn cầu ở trên cùng của EA dưới dạng biến ngoài

    extern double TotalMaxPositions = 2;

    //////////////////////////////////////////////////////////////////////////////

    //------------------------------------------------ - -
    //MAX POSITIONS ORDER COUNT
    //------------------------------------------------ - -

    int TotalCurrentOrders;
    int count = 0; int count = 0; tổng số int; int totalB;

    TotalCurrentOrders = OrdersTotal ();
    nếu (TotalCurrentOrders gt; = TotalMaxPositions) trả về (0);

    khác

    if (TotalCurrentOrders lt; TotalMaxPositions)

    {

    nếu (countA gt; = MaxPositionsA) trả về (0);
    if (countA lt; MaxPositionsA)
    cho (int posA = 0; posA lt; totalA; posA )
    {
    nếu (OrderSelect (posA, SELECT_BY_POS) == false) tiếp tục;
    if (OrderMagicNumber () == MagicA) countA ;
    }

    nếu (countB gt; = MaxPositionsB) trả về (0);
    if (countB lt; MaxPositionsB)
    cho (int posB = 0; posB lt; totalB; posB )
    {
    nếu (OrderSelect (posB, SELECT_BY_POS) == false) tiếp tục;
    if (OrderMagicNumber () == MagicB) countB ;
    }

    nếu (TotalCurrentOrders gt; = TotalMaxPositions) trả về (0);

    }

  2. #2

    Quote Originally Posted by ;
    OK, vì vậy tôi đã có thể tạo một EA có thể xử lý các mô-đun đồng thời với các thông số giao dịch khác nhau có thể chạy cùng một lúc hoặc bật và tắt. Mặc dù tôi đang chạy vào một bức tường với một số lượng đơn đặt hàng xử lý. Tôi muốn có số lượng MaxTotalPositions EA đối với Tổng số vị trí cho ModuleA và Tổng số vị trí cho ModuleB. EA không được vượt quá Max Total (A = B), nhưng nó cũng không được vượt quá TotalforModuleA và B tương ứng. Ví dụ, nếu MaxTotal là 2, và tổng ModuleA và B là mỗi cái, thì nó không thể vượt quá 2. Điều này ...
    Tại sao điều này lại tăng gấp đôi? Mã đã chèn bên ngoài đôi TotalMaxPositions = 2; nếu bạn cố gắng so sánh một int với một đôi bạn có thể tìm thấy nó không bao giờ bằng nhau ngay cả khi nó được. . .

  3. #3

    Quote Originally Posted by ;
    TotalCurrentOrders = OrdersTotal (); nếu (TotalCurrentOrders gt; = TotalMaxPositions) trả về (0);
    Sau đó
    Quote Originally Posted by ;
    khác nếu (TotalCurrentOrders lt; TotalMaxPositions)
    Sau đó, bạn có một số mã mà làm một số đếm nhưng không xuất hiện để làm bất cứ điều gì với kết quả theo sau
    Quote Originally Posted by ;
    nếu (TotalCurrentOrders gt; = TotalMaxPositions) trả về (0);
    mà bạn đã kiểm tra (báo giá đầu tiên) và biết là sai nếu không ELSE sẽ không được thực hiện. Không có gì trong mã để thay đổi giá trị của TotalCurrentOrders hoặc TotalMaxPositions.

  4. #4

    Quote Originally Posted by ;
    {quote} Tại sao điều này lại tăng gấp đôi? extern double TotalMaxPositions = 2; nếu bạn cố gắng so sánh một int với một đôi bạn có thể tìm thấy nó không bao giờ bằng nhau ngay cả khi nó được. . .
    Đó là một đôi bởi vì tôi đã quá lười biếng để thay đổi nó. Theo mặc định tất cả các bên ngoài của tôi là tăng gấp đôi và sau đó tôi thay đổi chúng nếu chúng không biên dịch. Tôi chỉ cần hoàn thành nhiều EA trong một EA khái niệm EA và tôi đã rời khỏi phòng cho hơn 10 biến cộng với SL TP và một tắt và tắt chuyển đổi. Bây giờ tôi đi hoang dã với các con của tôi trong một EA. Nó dễ dàng hơn cho tôi để thử nghiệm ý tưởng theo cách đó. Cảm ơn cho đầu vào của bạn trên thread EA cuối cùng, với trả lời của bạn, bạn có thể khá có một EA làm bất cứ điều gì tôi đã từ của bạn cho nó và đã đi cho nó. Tôi sẽ ghi nhớ bình luận của bạn về double vs. int và thậm chí thử nghiệm nó, nhưng tôi nghĩ rằng trả lời của Gumrai về việc không cộng hoặc trừ TotalOrders trên mỗi Module có thể là những gì tôi cần xem xét.

  5. #5

    Quote Originally Posted by ;
    {quote} Sau đó, {quote} Không có gì trong mã để thay đổi giá trị của TotalCurrentOrders hoặc TotalMaxPositions.
    Cảm ơn làm cho cảm giác hoàn toàn. Tôi sẽ xem xét điều đó. Tôi giả sử tôi làm điều đó theo cùng một cách như cho (int posB = 0; posB lt; totalB; posB ) {if (OrderSelect (posB, SELECT_BY_POS) == false) tiếp tục; if (OrderMagicNumber () == MagicB) countB ; } Nhưng bằng cách sửa đổi các giá trị của những gì tôi cần để phù hợp cho là tốt. Mã này phức tạp hơn tôi nghĩ nhưng nó * nên * có thể chạy với sự thay đổi trong logic (ít nhất đó là những gì tôi hy vọng). Cảm ơn vì đề nghị này, tôi sẽ thử nghiệm nó.

  6. #6
    Bạn đã bao giờ nhận được một kết quả về điều này? Tôi có 4 lệnh BuyStopSellStop kích hoạt dựa trên một số đường kính nhất định và tôi có các lệnh điều chỉnh thứ tự riêng cho mỗi đơn hàng mà tôi không thể sửa đổi chúng theo số vé (vấn đề với việc sử dụng này là mỗi khi bạn sửa đổi thứ tự nó thay đổi vé-id mà lần lượt giết thứ tự sửa đổi vào lần thứ hai xung quanh nó trys để thay đổi nó vì vậy phải sử dụng số ma thuật.Có một phần của EA làm việc tốt nhưng tôi không thể dường như giới hạn số lượng đơn đặt hàng Tôi đã sử dụng Iexpertadvisor VTS builder vì nó thực sự dễ dàng để hình dung những gì bạn đang làm và nó có hệ thống riêng để hạn chế các lệnh nhưng bạn không thể thêm nhiều số ma thuật vào nó. thực sự .......... Cũng tạo ra nó và cố gắng để làm cho nó có thể sử dụng trong Iexpertadvisor VTS thậm chí còn khó hơn.

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