1. Нашел как избавиться от "1.#INF" и "1.#QNAN". Нужно отправить ордер брокеру перед запросом функций, можно отложенный, даже если не откроется, все равно данные будут уже более менее правильными.
2. Кстати, в расчетах упустил валюту для расчета маржи, она может быть установлена для каждого инструмента своя. Хотя...
0 11:00:23.453 MarginCalc EURUSD,H1: USDRON: lot=100000.0> 200.0, 200.0, MSYM: USD 0 11:00:23.453 MarginCalc EURUSD,H1: USDRUB: lot=100000.0> 8000.0, 8000.0, MSYM: USD 0 11:00:23.453 MarginCalc EURUSD,H1: USDSEK: lot=100000.0> 200.0, 200.0, MSYM: USD 0 11:00:23.453 MarginCalc EURUSD,H1: USDSGD: lot=100000.0> 200.0, 200.0, MSYM: USD 0 11:00:23.453 MarginCalc EURUSD,H1: USDTRY: lot=100000.0> 200.0, 200.0, MSYM: USD 0 11:00:23.453 MarginCalc EURUSD,H1: USDZAR: lot=100000.0> 200.0, 200.0, MSYM: USD
у всех валюта расчета залоговых средств USD, а по USDRUB - результат 8000...
Эврика!
Оказывается на стороне сервера по каждому инструменту есть спец настроечка для маржи. и по факту формула:
lots * contract size / leverage * percentage / 100
Как раз "percentage" установлен в 4000... поэтому по USDRUB размер маржи в 40 раз больше...
Тема закрыта. Но может кому понадобятся эти разборки...
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую всех.
Задача, конечно, древняя, но ппц не могу добиться нормальных результатов.
Только и нужно-то получить по каждому инструменту размер требуемой маржи для открытия ордера (1 лот).
Правила известны и давно обсуждались:
1. Если валюта для вычисления залога равна валюте депозита - размер контракта / плечо2. Если валюты не равны, тогда ищем пару <валюта залога + валюта депозита>, если есть, тогда: ( ask + bid ) / 2.0 * размер контракта / плечо
3. Если валюты не равны и нет пары <валюта залога + валюта депозита>, тогда ищем пару <валюта депозита + валюта залога>, если есть тогда: 1 / (( ask + bid ) / 2.0) * размер контракта / плечо
Это в теории...
Да вот неувязочки выходят со стандартными функциями как ни крути.
Пример скрипта:
Валюта депозита USD, плечо 500
По первому варианту (валюта для вычисления залога равна валюте депозита - размер контракта / плечо) пару результатов:
USDRUB хз как вычисляется, или плечо другое под нее...
Плюс получаю результаты типа:
Или
Все символы в MarketWatch присутствуют на момент запуска.
По CFDs вообще хз как считать:
Bid = 8.62, Ask = 8.64
Размер контракта/плечо = 1, как 13.48 получить...?
если кто в теме - help!