Administrator
2023-03-28 c7b6f5be3e5850bbf66db5363e634c57ff9ca876
trade/first_code_score_manager.py
@@ -9,7 +9,7 @@
# zyltgb自由流通市值是否大于250亿
# limit_price 涨停价是否大于100块
# limit_up_time 是否10点之前涨停
# k_form(15个交易日是否涨幅24.9%,是否破前高,是否超跌,是否接近前高,是否N,是否V)
# k_form(15个交易日是否涨幅24.9%,是否破前高,是否超跌,是否接近前高,是否N,是否V,是否有形态)
import code_nature_analyse
import global_data_loader
import global_util
@@ -24,7 +24,7 @@
    score_list = []
    if zyltgb:
        zyltgbs = [0, 10, 31, 51, 101, 150, 250, 1000000]
        zyltgb_score = [5, 25, 20, 15, 10, 5, -80]
        zyltgb_score = [20, 30, 20, 10, 0, -10, -20]
        for i in range(1, len(zyltgbs)):
            if zyltgbs[i - 1] <= zyltgb / 100000000 < zyltgbs[i]:
                score_list.append(zyltgb_score[i - 1])
@@ -45,18 +45,18 @@
    k_score = []
    # 15个交易日是否涨幅24.9%
    if k_form[0]:
        k_score.append(-25)
        k_score.append(-55)
    else:
        k_score.append(0)
    # 是否破前高
    # 是否破前高
    if k_form[1]:
        k_score.append(50)
        k_score.append(65)
    else:
        k_score.append(0)
    # 是否超跌
    if k_form[2]:
        k_score.append(40)
        k_score.append(45)
    else:
        k_score.append(0)
@@ -67,14 +67,21 @@
        k_score.append(0)
    # 是否N
    if k_form[4]:
        k_score.append(35)
        k_score.append(40)
    else:
        k_score.append(0)
    # 是否V
    if k_form[5]:
        k_score.append(30)
        k_score.append(35)
    else:
        k_score.append(0)
    # 是否有形态
    if k_form[6]:
        k_score.append(0)
    else:
        k_score.append(-25)
    score_list.append(k_score)
    nature_score = []
@@ -94,20 +101,18 @@
    score_list.append(nature_score)
    hot_block_score = []
    if hot_block[1] >= 2:
        hot_block_score.append(40)
    # 板块中只有自己涨停,且无炸板
    if hot_block[1] == 1 and hot_block[2] == 0:
        hot_block_score.append(25)
    elif hot_block[1] >= 2 and hot_block[2] == 0:
        hot_block_score.append(35)
    else:
        hot_block_score.append(30)
    if hot_block[2] > 0:
        hot_block_score.append(10)
    else:
        hot_block_score.append(0)
        hot_block_score.append(5)
    score_list.append(hot_block_score)
    # 量
    volume_score = [0, 40, 50, 40, 30, 10, -15, -35]
    volume_rates = [0, 0.499, 0.649, 0.799, 0.949, 1.099, 1.249, 1.399]
    volume_score = [0, 35, 45, 55, 45, 35, 15, -5, -30]
    volume_rates = [0, 0.349, 0.499, 0.649, 0.799, 0.949, 1.099, 1.249, 1.399]
    volume_add = False
    for i in range(1, len(volume_rates)):
        if volume_rates[i - 1] <= volume_rate < volume_rates[i]:
@@ -118,7 +123,12 @@
        score_list.append(volume_score[-1])
    if limit_up_time:
        score_list.append(20)
        times = ["10:00:00", "11:30:00", "14:00:00", "15:00:00"]
        time_scores = [15, 10, 5, 0]
        for i in range(0, len(times)):
            if int(times[i].replace(":", "")) >= int(limit_up_time.replace(":", "")):
                score_list.append(time_scores[i])
                break
    else:
        score_list.append(0)
@@ -162,7 +172,7 @@
    k_form = code_nature_analyse.CodeNatureRecordManager.get_k_format(code)
    if k_form is None:
        k_form = [(True, ''), (False, ''), (False, ''), (False, ''), (False, ''), (False, '')]
        k_form = [(True, ''), (False, ''), (False, ''), (False, ''), (False, ''), (False, ''), (True, '')]
    source_datas.append(k_form)
    code_nature = code_nature_analyse.CodeNatureRecordManager.get_nature(code)
@@ -180,10 +190,6 @@
    source_datas.append(volume_rate)
    source_datas.append(limit_up_time)
    if limit_up_time and tool.trade_time_sub(limit_up_time, "10:00:00") < 0:
        limit_up_time = True
    else:
        limit_up_time = False
    # 获取成交大单
    deal_big_num = deal_big_money_manager.get_deal_big_money_num(code)
@@ -208,5 +214,5 @@
if __name__ == "__main__":
    global_data_loader.load_zyltgb()
    score = get_score("000779", 1.2, "15:00:01", True)
    score = get_score("603829", 1.2, "15:00:01", True)
    print(score)