Currency Pair by Pips Value

shanmugapradeep

Active Trader
Dec 18, 2020
119
5
34
39
Which currency pair have highest pips value and lowest Pips value per Standard lot. Can anyone help me a list of currency pairs with pips value (High to Low order)
 

Enivid

Administrator
Staff member
Nov 30, 2008
19,201
1,499
144
Odesa
www.earnforex.com
Which currency pair have highest pips value and lowest Pips value per Standard lot. Can anyone help me a list of currency pairs with pips value (High to Low order)
Some exotics probably have the lowest pip value while any /GBP pair should be the highest pip value. I don't know why would you need such a list, but you could probably code a simple script that would cycle through all the symbols and output the tick value for each of them.
 
Jan 25, 2024
6
0
1
39
Which currency pair have highest pips value and lowest Pips value per Standard lot. Can anyone help me a list of currency pairs with pips value (High to Low order)
Which currency pair have highest pips value and lowest Pips value per Standard lot. Can anyone help me a list of currency pairs with pips value (High to Low order)
Switch over to the big boys side of things. Actual physical commodity trading. How about we have a quick chat about it?
 

shanmugapradeep

Active Trader
Dec 18, 2020
119
5
34
39
Some exotics probably have the lowest pip value while any /GBP pair should be the highest pip value. I don't know why would you need such a list, but you could probably code a simple script that would cycle through all the symbols and output the tick value for each of them.

Like this?

MQL4:
//+------------------------------------------------------------------+
//|                                                      MyPipValue |
//|                                                                    |
//+------------------------------------------------------------------+
#property strict
 
// Function to calculate pip value
double CalculatePipValue(string symbol, double lotSize)
{
    int digits = MarketInfo(symbol, MODE_DIGITS);
    double tickSize = MarketInfo(symbol, MODE_POINT);
 
    // Calculate pip value
    double pipValue = lotSize * tickSize * 10.0;
 
    return pipValue;
}
 
// Main Expert Advisor function
int start()
{
    // Loop through all currency pairs in market watch
    for (int i = 0; i < SymbolsTotal(false); i++)
    {
        string symbol = SymbolName(i, false);
 
        // Lot sizes to calculate pip value for
        double lotSize1 = 0.01;
        double lotSize2 = 0.1;
        double lotSize3 = 1.0;
 
        // Calculate pip value for each lot size
        double pipValue1 = CalculatePipValue(symbol, lotSize1);
        double pipValue2 = CalculatePipValue(symbol, lotSize2);
        double pipValue3 = CalculatePipValue(symbol, lotSize3);
 
        // Print results to the console
        Print("Symbol: ", symbol);
        Print("Lot Size 0.01 / 1 pip = $", pipValue1);
        Print("Lot Size 0.1 / 1 pip = $", pipValue2);
        Print("Lot Size 1.0 / 1 pip = $", pipValue3);
        Print("------------------------------------");
    }
 
    return(0);
}
Post automatically merged:

Switch over to the big boys side of things. Actual physical commodity trading. How about we have a quick chat about it?
Sure
 
Jan 25, 2024
6
0
1
39
Like this?

MQL4:
//+------------------------------------------------------------------+
//|                                                      MyPipValue |
//|                                                                    |
//+------------------------------------------------------------------+
#property strict
 
// Function to calculate pip value
double CalculatePipValue(string symbol, double lotSize)
{
    int digits = MarketInfo(symbol, MODE_DIGITS);
    double tickSize = MarketInfo(symbol, MODE_POINT);
 
    // Calculate pip value
    double pipValue = lotSize * tickSize * 10.0;
 
    return pipValue;
}
 
// Main Expert Advisor function
int start()
{
    // Loop through all currency pairs in market watch
    for (int i = 0; i < SymbolsTotal(false); i++)
    {
        string symbol = SymbolName(i, false);
 
        // Lot sizes to calculate pip value for
        double lotSize1 = 0.01;
        double lotSize2 = 0.1;
        double lotSize3 = 1.0;
 
        // Calculate pip value for each lot size
        double pipValue1 = CalculatePipValue(symbol, lotSize1);
        double pipValue2 = CalculatePipValue(symbol, lotSize2);
        double pipValue3 = CalculatePipValue(symbol, lotSize3);
 
        // Print results to the console
        Print("Symbol: ", symbol);
        Print("Lot Size 0.01 / 1 pip = $", pipValue1);
        Print("Lot Size 0.1 / 1 pip = $", pipValue2);
        Print("Lot Size 1.0 / 1 pip = $", pipValue3);
        Print("------------------------------------");
    }
 
    return(0);
}
Post automatically merged:


Sure
I am sure this would do wonders with an hft algo.
 

Enivid

Administrator
Staff member
Nov 30, 2008
19,201
1,499
144
Odesa
www.earnforex.com
Like this?

MQL4:
//+------------------------------------------------------------------+
//|                                                      MyPipValue |
//|                                                                    |
//+------------------------------------------------------------------+
#property strict
 
// Function to calculate pip value
double CalculatePipValue(string symbol, double lotSize)
{
    int digits = MarketInfo(symbol, MODE_DIGITS);
    double tickSize = MarketInfo(symbol, MODE_POINT);
 
    // Calculate pip value
    double pipValue = lotSize * tickSize * 10.0;
 
    return pipValue;
}
 
// Main Expert Advisor function
int start()
{
    // Loop through all currency pairs in market watch
    for (int i = 0; i < SymbolsTotal(false); i++)
    {
        string symbol = SymbolName(i, false);
 
        // Lot sizes to calculate pip value for
        double lotSize1 = 0.01;
        double lotSize2 = 0.1;
        double lotSize3 = 1.0;
 
        // Calculate pip value for each lot size
        double pipValue1 = CalculatePipValue(symbol, lotSize1);
        double pipValue2 = CalculatePipValue(symbol, lotSize2);
        double pipValue3 = CalculatePipValue(symbol, lotSize3);
 
        // Print results to the console
        Print("Symbol: ", symbol);
        Print("Lot Size 0.01 / 1 pip = $", pipValue1);
        Print("Lot Size 0.1 / 1 pip = $", pipValue2);
        Print("Lot Size 1.0 / 1 pip = $", pipValue3);
        Print("------------------------------------");
    }
 
    return(0);
}
Post automatically merged:


Sure
I'd recommend to look into MarketInfo(Symbol(), MODE_TICKVALUE) to simplify the matter.
 

hayseed

Master Trader
Jul 27, 2010
1,141
273
149
usa
Like this?

MQL4:
//+------------------------------------------------------------------+
//-----

depending on your actual purpose, you might want to see how MarketInfo(Symbol(),MODE_MARGINREQUIRED) plays in.....

two pairs might have a tickvalue of 1$ ..... while one might have margin required of 1200$ and the other might have margin required of 2500$......

and in some cases you might have to consider contract size..... as in indexes, gold, silver, corn and so on.......

you can sort in mq4/5 but exporting to excel works also......h

//-----
audchf-m30-oanda-division1-tv.png


//-----
 

Attachments

  • tick value.ex4
    10.2 KB · Views: 0
  • tick value.mq4
    3.6 KB · Views: 2
  • 👍
Reactions: Enivid

shanmugapradeep

Active Trader
Dec 18, 2020
119
5
34
39
Thanks for the code. What does "tv/mr", "atr" and "rv" mean?

Here i updated. Is this correct.

MQL4:
//+------------------------------------------------------------------+
//|                                                   tick value.mq4 |
//| https://youtu.be/hk8BSXxEvig?si=d1-vqNreEF5HieLl |
//|                                 https://www.youtube.com/@hayseedfx |
//|                                                    hayseedfx.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
    //---
    ChartSetInteger(0, CHART_SHOW_PRICE_SCALE, 0, false);
    ChartSetInteger(0, CHART_SHOW_TRADE_LEVELS, 0, false);
    ChartSetInteger(0, CHART_SHOW_BID_LINE, 0, false);
    ChartSetInteger(0, CHART_COLOR_BACKGROUND, White);
    ChartSetInteger(0, CHART_COLOR_FOREGROUND, White);
    ChartSetInteger(0, CHART_COLOR_CANDLE_BEAR, White);
    ChartSetInteger(0, CHART_COLOR_CANDLE_BULL, White);
    ChartSetInteger(0, CHART_COLOR_CHART_DOWN, clrWhite);
    ChartSetInteger(0, CHART_COLOR_CHART_LINE, clrNONE);
    ChartSetInteger(0, CHART_COLOR_CHART_UP, White);
    ChartSetInteger(0, CHART_COLOR_ASK, White);
    ChartSetInteger(0, CHART_COLOR_BID, White);
    ChartSetInteger(0, CHART_COLOR_GRID, White);
    //-----
 
    string columns[] = {"symbol", "tick value", "margin req", "tv/mr", "atr", "rv", "Pips Value/Lot 0.01", "Pips Value/Lot 0.1", "Pips Value/Lot 1"};
 
    int size = ArraySize(columns);
 
    for (int j = 0; j < size; j++)
    {
        Display(columns[j], 100 * j, 1);
        ObjectSetText(columns[j], columns[j], 10, "Verdana", Black);
    }
 
    int i;
    int count = SymbolsTotal(true);
 
    string symbol = "";
 
    for (i = 0; i < count; i++)
    {
        symbol = SymbolName(i, true);
 
        Display(symbol, 10, (i * 20) + 20);
        ObjectSetText(symbol, symbol, 10, "Verdana", Black);
 
        Display(symbol + " tickvalue", 100, (i * 20) + 20);
        ObjectSetText(symbol + " tickvalue", DoubleToStr(MarketInfo(symbol, MODE_TICKVALUE), 2), 10, "Verdana", Black);
 
        Display(symbol + " margin required", 200, (i * 20) + 20);
        ObjectSetText(symbol + " margin required", DoubleToStr(MarketInfo(symbol, MODE_MARGINREQUIRED), 2), 10, "Verdana", Black);
 
        Display(symbol + " mr/tv", 300, (i * 20) + 20);
        ObjectSetText(symbol + " mr/tv", DoubleToStr((MarketInfo(symbol, MODE_TICKVALUE) / MarketInfo(symbol, MODE_MARGINREQUIRED)) * 100, 2), 10, "Verdana", Black);
 
        double atr = iATR(symbol, 1440, 50, 1) / MarketInfo(symbol, MODE_POINT) * 0.1;
 
        Display(symbol + " atr", 400, (i * 20) + 20);
        ObjectSetText(symbol + " atr", DoubleToStr(atr, 0), 10, "Verdana", Black);
 
        double rv = (MarketInfo(symbol, MODE_TICKVALUE) / MarketInfo(symbol, MODE_MARGINREQUIRED)) * 100 * atr;
 
        Display(symbol + " rv", 500, (i * 20) + 20);
        ObjectSetText(symbol + " rv", DoubleToStr(rv, 2), 10, "Verdana", Black);
 
        // Calculate Pips value for different lot sizes
        double pips_001 = MarketInfo(symbol, MODE_POINT) * 0.01;
        double pips_01 = MarketInfo(symbol, MODE_POINT) * 0.1;
        double pips_1 = MarketInfo(symbol, MODE_POINT) * 1.0;
        //double pips_001 = MarketInfo(symbol, MODE_TICKVALUE) * 0.01;
        //double pips_01 = MarketInfo(symbol, MODE_TICKVALUE) * 0.1;
        //double pips_1 = MarketInfo(symbol, MODE_TICKVALUE) * 1.0;
 
 
        Display(symbol + " Pips Value/Lot 0.01", 600, (i * 20) + 20);
        ObjectSetText(symbol + " Pips Value/Lot 0.01", DoubleToStr(pips_001, 1), 10, "Verdana", Black);
 
        Display(symbol + " Pips Value/Lot 0.1", 700, (i * 20) + 20);
        ObjectSetText(symbol + " Pips Value/Lot 0.1", DoubleToStr(pips_01, 1), 10, "Verdana", Black);
 
        Display(symbol + " Pips Value/Lot 1", 800, (i * 20) + 20);
        ObjectSetText(symbol + " Pips Value/Lot 1", DoubleToStr(pips_1, 1), 10, "Verdana", Black);
    }
}
 
//+------------------------------------------------------------------+
 
void Display(string name, int x, int y)
{
    ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
    ObjectSet(name, OBJPROP_CORNER, 0);
    ObjectSet(name, OBJPROP_XDISTANCE, x);
    ObjectSet(name, OBJPROP_YDISTANCE, y);
    ObjectSet(name, OBJPROP_BACK, FALSE);
}

I'd recommend to look into MarketInfo(Symbol(), MODE_TICKVALUE) to simplify the matter.
Like this

MQL4:
// Calculate Pips value for different lot sizes
double pips_001 = MarketInfo(symbol, MODE_TICKVALUE) * 0.01;
double pips_01 = MarketInfo(symbol, MODE_TICKVALUE) * 0.1;
double pips_1 = MarketInfo(symbol, MODE_TICKVALUE) * 1.0;
 

hayseed

Master Trader
Jul 27, 2010
1,141
273
149
usa
Thanks for the code. What does "tv/mr", "atr" and "rv" mean?

Here i updated. Is this correct.
//------

"tv/mr" is tick value divided by margin required...... the idea is to see what pays the most per tick relative to the margin required.....

(MarketInfo(symbol, MODE_TICKVALUE) / MarketInfo(symbol, MODE_MARGINREQUIRED))
//-----

"atr" is the daily atr commonly seen in a whole number or integer fashion.......

double atr = iATR(symbol, 1440, 50, 1) / MarketInfo(symbol, MODE_POINT) * 0.1;
//-----

"rv" is short for relative value...... doesn't mean much..... you can look at the math to see actually what it is.......
//-----

tickvalue, marginrequired and so on can be confusing at first......

you will eventually memorize them for every pair....... simply moving the decimal point allows for different lot sizes......

as enivid pointed out to me many years ago, some of those values will change slightly over time.......

use scripts like the one above to visualize at first , then memory takes over.....h
 

NatureGirl

Active Trader
May 3, 2023
102
14
34
23
Which currency pair have highest pips value and lowest Pips value per Standard lot. Can anyone help me a list of currency pairs with pips value (High to Low order)
its higher for pairs with a high exchange rate against the usd like gbpjpy & euraud and lower for pairs like usdjpy & eurjpy
 

Enivid

Administrator
Staff member
Nov 30, 2008
19,201
1,499
144
Odesa
www.earnforex.com
its higher for pairs with a high exchange rate against the usd like gbpjpy & euraud and lower for pairs like usdjpy & eurjpy
No, it doesn't work like that. A pip value doesn't depend on the base currency at all. It only depends on the quote currency and the tick size. On the contrary, margin required depends on the base currency (but not the quote currency) and the contract size.
 

NatureGirl

Active Trader
May 3, 2023
102
14
34
23
No, it doesn't work like that. A pip value doesn't depend on the base currency at all. It only depends on the quote currency and the tick size. On the contrary, margin required depends on the base currency (but not the quote currency) and the contract size.
kinda confused, can U explain briefly?