def do_quant(stock_code, interval=5): def tencent_runner_cb(trade): BlockTradingStrategy().handle_strategy(trade) runner = TencentRunner(stock_code, interval, tencent_runner_cb) def signal_handler(signum, frame): print 'Catch Crtl+C signal. System exit.' runner.stop() runner.setDaemon(True) runner.start() runner.join()
class QuantRunner(object): def __init__(self, stock_code, interval=5): self.stock_code = stock_code self.interval = interval self.tencent_runner = TencentRunner(stock_code, interval, self.tencent_runner_cb) def do_quant(self): if self.tencent_runner.isAlive(): raise RuntimeError("TencentRunner is running") self.tencent_runner.setDaemon(True) self.tencent_runner.start() self.tencent_runner.join() @classmethod def tencent_runner_cb(cls, trade): BlockTradingStrategy().handle_strategy(trade) def signal_handler(self, signum, frame): print 'Catch Crtl+C signal. System exit.' self.tencent_runner.stop()
def __init__(self, stock_code, interval=5): self.stock_code = stock_code self.interval = interval self.tencent_runner = TencentRunner(stock_code, interval, self.tencent_runner_cb)
def test_run(self): runner = TencentRunner('sz002177', 5, tencent_runner_callback) runner.start()