Example #1
0
 def buy(self, direction, price, quantity, price_type='LMT', contract=None):
     """ 开仓。
     
        :param str/int direction: 下单方向。多头 - 'long' / 1 ;空头 - 'short'  / 2
        :param float price: 价格。
        :param int quantity: 数量。
        :param str/int price_type: 下单价格类型。限价单 - 'lmt' / 1;市价单 - 'mkt' / 2
     """
     contract = None
     con = Contract(contract) if contract else self._main_contract
     self._orders.append(
         Order(self.datetime, con,
               PriceType.arg_to_type(price_type), TradeSide.KAI,
               Direction.arg_to_type(direction), float(price), quantity))
Example #2
0
 def sell(self, direction, price, quantity, price_type='MKT', contract=None):
     """ 平仓。
     
        :param str/int direction: 下单方向。多头 - 'long' / 1 ;空头 - 'short'  / 2
        :param float price: 价格。
        :param int quantity: 数量。
        :param str/int price_type: 下单价格类型。限价单 - 'lmt' / 1;市价单 - 'mkt' / 2
     """
     con = Contract(contract) if contract else self._main_contract
     self._orders.append(Order(
             self.datetime,
             con,
             PriceType.arg_to_type(price_type),
             TradeSide.PING,
             Direction.arg_to_type(direction),
             float(price),
             quantity
     ))
Example #3
0
if __name__ == '__main__':
    try:
        begin_dt, end_dt = None, None
        pcon = pcontract('IF000.SHFE', '10.Minute')
        #pcon = stock('600848')  # 通过tushare下载股票数据
        simulator = ExecuteUnit([pcon, pcon], begin_dt, end_dt)
        algo = DemoStrategy(simulator)
        algo = DemoStrategy(simulator)
        #algo2 = DemoStrategy(simulator)
        simulator.run()

        for deal in algo.blotter.deal_positions:
            # code...
            print "----------------" 
            print("开仓时间: %s;成交价格: %f;买卖方向: %s;成交量: %d;") % \
                (deal.open_datetime, deal.open_price, Direction.type_to_str(deal.direction), deal.quantity)
            print("平仓时间: %s;成交价格: %f;买卖方向: %s;成交量: %d;盈亏: %f;") % \
                (deal.close_datetime, deal.close_price, Direction.type_to_str(deal.direction), deal.quantity, deal.profit())

        # 显示回测结果
        plotting.plot_result(simulator.data[pcon],
                                    algo._indicators,
                                    algo.blotter.deal_positions,
                                    algo.blotter)

        #plotting.plot_result(simulator.data[pcon],
                    #algo2._indicators,
                    #algo2.blotter.deal_positions,
                    #algo2.blotter)
        
    except Exception, e: