Should programers adjust for 5decimal place brokers?

 

I have noticed that there is an assumption that Expert Advisers accept their inputs as if they are meant for 4decimal place brokers.

There also seems to be the assumption that programmers should assume Users will assume that the inputs like Take Profit are going to be in measures of 4 decimal places.
However 'old' EA's (i.e before 5 dp became popular) don't take account of this and the user will know how many decimal places the broker has and semi-intelligent users would adjust
their EA imputs according to the decimal places offered.

So does the user get confused if there is automatic adjustment hidden in the code or do they all assume that the values they enter are meant as pips for 4 decimal place brokers?

I know that it confuses me!

The issue here is that the user on automatic adjustment cannot enter values like TP=5.5 for 5dp broker in the inputs when automatic adjustment is taking place. (55*Point 5dp or 5*Point 4dp )

Note that TP or TakeProfit is usually an integer input value.

My opinion is that the EA should let the user decide the size of their parameters according to the knowledge they have of their broker or the units of measurement of the parameters are clearly stated.

However, does the EA's performance dramatically change when tested for 4dp and found to work and then used on a 5dp broker?

and thoughts to this if you feel like it.

 
Pip means percentage in points. Which I interprit as converting a percentage value into a 'points' value what is not clear what value was being considered as the 100%. I would like to think that since the base currency is always considered as having a value of 1 then that was the 100% but I have not yet managed to make sense of that either.
 

Should programers adjust for 5decimal place brokers? Yeah sure, why not, if you're making Expert for the masses than the more options the better. As long as the programmer comments next to the inputs that it's in Points then it should be less confusing -hopefully-.

As far as performance, sure a difference of 1-point can mean profit or loss. But stuff like broker_data, spread and slippage can also cause this effect, therefore I wouldn't worry about it.

 

On a 4 digit broker the last digit is a pip. On a 5 digit broker the last digit is 1/10 pip. The definition of pip does not change. The definition of point does.

Have the EA adjust. Don't expect the user to modify the parameters when/if a broker changes its quotes over the weekend.

//++++ These are adjusted for 5 digit brokers.
int     pips2points;    // slippage  3 pips    3=points    30=points
double  pips2dbl;       // Stoploss 15 pips    0.015      0.0150
int     Digits.pips;    // DoubleToStr(dbl/pips2dbl, Digits.pips)
int     init(){                                             OptInitialization();
     if (Digits % 2 == 1){      // DE30=1/JPY=3/EURUSD=5 forum.mql4.com/43064#515262
                pips2dbl    = Point*10; pips2points = 10;   Digits.pips = 1;
    } else {    pips2dbl    = Point;    pips2points =  1;   Digits.pips = 0; }
    // OrderSend(... Slippage.Pips * pips2points, Bid - StopLossPips * pips2dbl
//---- These are adjusted for 5 digit brokers.
    /* On ECN brokers you must open first and THEN set stops
    int ticket = OrderSend(..., 0,0,...)
    if (ticket < 0)
       Alert("OrderSend failed: ", GetLastError());
    else if (!OrderSelect(ticket, SELECT_BY_TICKET))
       Alert("OrderSelect failed: ", GetLastError());
    else if (!OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0))
       Alert("OrderModify failed: ", GetLastError());
     */
 
WHRoeder:

On a 4 digit broker the digit is a pip. On a 5 digit broker the digit is 1/10 pip. The definition of pip does not change. The definition of point does.

Have the EA adjust. Don't expect the user to modify the parameters when/if a broker changes its quotes over the weekend.


Not according to investopedia!

Definition of 'Pip'

The smallest price change that a given exchange rate can make. Since most major currency pairs are priced to four decimal places, the smallest change is that of the last decimal point - for most pairs this is the equivalent of 1/100 of one percent, or one basis point.

So who or what is setting the terminolgy standard?

 
Ickyrus:


Not according to investopedia!

Definition of 'Pip'

The smallest price change that a given exchange rate can make. Since most major currency pairs are priced to four decimal places, the smallest change is that of the last decimal point - for most pairs this is the equivalent of 1/100 of one percent, or one basis point.

So who or what is setting the terminolgy standard?

And it also says this . . .

" For example, the smallest move the USD/CAD currency pair can make is $0.0001, or one basis point. The smallest move in a currency does not always need to be equal to one basis point, but this is generally the case with most currency pairs. "

When was that "definition" written ?

 
RaptorUK:

And it also says this . . .

" For example, the smallest move the USD/CAD currency pair can make is $0.0001, or one basis point. The smallest move in a currency does not always need to be equal to one basis point, but this is generally the case with most currency pairs. "

When was that "definition" written ?


Yes - example - meaning further explanation of the definition but hey look there is an exception with the JPY currency - then its since most are quoted to four decimal places but takes no account of changing tecnology or new types of currency should they come along!
 

A Dollar is Equal_To: $1.00

A Cent is Equal_To: $0.01

A Pip is Equal_To: 0.0001 or 0.01 (jpy)

A Point is 0.01, 0.001, 0.0001, 0.000000000000000000000000001, or just 1.

You always know what a Pip is. You don't always know what a point is.

In a Casino.

A White-Chip Equal_To: $1

A Red-Chip Equal_To: $5

A Green-Chip Equal_To: $25

A Black-Chip Equal_To: $100

What is a Chip?

If you went to a $5 minimum table and handed the dealer $100, she'll likely hand you back 20_Red_Chips.

If you went to High-Stakes ($100 minimum) and handed the dealer $100 she'll likely hand you back 1_Black_Chip.

 

The reasoning behind the 'pip' from how they do things in the 'professional' gambling industry. It is very easy to say things like this system 'made' X,000's of profit but this kind of figure tells you nothing. So you assign a basic unit 'a point' and work out how many points your system will win or lose over time. Then whatever your stake is your profit is expected to be in stake times points. Clearly this is the same concept applied to the finacial markets - the pip is the amount won/lost and the volume or lots is the amount staked on the gamble. Only the financial markets are spread betting systems as opposed to the sporting events odds betting where you either lose all your stake retain your stake with profit. To be professional in your outlook on how your system will actually perform you should look at your system abstracted from real monetary amounts.

*edit

So the definition of a pip as the smallest price change makes sense no matter what number of decimal places you are working with as the purpose is to abstract it from the volume bought. I think the rest of the explanation is has been put in place to help the 'accountant' mentality or the 'Finance experts' who don't understand the principles of mathematical abstraction.

 
Ickyrus:

The reasoning behind the 'pip' from how they do things in the 'professional' gambling industry. It is very easy to say things like this system 'made' X,000's of profit but this kind of figure tells you nothing. So you assign a basic unit 'a point' and work out how many points your system will win or lose over time. Then whatever your stake is your profit is expected to be in stake times points. Clearly this is the same concept applied to the finacial markets - the pip is the amount won and the volume or lots is the amount staked on the gamble. Only the financial markets are spread betting systems as opposed to the sporting events odds betting where you either lose all your stake retain your stake with profit. To be professional in your outlook on how your system will actually perform you should look at your system abstracted from real monetary amounts.

Yes, this is the concept behind the Pip. The Point is Not a good measure of this in Forex. If someone said I won 20_Pips, I know what they talking about. If he's a nano_account then it could mean 20cents, if he's a investor_account it could mean 20,000k. If he told me he'd won 20_Points, better believe I'll have another question to ask him.

If I told a Rockie card_counter to spread between 1-5 units or chips. If he's a Red_Chipper then he's betting between 5-25$. If I told the same to a High_Roller he's spreading between 100-500$. I wouldn't want to measure there performance based on absolute amount of $$$ won but rather Units won.

 
ubzen:

Yes, this is the concept behind the Pip. The Point is Not a good measure of this in Forex. If someone said I won 20_Pips, I know what they talking about. If he's a nano_account then it could mean 20cents, if he's a investor_account it could mean 20,000k. If he told me he'd won 20_Points, better believe I'll have another question to ask him.

If I told a Rockie card_counter to spread between 1-5 units or chips. If he's a Red_Chipper then he's betting between 5-25$. If I told the same to a High_Roller he's spreading between 100-500$. I wouldn't want to measure there performance based on absolute amount of $$$ won but rather Units won.


exactly
Reason: