Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Kirill Belousov, 2017.10.05 07:33
Вот тест:
1. Выберем в MarketWatch кроссы, а все с USD скроем
2.Добавим символ DSHBTC и откроем его график.
3. Закроем терминал
4. Откроем терминал
5. Запустим тест на DSHBTC
Вот ЛОГ:
По всем кроссам показывает маржу=0 и МАЖОРЫ ДЛЯ КРОССОВ НЕ ВЫБРАЛИСЬ.
Еще раз накинем скрипт на DSHBTC
ЛОГ
Выбрались мажоры, но кроме USDJPY
Все тесты проводились на MetaQuotes
Этот скрипт запускался на одном символе, а считали по разным? Я правильно понял?
Этот скрипт запускался на одном символе, а считали по разным? Я правильно понял?
Похоже что проблема выявлена. Для получения маржи кроссам должны быть в обзоре рынка символы с валютой депозита. То-есть для получения маржи по GBPJPY нужны символы GBPUSD и USDJPY
Похоже что проблема выявлена. Для получения маржи кроссам должны быть в обзоре рынка символы с валютой депозита. То-есть для получения маржи по GBPJPY нужны символы GBPUSD и USDJPY
Пробовал, перед получением маржи, добавить эти символы в обзор рынка? Получилось?
Пробовал, перед получением маржи, добавить эти символы в обзор рынка? Получилось?
Да.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Alexey Viktorov, 2017.10.05 09:46
Добавьте в начало скрипта такой цикл
И посмотрите сколько символов будет распечатано.
При первом запуске обращение к AUDJPY только добавляет в обзор рынка AUDUSD и USDJPY и только при втором обращении через эти пары получает свойство символа. Именно это и вызывает проблему с OrderCalcMargin в моём случае.
Можно даже ничего не изобретать. Достаточно вставить в цикл небольшую задержку
и со второй попытки маржа правильно определяется. Ну, или почти правильно, ведь курс базовой валюты к валюте депозита учитывается в текущий момент, а не в тот момент когда ордер превратится в позицию.
Можно даже ничего не изобретать. Достаточно вставить в цикл небольшую задержку
и со второй попытки маржа правильно определяется. Ну, или почти правильно, ведь курс базовой валюты к валюте депозита учитывается в текущий момент, а не в тот момент когда ордер превратится в позицию.
Вы только о конкретном случае говорите или смотрели это для всех случаев - график при открытии терминала не открыт (символ выбран), график не открыт и символ не выбран, советник мультивалютный для обоих предыдущих случаев?
Если инструмент пересчёта из валюты маржи в валюту депозита присутствует в обзоре рынка, то никаких проблем не возникает.
Если его нет, то при первом обращении происходит добавление этого инструмента, но без паузы вторая попытка получить размер маржи не даст положительного результата. Пауза обязательна. Длительность поставлена "от фонаря", 5 мало, поставил 50, хватило. На этом я и закончил.
Если советник мультивалютный, значит график инструмента по которому открывается ордер открыт, а с инструментом пересчёта маржи всё то-же самое как описано выше.
Началось отсюда
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2017.10.05 08:04
Воспроизведение бага
Результат такой
Повторный запуск
Т.е. SYMBOL_TRADE_TICK_VALUE возвращает нули при первом запуске, если не делать Sleep();
ЗЫ На тему невидимого символа в Обзоре рынка. Если до шага запуска скрипта попытаться открыть чарт USDJPY (нажать Enter и ввести "USDJPY"), то ничего не получится. А если после запуска скрипта - получится. Хотя Обзор рынка не изменился.