Download MetaTrader 5
To add comments, please log in or register
Have you installed MetaTrader 5? Find out more about it!
gadget
100
gadget 2014.09.18 18:15 

There are a number of topics on this forum about checking for the current spread before placing an order. However each of them says something different, and as my brain is over loaded today I can't set my mind on a good solution. Can somebody confirm that the following is a correct way? That will probably be helpful for others as well. I put parts of the EA code to stay short and clear.

Obviously, I'd want to attach this EA on any chart, 3 or 5 digits fx markets including USDJPY etc, plus UK100GBP etc.


// global variables

extern int maxSpread = 5; // in number of pips

double vPoint;

...

// beginning of start function

Print ("Digits=",Digits);

if (Digits % 2 == 1){       // DE30=1/JPY=3/EURUSD=5

       vPoint=Point*10; vSlippage=Slippage*10;

} else {

       vPoint=Point; vSlippage=Slippage;
}

// EA decisions

... If there is a decision to enter the market, then sets either OpenBuy or OpenSell to true

// Order placement

double spread = Ask-Bid ;

if (OpenBuy) {

if (spread <= maxSpread * vPoint) {

// create Buy order

} else {

Print ("Buy Order not placed as spread too high (", spread, " > ", maxSpread * vPoint, ")")

}

}

if (OpenSell) {

if (spread <= maxSpread * vPoint) {

// create Sell order

} else {

Print ("Sell Order not placed as spread too high (", spread, " > ", maxSpread * vPoint, ")")

}

}

Would it correct and therefore reusable?

Thanks in advance!

Alain Verleyen
Moderator
28633
Alain Verleyen 2014.09.18 18:46  

Hello,

Please use the SRC button when you post code. Thank you.


This time, I edited it for you.

gadget
100
gadget 2014.09.18 20:25  
Thanks Ange, I hadn't notice this function. It's true that the forum participants have a better look at the question now...
Taskin Osman
803
Taskin Osman 2014.09.24 14:04  
It does not look very reliable. What i do is to rely on "EURUSD" symbol and check its Digits. If Digits are 4 then you dont need to *10 for all other pairs. I assume if EURUSD is 5 digits then all other pairs are also micro biased. This was working til now without any problems.
whroeder1
13627
whroeder1 2014.09.24 14:40  
/
To add comments, please log in or register