Download MetaTrader 5
To add comments, please log in or register
Download documentation as one file. It is easy!
tim
35
tim 2014.12.18 01:25 

Hello,

I was hoping someone could help me.  This loop will only iterate 6 times when it should iterate 10.

#property copyright "Copyright 2014, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#property strict

#property show_inputs

//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

extern double gap                 = 0.00002;     


double ask()

{

   static double priceGap = 0;

   priceGap += gap;

   return priceGap;

}

   

void OnStart()

{   

   for ( int count = 0; count < 10; count++ )

   {

      OrderSend(Symbol(), OP_BUYLIMIT, 0.01, Ask - ask(), 3, Bid - 100000*Point, Bid + 1000 * Point);

   }

It will only open 10 buy limits if i set count to -4

I am using this metatrader through forex.com

this same code works properly when using fxcm and oanda's version of metatrader however i have inconsistent off quote and fifo errors when trying to close the orders.

with forex.com i can close the orders properly but the loop is always 4 iterations shy of what it should be.

this seems bizarre to me.

any help would be much appreciated 

tim
35
tim 2014.12.18 04:07  
#property strict
#property show_inputs

extern double gap                 = 0.00002;     

double ask()
{
   static double priceGap = 0;
   priceGap += gap;
   return priceGap;
}
   
void OnStart()
{   
   for ( int count = 0; count < 10; count++ )
   {
      OrderSend(Symbol(), OP_BUYLIMIT, 0.01, Ask - ask(), 3, Bid - 100000*Point, Bid + 1000 * Point);
   }
}
Keith Watford
Moderator
7948
Keith Watford 2014.12.18 04:50  

Check what is happening

  
void OnStart()
{   
   for ( int count = 0; count < 10; count++ )
   {
      Print("count="+count);
      int ticket=OrderSend(Symbol(), OP_BUYLIMIT, 0.01, Ask - ask(), 3, Bid - 100000*Point, Bid + 1000 * Point);
      if(ticket==-1)
         Print("Error with OrderSend. Error Code "+GetLastError());
   }
}
tim
35
tim 2014.12.18 05:39  
error code 130 for the first 4 iterations. even after reducing the stop/loss argument down to, Bid - 1000 * Point , i'm still getting the same error.  I would prefer not to have a stop/loss at all which is why I set it so far away in the first place.
tim
35
tim 2014.12.18 06:16  
after setting SL and TP to 0 I'm still getting error 130, only for the first 4 iterations though
tim
35
tim 2014.12.18 06:54  
I changed the gap input to 0.0001 and now it is working.  I guess the first 4 orders were placed to close to the market price for this broker.  Thanks for the tip GumRai.
/
To add comments, please log in or register