Download MetaTrader 5

Calculate lot for expert advisor

To add comments, please log in or register
Franco
375
Franco  

Hello,

I'm struggling with something stupid here, don't know what I'm doing wrong.  

I want to trade one lot for every 10000 I have in my account.  So if I have 15000 in my account, the lot  traded should be 15000/10000, and that is 1.5 lots.

This worked in MQL4, but in MQL5 it won't work.  I even normailzed the double to zero decimal places, but it still won't work.  If I don't give it a solid interger value the order won't go through.  Any idea why this won't work ?

Thanks

double ab = AccountInfoDouble(ACCOUNT_BALANCE);

lot_size = ab / 10000;
Pawel Wojnarowski
682
Pawel Wojnarowski  
Saidar:

Hello,

I'm struggling with something stupid here, don't know what I'm doing wrong.  

I want to trade one lot for every 10000 I have in my account.  So if I have 15000 in my account, the lot  traded should be 15000/10000, and that is 1.5 lots.

This worked in MQL4, but in MQL5 it won't work.  I even normailzed the double to zero decimal places, but it still won't work.  If I don't give it a solid interger value the order won't go through.  Any idea why this won't work ?

Thanks

 

Why do you want to give it a "solid integer value" if the result (e.g. 1.5) is of double type?
Rashid Umarov
Admin
12700
Rashid Umarov  
You should declare lot_size in double type. Like this:


void OnStart()
  {
   double ab=AccountInfoDouble(ACCOUNT_BALANCE);
   double lot_size=ab/10000;

   Print("lot_size=",lot_size);
  }
See Typecasting
Franco
375
Franco  
Hey, thanks for the help.  I know I must declare the lot size variable as double, I just showed you an example of how I coded it, it was not the exact code.  The fact is it won't work, even the code you now gave me won't work.  At least not in the strategy tester
To add comments, please log in or register