Administrator
2025-07-08 283a7c89f85b1584fde8ff429028506dc00e53d7
strategy/strategy_script_v6.py
@@ -15,7 +15,7 @@
    return f"{huaxin_timestamp[0:2]}:{huaxin_timestamp[2: 4]}:{huaxin_timestamp[4: 6]}"
def can_buy():
def __can_buy():
    """
    @return: 是否可买, 不能买的原因/可买的板块, 是否量够
    """
@@ -37,6 +37,9 @@
    # 目标票板块涨停个数>=2
    can_buy_plates = set()
    for plate in sv.代码板块:
        if plate in sv.板块白名单:
            can_buy_plates.add(plate)
            continue
        if not sv.资金流入板块 or plate not in sv.资金流入板块:
            continue
        if plate in sv.连续老题材:
@@ -81,6 +84,8 @@
    if sv.今日开盘价 and (sv.今日开盘价 - sv.昨日收盘价) / sv.昨日收盘价 < settings.min_open_rate:
        return False, f"开盘涨幅小于{settings.min_open_rate}"
    rate = (sv.当前价 - sv.昨日收盘价) / sv.昨日收盘价
    if rate >= settings.avaiable_rates[1] or rate < settings.avaiable_rates[0]:
        return False, f"涨幅不在区间内({settings.avaiable_rates[0]}-{settings.avaiable_rates[1]}):{rate}"
@@ -93,6 +98,12 @@
    if sv.日三板个数_10 >= 1:
        return False, f"10个交易日有>=3连板"
    if sv.涨得高未放量:
        return False, f"30个交易日涨得高未放量"
    if sv.涨停过未放量:
        return False, f"7个交易日内有涨停/炸板,未出现过高价"
    # if sv.当前价 > sv.昨日最低价 * 1.1:
    #     return False, f"买入时的价格必须≤昨日最低价*110%"
@@ -114,9 +125,11 @@
    # 目标票板块涨停个数>=2
    # 板块只能买入一个代码
    # 板块只能买入2个代码
    if sv.板块成交代码:
        can_buy_plates -= set(sv.板块成交代码.keys())
        can_buy_plates -= set([p for p in sv.板块成交代码 if len(sv.板块成交代码[p]) >= settings.max_buy_codes_count_per_plate])
        if not can_buy_plates:
            return False, f"板块已有成交"
    if not can_buy_plates:
        return False, f"没有涨停的板块: {[(plate, sv.开盘啦最正板块涨停.get(plate)) for plate in sv.代码板块 if sv.开盘啦最正板块涨停]}  连续老题材:{sv.连续老题材}"
@@ -162,7 +175,8 @@
    if big_order_money < threshold_money:
        return False, f"({round(big_order_money / 1e4, 2)}万/{round(threshold_money / 1e4, 2)}万)大单金额不足"
    return True, f" \n\t大单信息:{round(big_order_money / 1e4, 2)}万(买:{round(big_order_money / 1e4, 2)}万 卖:{round(big_sell_order_money / 1e4, 2)}万)/{round(threshold_money / 1e4, 2)}万  \n\t量够信息:{sv.今日量够信息}\n\t今日最高价:{sv.今日最高价信息} \n\t5日最高价:{sv.日最高价_5}", f"\n\t板块信息:{[(p, sv.开盘啦最正板块涨停.get(p)) for p in can_buy_plates]}", can_buy_plates
    big_order_info = f"{round(big_order_money / 1e4, 2)}w/{round(threshold_money / 1e4, 2)}w"
    return True, f" \n\t大单信息:{round(big_order_money / 1e4, 2)}万(买:{round(big_order_money / 1e4, 2)}万 卖:{round(big_sell_order_money / 1e4, 2)}万)/{round(threshold_money / 1e4, 2)}万  \n\t量够信息:{sv.今日量够信息}\n\t今日最高价:{sv.今日最高价信息} \n\t5日最高价:{sv.日最高价_5}", f"\n\t板块信息:{[(p, sv.开盘啦最正板块涨停.get(p)) for p in can_buy_plates]}", {p: sv.开盘啦最正板块涨停.get(p) for p in can_buy_plates}, big_order_info
compute_result = can_buy()
compute_result = __can_buy()