Pip vs Point in MetaTrader: What's Difference?

Pip vs Point in MetaTrader: What's the Difference?

TL;DR: In MetaTrader, a "point" is the smallest price increment the platform recognizes, while a "pip" is the traditional fourth decimal place traders use to measure moves. On most modern 5-digit brokers, one pip equals ten points. Getting this wrong when coding or configuring EAs and indicators is one of the most common causes of stop-losses and take-profits being set at a fraction of the intended distance.**


The Short Version: Why These Two Terms Get Confused

Forex traders learned the word "pip" long before MetaTrader existed. A pip on EUR/USD means the fourth decimal place: 1.1050 to 1.1051 is one pip. Simple.

Then 5-digit brokers arrived and started quoting EUR/USD to five decimal places: 1.10505. That fifth digit is a fractional pip, sometimes called a pipette. MetaTrader had to accommodate this, and the way it did so created the confusion that still trips up traders today.

MetaTrader uses its own internal unit called a point. A point always means one increment of the last displayed digit, whatever that digit is. On a 5-digit EUR/USD feed, one point is 0.00001. On a 4-digit feed, one point is 0.0001. The platform does not care what traders call a pip. It only knows points.

The result: on a 5-digit broker, 1 pip = 10 points. On a 4-digit broker, 1 pip = 1 point. Mix these up when writing an EA or configuring an indicator input, and your 20-pip stop becomes a 2-pip stop, or a 200-pip stop. Neither is what you wanted.


What Exactly Is a Pip?

A pip stands for "percentage in point" and has been the forex industry's standard unit of measurement for decades. For most currency pairs it sits at the fourth decimal place (0.0001). For JPY pairs it sits at the second decimal place (0.01).

Pair 1 Pip
EUR/USD 0.0001
GBP/USD 0.0001
USD/JPY 0.01
EUR/JPY 0.01

A pip is a human convention, not a platform convention. Your broker's dealing desk understands pips. MetaTrader's MQL engine understands points.


What Is a Point in MetaTrader?

In MetaTrader 4 and MetaTrader 5, a point is defined as the value of _Point (or Point() in MQL4). It is always the smallest price change the current symbol can display.

You can check it yourself:

Print("Point size: ", _Point);
Print("Digits: ", _Digits);

On a 5-digit EUR/USD chart, _Point prints 0.00001 and _Digits prints 5. On a 5-digit USD/JPY chart, _Point prints 0.001 and _Digits prints 3.

This is why hard-coding stop distances as raw numbers is fragile. An EA that says "set stop 200 points away" behaves very differently depending on whether _Digits is 4 or 5.


What Is a Fractional Pip?

A fractional pip, also called a pipette, is that fifth decimal digit. It is one tenth of a standard pip. Fractional pips exist because brokers wanted tighter spreads and more precise pricing. A spread of 1.2 pips is only expressible if you have that extra digit.

Fractional pips are mostly a display and pricing feature. For most trading decisions, you can round to the nearest full pip and ignore them. They do matter when you are comparing spreads precisely or when your EA's profit target is very small (scalping territory).


How Does This Affect Stop-Loss and Take-Profit in EAs?

This is where the pip vs point confusion causes real money problems.

The wrong way

Imagine you want a 20-pip stop on EUR/USD. You write:

double sl = Ask - 20 * 0.0001;

This works on a 4-digit broker. On a 5-digit broker, 0.0001 is 10 points, so you still get 20 pips. But if someone writes:

double sl = Ask - 20 * Point;

On a 4-digit broker this is 20 pips. On a 5-digit broker this is only 2 pips. Your stop is now inside the spread on most pairs.

The right way

The standard fix used by experienced MQL developers is to detect the digit count and multiply accordingly:

double pipSize = _Point * (_Digits == 3 || _Digits == 5 ? 10 : 1);
double sl = Ask - 20 * pipSize;

This calculates a true pip size dynamically and works on both 4-digit and 5-digit brokers across all pairs including JPY.

Some developers name this variable pip to make the code readable:

double pip = (_Digits % 2 == 1) ? _Point * 10 : _Point;

The modulo check catches 3-digit and 5-digit pairs (odd digit counts are the fractional-pip pairs), though some exotic brokers have unusual digit configurations so testing across symbols is always advisable.

how to write a basic EA in MQL5


What About MetaTrader Indicators? Does the Same Rule Apply?

Yes. Any indicator that plots levels, bands, or envelopes based on a pip distance needs the same awareness. If you buy or configure a third-party indicator that has a "Pip Distance" input, you need to know whether that input expects pips or points.

A common scenario: an indicator's default input is 20, intended to mean 20 pips. On a 5-digit broker, if the developer coded it as 20 * Point, you will see a distance of 2 pips on your chart instead. This makes volatility-based envelopes appear to hug price and ATR-based channels look meaningless.

When evaluating any indicator from the Market or a third-party store, check the product documentation for how inputs are defined. At Orion RFX, all indicators specify whether distance inputs are in pips or points, and the internal code uses the digit-detection method described above.

how to read indicator input documentation


Does MetaTrader 5 Handle This Differently Than MetaTrader 4?

Not significantly. The _Point and _Digits variables exist in both platforms and behave identically. MT5 introduced the SymbolInfoDouble(symbol, SYMBOL_POINT) function for multi-symbol access, but the underlying concept is the same.

The main MT5 difference to be aware of is that position sizing functions changed: OrderSend became PositionOpen in MT5's native functions. But pip-to-point conversion logic is identical between the two platforms.


People Also Ask: Is a Pip the Same as a Point in Forex?

Not on modern brokers. They were effectively the same before 5-digit pricing became the industry standard, which is why older textbooks and forums use the terms interchangeably. On a 4-digit broker, MetaTrader's Point equals one pip. On a 5-digit broker, Point equals one pipette (0.1 pips).

The confusion is entirely a product of brokers adding a decimal place for precision. The pip did not change. The platform's smallest unit changed.

If someone tells you "set your stop to 300 points," you need to know whether they mean points as MetaTrader defines them, or whether they are using "points" as a synonym for pips. Ask, or check the context. A 300-point stop on a 5-digit EUR/USD is a 30-pip stop, which is reasonable. A 300-pip stop is a very wide stop for intraday trading.


Conversion Reference: Pips to Points

Use this as a quick reference when reading EA documentation, forum posts, or indicator settings:

Broker Type Pair Example Digits 1 Pip = X Points
5-digit EUR/USD 5 10 points
4-digit EUR/USD 4 1 point
5-digit JPY USD/JPY 3 10 points
4-digit JPY USD/JPY 2 1 point

Almost all retail brokers today are 5-digit (or 3-digit for JPY pairs). If you opened your account in the last several years, assume 5-digit pricing unless you specifically check.

To verify in MetaTrader: right-click the chart, select Properties, and look at the "Digits" field under the Common tab. Or run the Print(_Digits) snippet in a script.

checking symbol properties in MetaTrader


FAQ

Q: Why do some EAs say "enter distance in points" instead of pips?

A: Because MQL code works natively in points, some developers expose point-based inputs to avoid the conversion ambiguity. If an EA says "enter in points," multiply your desired pip distance by 10 on a 5-digit broker. A 20-pip stop becomes 200 in the input field.

Q: Does the pip vs point issue affect gold (XAUUSD) and other CFDs?

A: Yes. Gold on most brokers is quoted to two decimal places (e.g., 2345.67), so _Digits is 2 and _Point is 0.01. There is no pip convention for metals the way there is for forex. Most traders and EA developers use points directly when working with gold rather than trying to define a "pip equivalent."

Q: If I set a 20-pip stop and it gets triggered almost immediately, what happened?

A: The most likely cause is that the EA set the stop in points rather than pips on a 5-digit broker. A 20-point stop on EUR/USD is 0.0002 wide, which is inside or very close to the spread. Check the EA's source code or documentation for how it calculates the stop distance.

Q: What is a pipette and do I need to worry about it day-to-day?

A: A pipette is one tenth of a pip, the fifth decimal place. For most manual trading decisions you can ignore it. It matters when comparing broker spreads precisely (1.2 pips vs 1.4 pips, for example) and in scalping EAs where the profit target might be only a few pips.

Q: Does this issue exist on TradingView or other platforms?

A: TradingView uses a different charting and scripting environment (Pine Script) and does not have the same "point" abstraction. This particular confusion is specific to MetaTrader and MQL-based tools. That said, always check how any platform defines its smallest price unit when working with automation.


The Bottom Line

Pip and point mean different things inside MetaTrader on a 5-digit broker, and the gap between them is a factor of ten. That factor of ten is small enough to overlook and large enough to blow a stop-loss calculation entirely.

The fix is straightforward once you know it: detect _Digits, calculate a true pip size dynamically, and never assume Point equals one pip. For anyone buying or using indicators and EAs, check whether distance inputs expect pips or points and adjust accordingly. A few seconds of verification saves a lot of puzzling over why your levels are not where they should be.