admin
2024-02-29 07af91d1cb4e317065b8dc1db09f337f2014e8c7
utils/huaxin_trade_record_manager.py
@@ -15,6 +15,10 @@
class DelegateRecordManager:
    key_list = ["id", "orderLocalID", "securityID", "securityName", "direction", "orderSysID", "insertTime",
                "insertDate", "acceptTime", "cancelTime", "limitPrice", "turnover", "volume", "volumeTraded",
                "orderStatus", "orderSubmitStatus", "statusMsg", "createTime", "updateTime", "accountID"]
    @classmethod
    def add(cls, datas):
        mysqldb = mysql_data.Mysqldb()
@@ -82,9 +86,6 @@
            results = mysqldb.select_all(
                f"select * from hx_trade_delegate_record r where {' and '.join(where_list)} order by createTime")
            # 转dict
            key_list = ["id", "orderLocalID", "securityID", "securityName", "direction", "orderSysID", "insertTime",
                        "insertDate", "acceptTime", "cancelTime", "limitPrice", "turnover", "volume", "volumeTraded",
                        "orderStatus", "orderSubmitStatus", "statusMsg", "createTime", "updateTime", "accountID"]
            fresults = []
            max_update_time = None
            if results:
@@ -96,13 +97,33 @@
                    temp = {}
                    for i in range(len(r)):
                        if type(r[i]) == datetime.datetime:
                            temp[key_list[i]] = r[i].strftime("%Y-%m-%d %H:%M:%S")
                            temp[cls.key_list[i]] = r[i].strftime("%Y-%m-%d %H:%M:%S")
                        else:
                            temp[key_list[i]] = r[i]
                            temp[cls.key_list[i]] = r[i]
                    fresults.append(temp)
            return fresults, max_update_time.strftime("%Y-%m-%d %H:%M:%S") if max_update_time else None
        finally:
            pass
    # 获取最近的撤单记录
    @classmethod
    def list_latest_cancel_records(cls, count, day=tool.get_now_date_str("%Y%m%d")):
        mysqldb = mysql_data.Mysqldb()
        where_list = [f"r.insertDate='{day}'", "r.cancelTime!=''"]
        results = mysqldb.select_many(
            f"select * from hx_trade_delegate_record r where {' and '.join(where_list)} order by r.cancelTime desc",
            count)
        fresults = []
        if results:
            for r in results:
                temp = {}
                for i in range(len(r)):
                    if type(r[i]) == datetime.datetime:
                        temp[cls.key_list[i]] = r[i].strftime("%Y-%m-%d %H:%M:%S")
                    else:
                        temp[cls.key_list[i]] = r[i]
                fresults.append(temp)
        return fresults
# 持仓记录
@@ -316,5 +337,5 @@
if __name__ == "__main__":
    results = DelegateRecordManager.list_by_day('20230704', '1970-01-01')
    results = DelegateRecordManager.list_latest_cancel_records(10)
    print(results)