cancel_strategy/s_l_h_cancel_strategy.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
huaxin_client/huaxin_sinfo_util.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
servers/data_server.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/auto_add_want_buy_strategy.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
cancel_strategy/s_l_h_cancel_strategy.py
@@ -1747,15 +1747,15 @@ rate = round(canceled_num / total_num, 3) # 除开最大单的影响权重 if not must_buy: temp_thresh_hold_rate = round((total_num - max_num * max_num_count) * 0.8 / total_num, 2) if thresh_hold_rate > temp_thresh_hold_rate: if cancel_rate_info and cancel_rate_info[1] > 0: pass else: # 没有人为设置 # 目标撤单比例大于大单撤单比例就取比例均值 thresh_hold_rate = round((thresh_hold_rate + temp_thresh_hold_rate) / 2, 2) # if not must_buy: # temp_thresh_hold_rate = round((total_num - max_num * max_num_count) * 0.8 / total_num, 2) # if thresh_hold_rate > temp_thresh_hold_rate: # if cancel_rate_info and cancel_rate_info[1] > 0: # pass # else: # # 没有人为设置 # # 目标撤单比例大于大单撤单比例就取比例均值 # thresh_hold_rate = round((thresh_hold_rate + temp_thresh_hold_rate) / 2, 2) real_place_order_info = self.__real_place_order_index_dict.get(code) is_default_place_order_index = real_place_order_info[1] if real_place_order_info else False huaxin_client/huaxin_sinfo_util.py
@@ -22,7 +22,7 @@ @return: """ params = sinfo.split("_") if len(params) != 5: if len(params) < 5: return False return True servers/data_server.py
@@ -11,6 +11,7 @@ import constant import inited_data from api import low_suction_data_pusher from code_attribute.code_l1_data_manager import L1DataManager from code_attribute.gpcode_manager import BlackListCodeManager, HumanRemoveForbiddenManager, CodePrePriceManager from l2.code_price_manager import CurrentPriceManager from l2.huaxin import huaxin_target_codes_manager @@ -1116,17 +1117,22 @@ data.append(limit_up_time) pre_close_price = CodePrePriceManager().get_price_pre_cache(code) latest_transaction_data = HuaXinTransactionDatasProcessor.get_latest_transaction_data(code) # 获取L1数据 price = L1DataManager.get_l1_current_price(code) if price: data.append(round((price - pre_close_price) * 100 / pre_close_price, 2)) else: data.append("--") zylt_volume = global_util.zylt_volume_map.get(code) zyltgb = zylt_volume * limit_up_price if latest_transaction_data: data.append(round((latest_transaction_data[1] - pre_close_price) * 100 / pre_close_price, 2)) data.append((latest_transaction_data[2]//100, latest_transaction_data[6] - latest_transaction_data[7])) data.append(output_util.money_desc(zyltgb) if zyltgb else '--') data.append(latest_transaction_data[1]) else: data.append("--") data.append(("--", 0)) data.append(output_util.money_desc(zyltgb) if zyltgb else '--') data.append(output_util.money_desc(zyltgb) if zyltgb else '--') if price: data.append(price) else: data.append("--") fdatas.append(data) fdatas.sort(key=lambda x: x[2] if x[2] else time.time()) trade/auto_add_want_buy_strategy.py
@@ -42,43 +42,49 @@ latest_trading_date = dates[0] for code in codes: limit_up_price = gpcode_manager.get_limit_up_price_as_num(code) # 只加首板 if limit_up_price < 3 or limit_up_price > 100: continue if code in yesterday_codes: continue if l2_trade_util.is_in_forbidden_trade_codes(code): continue if gpcode_manager.WantBuyCodesManager().is_in_cache(code): continue limit_up_timestamp = LimitUpDataConstant.get_first_limit_up_time(code) if not limit_up_timestamp: continue limit_up_time = tool.to_time_str(limit_up_timestamp) if limit_up_time <= '09:30:00': continue zylt_volume = global_util.zylt_volume_map.get(code) if not zylt_volume or zylt_volume * limit_up_price < 10e8: continue volumes_data = HistoryKDataManager().get_history_bars(code, latest_trading_date) if not volumes_data: continue # 6个交易日内股价长得太高 if code_nature_analyse.is_price_too_high_in_days(code, volumes_data, limit_up_price)[0]: continue days_count = 15 volumes_data = volumes_data[:days_count] max_price = max(volumes_data, key=lambda x: x['high'])['high'] if max_price > limit_up_price: # 非15日突破 continue volumes = init_data_util.parse_max_volume_new(code, volumes_data) max_volume, max_volume_day = init_data_util.parse_max_volume_in_days(volumes_data, days_count) # 最大量,今日量 today_volume = CodeVolumeManager().get_today_volumn_cache(code) if today_volume / max_volume < 0.3: continue logger_debug.info("自动加想") gpcode_manager.WantBuyCodesManager().add_code(code) trade_record_log_util.add_want_buy(code, "自动加") try: if not tool.is_can_buy_code(code): continue limit_up_price = gpcode_manager.get_limit_up_price_as_num(code) # 只加首板 if limit_up_price < 3 or limit_up_price > 100: continue if code in yesterday_codes: continue if l2_trade_util.is_in_forbidden_trade_codes(code): continue if gpcode_manager.WantBuyCodesManager().is_in_cache(code): continue limit_up_timestamp = LimitUpDataConstant.get_first_limit_up_time(code) if not limit_up_timestamp: continue limit_up_time = tool.to_time_str(limit_up_timestamp) if limit_up_time <= '09:30:00': continue zylt_volume = global_util.zylt_volume_map.get(code) if not zylt_volume or zylt_volume * limit_up_price < 10e8: continue volumes_data = HistoryKDataManager().get_history_bars(code, latest_trading_date) if not volumes_data: continue # 6个交易日内股价长得太高 if code_nature_analyse.is_price_too_high_in_days(code, volumes_data, limit_up_price)[0]: continue days_count = 15 volumes_data = volumes_data[:days_count] max_price = max(volumes_data, key=lambda x: x['high'])['high'] if max_price > limit_up_price: # 非15日突破 continue volumes = init_data_util.parse_max_volume_new(code, volumes_data) max_volume, max_volume_day = init_data_util.parse_max_volume_in_days(volumes_data, days_count) # 最大量,今日量 today_volume = CodeVolumeManager().get_today_volumn_cache(code) if today_volume / max_volume < 0.3: continue logger_debug.info("自动加想") gpcode_manager.WantBuyCodesManager().add_code(code) trade_record_log_util.add_want_buy(code, "自动加") except Exception as e: logger_debug.exception(e) logger_debug.error(f"代码:{code}")