| | |
| | | # 交易管理器 |
| | | import time |
| | | |
| | | import constant |
| | | import gpcode_manager |
| | | import l2_trade_util |
| | | import mysql_data |
| | |
| | | time_str = datetime.datetime.now().strftime("%H:%M:%S") |
| | | redis.setex("trade-success-latest-time", tool.get_expire(), time_str) |
| | | mysqldb = mysql_data.Mysqldb() |
| | | # 合并同一合同编号 |
| | | dict_ = {} |
| | | for data in datas: |
| | | trade_num = data["trade_num"] |
| | | if trade_num not in dict_: |
| | | dict_[trade_num] = data |
| | | else: |
| | | # 合并成交数量与成交金额 |
| | | dict_[trade_num]["num"] = int(dict_[trade_num]["num"]) + int(data["num"]) |
| | | dict_[trade_num]["money"] = round(float(dict_[trade_num]["money"]) + float(data["money"]), 3) |
| | | |
| | | for key in dict_: |
| | | data= dict_[key] |
| | | _time = data["time"] |
| | | # 过滤错误数据 |
| | | if _time == "00:00:00": |
| | | continue |
| | | data["_id"] = data["trade_num"] |
| | | data["_id"] = "{}_{}".format(day, data["trade_num"]) |
| | | data["day"] = day |
| | | data["create_time"] = int(round(t.time() * 1000)) |
| | | counts = mysqldb.select_one("select count(*) from ths_trade_success_record where _id='{}'".format(data["_id"])) |
| | |
| | | # 购买 |
| | | @tool.async_call |
| | | def __buy(code, price, trade_state, capture_timestamp, last_data, last_data_index): |
| | | if constant.TEST: |
| | | return |
| | | try: |
| | | guiTrade.buy(code, price) |
| | | __place_order_success(code, capture_timestamp, last_data, last_data_index) |
| | |
| | | # 下单成功,加入固定代码库 |
| | | l2_data_manager.add_to_l2_fixed_codes(code) |
| | | # 记录下单的那一帧图片的截图时间与交易用时 |
| | | trade_data_manager.TradeBuyDataManager.set_buy_position_info(code, capture_timestamp, use_time, last_data, last_data_index) |
| | | trade_data_manager.TradeBuyDataManager.set_buy_position_info(code, capture_timestamp, use_time, last_data, |
| | | last_data_index) |
| | | |
| | | print("买入结束") |
| | | logger_trade.info("{}买入成功".format(code)) |
| | |
| | | #TODO 完全成交后移除L2 |
| | | |
| | | |
| | | |
| | | # 处理委托成功数据 |
| | | def process_trade_delegate_data(datas): |
| | | if datas is None: |
| | |
| | | if __name__ == "__main__": |
| | | # time_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") |
| | | # print(time_str) |
| | | __clear_data("002388") |
| | | # __clear_big_data() |
| | | pass |