Skip to content

Commit

Permalink
[Add] stop algo by double click monitor cells
Browse files Browse the repository at this point in the history
  • Loading branch information
vnpy committed Sep 15, 2019
1 parent b4081eb commit d4cab7b
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 6 deletions.
5 changes: 3 additions & 2 deletions vnpy/app/spread_trading/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,8 @@ def register_event(self):
self.event_engine.register(EVENT_ORDER, self.process_order_event)
self.event_engine.register(EVENT_TRADE, self.process_trade_event)
self.event_engine.register(EVENT_TIMER, self.process_timer_event)
self.event_engine.register(EVENT_SPREAD_DATA, self.process_spread_event)
self.event_engine.register(
EVENT_SPREAD_DATA, self.process_spread_event)

def process_spread_event(self, event: Event):
""""""
Expand Down Expand Up @@ -311,7 +312,7 @@ def process_trade_event(self, event: Event):

def process_timer_event(self, event: Event):
""""""
buf = self.algos.values()
buf = list(self.algos.values())

for algo in buf:
if not algo.is_active():
Expand Down
4 changes: 2 additions & 2 deletions vnpy/app/spread_trading/template.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ def stop(self):
if self.is_active():
self.cancel_all_order()
self.status = Status.CANCELLED
self.put_algo_event()
self.put_event()

def update_tick(self, tick: TickData):
""""""
Expand Down Expand Up @@ -138,7 +138,7 @@ def update_timer(self):

def put_event(self):
""""""
self.algo_engine.put_event(self)
self.algo_engine.put_algo_event(self)

def write_log(self, msg: str):
""""""
Expand Down
25 changes: 23 additions & 2 deletions vnpy/app/spread_trading/ui/widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@ def init_ui(self):
self.event_engine
)
self.algo_monitor = SpreadAlgoMonitor(
self.main_engine,
self.event_engine
self.spread_engine
)

add_spread_button = QtWidgets.QPushButton("创建价差")
Expand Down Expand Up @@ -164,6 +163,28 @@ class SpreadAlgoMonitor(BaseMonitor):
"status": {"display": "状态", "cell": EnumCell, "update": True},
}

def __init__(self, spread_engine: SpreadEngine):
""""""
super().__init__(spread_engine.main_engine, spread_engine.event_engine)

self.spread_engine = spread_engine

def init_ui(self):
"""
Connect signal.
"""
super().init_ui()

self.setToolTip("双击单元格停止算法")
self.itemDoubleClicked.connect(self.stop_algo)

def stop_algo(self, cell):
"""
Stop algo if cell double clicked.
"""
algo = cell.get_data()
self.spread_engine.stop_algo(algo.algoid)


class SpreadAlgoDialog(QtWidgets.QDialog):
""""""
Expand Down

0 comments on commit d4cab7b

Please sign in to comment.