From 92cb2dd75ea37b64b174f42ddd0b5b17d6a4634a Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 16 二月 2023 16:04:11 +0800 Subject: [PATCH] H撤策略优化,新增热门板块爬取,新增windows截图工具 --- l2_trade_test.py | 73 +++++++++++++++++++++++++++--------- 1 files changed, 54 insertions(+), 19 deletions(-) diff --git a/l2_trade_test.py b/l2_trade_test.py index 1c93c3d..a8dadfa 100644 --- a/l2_trade_test.py +++ b/l2_trade_test.py @@ -5,6 +5,7 @@ import json import logging import random +import time import unittest from copy import deepcopy from unittest import mock @@ -14,6 +15,7 @@ import log import tool from db import redis_manager +from l2 import l2_log, l2_data_manager, transaction_progress from l2.safe_count_manager import BuyL2SafeCountManager from l2.transaction_progress import TradeBuyQueue from trade import trade_data_manager @@ -41,12 +43,13 @@ redis_info.delete(k) BuyL2SafeCountManager().clear_data(code) + transaction_progress.TradeBuyQueue().set_traded_index(code, 0) class VirtualTrade(unittest.TestCase): - def __process_buy_queue(self,code, buy_queue, time_): - if time_ == "09:32:37": + def __process_buy_queue(self, code, buy_queue, time_): + if time_ == "10:25:14": print("杩涘叆璋冭瘯") limit_up_price = gpcode_manager.get_limit_up_price(code) buy_one_price = limit_up_price @@ -58,22 +61,32 @@ try: buy_one_price_ = decimal.Decimal(round(float(buy_one_price), 2)).quantize( decimal.Decimal("0.00")) - buy_progress_index = TradeBuyQueue().compute_traded_index(code, buy_one_price_, buy_queue_result_list) + # 鑾峰彇鎵ц浣嶆椂闂� + exec_time = None + buy_single_index, buy_exec_index, compute_index, num, count, max_num_set = l2_data_manager.TradePointManager.get_buy_compute_start_data( + code) + if buy_exec_index: + try: + exec_time = l2.l2_data_util.local_today_datas.get(code)[buy_exec_index]["val"]["time"] + except: + pass + buy_progress_index = TradeBuyQueue().compute_traded_index(code, buy_one_price_, + buy_queue_result_list, exec_time) if buy_progress_index is not None: - l2.cancel_buy_strategy.HourCancelBigNumComputer.set_trade_progress(code, buy_progress_index, + l2.cancel_buy_strategy.HourCancelBigNumComputer.set_trade_progress(code, time_, buy_exec_index, buy_progress_index, l2.l2_data_util.local_today_datas.get( code), l2.l2_data_util.local_today_num_operate_map.get( code)) - log.logger_l2_trade_buy_queue.info("鑾峰彇鎴愪氦浣嶇疆鎴愬姛锛� code-{} index-{} 鏁版嵁-{}", code, - buy_progress_index, - json.dumps(buy_queue_result_list)) + log.logger_l2_trade_buy_queue.info("鑾峰彇鎴愪氦浣嶇疆鎴愬姛锛� code-{} index-{} 鏁版嵁-{}", code, + buy_progress_index, + json.dumps(buy_queue_result_list)) except Exception as e: pass - # @unittest.skip("璺宠繃姝ゅ崟鍏冩祴璇�") + @unittest.skip("璺宠繃姝ゅ崟鍏冩祴璇�") def test_trade(self): - code = "002131" + code = "002117" clear_trade_data(code) l2.l2_data_util.load_l2_data(code) total_datas = deepcopy(l2.l2_data_util.local_today_datas[code]) @@ -116,7 +129,8 @@ trade_progress_list, buy_queues = log.get_trade_progress(code) for indexs in pos_list: - l2.l2_data_manager_new.L2TradeDataProcessor.random_key[code] = mock.Mock(return_value=random.randint(0, 100000)) + l2_log.threadIds[code] = mock.Mock( + return_value=random.randint(0, 100000)) # 璁剧疆灏佸崟棰濓紝鑾峰彇涔�1閲� for i in range(0, 100): time_ = total_datas[indexs[0]]["val"]["time"] @@ -137,9 +151,26 @@ break print("----------------澶勭悊浣嶇疆", indexs) - if indexs[0] >= 224: + if indexs[0] >= 661: print("杩涘叆璋冭瘯") - l2.l2_data_manager_new.L2TradeDataProcessor.process_add_datas(code, total_datas[indexs[0]:indexs[1] + 1], 0, 0) + l2.l2_data_manager_new.L2TradeDataProcessor.process_add_datas(code, total_datas[indexs[0]:indexs[1] + 1], 0, + 0) + + @unittest.skip("璺宠繃姝ゅ崟鍏冩祴璇�") + def test_h_cancel(self): + code = "002870" + l2.l2_data_util.load_l2_data(code) + total_datas = l2.l2_data_util.local_today_datas.get(code) + total_datas = total_datas[:899] + l2.l2_data_util.local_today_datas[code] = total_datas + l2.l2_data_util.load_num_operate_map(l2.l2_data_util.local_today_num_operate_map, code, total_datas, True) + + buy_progress_index = 523 + l2.cancel_buy_strategy.HourCancelBigNumComputer.set_trade_progress(code, buy_progress_index, + l2.l2_data_util.local_today_datas.get( + code), + l2.l2_data_util.local_today_num_operate_map.get( + code)) # class TestTrade(unittest.TestCase): @@ -179,19 +210,23 @@ class TestTradedProgress(unittest.TestCase): @unittest.skip("璺宠繃姝ゅ崟鍏冩祴璇�") def test_get_progress(self): - code = "002328" + code = "000925" l2.l2_data_util.load_l2_data(code) + # l2.l2_data_util.local_today_datas[code] = l2.l2_data_util.local_today_datas[code][:898] TradeBuyQueue.get_traded_index = mock.Mock(return_value=(10, False)) - buy_progress_index = TradeBuyQueue().compute_traded_index(code, "6.94", [1270, 9999, 1973]) + buy_progress_index = TradeBuyQueue().compute_traded_index(code, "9.76", + [9999, 1506], "09:32:45") + print("鑾峰彇鍒颁氦鏄撹繘搴︼細", buy_progress_index) @unittest.skip("璺宠繃姝ゅ崟鍏冩祴璇�") def test_sort(self): - list = [1, 2, 3] - result_list = itertools.permutations(list, 3) - print(result_list) - for r in result_list: - print(r) + _start = round(time.time() * 1000) + count = 0 + for i in range(0, 100000): + # if i > 30: + count += 1 + print("鑰楁椂", round(time.time() * 1000) - _start) if __name__ == "__main__": -- Gitblit v1.8.0