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")
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'])
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")
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")
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")
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")
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")
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'])
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")