Если счет в USD, то через комбинацию из MarketInfo.
fxsaber:
Если счет в USD, то через комбинацию из MarketInfo.
Если счет в USD, то через комбинацию из MarketInfo.
Счет в долларах.
Можете подробнее, пожалуйста, ибо смотрю я на идентификаторы маркет инфо и не вижу куда копать.
Есть SYMBOL_CURRENCY_BASE и SYMBOL_CURRENCY_PROFIT это уже тепло, но все равно не то.
Спасибо.
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
- docs.mql4.com
Информация об инструменте - Состояние окружения - Стандартные константы, перечисления и структуры - Справочник MQL4
Как вариант
double GetRate( const string Symb ) { return(AccountLeverage() * MarketInfo(Symb, MODE_MARGINREQUIRED) / (MarketInfo(Symb, MODE_ASK) * MarketInfo(Symb, MODE_LOTSIZE))); } void PrintRate( const string Symb ) { Print(StringSubstr(Symb, 3, 3) + "/" + AccountInfoString(ACCOUNT_CURRENCY) + " = GetRate(" + Symb + ") = " + (string)GetRate(Symb)); } void OnStart() { const string Symbols[] = {"EURUSD", "GBPUSD", "AUDNZD", "EURGBP", "CADJPY"}; for (int i = ArraySize(Symbols) - 1; i >= 0; i--) PrintRate(Symbols[i]); }
fxsaber:
Как вариант
Уже очень тепло..в терминале при запуске я получаю:Как вариант
20:38:08.218 MarketInfo EURUSD,M5: JPY/USD = GetRate(CADJPY) = 0.00886671
20:38:08.218 MarketInfo EURUSD,M5: GBP/USD = GetRate(EURGBP) = 1.29764643
20:38:08.218 MarketInfo EURUSD,M5: NZD/USD = GetRate(AUDNZD) = 0.69126979
20:38:08.218 MarketInfo EURUSD,M5: USD/USD = GetRate(GBPUSD) = 1.0000077
20:38:08.218 MarketInfo EURUSD,M5: USD/USD = GetRate(EURUSD) = 1.00001818
На примере первой строчки: это отношение JPY/USD, а как переделать код, чтобы получить отношение CAD/USD? Я не до конца понял как ваша магия работает (а именно функция GetRate), поэтому нужна помощь..
fxsaber:
В GetRate отправить XXXCAD-символ. Например, EURCAD или GBPCAD.
В GetRate отправить XXXCAD-символ. Например, EURCAD или GBPCAD.
Думал, будет не совсем корректно использовать эту функцию таким образом. Но, раз вы разрешаете.. :)
Супер! Огроменное спасибо за помощь!
Хотя, если подумать, можно ведь и так:
double ConvertToUSD(string currency, double amount)
{
if(currency == "USD") return amount;
if(currency == "EUR") return amount*MarketInfo("EURUSD", MODE_ASK);
if(currency == "AUD") return amount*MarketInfo("AUDUSD", MODE_ASK);
if(currency == "GBP") return amount*MarketInfo("GBPUSD", MODE_ASK);
if(currency == "NZD") return amount*MarketInfo("NZDUSD", MODE_ASK);
if(currency == "CHF") return amount*1/MarketInfo("USDCHF", MODE_ASK);
if(currency == "CAD") return amount*1/MarketInfo("USDCAD", MODE_ASK);
if(currency == "JPY") return amount*1/MarketInfo("USDJPY", MODE_ASK);
return 999; // lol
}
iJSmile:
Хотя, если подумать, можно ведь и так:
Это если в обзоре рынка есть данные символы.
Хотя, если подумать, можно ведь и так:
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Господа, как с помощью MQL4(и терминала разумеется) перевести любую валюту в доллары по курсу MT4?
Т.е если я на графике CAD/JPY то как перевести 2 канадца в USD (2 CAD = ? USD)
на графике AUD/CHF то как перевести 2 ауди в USD (2 AUD = ? USD)
на графике CHF/JPY то как перевести 2 франка в USD (2 CHF = ? USD)
и т.д
Находясь на графике EUR/USD всё понятно, при текущей грубой котировке 1,09989 : 2 EUR * 1,09989 = 2,19978 USD
Благодарен за любую помощь!