Проблемы чтения minTick из Java-интерфейса Interactive Brokers
У меня возникают некоторые проблемы с API Interactive Brokers: когда я запрашиваю детали контракта с помощью
m_controller.reqContractDetails(contract, t);
Я получаю данные; внутри него содержится поле minTick, которое, похоже, постоянно показывает 1.0E-4
Когда я передаю свои заказы, используя метод PlaceOrder, я сталкиваюсь со следующим сообщением об ошибке при установке цены, кратной 0,0001:
110 The price does not conform to the minimum price variation for this contract.
Я не уверен, что вызывает эту проблему, неправильно ли я использую это значение.
Любая помощь будет оценена.
Спасибо.
2 ответа
Я связался со службой технической поддержки IB, и вот что они должны были сказать о собственности minTick для контракта:
пользователь: Здравствуйте, я пытаюсь получить минимальную цену для данной акции, но у меня возникают некоторые проблемы: когда я получаю данные из reqContractDetails, я последовательно получаю minTick 1.0E-4, но когда я размещаю заказ с с шагом 0,0001 я получаю ошибку: цена не соответствует минимальному изменению цены для этого контракта.
пользователь: я проверил это с акциями, такими как VLTC и PBMD
пользователь: он позволяет мне размещать заказы только с шагом 0,01, что не соответствует minTick
Агент IB: минимальная цена в contractDetails() не является полной информацией.
Агент IB: К сожалению, он не предоставит больше информации
Агент IB: вам нужно изучить
Агент IB: http://www1.interactivebrokers.ch/contract_info/index2.php
пользователь: так что нет программного способа получить минимальную цену тика для данной акции
Агент IB: при использовании нашего API, нет
Агент IB: это акции США?
пользователь: да
Агент IB: обычно он выше $1, тогда прирост цены составляет 0,01
Другими словами, minTick для IB API не является надежным способом узнать минимальный размер тика для данной акции, и для выполнения этой задачи необходимо рассмотреть какой-то другой способ.
Агент IB был прав. Как правило, в США это будет 0,01 (акции).
Если вы используете форекс будет 0,0001.
Если вы торгуете в Европе, могут быть некоторые различия, посмотрите на это, например, (Франция):
http://www.boursorama.com/cours.phtml?symbole=3kMAOMF
Если вы хотите определить минимальное изменение цены, я могу получить цену и сосчитать десятичные дроби или перейти к Yahoo Finance, чтобы сделать это...
Начиная с версии 973.03 API-интерфейса TWS предлагается новая функция reqMarketRule, которая обеспечивает минимальный прирост на каждом ценовом уровне. Это полезно для европейских акций, где минимальный прирост может меняться в зависимости от рыночной цены инструмента. Документация по API.