class Forceorder(): def __init__(self): self.ev = EventEngine() self.ev.start() self.broke = BinanceFutures(self.ev) self.broke.start("btcusdt", [FORCEORDER]) self.ev.register(FORCEORDER, self.callback) def callback(self, event): """ {'e': 'forceOrder', 'E': 1594107015086, 'o': {'s': 'BTCUSDT', 'S': 'SELL', 'o': 'LIMIT', 'f': 'IOC', 'q': '1.300', 'p': '9206.39', 'ap': '9242.01', 'X': 'FILLED', 'l': '1.084', 'z': '1.300', 'T': 1594107015081}} :param event: :return: """ e = event.data try: data = e["o"] db.insert_one("forceorder", data) except Exception as e: log.debug(e)
class BaseEngine(): def __init__(self): self.event=EventEngine() self.strategy=None def run(self): self.register_event() def register_event(self): """""" self.event.register(EventType.TICKER, self.process_ticket_event) self.event.register(EventType.ORDER, self.process_order_event) self.event.register(EventType.TRADE, self.process_trade_event) self.event.register(EventType.POSITION, self.process_position_event) def process_bar_event(self, event): strategy = self.strategy call_strategy_func(strategy, strategy.on_bar, event) def process_ticket_event(self,event): strategy = self.strategy call_strategy_func(strategy, strategy.on_ticket, event) def process_order_event(self, event): strategy = self.strategy call_strategy_func(strategy, strategy.on_order, event) def process_trade_event(self, event): strategy = self.strategy call_strategy_func(strategy, strategy.on_trade, event) def process_position_event(self,event): strategy=self.strategy call_strategy_func(strategy,strategy.on_position,event)
def test_subscribe(): ev = EventEngine() ev.start() b = Bitmax(ev) b.start("btcusdt", [FORCEORDER]) ev.register(FORCEORDER, on_sub)