0
Views
0
Downloads
0
Favorites
pipvaluecalculatorv1_02
//+------------------------------------------------------------------+
//| PipValueCalculator.mq4 |
//| Copyright 2015, Stuart Browne (Filter) |
//| https://www.mql5.com/en/users/filter |
//+------------------------------------------------------------------+
// Version History
// ---------------
// V1.01 - corrected formula for calculating points and pips
// V1.02 - further refinement to calculation for clarity
#property copyright "Open Source 2015, by Stuart Browne (Filter)"
#property link "https://www.mql5.com/en/users/filter"
#property version "1.02"
#property description "Provided free of charge and free of copyright to the MQL community by Filter\n"
#property description "A very simple calculator for you to calculate the value of 1 point and 1 pip in your"
#property description "base (deposit) currency.\n"
#property description "Either use the calculator 'as is' for a handy tool or adapt the main formula for use"
#property description "in your own EA money management strategies."
#property strict
#property indicator_chart_window
extern double LotSize=1; // Lot Size
double point;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
// Broker digits
point=Point;
if((Digits==3) || (Digits==5))
{
point*=10;
}
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator de-init function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment(""); // Cleanup
Print(__FUNCTION__,"_UninitReason = ",getUninitReasonText(_UninitReason));
return;
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
string CommentString="";
string DepositCurrency=AccountInfoString(ACCOUNT_CURRENCY);
double PipValue=(((MarketInfo(Symbol(),MODE_TICKVALUE)*point)/MarketInfo(Symbol(),MODE_TICKSIZE))*LotSize);
double PointValue=PipValue/10;
CommentString+="\n" + "Your deposit currency: " + DepositCurrency + "\n";
CommentString+="Lot size requested: " + DoubleToStr(LotSize,2) + "\n";
CommentString+="-----------------------------------------------------------------\n";
CommentString+="Value of one point (" + Symbol() + "): $" + DepositCurrency + " " + DoubleToStr(PointValue,3) + "\n";
CommentString+="Value of one pip (" + Symbol() + ") : $" + DepositCurrency + " " + DoubleToStr(PipValue,3) + "\n";
CommentString+="-----------------------------------------------------------------\n";
Comment(CommentString);
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
//| Custom functions |
//+------------------------------------------------------------------+
string getUninitReasonText(int reasonCode) // Return reason for De-init function
{
string text="";
switch(reasonCode)
{
case REASON_ACCOUNT:
text="Account was changed";break;
case REASON_CHARTCHANGE:
text="Symbol or timeframe was changed";break;
case REASON_CHARTCLOSE:
text="Chart was closed";break;
case REASON_PARAMETERS:
text="Input-parameter was changed";break;
case REASON_RECOMPILE:
text="Program "+__FILE__+" was recompiled";break;
case REASON_REMOVE:
text="Program "+__FILE__+" was removed from chart";break;
case REASON_TEMPLATE:
text="New template was applied to chart";break;
default:text="Another reason";
}
return text;
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---