Beispiel #1
0
 async def get_cont_fute(
     self,
     symbol: str,
     exchange: str,
 ) -> Contract:
     """Get an unqualifed contract for the current "continous" future.
     """
     contcon = ibis.ContFuture(symbol, exchange=exchange)
     frontcon = (await self.ib.qualifyContractsAsync(contcon))[0]
     return ibis.Future(conId=frontcon.conId)
def _futuresContract(future: Future) -> IB.Contract:
    lastTradeDate = future.expiration.strftime("%Y%m%d")

    return IB.Future(
        symbol=future.symbol,
        exchange=future.exchange or "",
        currency=future.currency.name,
        multiplier=str(future.multiplier),
        lastTradeDateOrContractMonth=lastTradeDate,
    )
Beispiel #3
0
import ib_insync
import datetime

ib = ib_insync.IB()
ib.connect()

futures = [ ib_insync.Future("ES", "CFE", localSymbol=s) for s in ["ESU8","ESZ8"]]
last_lengths = {}

def onBarUpdate(bars, hasNewBar):
    if hasNewBar:
        print("New bar for", bars.contract.localSymbol)

ib.qualifyContracts(*futures)
for f in futures:
    print(f)
    if 0:
        bars = ib.reqHistoricalData(
            f,
            endDateTime='',
            durationStr='900 S',
            barSizeSetting='5 secs',
            whatToShow='bid',
            useRTH=True,
            formatDate=1,
            keepUpToDate=True)
    bars = ib.reqRealTimeBars(f, 5, "TRADES", False)
    last_lengths[f.localSymbol] = 0

ib.barUpdateEvent += onBarUpdate