Пример #1
0
def get_live_interval_bars(ticker: str, bar_len: int, seconds: int):
    """Get real-time interval bars"""
    bar_conn = iq.BarConn(name='pyiqfeed-Example-interval-bars')
    bar_listener = iq.VerboseBarListener("Bar Listener")
    bar_conn.add_listener(bar_listener)

    with iq.ConnConnector([bar_conn]) as connector:
        bar_conn.watch(symbol=ticker, interval_len=bar_len,
                       interval_type='s', update=1, lookback_bars=10)
        time.sleep(seconds)
Пример #2
0
 def _start_listening(self):
     conn = iq.BarConn(name="{} - live, {} minutes interval".format(
         self.ticker, self.bars_interval))
     conn.add_listener(self)
     with iq.ConnConnector([conn]) as connector:
         conn.watch(symbol=self.ticker,
                    interval_len=self.bars_interval,
                    interval_type=Instrument.INTERVAL_TYPE,
                    update=self.bars_interval,
                    lookback_bars=self.bars_to_load)
         while True:
             time.sleep(5)
Пример #3
0
    def run_forever(self, timeframe):
        """Start listening to IQFeed bars for the specified time frame."""
        bar_conn = iq.BarConn(name="IQFeed Bar Conn %s" %
                              bt.TimeFrame.getname(timeframe))
        bar_listener = IQFeedBarListener(
            "IQFeed Bar listener %s" % bt.TimeFrame.getname(timeframe),
            self.queues[timeframe])
        bar_conn.add_listener(bar_listener)

        watched = []
        with iq.ConnConnector([bar_conn]) as connector:
            while not self.stopped:
                for data in self.datas:
                    if data.p.timeframe == timeframe and id(
                            data) not in watched:
                        interval_type = 't' if data.p.timeframe == bt.TimeFrame.Ticks else 's'
                        interval_len = {
                            bt.TimeFrame.Ticks: 1,
                            bt.TimeFrame.Seconds: 1,
                            bt.TimeFrame.Minutes: 60
                        }.get(data.p.timeframe)
                        bar_conn.watch(symbol=data.p.dataname,
                                       interval_len=interval_len *
                                       data.p.compression,
                                       interval_type=interval_type,
                                       bgn_bars=None,
                                       lookback_days=1,
                                       lookback_bars=None,
                                       update=0)
                        watched.append(id(data))
                time.sleep(0.1)

        for data in self.datas:
            if data.p.timeframe == timeframe:
                quote_conn.unwatch(data.p.dataname)

        bar_conn.remove_listener(bar_listener)
Пример #4
0
    'USDJPY.FXCM',
]


def callback(bar_data: np.array):
    print(bar_data['datetime'][0])
    full_name = bar_data['symbol'][0]
    label_name = full_name.split('.')[0] + '_PRICE'
    text_field = getattr(ui, label_name)
    text_field.setText(str(bar_data['close_p'][0]))


if __name__ == "__main__":

    # init listener
    bar_conn = iq.BarConn(name='test live interval bars')
    bar_listener = QuoteListener('customized bar listener', callback)
    bar_conn.add_listener(bar_listener)
    with iq.ConnConnector([bar_conn]) as conn:
        for ticker in tickers:
            print('watching {}'.format(ticker))
            bar_conn.watch(symbol=ticker,
                           interval_len=1 * 60,
                           interval_type='s',
                           update=1,
                           lookback_bars=205)
            bar_conn.watch(symbol=ticker,
                           interval_len=5 * 60,
                           interval_type='s',
                           update=1,
                           lookback_bars=205)