| | |
| | | |
| | | def load_kpl_blocks(date=tool.get_now_date_str()): |
| | | fdatas = {} |
| | | path = f"{constant.LOG_DIR}/gp/kpl/kpl_blocks.{date}.log" |
| | | path = f"{constant.get_path_prefix()}/{constant.LOG_DIR}/gp/kpl/kpl_blocks.{date}.log" |
| | | with open(path, 'r', encoding='utf-8') as file: |
| | | lines = file.readlines() |
| | | for line in lines: |
| | |
| | | return fdatas |
| | | |
| | | |
| | | def load_order_ref_strategy(date=tool.get_now_date_str()): |
| | | """ |
| | | 加载下单的order_ref对应的策略 |
| | | :param date: |
| | | :return: |
| | | """ |
| | | fdatas = {} |
| | | path = f"{constant.get_path_prefix()}/{constant.LOG_DIR}/gp/trade/trade.{date}.log" |
| | | with open(path, 'r', encoding='utf-8') as file: |
| | | lines = file.readlines() |
| | | for line in lines: |
| | | if line.find("可转载策略下单结果") > -1: |
| | | line = line.split("可转载策略下单结果:")[1] |
| | | data = eval(line) |
| | | fdatas[data[0]] = data[1] |
| | | return fdatas |
| | | |
| | | |
| | | if __name__ == "__main__": |
| | | fdatas = load_big_buy_order() |
| | | fdatas = load_order_ref_strategy() |
| | | print(fdatas) |
| | | |
| | | pass |
| | |
| | | from third_data import kpl_data_manager, kpl_util |
| | | from third_data.kpl_data_manager import PullTask, KPLCodeJXBlockManager, KPLLimitUpDataRecordManager |
| | | from trade import huaxin_trade_api, huaxin_trade_data_update, huaxin_sell_util, backtest_trade, buy_strategy |
| | | from trade.buy_strategy import BuyStrategyDataManager |
| | | from trade.buy_strategy import BuyStrategyDataManager, StrategyBuyOrderRefManager |
| | | from trade.trade_manager import CodeTradeStateManager |
| | | from trade.trade_settings import WantBuyCodesManager, TradeStateManager |
| | | from utils import middle_api_protocol, outside_api_command_manager, constant, tool, huaxin_util, socket_util, sell_util, \ |
| | |
| | | for k in temp_dict: |
| | | volume = sum([x["volume"] for x in temp_dict[k]]) |
| | | x = temp_dict[k][0] |
| | | r["buy_list"].append({"price": str(x["price"]), "tradeTime": x["tradeTime"], "volume": volume}) |
| | | r["buy_list"].append({"price": str(x["price"]), "tradeTime": x["tradeTime"], "volume": volume, "type":StrategyBuyOrderRefManager().get_strategy_type(x["orderRef"])}) |
| | | r["createTime"] = int(buys[0]["tradeTime"].replace(":", "")) |
| | | |
| | | if "sell_list" not in r: |
| | |
| | | else: |
| | | money = 10000 |
| | | if strategy_type == buy_strategy.STRATEGY_TYPE_RISE_HIGH_WITH_BLOCKS: |
| | | return int(money*0.2) |
| | | elif strategy_type == buy_strategy.STRATEGY_TYPE_LIMIT_UP: |
| | | return int(money * 0.8) |
| | | elif strategy_type == buy_strategy.STRATEGY_TYPE_LIMIT_UP: |
| | | return int(money * 0.2) |
| | | else: |
| | | return money |
| | | |
| | | |
| | | def read_l2_results(trade_call_back_queue): |
| | | while True: |
| | |
| | | result = huaxin_trade_api.order(1, cb_code, volume, buy_price, blocking=True) |
| | | if type(result) == dict and result['code'] == 0: |
| | | orderRef = result['data']['orderRef'] |
| | | async_log_util.info(logger_trade, f"可转载策略下单结果:({orderRef},{strategy_type})") |
| | | StrategyBuyOrderRefManager().add(orderRef, strategy_type) |
| | | CodeTradeStateManager().set_trade_state(cb_code, strategy_type, |
| | | CodeTradeStateManager.TRADE_STATE_ALREADY_BUY) |
| | | # 移除想买单 |
| | |
| | | d["tradeDate"], |
| | | d["tradingDay"], d["pbuID"], d["accountID"], |
| | | tool.get_now_datetime_str(), |
| | | tool.get_now_datetime_str(),d["orderRef"])) |
| | | tool.get_now_datetime_str(), d["orderRef"])) |
| | | finally: |
| | | pass |
| | | |
| | |
| | | key_list = ["tradeID", "securityID", "orderLocalID", "direction", "orderSysID", "price", |
| | | "tradeTime", "volume", "tradeDate", "tradingDay", "pbuID", |
| | | "accountID", "createTime", |
| | | "updateTime","orderRef"] |
| | | "updateTime", "orderRef"] |
| | | fresults = [] |
| | | if results: |
| | | for r in results: |
| | |
| | | """ |
| | | import decimal |
| | | |
| | | from log_module import async_log_util |
| | | from log_module import async_log_util, log_export |
| | | from log_module.log import logger_trade |
| | | from third_data.kpl_data_manager import KPLLimitUpDataRecordManager, CodePlateKeyBuyManager |
| | | from third_data.kpl_data_manager import KPLLimitUpDataRecordManager |
| | | from trade.l2_transaction_data_manager import HuaXinBuyOrderManager |
| | | from utils import tool, l2_huaxin_util |
| | | |
| | |
| | | limit_up_datas = KPLLimitUpDataRecordManager.latest_origin_datas |
| | | for item in limit_up_datas: |
| | | pass |
| | | |
| | | |
| | | class StrategyBuyOrderRefManager: |
| | | """ |
| | | 策略买入记录管理 |
| | | """ |
| | | __instance = None |
| | | __order_ref_strategy_dict = {} |
| | | |
| | | def __new__(cls, *args, **kwargs): |
| | | if not cls.__instance: |
| | | cls.__instance = super(StrategyBuyOrderRefManager, cls).__new__(cls, *args, **kwargs) |
| | | cls.__load_data() |
| | | return cls.__instance |
| | | |
| | | @classmethod |
| | | def __load_data(cls): |
| | | cls.__order_ref_strategy_dict = log_export.load_order_ref_strategy() |
| | | |
| | | def add(self, order_ref, strategy_type): |
| | | """ |
| | | 添加数据 |
| | | :param order_ref: |
| | | :param strategy_type: |
| | | :return: |
| | | """ |
| | | async_log_util.info(logger_trade, f"可转载策略下单结果:({order_ref},{strategy_type})") |
| | | self.__order_ref_strategy_dict[order_ref] = strategy_type |
| | | |
| | | def get_strategy_type(self, order_ref): |
| | | """ |
| | | 获取策略类型 |
| | | :param order_ref: |
| | | :return: |
| | | """ |
| | | return self.__order_ref_strategy_dict.get(order_ref) |