| | |
| | | import constant |
| | | # 引入掘金API |
| | | import utils.juejin_api |
| | | from log_module.log import logger_common |
| | | from log_module import async_log_util |
| | | from log_module.log import logger_common, logger_target_codes |
| | | # from logging_config import get_logger |
| | | from utils import tool, hx_qc_value_util |
| | | |
| | |
| | | # 获取A股市场(包含沪深两市)的股票列表跳过停牌,跳过ST 上交所 SHSE.600000 深交所 SZSE.000000 target = ['SHSE.603839', 'SZSE.002855'] |
| | | self.all_stocks = utils.juejin_api.JueJinApi.get_target_codes() |
| | | # self.all_stocks = [{'sec_level': 1, 'symbol': 'SZSE.301633','pre_close': 78.72000122070312, 'is_suspended': 0, 'sec_name': '港迪技术', 'listed_date': datetime.datetime(2024, 11, 7, 0, 0,tzinfo=datetime.timezone(datetime.timedelta(seconds=28800))), 'sec_type': 1, 'sec_id': '301633'}] |
| | | |
| | | async_log_util.info(logger_target_codes, f"{ self.all_stocks}") |
| | | # self.all_stocks = self.all_stocks[:10] |
| | | # 缓存代码的名称 |
| | | self.code_name_dict = {x['symbol']: x['sec_name'] for x in self.all_stocks} |
| | |
| | | # self.filtered_stocks = [stock for stock in self.all_stocks if |
| | | # stock.startswith('SHSE.60') or (stock.startswith('SZSE.00'))] |
| | | self.filtered_stocks = [stock['symbol'] for stock in self.all_stocks if |
| | | isinstance(stock.get('symbol'), str) and (stock['symbol'].startswith('SHSE.60') or stock['symbol'].startswith('SZSE.00'))] |
| | | isinstance(stock.get('symbol'), str) and ( |
| | | stock['symbol'].startswith('SHSE.60') or stock['symbol'].startswith( |
| | | 'SZSE.00'))] |
| | | # self.filtered_stocks = self.filtered_stocks[:10] |
| | | print(f"过滤后上证A股和深证A股数量filtered_stocks:{len(self.filtered_stocks)}") |
| | | # 声明一下需要拉取K线的列表 |
| | |
| | | now_time = datetime.datetime.now().strftime("%H:%M:%S") # 定义并实时获取 当前时间 |
| | | ''' |
| | | 设定常用时间点【常量】 |
| | | 字符串格式=="09:25:12" |
| | | ''' |
| | | SERVER_RESTART_TIME = datetime.time(9, 00, 00).strftime("%H:%M:%S") # 定义9:00 |
| | | L1_DATA_START_TIME = datetime.time(9, 15, 00).strftime("%H:%M:%S") # 定义9:15 |
| | | BEFORE_OPEN_BIDDING_TIME = datetime.time(9, 20, 00).strftime("%H:%M:%S") # 定义9:20 |
| | | OPEN_BIDDING_TIME = datetime.time(9, 25, 00).strftime("%H:%M:%S") # 定义 盘前 集合竞价 时间 |
| | | LATER_OPEN_BIDDING_TIME = datetime.time(9, 25, 6).strftime("%H:%M:%S") # 定义 盘前 集合竞价 时间 |
| | | AFTER_OPEN_BIDDING_TIME = datetime.time(9, 25, 12).strftime("%H:%M:%S") # 定义 集合竞价 开始后 时间 |
| | | OPENING_TIME = datetime.time(9, 30, 00).strftime("%H:%M:%S") # 定义开盘时间 |
| | | MORN_MARKET_TIME = datetime.time(9, 35, 00).strftime("%H:%M:%S") # 定义早盘时间 |
| | | MORN_MARKET_CLOSING_TIME = datetime.time(11, 30, 00).strftime("%H:%M:%S") # 定义上午收盘时间 |
| | | NOON_MARKET_OPENING_TIME = datetime.time(13, 0, 00).strftime("%H:%M:%S") # 定义下午开盘时间 |
| | | NOON_MARKET_TIME = datetime.time(13, 5, 00).strftime("%H:%M:%S") # 定义午盘时间 |
| | | CLOSE_POSITION_TIME = datetime.time(14, 55, 00).strftime("%H:%M:%S") # 定义平仓时间 |
| | | WATCH_DISK_END_TIME = datetime.time(14, 56, 00).strftime("%H:%M:%S") # 定义 板上盯结束时间 |
| | | CLOSE_BIDDING_TIME = datetime.time(14, 57, 00).strftime("%H:%M:%S") # 定义 盘后 集合竞价 时间 |
| | | CLOSING_TIME = datetime.time(15, 00, 00).strftime("%H:%M:%S") # 定义 收盘时间 |
| | | AFTER_CLOSING_TIME = datetime.time(15, 1, 00).strftime("%H:%M:%S") # 定义 收盘后时间 |
| | | CHECKING_DATA_TIME = datetime.time(17, 00, 00).strftime("%H:%M:%S") # 定义 检查数据时间 |
| | | UPDATE_DATA_TIME = datetime.time(18, 31, 00).strftime("%H:%M:%S") # 定义更新数据时间 |
| | | PROGRAM_SLEEP_TIME = datetime.time(23, 00, 00).strftime("%H:%M:%S") # 定义程序休眠时间 |
| | | |
| | | # todo 2025-03-25 后无BUG即可彻底删除下处注释部分 |
| | | # # 读取已经获取到并存储在本地的目标范围的个股的板块概念 |
| | | # # 读取JSON文件并解析为字典 |
| | | # if os.path.exists(constant.ALL_STOCKS_PLATE_PATH): |
| | | # with open(constant.ALL_STOCKS_PLATE_PATH, 'r', |
| | | # encoding='utf-8') as f: |
| | | # json_data = f.read() |
| | | # else: |
| | | # json_data = "{}" |
| | | # all_stocks_plate_dict = json.loads(json_data) |
| | | # logger.info(f"all_stocks_plate_dict的数量={len(all_stocks_plate_dict)}") |
| | | SERVER_RESTART_TIME = "09:00:00" # 服务器重启时间 |
| | | L1_DATA_START_TIME = "09:15:00" # L1数据开始时间 |
| | | BEFORE_OPEN_BIDDING_TIME = "09:20:00" # 【盘前】集合竞价开始前时间 |
| | | OPEN_BIDDING_TIME = "09:25:00" # 【盘前】集合竞价开始时间 |
| | | LATER_OPEN_BIDDING_TIME = "09:25:06" # 【盘前】集合竞价开始后瞬间 |
| | | AFTER_OPEN_BIDDING_TIME = "09:25:12" # 【盘前】集合竞价开始后一会 |
| | | OPENING_TIME = "09:30:00" # 上午开盘时间 |
| | | MORN_MARKET_TIME = "09:35:00" # 早盘黄金五分钟 |
| | | MORN_MARKET_CLOSING_TIME = "11:30:00" # 上午收盘时间 |
| | | NOON_MARKET_OPENING_TIME = "13:00:00" # 下午开盘时间 |
| | | NOON_MARKET_TIME = "13:05:00" # 午盘黄金五分钟 |
| | | CLOSE_POSITION_TIME = "14:55:00" # 尾盘平仓时间 |
| | | WATCH_DISK_END_TIME = "14:56:00" # 板上盯结束时间 |
| | | CLOSE_BIDDING_TIME = "14:57:00" # 【盘后】集合竞价开始 |
| | | CLOSING_TIME = "15:00:00" # 定义 收盘时间 |
| | | AFTER_CLOSING_TIME = "15:01:00" # 下午收盘后时间 |
| | | CHECKING_DATA_TIME = "17:00:00" # 检查数据时间 |
| | | UPDATE_DATA_TIME = "18:31:00" # 更新数据时间 |
| | | PROGRAM_SLEEP_TIME = "22:00:00" # 程序休眠时间【不能在23点之后仍运行,获取到的数据可能有谬误】 |
| | | |
| | | # 初始化当日当时最高价 |
| | | high_price = 0 |
| | |
| | | limit_up_block_names = [] |
| | | # 初始化板块强度下的个股强度 |
| | | market_sift_plate_stock_dict = {} |
| | | # 精选流入板块 |
| | | market_sift_plates = [] |
| | | |
| | | # 初始化实时大盘行情市场情绪综合强度【完整】字典 |
| | | rise_and_fall_statistics_dirt = {} |
| | | # 初始化实时大盘行情情绪综合强度[分数] |
| | | real_time_market_strong = 0 |
| | | # 初始化实时大盘行情情绪综合强度分时列表 |
| | | time_sharing_market_strong_dirt = {} |
| | | |
| | | # 初始化实时大盘行情市场情绪 涨跌统计 字典 |
| | | real_time_market_sentiment_dirt = {} |
| | | |
| | | # 为所有个股的带属性K线 字典初始化 |
| | | all_stocks_all_K_line_property_dict = {} |
| | |
| | | bought_plate = [] |
| | | # 持仓金额自动管理开关 |
| | | position_automatic_management_switch = True |
| | | # GUI手动设置的每次买入的金额 |
| | | BUY_MONEY_PER_CODE = -1 |
| | | # 初始化有概念买入金额 |
| | | have_plate_buy_money = 3000 |
| | | # 初始化有强度买入金额 |
| | | have_strength_buy_money = 3000 |
| | | # 开仓策略计算金额 |
| | | opening_strategy_results = 0 |
| | | # 今日第一次下单的金额 |
| | | today_first_planned_order_amount = 0 |
| | | # 今日计划下单金额 |
| | | today_planned_order_amount = 0 |
| | | |
| | |
| | | TSXV_open_growth = 0 |
| | | # 大盘指数情绪预期分数 |
| | | index_trend_expectation_score = 0 |
| | | |
| | | # 每次买入的金额 |
| | | BUY_MONEY_PER_CODE = -1 |
| | | # 理想交易行情比率分 满分=1 |
| | | ideal_trading_market_score = 1 |
| | | |
| | | # 可以板上盯卖的代码 |
| | | LIMIT_UP_SELL_CODES = set() |
| | | # L2炸板数据 |
| | | L2_explosion_data = {} |
| | | |
| | | # 最新的L1数据: {代码: L1数据} |
| | | current_l1_dict = {} |
| | | |
| | | # 最新成交价格 |
| | | latest_deal_price_dict = {} |
| | | |
| | | # 大单成交数据: {"代码":[大单数据1,大单数据2,...]} |
| | | big_order_deal_dict = {} |
| | | |
| | | # 有意购买的股票名称列表 |
| | | willing_buy_list = [] |
| | | # 已成交股票详情列表 |
| | | purchased_stocks_details_list = [] |
| | | |
| | | logging.info(f"全局初始化数据 完成《《《 - {os.getpid()}") |
| | | |
| | | |