admin
5 天以前 1dea3d72da9d3d2d55f2e41b611913b0901d8074
strategy/buying_strategy.py
@@ -8,6 +8,8 @@
# from datetime import time
# from datetime import timedelta
import time
import constant
import utils.tool
from log_module import async_log_util
from log_module.log import logger_kpl_jingxuan_in, logger_common
@@ -18,6 +20,7 @@
from strategy import basic_methods
from strategy import account_management
from strategy import order_methods
from strategy.forbidden_plates_manager import ForbiddenPlatesManager
from strategy.order_methods import TodayBuyCodeManager
from utils import tool, huaxin_util
@@ -218,10 +221,8 @@
                #     print(f"没有在概念缓存列表中找到:{symbol_to_search}。")
                # 声明要检查过滤不可用的概念板块名称常量   【代表着 是否有无概念及跟随概念的可能性(有明显个股独特增长特性的不可跟随,因为概念本身是宽泛的,许多不同概念的个股都有这个概念)】
                check_plate_list = {'无', 'ST摘帽', 'ST板块', '超跌', '次新股', '北交所', '科创板',
                                    '年报增长', '年报预增', '并购重组', '股权转让', '送转填权', '高送转', '壳资源',
                                    '资产管理', '举牌',
                                    '专用设备', '创投'}
                # check_plate_list = constant.check_plate_list | set(ForbiddenPlatesManager().list_plates())
                check_plate_list = constant.check_plate_list
                # 查询当前个股的代码是否在板块强度个股列表中(低吸优选目标)
                strength_list_have_it = False  # 是否有强度赋初值
@@ -377,8 +378,7 @@
                                            logger_info(
                                                f"【不利】自由市值小于6亿!不买!! 公司名称:{k_line_data[0]['sec_name']},最新价: {current_price}")
                                            return
                                        if (
                                                free_market_value == 0 or free_market_value == 0.0) and free_market_value > 100 and L2_found_big_order is False:
                                        if (free_market_value != 0 or free_market_value != 0.0) and free_market_value > 100 and L2_found_big_order is False:
                                            logger_info(
                                                f"【不利】自由市值大于100亿,且未发现大单!不买!! 公司名称:{k_line_data[0]['sec_name']},最新价: {current_price}")
                                            return
@@ -430,6 +430,7 @@
                                            data_cache.bought_plate.extend(limit_up_plate_included_list)
                                            logger_info(
                                                f"【{k_line_data[0]['sec_name']}】交易成功!持仓集合:{data_cache.position_symbols_set}")
                                            # 传给GUI显示
                                            purchased_stock_details = {
                                                "name": k_line_data[0]['sec_name'],
                                                "policy_name": "有概念有强度策略分支",
@@ -515,8 +516,7 @@
                                                logger_info(
                                                    f"【不利】自由市值小于6亿!不买!! 公司名称:{k_line_data[0]['sec_name']},最新价: {current_price}")
                                                return
                                            if (
                                                    free_market_value == 0 or free_market_value == 0.0) and free_market_value > 100 and L2_found_big_order is False:
                                            if (free_market_value != 0 or free_market_value != 0.0) and free_market_value > 100 and L2_found_big_order is False:
                                                logger_info(
                                                    f"【不利】自由市值大于100亿,且未发现大单!不买!! 公司名称:{k_line_data[0]['sec_name']},最新价: {current_price}")
                                                return
@@ -550,12 +550,23 @@
                                                data_cache.bought_plate.extend(limit_up_plate_included_list)
                                                logger_info(
                                                    f"【{k_line_data[0]['sec_name']}】交易成功!持仓集合:{data_cache.position_symbols_set}")
                                                # 传给GUI显示
                                                purchased_stock_details = {
                                                    "name": k_line_data[0]['sec_name'],
                                                    "policy_name": "有概念无强度策略分支",
                                                    "plate_name": limit_up_plate_included,
                                                    "buy_time_trading_volume_ratio": (
                                                                current_volume / k_line_data[0]['volume']),
                                                }
                                                data_cache.purchased_stocks_details_list.append(purchased_stock_details)
                                                logger_info(
                                                    f"已成交股票详情列表:{data_cache.purchased_stocks_details_list} ")
                                '''
                                无概念 有强度视界
                                '''
                                if len(limit_up_plate_included) == 0 and limit_up_plate_included.issubset(
                                        check_plate_list) is False:
                                    # logger_info(f"【无概念】")
                                if len(limit_up_plate_included) == 0 or limit_up_plate_included.issubset(
                                        check_plate_list) is True:
                                    # logger_info(f"【无概念 或 概念在屏蔽概念组中】")
                                    if strength_list_have_it is True:
                                        logger_info(
                                            f"【{k_line_data[0]['sec_name']}】--------------------------------------------------------------------------------------------------------[有强度视界]")
@@ -627,7 +638,7 @@
                                                #     logger_info(
                                                #         f"【不利】有强度的板块中没有发现领涨次数!不买!! 公司名称:{k_line_data[0]['sec_name']},最新价: {current_price}")
                                                #     return
                                                if (free_market_value == 0 or free_market_value == 0.0) and free_market_value > 100 and L2_found_big_order is False:
                                                if (free_market_value != 0 or free_market_value != 0.0) and free_market_value > 100 and L2_found_big_order is False:
                                                    logger_info(
                                                        f"【不利】自由市值大于100亿,且未发现大单!不买!! 公司名称:{k_line_data[0]['sec_name']},最新价: {current_price}")
                                                    return
@@ -664,6 +675,18 @@
                                                    data_cache.bought_plate.extend(strength_plate)
                                                    logger_info(
                                                        f"【{k_line_data[0]['sec_name']}】交易成功!持仓集合:{data_cache.position_symbols_set}")
                                                    # 传给GUI显示
                                                    purchased_stock_details = {
                                                        "name": k_line_data[0]['sec_name'],
                                                        "policy_name": "无概念有强度策略分支",
                                                        "plate_name": strength_plate,
                                                        "buy_time_trading_volume_ratio": (
                                                                current_volume / k_line_data[0]['volume']),
                                                    }
                                                    data_cache.purchased_stocks_details_list.append(
                                                        purchased_stock_details)
                                                    logger_info(
                                                        f"已成交股票详情列表:{data_cache.purchased_stocks_details_list} ")
                                '''
                                无概念无强度 有小量换大涨幅度视界
                                '''