Exemplo n.º 1
0
 def _format_property(self, **kwargs):
         start = 2
         step = int(self.property_block[0])
         count = int(self.property_block[1]) + 1
         tmp_property = {}
         if count == 1:
             logging.debug("no property")
         else:
             for col in range(count):
                 if col == 0:
                     continue
                 else:
                     start += step
                     for row in range(step):
                         if self.property_block[start + row] == '':
                             tmp_property[self.cur_property_list[row]] = 0
                         else:
                             tmp_property[self.cur_property_list[row]] = self.property_block[start + row]
                     self.property_info = tmp_property
                 property_info_list = []
                 # 新资金表
                 out_property = {}
                 out_property['fu_PL'] = self.property_info['pro_type']
                 out_property['fu_GetMoney'] = self.property_info['pro_avail']
                 out_property['fu_Market'] = self.property_info['pro_now']
                 out_property['fu_AvailableMoney'] = self.property_info['pro_use']
                 out_property['fu_Total'] = self.property_info['pro_total']
                 property_info_list.append(out_property)
                 print(property_info_list)
                 DbControler.insert_fund_table(property_info_list, self.user_id)
                 logging.debug("inserted fund table")
                 print("inserted fund table")
Exemplo n.º 2
0
def excecute_auto_trade(login_info):
    pattern_stock = re.compile(r'[[](.*?)[]]')
    stock_query = re.findall(pattern_stock, login_info['stockList'])
    stock_set = stock_query[0].split(',')
    stocks_info = DbControler.query_selected_stock(stock_set)
    content = []
    for stock_info in stocks_info:
        today = time.strftime("%Y-%m-%d")
        tmp_entrust = {
            'et_Date': today,
            'et_OperateDate': today,
            'et_OperateTime': '00:00:00',
            'et_StockCode': stock_info[1],
            'et_StockName': stock_info[2],
            'et_SignId': '1',
            'et_Money': '0',
            'et_Much': '0',
            'et_Number': '0',
            'et_DealMuch': '0',
            'et_DealMoney': '0',
            'et_DanMuch': '0',
            'et_Status': '1'
        }
        content.append(tmp_entrust)
    logging.debug(stock_set)
    DbControler.insert_entrust_table(content, login_info['userId'])
Exemplo n.º 3
0
 def _format_stock(self,**kwargs):
     start = 2
     step = int(self.stock_info_block[0])
     count = math.floor(len(self.stock_info_block) / step )
     for col in range(count):
         tmp_stock = {}
         if col == 0:
             continue
         else:
             start += step
             for row in range(step):
                 if self.stock_info_block[start+row] == '':
                     tmp_stock[self.cur_index_list[row]] = 0
                 else:
                     tmp_stock[self.cur_index_list[row]] = self.stock_info_block[start+row]
             self.stock_list.append(tmp_stock['sec_code'])
             self.all_stock_info[tmp_stock['sec_code']] = tmp_stock
     stock_info_list = []
     for code in self.stock_list:
         out_stock = {}
         out_stock['po_StockCode'] = self.all_stock_info[code]['sec_code']
         out_stock['po_StockName'] = self.all_stock_info[code]['sec_name'].encode('utf-8').decode('utf-8')
         out_stock['po_StockMuch'] = self.all_stock_info[code]['sec_amount']
         out_stock['po_Inventory'] = self.all_stock_info[code]['sec_amount']
         out_stock['po_SellMuch'] = self.all_stock_info[code]['sec_stock_amount']
         out_stock['po_CostMoney'] = self.all_stock_info[code]['sec_cur_rcc']
         out_stock['po_NowMoney'] = self.all_stock_info[code]['sec_cur_price']
         out_stock['po_Market'] = self.all_stock_info[code]['sec_cur_lmv']
         out_stock['po_PL'] = self.all_stock_info[code]['sec_ref_rpl']
         out_stock['po_PLRatio'] = self.all_stock_info[code]['sec_rpl_ratio']
         stock_info_list.append(out_stock)
     DbControler.insert_position_table(stock_info_list, self.user_id)
     print("inserted position table")
     logging.debug("inserted position table")
Exemplo n.º 4
0
 def _format_entrust(self, **kwargs):
     start = 2
     step = int(self.entrust_block[0])
     count = int(self.entrust_block[1]) + 1
     print(self.entrust_block)
     if count == 1:
         print("no entrust")
         logging.debug("no entrust")
     else:
         for col in range(count):
             tmp_entrust = {}
             if col == 0:
                 continue
             else:
                 start += step
                 for row in range(step):
                     #                         print(self.cur_entrust_list[row])
                     if self.entrust_block[start + row] == '':
                         tmp_entrust[self.cur_entrust_list[row]] = 'null'
                     else:
                         tmp_entrust[self.cur_entrust_list[
                             row]] = self.entrust_block[start + row]
                 self.entrust_list.append(tmp_entrust['en_number'])
                 self.all_entrust_info[
                     tmp_entrust['en_number']] = tmp_entrust
         entrust_info_list = []
         for entrust in self.entrust_list:
             out_entrust = {}
             out_entrust['et_Date'] = time.strftime("%Y-%m-%d")
             out_entrust['et_OperateDate'] = time.strftime("%Y-%m-%d")
             raw_time = self.all_entrust_info[entrust]['en_time']
             out_entrust['et_OperateTime'] = raw_time[:2] + ":" + raw_time[
                 2:4] + ":" + raw_time[4:]
             out_entrust['et_StockCode'] = self.all_entrust_info[entrust][
                 'en_code']
             out_entrust['et_StockName'] = self.all_entrust_info[entrust][
                 'en_name']
             out_entrust['et_SignId'] = self.all_entrust_info[entrust][
                 'en_side_1']
             out_entrust['et_Money'] = self.all_entrust_info[entrust][
                 'en_price']
             out_entrust['et_Much'] = self.all_entrust_info[entrust][
                 'en_amount']
             out_entrust['et_Number'] = self.all_entrust_info[entrust][
                 'en_number']
             out_entrust['et_DealMuch'] = '1'
             out_entrust['et_DealMoney'] = '1'
             out_entrust['et_DanMuch'] = '1'
             out_entrust['et_Status'] = '1'
             entrust_info_list.append(out_entrust)
         DbControler.insert_entrust_table(entrust_info_list, self.user_id)
         print("inserted entrust table")
         logging.debug("inserted entrust table")
Exemplo n.º 5
0
 def _format_deal_record(self, **kwargs):
     start = 2
     step = int(self.finish_book_block[0])
     count = int(self.finish_book_block[1]) + 1
     if count == 1:
         print("no trade")
         logging.debug("no trade")
     else:
         for col in range(count):
             tmp_finish_book = {}
             if col == 0:
                 continue
             else:
                 start += step
                 for row in range(step):
                     if self.finish_book_block[start + row] == '':
                         tmp_finish_book[self.cur_trade_list[row]] = 0
                     else:
                         tmp_finish_book[self.cur_trade_list[
                             row]] = self.finish_book_block[start + row]
                 self.deal_list.append(tmp_finish_book['tr_code'])
                 self.all_deal_info[
                     tmp_finish_book['tr_code']] = tmp_finish_book
             deal_info_list = []
             for record in self.deal_list:
                 out_deal = {}
                 out_deal['dr_Date'] = time.strftime("%Y-%m-%d")
                 raw_time = self.all_deal_info[record]['tr_time']
                 out_deal['dr_Time'] = raw_time[:2] + ":" + raw_time[
                     2:4] + ":" + raw_time[4:]
                 out_deal['dr_StockCode'] = self.all_deal_info[record][
                     'tr_code']
                 out_deal['dr_StockName'] = self.all_deal_info[record][
                     'tr_name']
                 out_deal['dr_SignId'] = self.all_deal_info[record][
                     'tr_side']
                 out_deal['dr_EntrustMoney'] = self.all_deal_info[record][
                     'tr_price']
                 out_deal['dr_EntrustMuch'] = self.all_deal_info[record][
                     'tr_amount']
                 out_deal['dr_EntrustNumber'] = self.all_deal_info[record][
                     'tr_en_code']
                 out_deal['dr_DealMoney'] = self.all_deal_info[record][
                     'tr_cost']
                 out_deal['dr_DealMuch'] = self.all_deal_info[record][
                     'tr_amount']
                 out_deal['dr_SumMoney'] = self.all_deal_info[record][
                     'tr_cost']
                 deal_info_list.append(out_deal)
             DbControler.insert_dealrecord_table(deal_info_list,
                                                 self.user_id)
             logging.debug("inserted recordlist table")
             print("inserted recordlist table")
Exemplo n.º 6
0
    def _format_stock(self, **kwargs):
        start = 2
        step = int(self.stock_info_block[0])
        count = int(self.stock_info_block[1]) + 1

        if count == 1:
            logging.debug("no hold stock")
        else:
            for col in range(count):
                tmp_stock = {}
                if col == 0:
                    continue
                else:
                    start += step
                    for row in range(step):
                        if self.stock_info_block[start + row] == '':
                            tmp_stock[self.cur_index_list[row]] = 0
                        else:
                            tmp_stock[self.cur_index_list[
                                row]] = self.stock_info_block[start + row]
    #                 Control.post_single_position(self.sec_hold_user,out_str)
                    self.stock_list.append(tmp_stock['sec_code'])
                    self.all_stock_info[tmp_stock['sec_code']] = tmp_stock
            stock_info_list = []
            for code in self.stock_list:
                out_stock = {}
                out_stock['po_StockCode'] = self.all_stock_info[code][
                    'sec_code']
                out_stock['po_StockName'] = self.all_stock_info[code][
                    'sec_name'].encode('utf-8').decode('utf-8')
                out_stock['po_StockMuch'] = self.all_stock_info[code][
                    'sec_amount']
                out_stock['po_Inventory'] = self.all_stock_info[code][
                    'sec_amount']
                out_stock['po_SellMuch'] = self.all_stock_info[code][
                    'sec_trade_amount']
                out_stock['po_CostMoney'] = self.all_stock_info[code][
                    'sec_cost_price']
                out_stock['po_NowMoney'] = self.all_stock_info[code][
                    'sec_cur_price']
                out_stock['po_Market'] = self.all_stock_info[code][
                    'sec_latest_market_val']
                out_stock['po_PL'] = self.all_stock_info[code]['sec_cfpl']
                out_stock['po_PLRatio'] = self.all_stock_info[code]['sec_plr']
                stock_info_list.append(out_stock)
            DbControler.insert_position_table(stock_info_list, self.user_id)
            print("inserted position table")
            logging.debug("inserted position table")
Exemplo n.º 7
0
    def _format_property(self, **kwargs):
        start = 2
        step = int(self.property_block[0])
        count = int(self.property_block[1]) + 1
        tmp_property = {}
        if count == 1:
            logging.debug("no property")
        else:
            for col in range(count):
                if col == 0:
                    continue
                else:
                    start += step
                    for row in range(step):
                        if self.property_block[start + row] == '':
                            tmp_property[self.cur_property_list[row]] = 0
                        else:
                            tmp_property[self.cur_property_list[
                                row]] = self.property_block[start + row]
                    self.property_info = tmp_property
                property_info_list = []
                out_property = {}
                # 恒泰证券资金信息没有反馈盈亏比例
                out_property['fu_PL'] = self.property_info['pro_type']
                out_property['fu_GetMoney'] = self.property_info['pro_avail']
                out_property['fu_Market'] = self.property_info['pro_now']
                out_property['fu_AvailableMoney'] = self.property_info[
                    'pro_use']
                out_property['fu_Total'] = self.property_info['pro_total']
                # out_property['af_Name'] = self.sec_hold_user
                # out_property['af_Type_Id'] = '3'#self.property_info['pro_type']
                # out_property['af_Interests'] = self.property_info['pro_now']
                # out_property['af_AvailableMoney'] = self.property_info['pro_use']
                # out_property['af_Position'] = self.property_info['pro_freezed']
                # out_property['af_PL'] = '0'

                property_info_list.append(out_property)
                DbControler.insert_fund_table(property_info_list, self.user_id)
                logging.debug("inserted accountfunds table")
                print("inserted accountfunds table")
Exemplo n.º 8
0
def quit_auto_trade(login_info):
    today = time.strftime("%Y-%m-%d")
    DbControler.delete_content_by_date("entrust", "et_UserId", "et_Date",
                                       today, login_info['userId'])
Exemplo n.º 9
0
 def _format_stock(self,**kwargs):
     start = 2 
     step = int(self.stock_info_block[0])
     count = math.floor(len(self.stock_info_block) / step )
     tmp_stock = {}
     for col in range(count):
         if col == 0:
             continue
         else:
             start += step
             for row in range(step):
                 if self.stock_info_block[start+row] == '':
                     tmp_stock[self.cur_index_list[row]] = 0
                 else:
                     tmp_stock[self.cur_index_list[row]] = self.stock_info_block[start+row]
             self.stock_list.append(tmp_stock['sec_code'])
             self.all_stock_info[tmp_stock['sec_code']] = tmp_stock
     #查询原有持仓
     old_position = DbControler.query_user_position(self.user_id)
     if old_position:
         new_position = list(set(self.stock_list).difference(set(old_position)))
         same_position = list(set(self.stock_list).intersection(set(old_position)))
         #更新旧的持仓
         delete_position = list(set(old_position).difference(self.stock_list))
         if delete_position:
             DbControler.delete_old_position(self.user_id,delete_position)
         if new_position:
              #更新新的持仓(插入新的词条)
             new_stock_info_list = []
             for code in new_position:
                 out_stock = {}
                 out_stock['po_StockCode'] = self.all_stock_info[code]['sec_code']
                 out_stock['po_StockName'] = self.all_stock_info[code]['sec_name'].encode('utf-8').decode('utf-8')
                 out_stock['po_StockMuch'] = self.all_stock_info[code]['sec_amount']
                 out_stock['po_Inventory'] = self.all_stock_info[code]['sec_amount']
                 out_stock['po_SellMuch'] = self.all_stock_info[code]['sec_trade_amount']
                 out_stock['po_CostMoney'] = self.all_stock_info[code]['sec_cur_rcc']
                 out_stock['po_NowMoney'] = self.all_stock_info[code]['sec_cur_price']
                 out_stock['po_Market'] = self.all_stock_info[code]['sec_cur_lmv']
                 out_stock['po_PL'] = self.all_stock_info[code]['sec_rpl']
                 out_stock['po_PLRatio'] = self.all_stock_info[code]['sec_rpl_ratio']
                 new_stock_info_list.append(out_stock)
             
             #执行数据库操作
             #加入新的持仓
             DbControler.insert_position_table(new_stock_info_list, self.user_id)
         if same_position:
             modified_stock_info_list = []
             for code in same_position:
                 out_stock = {}
                 out_stock['po_StockCode'] = self.all_stock_info[code]['sec_code']
                 out_stock['po_StockName'] = self.all_stock_info[code]['sec_name'].encode('utf-8').decode('utf-8')
                 out_stock['po_StockMuch'] = self.all_stock_info[code]['sec_amount']
                 out_stock['po_Inventory'] = self.all_stock_info[code]['sec_amount']
                 out_stock['po_SellMuch'] = self.all_stock_info[code]['sec_trade_amount']
                 out_stock['po_CostMoney'] = self.all_stock_info[code]['sec_cur_rcc']
                 out_stock['po_NowMoney'] = self.all_stock_info[code]['sec_cur_price']
                 out_stock['po_Market'] = self.all_stock_info[code]['sec_cur_lmv']
                 out_stock['po_PL'] = self.all_stock_info[code]['sec_rpl']
                 out_stock['po_PLRatio'] = self.all_stock_info[code]['sec_rpl_ratio']
                 modified_stock_info_list.append(out_stock)           
             #修改原有持仓
             DbControler.update_position_table(modified_stock_info_list, self.user_id)
         #删除相应的旧持仓
     else:
         stock_info_list = [] 
         for code in self.stock_list:
             out_stock = {}
             out_stock['po_StockCode'] = self.all_stock_info[code]['sec_code']
             out_stock['po_StockName'] = self.all_stock_info[code]['sec_name'].encode('utf-8').decode('utf-8')
             out_stock['po_StockMuch'] = self.all_stock_info[code]['sec_amount']
             out_stock['po_Inventory'] = self.all_stock_info[code]['sec_amount']
             out_stock['po_SellMuch'] = self.all_stock_info[code]['sec_trade_amount']
             out_stock['po_CostMoney'] = self.all_stock_info[code]['sec_cur_rcc']
             out_stock['po_NowMoney'] = self.all_stock_info[code]['sec_cur_price']
             out_stock['po_Market'] = self.all_stock_info[code]['sec_cur_lmv']
             out_stock['po_PL'] = self.all_stock_info[code]['sec_rpl']
             out_stock['po_PLRatio'] = self.all_stock_info[code]['sec_rpl_ratio']
             stock_info_list.append(out_stock)
         DbControler.insert_position_table(stock_info_list,self.user_id)        
     
     print("updated position table")
     logging.debug("updated position table")