| | |
| | | import os |
| | | import time |
| | | |
| | | import dask |
| | | import xlwt |
| | | |
| | | import constant |
| | |
| | | |
| | | |
| | | # 获取L2的数据 |
| | | def get_l2_datas(code, today_datas=None, date=None, end_index=None): |
| | | def get_l2_datas(code, today_datas=None, date=None, end_index=None, fast_mode=False): |
| | | """ |
| | | @param code: |
| | | @param today_datas: |
| | | @param date: |
| | | @param end_index: |
| | | @param fast_mode: 是否是急速模式 |
| | | @return: |
| | | """ |
| | | __start_time = time.time() |
| | | if date is None: |
| | | date = tool.get_now_date_str() |
| | |
| | | real_position_indexes = [] |
| | | deal_list = [] |
| | | cancel_reasons = {} |
| | | sell_no_dict = {} |
| | | active_sell_map = {} |
| | | else: |
| | | process_indexs = log_export.get_l2_process_position(code, date) |
| | | trade_indexs = log_export.get_l2_trade_position(code, date) |
| | | real_position_indexes = log_export.get_real_place_order_positions(code, date) |
| | | deal_list = log_export.load_huaxin_deal_record(code, date) |
| | | cancel_reasons = log_export.load_cancel_buy_reasons(code, date) |
| | | if not fast_mode: |
| | | tasks = [dask.delayed(log_export.get_l2_process_position)(code, date), |
| | | dask.delayed(log_export.get_l2_trade_position)(code, date), |
| | | dask.delayed(log_export.get_real_place_order_positions)(code, date), |
| | | dask.delayed(log_export.load_huaxin_deal_record)(code, date), |
| | | dask.delayed(log_export.load_cancel_buy_reasons)(code, date), |
| | | dask.delayed(log_export.load_huaxin_transaction_sell_no)(code, date), |
| | | dask.delayed(log_export.load_huaxin_active_sell_map)(date), |
| | | ] |
| | | results = dask.delayed(tasks).compute() |
| | | process_indexs = results[0] |
| | | trade_indexs = results[1] |
| | | real_position_indexes = results[2] |
| | | deal_list = results[3] |
| | | cancel_reasons = results[4] |
| | | sell_no_dict = results[5] |
| | | active_sell_map = results[6] |
| | | else: |
| | | process_indexs = [] |
| | | trade_indexs = [] |
| | | deal_list = [] |
| | | sell_no_dict = {} |
| | | active_sell_map = {} |
| | | tasks = [dask.delayed(log_export.get_real_place_order_positions)(code, date), |
| | | dask.delayed(log_export.load_cancel_buy_reasons)(code, date), |
| | | ] |
| | | results = dask.delayed(tasks).compute() |
| | | real_position_indexes = results[0] |
| | | cancel_reasons = results[1] |
| | | |
| | | |
| | | deal_list_dict = {} |
| | | for d in deal_list: |
| | | deal_list_dict[str(d[0])] = d |
| | | |
| | | sell_no_dict = log_export.load_huaxin_transaction_sell_no(code=code, date=date) |
| | | sell_nos = sell_no_dict.get(code) |
| | | active_sell_map = log_export.load_huaxin_active_sell_map(date=date) |
| | | active_sell_set = active_sell_map.get(code) |
| | | if not active_sell_set: |
| | | active_sell_set = set() |
| | |
| | | if deal_big_buy_order_list: |
| | | for d in deal_big_buy_order_list: |
| | | deal_big_buy_order_no_dict[d[0]] = d |
| | | |
| | | fdatas = export_l2_data(code, datas, process_indexs, trade_indexs, real_position_indexes, deal_list_dict, sell_nos, |
| | | active_sell_set, cancel_reasons, deal_big_buy_order_no_dict) |
| | | return fdatas |
| | |
| | | if limit_up_price: |
| | | # 需要订阅的特殊的量 |
| | | special_volumes = BuyMoneyUtil.get_possible_buy_volumes(limit_up_price) |
| | | special_volumes = [x//100 for x in special_volumes] |
| | | special_volumes = [x // 100 for x in special_volumes] |
| | | else: |
| | | special_volumes = [] |
| | | |