def _trading(self, stkcode, price, count, amount, tradeflag, tradetype):
        txtdata = self.s.get(
            vs.TRADE_CHECK_URL %
            (vs.P_TYPE['https'], vs.DOMAINS['csc'], vs.PAGES['tradecheck'],
             tradeflag, stkcode, tradetype, utils.nowtime_str()))
        jsonobj = utils.get_jdata(txtdata)
        list = jsonobj['returnList'][0]
        secuid = list['buysSecuid']
        fundavl = list['fundavl']
        stkname = list['stkname']
        if secuid is not None:
            if tradeflag == 'B':
                buytype = vs.BUY
                count = count if count else amount // price // 100 * 100
            else:
                buytype = vs.SELL
                count = count if count else amount // price

            tradeparams = dict(stkname=stkname,
                               stkcode=stkcode,
                               secuid=secuid,
                               buytype=buytype,
                               bsflag=tradeflag,
                               maxstkqty='',
                               buycount=count,
                               buyprice=price,
                               _=utils.nowtime_str())
            tradeResult = self.s.post(
                vs.TRADE_URL %
                (vs.P_TYPE['https'], vs.DOMAINS['csc'], vs.PAGES['trade']),
                params=tradeparams)
            return tradeResult
        return None
 def entrust_list(self):
     """
    获取委托单列表
    return:DataFrame
    ----------
    ordersno:委托单号
    stkcode:证券代码
    stkname:证券名称
    bsflagState:买卖标志
    orderqty:委托数量
    matchqty:成交数量
    orderprice:委托价格
    operdate:交易日期
    opertime:交易时间
    orderdate:下单日期
    state:状态
     """
     txtdata = self.s.get(vs.ENTRUST_LIST_URL %
                          (vs.P_TYPE['https'], vs.DOMAINS['csc'],
                           vs.PAGES['entrustlist'], utils.nowtime_str()))
     jsonobj = utils.get_jdata(txtdata)
     df = pd.DataFrame(jsonobj['data'], columns=vs.ENTRUST_LIST_COLS)
     df.columns = [
         '委托单号', '证券代码', '证券名称', '买卖标志', '委托数量', '成交数量', '委托价格', '交易日期',
         '交易时间', '下单日期', '状态'
     ]
     return df
 def deal_list(self, begin=None, end=None):
     """
 获取成交列表
     params
     -----------
     begin:开始日期  YYYYMMDD
     end:结束日期  YYYYMMDD
     
     return: DataFrame
     -----------
     ordersno:委托单号
     matchcode:成交编号
     trddate:交易日期
     matchtime:交易时间
     stkcode:证券代码
     stkname:证券名称
     bsflagState:买卖标志
     orderprice:委托价格
     matchprice:成交价格
     orderqty:委托数量
     matchqty:成交数量
     matchamt:成交金额
     """
     daterange = ''
     if (begin is None) & (end is None):
         selecttype = 'intraDay'
     else:
         daterange = vs.DEAL_DATE_RANGE % (begin, end)
         selecttype = 'all'
     txtdata = self.s.get(
         vs.DEAL_LIST_URL %
         (vs.P_TYPE['https'], vs.DOMAINS['csc'], vs.PAGES['deallist'],
          selecttype, daterange, utils.nowtime_str()))
     jsonobj = utils.get_jdata(txtdata)
     df = pd.DataFrame(jsonobj['data'], columns=vs.DEAL_LIST_COLS)
     df.columns = [
         '委托单号', '成交编号', '交易日期', '交易时间', '证券代码', '证券名称', '买卖标志', '委托价格',
         '成交价格', '委托数量', '成交数量', '成交金额'
     ]
     return df
 def cancel(self, ordersno='', orderdate=''):
     """
              撤单
     params
     -----------
     ordersno:委托单号,多个以逗号分隔,e.g. 1866,1867
     orderdata:委托日期 YYYYMMDD,多个以逗号分隔,对应委托单好
     return
     ------------
     string
     """
     if (ordersno != '') & (orderdate != ''):
         params = dict(ordersno=ordersno,
                       orderdate=orderdate,
                       _=utils.nowtime_str())
         result = self.s.post(
             vs.CANCEL_URL %
             (vs.P_TYPE['https'], vs.DOMAINS['csc'], vs.PAGES['cancel']),
             params=params)
         # jsonobj = utils.get_jdata(result.text)
         return result.text  # jsonobj['msgMap']['ResultSucess']
     return None