Как я могу загрузить исторические данные из IB API и добавить в текущие стержни в реальном времени.def get_front_month_contract(symbol, exchange="CME", currency="USD", secType="FUT"):
ib = IB()
st.info("Connecting to IBKR Gateway via IB Insync...")
try:
ib.connect('--------', 48879, clientId=1)
except Exception as e:
st.error(f"Error connecting to IBKR Gateway: {e}")
return None
contract = Future()
contract.symbol = symbol
contract.secType = secType
contract.exchange = exchange
contract.currency = currency
st.info(f"Requesting contract details for {symbol} futures...")
details = ib.reqContractDetails(contract)
if not details:
st.error(f"No contract details found for {symbol}.")
ib.disconnect()
return None
today = datetime.today()
valid_contracts = []
for d in details:
expiry_str = d.contract.lastTradeDateOrContractMonth
expiry_date = parse_expiry(expiry_str)
if expiry_date and expiry_date > today:
valid_contracts.append((expiry_date, d.contract))
if not valid_contracts:
st.error(f"No active futures contracts found for {symbol}.")
ib.disconnect()
return None
valid_contracts.sort(key=lambda x: x[0])
front_month_contract = valid_contracts[0][1]
st.info(f"Selected front month contract: {front_month_contract.localSymbol}")
ib.disconnect()
return front_month_contract
< /code>
def get_historical_data (контракт, durationstr, barsizesetting, whattoshow = 'trades', userth = true):
ib = ib ()
try:
ib.connect ('127.0.0.1', 4002, clientId = 10)
За исключением исключения как e:
st.error(f"error, подключение к историческим данным: {e} »)
return pd.dataframe ()
bars = ib.reqhistoricalData (
Contract,
endDateTime = '',
durationstr = durationstr,
barsizeSetting = barsizeSetting,
Whattoshow = Whattoshow,
userth = userth,
formatdate = 1
)
b.disconnect()
Если не бары:
st. st. st. st. st. st.стрея ( «Никаких исторических данных, возвращаемых из ib.»)
return pd.dataframe ()
data = []
для стержня в барах:
data.append( <
> "DateTime": pd.to_dateTime (bar.date),
"open": bar.open,
high ": bar.high,
" low ": bar.low, "close": bar.close,
"Том": bar.volume
})
df = pd.dataframe (data)
df.set_index("dateTime ", inplace = true)
return < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... rom-ib-api
Загрузка исторических данных, которые я добавляю в N -Python в реальном времени с IB API ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Загрузка исторических данных, которые я добавляю в N -Python в реальном времени с IB API
Anonymous » » в форуме Python - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-