I wanted to post this here because I get a lot of questions about Fractional Pricing with FXCM. Fractional Pricing allows a broker to more easily tighten spreads because of the precision of pricing. A Broker may not be able to offer spreads of 2 pips on EURUSD but wants to be lower than 3. With fractional pricing in place, it allows a broker to do a 2.6 or 2.3 pip spread, passing the difference on to the client.
A problem that arises from this is that a lot of programmers don't write EA's with this in mind. This limits the client's flexibility, and can lead to a lot of confusion. The biggest mistake revolves around the predefined variable "Point". A point, by MT4 terms, is the smallest unit by which a a price can increment. Most developers assume that Point equals 1 pip, but on a fractional pricing server a point is actually 1/10th of a pip. This leads to common problems such as stops and limits being 10 times too small.
An easy way to address this on pre-existing strategies is to create an external variable and integer.
extern bool FractionalPips = true;
int pip;
Then after the start of the strategy you include some code that sets the value of pip. Essentially when fractionalpips equals true, then pip equals 10, if not, pip equals 1.
if(FractionalPips==true)
{
pip=10;
}
else pip =1;
Once that is complete, at every spot in the strategy where you see "Point", change it to "Point*pip" This will allow your Point value to once again be equal to 1 pip, thus restoring the original functionality of your system.
For many people adding this code to their strategy is quite easy. If you lack confidence in doing this, Programming Services is available for projects such as this and have the experience necessary to follow through. Inquiries can be sent to
consulting@fxcm.com.
Luke Quinn
Programming Services