Administrator
2023-02-16 92cb2dd75ea37b64b174f42ddd0b5b17d6a4634a
juejin.py
@@ -8,6 +8,8 @@
import json
import logging
import time as t
import numpy
import schedule
import gm.api as gmapi
@@ -252,7 +254,7 @@
# 获取到现价
def accpt_prices(prices):
def accept_prices(prices):
    print("价格代码数量:", len(prices))
    __actualPriceProcessor.save_current_price_codes_count(len(prices))
    # 采集的代码数量不对
@@ -401,6 +403,38 @@
        return data
    @staticmethod
    def get_now_price(codes):
        data = JueJinManager.get_gp_current_info(codes)
        prices = []
        for item in data:
            code = item["symbol"].split(".")[1]
            price = item["price"]
            prices.append((code, price))
        return prices
    # 获取代码的涨幅
    @staticmethod
    def get_codes_limit_rate(codes):
        datas = JueJinManager.get_gp_latest_info(codes)
        pre_price_dict = {}
        for data in datas:
            code = data["sec_id"]
            pre_close = tool.to_price(decimal.Decimal(str(data['pre_close'])))
            pre_price_dict[code] = pre_close
        now_prices = JueJinManager.get_now_price(codes)
        f_results = []
        for data in now_prices:
            code = data[0]
            price = data[1]
            pre_price = float(pre_price_dict.get(code))
            rate = round((price - pre_price) * 100 / pre_price, 2)
            f_results.append((code, rate))
        f_results.sort(key=lambda tup: tup[1])
        f_results.reverse()
        return f_results
    @staticmethod
    def get_gp_current_info(codes):
        account_id, s_id, token = getAccountInfo()
        symbols = gpcode_manager.get_gp_list_with_prefix(codes)
@@ -473,5 +507,16 @@
    return _fresult
# 根据涨幅高低分配交易窗口
def distribute_buy_win():
    if tool.trade_time_sub(tool.get_now_time_str(),"09:30:00") > 0:
        raise Exception("只能9:30之前重新分配窗口")
    datas = JueJinManager.get_codes_limit_rate(gpcode_manager.get_gp_list())
    matrix = numpy.array(datas)
    codes = matrix[:, 0].tolist()
    trade_gui.THSBuyWinManagerNew.fill_codes(codes)
if __name__ == '__main__':
    everyday_init()
    distribute_buy_win()