EA gấp thép bị lỗi sau khi mất điện

Lập trình MQL – Expert Advisor – Indicator

  • Số là em có con EA gấp thếp,nhưng bị mất điện đột ngột tắt máy bật lại nó không gấp thếp được nữa mà vào lệnh lại từ đầu,nghĩa là máy bật liên tục thì nó nhớ lệnh lỗ để gấp thếp,nhưng tắt máy bật lại thì nó không nhớ nữa,các bác có cao kiến gì không giúp em với ạ!

     
    Đang tải…
  • nguyenhoan

    EA thông thường làm đơn giản nên khi mất điện (bị tắt MT4) sẽ mất hết dữ liệu bộ nhớ nên không xử lý tiếp được chuỗi lệnh, bạn đành phải xử lý tạm bằng tay, 1 số trường hợp sẽ vất vả và dễ có sai sót vì khó canh lệnh nhiều tiếng được.
    Với EA làm tốt sẽ có lập trình cơ chế riêng tiếp nhận hệ thống lệnh đã mở + tái lập hiện trạng giao dịch cũ để giao dịch tiếp bình thường khi có sự cố như trên.
    Nếu bạn cần xử lý vd này liên hệ (thông tin của tôi ở phần chữ ký ) tôi có thể giúp bạn.

     
    Chỉnh sửa cuối: 07/11/2022
  • doantham

    Vậy là phải code bot riêng đứng ko ạ!

     
  • nguyenhoan

    Đúng rồi bạn. code bot để nhận lệnh cũ và điều khiển giao dịch tiếp

     
  • Jewel Nguyen

    Lưu các biến quan trọng với global variables bạn nhé

     

    doantham bài này.
  • doantham

    Bác ơi em khai báo như này có sai sót gì ko ạ?bác xem giúp em cái nhé!

    Mã:
    int    Experts;                                 // Amount of EAs
    double Depo=10000.0,                            // Set deposit
           Persent=30,                              // Set percentage     
           Money;                                   // Desired money
    string Quantity="GV_Quantity";                  // GV name
    //--------------------------------------------------------------------
    //--------------------------------------------------------------------
    int init()                                      // Special funct. init()
      {
       Experts=GlobalVariableGet(Quantity);         // Getting current value
       Experts=Experts+1;                           // Amount of EAs
       GlobalVariableSet(Quantity, Experts);        // New value
       Money=Depo*Persent/100/Experts;                // Money for EAs
       Alert("For EA in window ", Symbol()," allocated ",Money);
       return;                                      // Exit init()
      }
    //--------------------------------------------------------------------
    //+------------------------------------------------------------------+
    int start()
    {
      if(Martingale)CalculateMartingale();Balance=AccountBalance();
      double MyPoint=Point;
      if(Digits==3 || Digits==5) MyPoint=Point*10;
     
      int New_Experts= GlobalVariableGet(Quantity);// New amount of EAs
       if (Experts!=New_Experts)                    // If changed
         {
          Experts=New_Experts;                      // Now current
          Money=Depo*Persent/100/Experts;             // New money value
          Alert("New value for EA ",Symbol(),": ",Money);
         }
     
      double TheStopLoss=0;
      double TheTakeProfit=0;
      if( TotalOrdersCount()==0 ) 
     
  • Jewel Nguyen

    //+——————————————————————+
    //| Expert initialization function |
    //+——————————————————————+
    int OnInit()
    {
    //—

    //—
    return(INIT_SUCCEEDED);
    }

    //+——————————————————————+
    //| Expert tick function |
    //+——————————————————————+
    void OnTick()
    {
    //—

    }
    //+——————————————————————+
    //bạn thay init = Onint, start = OnTick

     

    quocquang và doantham bài này.
  • doantham

    Bạn ơi! code này mình lấy ở forum mql5,nhưng vẫn chưa hiểu rõ cách nó hoạt động,bạn có thể giải thích hộ mình chút ko.Mình chưa hiểu dữ liệu nó lưu vào file nào vậy nhỉ?

     
  • Jewel Nguyen

    mình đâu có nhiều thời gian giải thích, tặng bạn từ khóa này “học lập trình mql4” nhé. Trên mạng rất nhiều hướng dẫn

     
  • Anh Nam 2

    Biến nào cần lấy giá trị một lần thì cho vào onint, ea sẽ lấy ngay khi chạy lần đầu tiên.
    Biến nào có giá trị thay đổi thường xuyên hoặc được tính lại mỗi khi thay đổi giá thì cho vào ontick.

     

    quocquang bài này.