| | |
| | | |
| | | # 计算市场分布形态因子 函数 |
| | | # ====================== 输入数据 ====================== |
| | | data = {'-1': '284', '-10': '2', '-2': '80', '-3': '32', '-4': '11', '-5': '6', '-6': '6', '-7': '2', '-8': '0', |
| | | '-9': '1', '0': '101', '1': '1376', '10': '8', '2': '1760', '3': '964', '4': '285', '5': '108', '6': '49', |
| | | '7': '17', '8': '9', '9': '2', 'DT': 3, 'SJDT': '2', 'SJZT': '15', 'STDT': '1', 'STZT': '7', 'SZJS': 4600, |
| | | 'XDJS': 427, 'ZSZDFB': '1939,238,57,446,45,8,271,19,2,42,7,1,26,19,5,217,71,12,', 'ZT': 22, |
| | | 'sign': '市场人气较好', 'szln': 1113353, 'qscln': 3725698, 's_zrcs': 2185592, 'q_zrcs': 5573160, |
| | | 's_zrtj': 58079140, 'q_zrtj': 134866542} |
| | | data = {'-1': '2704', '-10': '2', '-2': '487', '-3': '81', '-4': '38', '-5': '15', '-6': '5', '-7': '4', '-8': '4', '-9': '2', '0': '743', '1': '773', '10': '6', |
| | | '2': '144', '3': '35', '4': '29', '5': '11', '6': '10', '7': '10', '8': '3', '9': '1', 'DT': 7, 'SJDT': '3', 'SJZT': '10', 'STDT': '4', 'STZT': '6', |
| | | 'SZJS': 1038, 'XDJS': 3349, 'ZSZDFB': '475,1353,405,62,395,43,34,222,37,22,23,5,17,22,11,71,183,46,', 'ZT': 16, 'sign': '市场人气一般', 'szln': 473159, |
| | | 'qscln': 1099671, 's_zrcs': 1607250, 'q_zrcs': 4298869, 's_zrtj': 45633261, 'q_zrtj': 107719382} |
| | | |
| | | |
| | | # ====================== 数据预处理 ====================== |
| | |
| | | f"上涨家数:{rise_numbers},下跌家数:{fall_numbers},实际涨停家数:{actual_limit_up_numbers},实际跌停家数:{actual_limit_down_numbers}") |
| | | logger.info(f"涨跌统计字典{data_cache.rise_and_fall_statistics_dirt}") |
| | | logger.info(f"涨跌统计因子的计算={factors}") |
| | | logger.info(f"涨跌统计生成信号={signals}") |
| | | logger.info("\n========== 关键指标 ==========") |
| | | logger.info(f"总股票数: {factors['total_stocks']}\n" |
| | | f"涨跌比(BDR): {factors['rise_vs_fall']['rise_vs_fall_ratio']:.2f}" |
| | | f"极端波动比例: {factors['sentiment']['extreme_ratio']:.2%}" |
| | | f"资金净流入(元): {round(factors['capital_flow']['net'] / 10000, 2)}万" |
| | | f"涨停股占比: {factors['sentiment']['zt_ratio']:.2%}" |
| | | f"市场情绪量化: {'积极' if factors['sentiment']['sign'] else '谨慎'}" |
| | | f"聚集区域:{factors['rise_vs_fall']['rise_gather_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_gather_area'])}%" |
| | | f"零散区域:{factors['rise_vs_fall']['rise_scattered_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_scattered_area'])}%" |
| | | f"涨跌因子字典={factors['rise_vs_fall']}") |
| | | logger.info("\n========== 策略信号 ==========") |
| | | for i, signal in enumerate(signals, 1): |
| | | logger.info(f"信号{i}: {signal}") |
| | | |
| | | # 理想交易行情分数【评估当前行情是否有利于低吸策略取得更高抓板率的分数(是否是理想的交易行情)】 |
| | | ideal_trading_market_score = 1 |
| | |
| | | # 开仓策略计算结果 |
| | | # 根据账户可用金额 计算今日计划下单金额 |
| | | # 账户可用金额 默认乘以0.95,永远留一点钱,一方面也冗余一些计算误差 |
| | | # ((大盘综合强度分数 + 大盘指数情绪预期分数) * 0.01) * (账户可用金额 * 0.9 * 极端低迷情绪比例 / 今日最大新增持仓票数) |
| | | # ((大盘综合强度分数 + 大盘指数情绪预期分数) * 0.01) * (账户可用金额 * 0.9 * 极端低迷情绪比例 / 今日最大新增持仓票数(常量:3)) |
| | | # data_cache.today_planned_order_amount = ((data_cache.real_time_market_strong + data_cache.index_trend_expectation_score) * 0.01) * ( |
| | | # usefulMoney * 0.9 * low_emotion_mood_ratio / Unfinished_opening_plan_number) |
| | | # 除以3应该是一个常量,如果以Unfinished_opening_plan_number,会出现float division by zero 错误 |
| | |
| | | print(f"总股票数: {factors['total_stocks']}") |
| | | print(f"涨跌比(BDR): {factors['rise_vs_fall']['rise_vs_fall_ratio']:.2f}") |
| | | print(f"极端波动比例: {factors['sentiment']['extreme_ratio']:.2%}") |
| | | print(f"资金净流入(元): {factors['capital_flow']['net']:,}") |
| | | print(f"资金净流入(元): {round(factors['capital_flow']['net']/10000, 2)}万") |
| | | print(f"涨停股占比: {factors['sentiment']['zt_ratio']:.2%}") |
| | | print(f"聚集区域:{factors['rise_vs_fall']['rise_gather_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_gather_area'])}%") |
| | | print(f"零散区域:{factors['rise_vs_fall']['rise_scattered_area']},聚集区域的比例值:{factors['rise_vs_fall']['percentages'].get(factors['rise_vs_fall']['rise_scattered_area'])}%") |
| | | print(f"市场情绪量化: {'积极' if factors['sentiment']['sign'] else '谨慎'}") |
| | | print(f"聚集区域:{factors['rise_vs_fall']['rise_gather_area']}") |
| | | print(f"零散区域:{factors['rise_vs_fall']['rise_scattered_area']}") |
| | | print(f"涨跌因子字典={factors['rise_vs_fall']}") |
| | | |
| | | print("\n========== 策略信号 ==========") |