Couldn't connect to database server.Couldn't find database magical_rules.An unexpected problem has occured with the application.
SELECT statscurl_id FROM `statscurl` WHERE statscurl_ip = '';

Building robots using MetaTrader to exploit the simplicity of the world

A function to determine why an order cannot be opened

Here is an example of a function which will display the actual error for why you cannot open a trade in MetaTrader.  This is more descriptive then what you get by default.

OrderSend(Symbol(),OP_SELL,LOT,Bid,2,SL,TP,”",-1,3); //First you want to send an order if it fails error will = -1 so the code below will kick in  

 if (error==-1) //operation failed because it’s -1
   { 
      ShowERROR(error,0,0); //This calls the function below
   }

void ShowERROR(int Ticket,double SL,double TP)  //you prefix this function with void since it does not return a value.
{
   int err=GetLastError();
   switch ( err )
   {                 
      case 1:                                                                               return;
      case 2:   Alert(“Error Connection with trade server absent    “,Ticket,” “,Symbol());return;
      case 3:   Alert(“Error Invalid trade parameters   Ticket “,  Ticket,” “,Symbol());return;
      case 130: Alert(“Error Invalid stops   Ticket “,             Ticket,” “,Symbol());return;
      case 134: Alert(“Error Not enough money   “,                 Ticket,” “,Symbol());return;
      case 146: Alert(“Error Trade context is busy. “,             Ticket,” “,Symbol());return;
      case 129: Alert(“Error Invalid price “,                      Ticket,” “,Symbol());return;
      case 131: Alert(“Error Invalid volume “,                     Ticket,” “,Symbol());return;
      case 4051:Alert(“Error Invalid function parameter value “, Ticket,” “,Symbol());return;
      case 4105:Alert(“Error No order selected “,                Ticket,” “,Symbol());return;
      case 4063:Alert(“Error Integer parameter expected “,       Ticket,” “,Symbol());return;
      case 4200:Alert(“Error Îáúåêò óæå ñóùåñòâóåò “,            Ticket,” “,Symbol());return;
      default:  Alert(“Error Object already exists ” ,err,”   Ticket “, Ticket,” “,Symbol());return;
   }
}

Share

Facebook comments:

Leave a Comment

Your email address will not be published. Required fields are marked *

*


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>