Commissions can be represented as an equivalent value in pips yes, but not swaps as that is dependent on how long the order remains open and if it is hit by the triple swap day or not.
Here is an example (but will differ depending on some factors, for which you will have to change depending on your case):
The number of Pips that your commission ($ per million) represents in the case of GBP/USD and a USD Account Balance can be calculated as follows:
For example, if your GBP/USD Price is 1.62012 and your commission is $35 per million, then Pip Equivalent = 1.62012 * 35 * 2 / 100 = 1.134084 ~ 1.2 pips (after ceiling adjustment)
If your average spread is 0.94 pips and commission is 1.2 pips, then total cost is 2.14 pips average.
EDIT: More details:
The "100" has nothing to do with percentage but rather the resultant
value after factoring Contract Size and Pip Value for a Standard Lot of
volume.
Here is the correct calculation in detail:
Contract Size = 100000 (Standard Lot Contract Size)
Pip Value = $10.00 (for Standard Lot of ???/USD and USD Account Balance)
Currency Price = 1.62012 (example for GBP/USD)
Value = Currency Price x Contract Size = $162012.00
Turnover = Value x 2 (open & close) = $324024.00 Commission Value = $35.00 Commission Scale = $1000000.00 (Million $) Commission Rate = Commission Value / Commission Scale = 0.000035 Commission per Trade = Turnover x Commission Rate = $11.34084 Commission in Pips = Commission per Trade / Pip Value = 1.134084 pips
Thus the resultant simplified calculation is as follows:
Commission in Pips = Currency Price * Commission Value * 2 / 100 Commission in Pips = Currency Price * Commission Value / 50
EDIT2: However, please note that this is an approximation, as we are using the
same Currency Price for both the Open and Close of the Trade. To be
exact, we would have to calculate separate commissions for the opening
price and closing price, but the resulting difference from the above
calculation is negligible. But if you wish, just use the average price
between the opening and closing prices, in the calculation, for a better
approximation.
Please note that this is only an example and depends on how commission is defined by your broker and in what currency it is expressed.
SYMBOL_CURRENCY_BASE doesn't work properly on CFD symbols eg. SPXUSD hence the string find.
I used MODE_LOTSIZE instead of SYMBOL_CONTRACT_SIZE which can be found in the UnitsDepositCurrency conversion function (updated for MQL5 compatibility). Also, the fixed number of 100,000.0 is a const factor in the commission calculation.
I tweaked it to make it more compatible with ECN brokers who offer multiple symbols. eg. EURUSD, EURUSDecn
Hi, I have a challenge. I'd like to create an input where I set the percentage of my account equity I want to use for each trade and calculate the volume size for each order.
My problem is that I do not know the formula to convert deposit currecy value to lot size.
Hi, I have a challenge. I'd like to create an input where I set the percentage of my account equity I want to use for each trade and calculate the volume size for each order.
My problem is that I do not know the formula to convert deposit currecy value to lot size.
I apperciate any help.
I finally found what I needed. Anyoune who needs thake a look. The article is in portuguese, but you may translate it at google.
<Link Removed>
Moderator: Please do not post links to other websites
Exactly what I posted above ;)
Instead of using a fixed value, you can get the Contract size with SymbolInfoDouble( ..., SYMBOL_TRADE_CONTRACT_SIZE )
Also, instead of using String manipulation you can obtain the Base, Profit and Margin Currencies using SymbolInfoString() and SYMBOL_CURRENCY_BASE, SYMBOL_CURRENCY_PROFIT and SYMBOL_CURRENCY_MARGIN
EDIT: By the way, you can also covert it into a "pip" equivalent if you prefer:
Instead of using a fixed value, you can get the Contract size with SymbolInfoDouble( ..., SYMBOL_TRADE_CONTRACT_SIZE )
Also, instead of using String manipulation you can obtain the Base, Profit and Margin Currencies using SymbolInfoString() and SYMBOL_CURRENCY_BASE, SYMBOL_CURRENCY_PROFIT and SYMBOL_CURRENCY_MARGIN
Thanks for the tips, but...
SYMBOL_CURRENCY_BASE doesn't work properly on CFD symbols eg. SPXUSD hence the string find.
I used MODE_LOTSIZE instead of SYMBOL_CONTRACT_SIZE which can be found in the UnitsDepositCurrency conversion function (updated for MQL5 compatibility). Also, the fixed number of 100,000.0 is a const factor in the commission calculation.
I tweaked it to make it more compatible with ECN brokers who offer multiple symbols. eg. EURUSD, EURUSDecn
Hi, I have a challenge. I'd like to create an input where I set the percentage of my account equity I want to use for each trade and calculate the volume size for each order.
My problem is that I do not know the formula to convert deposit currecy value to lot size.
I apperciate any help.
Hi, I have a challenge. I'd like to create an input where I set the percentage of my account equity I want to use for each trade and calculate the volume size for each order.
My problem is that I do not know the formula to convert deposit currecy value to lot size.
I apperciate any help.
I finally found what I needed. Anyoune who needs thake a look. The article is in portuguese, but you may translate it at google.
<Link Removed>
Moderator: Please do not post links to other websites
I finally found what I needed. Anyoune who needs thake a look. The article is in portuguese, but you may translate it at google.
<Link Removed>
Moderator: Please do not post links to other websites
Please you can send me the link in a private message.