Получение цепочки опций из IB API с использованием ib insync (Python)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Получение цепочки опций из IB API с использованием ib insync (Python)

Сообщение Anonymous »

У меня есть простой скрипт для получения цен всех опционов для цепочки опционов в IB. Моя проблема в том, что это очень медленно (11 секунд на контракт). Я знаю, что могу использовать множественную обработку, но мне все равно кажется, что должен быть лучший способ сделать это. Мне нравится простота ib insync, и я бы предпочел держаться подальше от обычного пакета ib api.
Буду очень признателен за помощь

Код: Выделить всё

from ib_insync import *

ib = IB()
ib.connect('127.0.0.1', 4001, clientId=666, timeout = 11)

def get_multiple_expirations_strikes(exp_list,strike_list):

for i in exp_list:
print('Expiration: ', i)
for x in strike_list:
for k in ['C','P']:
contract = Option('AAPL', i, x, k, 'SMART')
details = ib.reqTickers(contract)
print ('strike: ',x,' C/P: ',k," ",details[0].close)
Приведенный выше код кажется работает нормально, но он очень медленный. Я попытался добавить многопроцессорность, но, видимо, с ib insync это работает не очень хорошо. Код ниже использует звездную карту, но возвращает ошибку.

Код: Выделить всё

from ib_insync import *
import multiprocessing

ib = IB()
ib.connect('127.0.0.1', 4001, clientId=666, timeout=11)

def get_contract(symbol,exp,strike,kind):

contract = Option(symbol, exp, strike, kind, 'SMART')
details = ib.reqTickers(contract)
print('strike: ', strike, ' C/P: ', kind, " ", details[0].close)

def get_multiple_expirations_strikes(symbol,exp_list,strike_list):

inputs = []
for i in exp_list:
for x in strike_list:
for k in ['C','P']:
inputs.append([symbol,i,x,k])

with multiprocessing.Pool(processes= 3) as pool:
g = pool.starmap(get_contract,inputs)

print(g)

get_multiple_expirations_strikes('AAPL',['20191115', '20200320'],[155.0, 160.0, 165.0, 170.0])
ib.disconnect()
Сообщение об ошибке:
Ошибка ОС: [Errno 9] Неверный дескриптор файла

Подробнее здесь: https://stackoverflow.com/questions/586 ... ync-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Java 11: получение «Пустой цепочки сертификатов [клиента]» вместо «Пустой цепочки сертификатов [сервера]»
    Anonymous » » в форуме JAVA
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при анализе данных Json из цепочки опций Nseindia
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • В Ib Insync как отменить тикер? Я не могу получить тикид
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • API API API API API API API
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Как использовать Python с изменениями открытого файла в выбранном файле меню опций
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»