Здравствуйте!
Столкнулся со следующей проблемой. Нигде в интернете не смог найти решение.
Как программно рассчитать стоимость минимального контракта или одного лота в базовой валюте?
Заранее спасибо!
Здравствуйте!
Столкнулся со следующей проблемой. Нигде в интернете не смог найти решение.
Как программно рассчитать стоимость минимального контракта или одного лота в базовой валюте?
Заранее спасибо!
изучай внимательнейшим образом все торговые условия и API для них..
расчитывай от MarketInfo(_Symbol,MODE_TICKVALUE) говорит справка MT4.
TraSer:
Никак не расчитать. Стоимость лота в базовой валюте устанавливает брокер, на forex обычно 100000.
Например EURUSD, размер контракта 100 000 EUR, и таки "стоимость лота в базовой валюте" - 100 000 EUR.
Тоже есть подозрение, что ТС хочет расчитать, нечто иное :) Вряд ли стоимость тика
Например EURUSD, размер контракта 100 000 EUR, и таки "стоимость лота в базовой валюте" - 100 000 EUR.
Тоже есть подозрение, что ТС хочет расчитать, нечто иное :) Вряд ли стоимость тика
Думаю, имелась в виду "базовая" валюта депо. Слово "базовая" лишнее. А иначе действительно бессмыслица.
Кстати, а вот реальная полезная функция, которую я написал, когда задолбало высчитывать СЛ, ТП и прочее для разных валютных пар в роботах.
К примеру, имеем валюту депо USD. Тогда для пары EURUSD на 5-знаке 1 пойнт будет равен $1. И для GBPUSD тоже $1. Кстати, многие не могут это понять и до хрипоты спорят, что фунт дороже евро и цена пойнта будет разная. ))
Как использовать. Например, работаем с EURUSD на 5-знаке. Вместо 50 пойнтов тейкпрофита задаем 50 долларов на 1 лот. Функция выдаст 0.00050. Работает и для кроссов, вообще для всех валютных пар.
Я ее сделал для мультивалютного трейлинга, задал значения и для каждой пары на чарте пересчитывает в реальные значения.
/* Функция рассчитывает значение котировки в валюте заданного инструмента symbol double &diff - рассчитанная величина в валюте инструмента, например 0.00050 double price4lot - сумма в валюте депозита на 1 лот, например 50 долларов USA string symbol="EURUSD" - название инструмента */ static bool Price2Quote(double &diff, double price4lot, string symbol = "EURUSD") { int dig = (int)MarketInfo(symbol, MODE_DIGITS); if (dig == 0) return(false); // символ отсутствует double tickSize = MarketInfo(symbol, MODE_TICKSIZE); // пункт в валюте котировки (0,00001 для EURUSD на 5-знаке) double tickValue = MarketInfo(symbol, MODE_TICKVALUE); // пункт в валюте депозита ($1 для EURUSD на 5-знаке) diff = price4lot*tickSize / tickValue; diff = NormalizeDouble(diff, dig); return (true); }
Кстати, а вот реальная полезная функция, которую я написал, когда задолбало высчитывать СЛ, ТП и прочее для разных валютных пар в роботах.
К примеру, имеем валюту депо USD. Тогда для пары EURUSD на 5-знаке 1 пойнт будет равен $1. И для GBPUSD тоже $1. Кстати, многие не могут это понять и до хрипоты спорят, что фунт дороже евро и цена пойнта будет разная. ))
Как использовать. Например, работаем с EURUSD на 5-знаке. Вместо 50 пойнтов тейкпрофита задаем 50 долларов на 1 лот. Функция выдаст 0.00050. Работает и для кроссов, вообще для всех валютных пар.
Я ее сделал для мультивалютного трейлинга, задал значения и для каждой пары на чарте пересчитывает в реальные значения.
Только некоторые уточнения. Если функция MarketInfo() вернула 0, то это вовсе не означает отсутствие символа. Может быть банальное отсутствие данных в терминале. Поэтому лучше проверять на наличие ошибок: ERR_UNKNOWN_SYMBOL, ERR_INVALID_FUNCTION_PARAMVALUE и ERR_INTERNAL_ERROR. Также можно уйти от MarketInfo на SymbolInfoDouble, сделав функцию платформонезависимой.
Ну и напоследок - классика жанра )) Иногда будет вылетать по делению на ноль: значение tickValue не проверено.
Только некоторые уточнения. Если функция MarketInfo() вернула 0, то это вовсе не означает отсутствие символа. Может быть банальное отсутствие данных в терминале. Поэтому лучше проверять на наличие ошибок: ERR_UNKNOWN_SYMBOL, ERR_INVALID_FUNCTION_PARAMVALUE и ERR_INTERNAL_ERROR. Также можно уйти от MarketInfo на SymbolInfoDouble, сделав функцию платформонезависимой.
Ну и напоследок - классика жанра )) Иногда будет вылетать по делению на ноль: значение tickValue не проверено.
Здравствуйте!
Столкнулся со следующей проблемой. Нигде в интернете не смог найти решение.
Как программно рассчитать стоимость минимального контракта или одного лота в базовой валюте?
Заранее спасибо!
10 000/плечо*текущий курс валютной пары. Только это называется не стоимость контракта а размер залога, т.к. вы торгуете с плечами. Для commodities расчет маленько другой.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте!
Столкнулся со следующей проблемой. Нигде в интернете не смог найти решение.
Как программно рассчитать стоимость минимального контракта или одного лота в базовой валюте?
Заранее спасибо!