admin
5 天以前 cea6eee0edb661e0215a90a61642bf31afb3e502
strategy/data_cache.py
@@ -98,47 +98,44 @@
                # print(f"非ST, 退市, 退, XD, N==={basic_info['sec_name']} 继续判断")
                no_k_line_stocks.append(i['symbol'])
        # 将列表推导式移出循环 过滤出昨日收盘价在2-30元的股票
        min_instruments = [stock for stock in instruments if 2 < stock['pre_close'] < 30]
        min_instruments = [stock for stock in instruments if 3 < stock['pre_close'] < 30]
        # print(f"min_instruments  数量==={len(min_instruments)}")
        # 使用 get 方法安全地获取 symbol 字段的值
        self.min_stocks = [stock.get('symbol') for stock in min_instruments if stock.get('symbol') is not None]
        print(f"min_stocks==={len(self.min_stocks)}")
        print(f"min_stocks 数量 ==={len(self.min_stocks)}")
        # logger.info(f"min_stocks==={self.min_stocks}")
        logging.info(f"全局初始化数据  完成《《《 - {os.getpid()}")
        # 获取当前进程的PID
'''
设定基本时间点
设定常用当前时间函数方法,为什么这里不是一个函数方法????
'''
Local_startup_time = datetime.datetime.now().strftime("%H:%M:%S")
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")  # 定义早盘时间
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")  # 定义程序休眠时间
now_time = datetime.datetime.now().strftime("%H:%M:%S")  # 定义并实时获取 当前时间
'''
设定常用时间点【常量】
字符串格式=="09:25:12"
'''
# 读取已经获取到并存储在本地的目标范围的个股的板块概念
# 读取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
@@ -151,19 +148,30 @@
yesterday_limit_up_code_list = []
# 初始化开盘啦昨日炸板但通过K线数据计算涨停的股票代码列表
yesterday_frying_plate_last_minute_list = []
# 初始化每日涨停信息方法被执行记录
# 初始化每日涨停信息方法 和 获取所有个股的板块概念 是否被执行
execution = False
# 初始化 写入带属性指数K线的方法 是否被执行
index_K_line_write_execution = False
# 初始化实时涨停概念板块
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线属性指标字典初始化
# 为所有个股的带属性K线 字典初始化
all_stocks_all_K_line_property_dict = {}
# 为指数的带属性K线 字典初始化
all_index_k_line_property_dict = {}
# 为所有个股的所属板块概念字典初始化
all_stocks_plate_dict = {}
# 声明K线属性中所有涨停类型
limit_up_type = ['one_line_limit_up', 'limit_down_then_limit_up', 'limit_up_then_limit_down_then_limit_up',
                 'limit_up']
@@ -172,7 +180,6 @@
# 声明K线属性中所有炸板类型
frying_plate_type = ['frying_plate', 'first_frying_plate', 'one_line_limit_up_then_frying_plate',
                     'one_line_limit_up_then_frying_plate_then_limit_down', 'not_first_frying_plate']
# 定义一个当日分时内所有个股的开盘价字典
all_stocks_current_open = {}
# 定义一个当日分时内所有个股的实时最高价和最低价字典
@@ -188,6 +195,7 @@
usefulMoney = 0
# 为当前账户全部【持仓信息】创建列表
account_positions_dict = {}
# 下面三个集合是为了分类整理持仓字典数据,将各类持仓情况的数据整理为需要的集合
# 为持仓代码创建一个初始集合
position_symbols_set = set()
# 为当日可用持仓代码创建一个初始集合
@@ -199,8 +207,6 @@
record_current_open_execution = False
# 定义一个实时计算最高价和最低价的函数是否在规定时间内启动
record_high_and_low_execution = False
# 定义一个集合竞价后开盘前的逻辑是否只进入判断一次
# later_open_bidding_time_is_entered = False ##################
# 定义一个集合竞价时间段条件分支逻辑的初始执行次数
execution_times = 0
# 定义一个有概念逻辑分支买入进入执行的初始化次数
@@ -213,10 +219,16 @@
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
@@ -224,6 +236,8 @@
# {"code":(代码,昨日收盘价,最新价,总成交量,总成交额,买五档(价格,成交额),卖五档(价格,成交额),更新时间)}
latest_code_market_info_dict = {}
# 主要指数 掘金代码 列表:[上证指数,深证成指,创业扳指,沪深300]
INDEX_SYMBOL_LIST = ['SHSE.000001', 'SZSE.399001', 'SZSE.399006', 'SHSE.000300']
# 股票指数字典 例如:{"000001":(指数, 量, 额, 昨日收盘价)}
stock_index_dict = {}
# 上证指数 瞬时涨幅
@@ -248,13 +262,26 @@
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()}")