Download MetaTrader 5
To add comments, please log in or register
Do you often publish source codes? Find out how to do that correctly!
Abdulraheem Al bunyan
Abdulraheem Al bunyan 2015.12.13 12:21 

The Following is the OrderSend Function Parameters MQL4 Help description:

int  OrderSend(
   string   symbol,              // symbol
   int      cmd,                 // operation
   double   volume,              // volume
   double   price,               // price
   int      slippage,            // slippage
   double   stoploss,            // stop loss
   double   takeprofit,          // take profit
   string   comment=NULL,        // comment
   int      magic=0,             // magic number
   datetime expiration=0,        // pending order expiration
   color    arrow_color=clrNONE  // color

I hope in this open discussion that we discuss every possible issue about this function and its parameters.

For example, people always passes (e.g. "3" ) as "slippage" parameter passed-to-function value!

OK, but should I use "30" in that example, if broker's account type or pairs is 5 or 3 digits?

In other words, should I pass "30" in case there is a fraction of PIP available as the fifth or third digit?

What I know is that the slippage parameter is analyzed in PIP that equals to 10 points. Therefore,

it makes no deference if the broker's account is fractioned with 5 and 3 digits. As a result, passing

3 in the example is 3 Pips whatever the broker's account type that you own under your name.

However, I see some people uses values like 35 with fractioned account type for 3.5 pips.

That means 30 = 3 pips, 35 = 3.5, and so on when using 5/3 digits account type.

I hope that some one from the MQL team who knows exactly the underlying structure of that

function and how it does analyze passed values that he/she can answer this question about 

the "slippage" parameter.

I have an EA that shows different back test reports from fixed brokers

account type to those varied and fractioned ECN type, although the EA and the passed

slippage value are the same.

I always find people who are overwhelmed during using that parameter and they also

have the same question as I do.

I hope that this discussion helps them find the correct way of using that parameter.

I hope, also, that the MT4 editor help file become shipped with a chapter that describes

Point, Pip, Digits, and sample important parameters like slippage and price and how they

are affected by fixed or fractioned account type available by brokers.

I hope if they can invent an intermediary function that carries out the order's execution and

returns back with a questioning pointer that let you accept the execution or refuse it; something

like AccountFreeMarginCheck() ,but for orders execution.

I found the following link and I wounder if the writer there is right? :


Al bunyan.

Define Slippage and Point Values for 5-Digit Brokers | Forex Razor
  • CashBackForex
The Slippage value, found in the fourth parameter of the OrderSend() function, represents the maximum difference in pips for the order to go through.
To add comments, please log in or register