Administrator
3 天以前 5f034f7a6733b03e0d08d7920ec6de1b1517c421
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from strategy.strategy_variable import StockVariables
 
sv = StockVariables()
 
 
def can_buy():
    """
    @return: 是否可买, 不能买的原因/可买的板块
    """
    # print(f"{target_code}:执行策略")
    if target_code.find("60") != 0 and target_code.find("00") != 0:
        return False, "创业板/科创板的票不买"
    if not sv.昨日非跌停 or not sv.昨日非涨停 or not sv.昨日非炸板:
        return False, "日K不满足条件"
    if not sv.领涨板块信息:
        return False, "没有板块"
    if sv.自由流通市值 > 300e8 or sv.自由流通市值 < 10e8:
        return False, f"自由市值({sv.自由流通市值})不满足要求"
 
    if sv.今日涨停价 > 60 or sv.今日涨停价 < 2.99:
        return False, "今日涨停价高于60/低于2.99"
    if sv.涨停数_30 <= 0 and not sv.日放倍量日期_15:
        return False, "30个交易日无涨停且15个交易日无倍量"
 
    if abs((sv.当前价 - round(sv.今日成交额 / sv.今日成交量, 2)) / sv.昨日收盘价) >= 0.01:
        return False, f"买入价高于均价1.0个点"
 
    tr = 0.03
    rate = (sv.当前价 - sv.昨日收盘价) / sv.昨日收盘价
    if rate >= tr or rate < 0:
        return False, f"涨幅过高:{rate}"
 
    if sv.今日成交量 < sv.昨日成交量 * 0.9:
        return False, f"量不够"
    if sv.代码精选板块 and sv.开盘啦精选板块涨停:
        buy_blocks = sv.代码精选板块 - sv.日出现的板块_5
        buy_blocks = buy_blocks & set(sv.开盘啦精选板块涨停.keys())
        if len(buy_blocks) >= 3:
            return True, f"可买板块{[(b, sv.开盘啦精选板块涨停.get(b)) for b in buy_blocks]}"
    return False, "没有板块"
 
 
compute_result = can_buy()