def test_order_trade_task(): from jaqs.data.basic import TradeStat, Trade, Task, TaskInd, Order, OrderStatusInd order = Order() order.symbol = 'SPY' order.task_id = 10000001 order.entrust_no = '123' order.entrust_size = 10 order.entrust_action = 'Short' order.entrust_price = 1.2 order.entrust_time = 95055 order.entrust_date = 20171201 order.fill_price = 1.19 order.fill_size = 3 order.commission = 0.001 str(order) o2 = Order(order) o2.entrust_no = '124' o3 = Order.new_order('SPY', 'Buy', 10, 10, 20111111, 143029, 'Limit') oind = OrderStatusInd(order) OrderStatusInd.create_from_dict({'symbol': 'SPY'}) str(oind) task = Task(order.task_id, 'vwap', {'a': 'b'}, order, 'place_order', order.entrust_date) assert (not task.is_finished) task.task_status = common.TASK_STATUS.DONE assert task.is_finished tind = TaskInd(task.task_id, task.task_status, task.algo, 'success') str(tind) tind2 = TaskInd.create_from_dict({'task_id': 2011223}) trade = Trade(order) trade.set_fill_info(15, 20, 20171202, 112311, 12345) str(trade) t2 = Trade.create_from_dict({'symbol': 'SPY'}) tstat = TradeStat() str(tstat)
def on_task_status(self, ind_dic): # print("\nGateway on task ind: ") # print(ind_dic) ind = TaskInd.create_from_dict(ind_dic) ind.task_no = self._task_no_id_map[ind.task_id] e = Event(EVENT_TYPE.TASK_STATUS_IND) e.dic['ind'] = ind self.ctx.instance.put(e)
def match_and_callback(self, quote, freq): results = self._process_quote(quote, freq) for trade_ind, order_status_ind in results: self._add_commission(trade_ind) # self._add_task_id(trade_ind) # self._add_task_id(order_status_ind) task_id = self.entrust_no_task_id_map[trade_ind.entrust_no] self._order_status_callback(order_status_ind) self._trade_callback(trade_ind) task = self.ctx.pm.get_task(task_id) if task.is_finished: task_ind = TaskInd(task_id, task_status=task.task_status, task_algo='', task_msg="") self._task_status_callback(task_ind)
def match_and_callback(self, price_dict): results = self._simulator.match(price_dict, date=self.ctx.trade_date, time=self.MATCH_TIME) for trade_ind, order_status_ind in results: self._add_commission(trade_ind) task_id = self.entrust_no_task_id_map[trade_ind.entrust_no] self._add_task_id(trade_ind) self._add_task_id(order_status_ind) self._order_status_callback(order_status_ind) self._trade_callback(trade_ind) task = self.ctx.pm.get_task(task_id) if task.is_finished: task_ind = TaskInd(task_id, task_status=task.task_status, task_algo='', task_msg="") self._task_status_callback(task_ind) return results
def on_task_status(self, ind_dic): # print("\nGateway on task ind: ") # print(ind_dic) ind = TaskInd.create_from_dict(ind_dic) self.ctx.strategy.on_task_status(ind)