admin
3 天以前 0b0d0e790fec8c7edfdbcab5c31d625e0c2eadd6
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,9 @@
                #     print(f"没有在概念缓存列表中找到:{symbol_to_search}。")
                # 声明要检查过滤不可用的概念板块名称常量   【代表着 是否有无概念及跟随概念的可能性(有明显个股独特增长特性的不可跟随,因为概念本身是宽泛的,许多不同概念的个股都有这个概念)】
                check_plate_list = {'无', 'ST摘帽', 'ST板块', '超跌', '次新股', '北交所', '科创板',
                                    '年报增长', '年报预增', '并购重组', '股权转让', '送转填权', '高送转', '壳资源',
                                    '资产管理', '举牌',
                                    '专用设备', '创投'}
                # set(ForbiddenPlatesManager().list_plates() 将GUI上手动添加的拉黑概念也并入其中
                check_plate_list = constant.check_plate_list | set(ForbiddenPlatesManager().list_plates())
                # check_plate_list = constant.check_plate_list
                # 查询当前个股的代码是否在板块强度个股列表中(低吸优选目标)
                strength_list_have_it = False  # 是否有强度赋初值
@@ -247,6 +249,7 @@
                                    async_log_util.info(logger,
                                                        f"单一板块内瞬时拉升数为:{len(values)},分别为===={values}")
                                    # 如果子列表长度大于1且第二个元素包含 当前进入涨幅视界的symbol_code
                                    # 有强度视界
                                    strength_list_have_it = True
                                    strength_plate = correlation_plate_list
                                if stock_list[6] >= 1:
@@ -418,6 +421,16 @@
                                                                         get_order_money(),
                                                                         k_line_data[0]['sec_name'],
                                                                         current_price)
                                        # 传给GUI显示
                                        purchased_stock_details = {
                                            "name": k_line_data[0]['sec_name'],
                                            "policy_name": "有概念有强度策略分支",
                                            "plate_name": list(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 symbol_code not in data_cache.position_symbols_set:
                                            logger_info(
@@ -429,16 +442,6 @@
                                            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 strength_list_have_it is False:
                                        logger_info(
@@ -538,6 +541,17 @@
                                                f"************************************************【有概念无强度指标下单】************************************************")
                                            logger_info(
                                                f"最新价: {current_price}, 当日最高价:{current_high},瞬时涨幅: {tick_growth:.2f}%,瞬时量幅比:{last_volume_to_growth_ratio:.2f}%,当日当时涨幅:{today_growth}%,公司名称:{k_line_data[0]['sec_name']},当前时间:{current_created_at},低于水位线:{deep_low:.2f},交易量今日与昨日的比例{round(current_volume / k_line_data[0]['volume'], 2)}")
                                            # 传给GUI显示
                                            purchased_stock_details = {
                                                "name": k_line_data[0]['sec_name'],
                                                "policy_name": "有概念无强度策略分支",
                                                "plate_name": list(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 symbol_code not in data_cache.position_symbols_set:
                                                logger_info(
@@ -549,17 +563,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": "有概念无强度策略分支",
                                                    "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} ")
                                '''
                                无概念 有强度视界
                                '''
@@ -663,6 +667,18 @@
                                                                                 get_order_money(),
                                                                                 k_line_data[0]['sec_name'],
                                                                                 current_price)
                                                # 传给GUI显示
                                                purchased_stock_details = {
                                                    "name": k_line_data[0]['sec_name'],
                                                    "policy_name": "无概念有强度策略分支",
                                                    "plate_name": list(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} ")
                                                # 检测持仓代码集合中有无下单个股,才认为交易成功
                                                if symbol_code not in data_cache.position_symbols_set:
                                                    logger_info(
@@ -674,18 +690,7 @@
                                                    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} ")
                                '''
                                无概念无强度 有小量换大涨幅度视界
                                '''
@@ -874,7 +879,7 @@
                # 以下部分主要计算整体的花费时间
                # 将current_created_at转换为datetime对象,这里假设是今天的日期
                # 注意:这里使用了datetime.now()来获取当前日期,但你可以根据需要调整
                created_at = datetime.datetime.strptime(tool.get_now_date_str() + " " + current_created_at,
                created_at = datetime.datetime.strptime(data_cache.DataCache().today_date + " " + current_created_at,
                                                        "%Y-%m-%d %H:%M:%S").timestamp()
                # print(f"created_at===={created_at}")
                # print(f"created_at type===={type(created_at)}")