Administrator
1 天以前 ecfbb56f1ce77b2288d272fa1ed2a02623e92d5a
bug修复/接口修改
8个文件已修改
89 ■■■■ 已修改文件
code_attribute/code_volumn_manager.py 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/data_server.py 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/huaxin_trade_server.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/l2_trade_test.py 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/test.py 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/test_k_datas.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/test_l2.py 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/kpl_data_constant.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_attribute/code_volumn_manager.py
@@ -107,7 +107,7 @@
    def get_radical_buy_refer_volume_info(self, code, limit_up_price):
        """
        TODO 更改正确
        获取参考量信息
        获取扫入的参考量:
        参考额小于3.14亿就取90天参考量
        否则就取最近5天的参考量
@@ -120,10 +120,11 @@
        has_limit_up_in_60 = True
        if k_format and not k_format[13]:
            has_limit_up_in_60 = False
        # (量, 日期)
        volume_info = self.__max_volume_info_in_5days.get(code, None)
        if volume_info and volume_info[0] * limit_up_price >= 9e8 and has_limit_up_in_60:
            return volume_info
        return int(self.get_reference_volume_as_money_y(code) * 1e8 / limit_up_price)
        return self.get_reference_volume_info(code)
    def get_volume_rate_refer_in_5days(self, code, total_sell_volume=0):
        """
@@ -256,6 +257,17 @@
        # 默认为5亿
        return 5
    def get_reference_volume_info(self, code):
        """
        获取传统参考量信息
        @param code:
        @return:(量,日期)
        """
        if code in self.__reference_volume_as_money_y_dict:
            return self.__reference_volume_as_money_y_dict.get(code)
        max60 = global_util.max60_volumn.get(code)
        return max60
if __name__ == "__main__":
    print(CodeVolumeManager().get_volume_rate("000059"))
servers/data_server.py
@@ -34,7 +34,7 @@
from trade.order_statistic import DealAndDelegateWithBuyModeDataManager
from trade.trade_data_manager import RadicalBuyDealCodesManager
from utils import global_util, tool, data_export_util, init_data_util, huaxin_util
from code_attribute import gpcode_manager, code_nature_analyse
from code_attribute import gpcode_manager, code_nature_analyse, code_volumn_manager
from log_module import log_analyse, log_export, async_log_util
from l2 import code_price_manager, l2_data_util, transaction_progress
from cancel_strategy.s_l_h_cancel_strategy import HourCancelBigNumComputer, LCancelRateManager, \
@@ -1205,11 +1205,28 @@
                                    block_rank_info = max_info
                        except:
                            pass
                        data.append((block_rank_info, list(blocks) if blocks else []))
                        # 板块信息:(板块身位, 最总板块, 开盘啦涨停原因, 开盘啦推荐原因)
                        history_limit_up_data = LimitUpDataConstant.get_history_limit_up_data(code)
                        data.append((block_rank_info, list(blocks) if blocks else [],
                                     history_limit_up_data[2] if history_limit_up_data else '',
                                     history_limit_up_data[6] if history_limit_up_data else ''))
                        # 交易状态:
                        trade_state = trade_manager.CodesTradeStateManager().get_trade_state(code)
                        data.append(trade_state)
                        # 参考量信息
                        refer_volume_info = code_volumn_manager.CodeVolumeManager().get_radical_buy_refer_volume_info(
                            code, limit_up_price)
                        if refer_volume_info:
                            data.append(refer_volume_info[1])
                        else:
                            data.append("--")
                        # L后撤单比例
                        rate_info = LCancelRateManager.get_cancel_rate(code)
                        if rate_info:
                            data.append(rate_info[0])
                        else:
                            data.append("--")
                        fdatas.append(data)
                    except Exception as e1:
                        logger_debug.exception(e1)
@@ -1224,7 +1241,7 @@
                # 大单概览
                l2_down_data = LCancelBigNumComputer().statistic_l_down_watch_indexes_of_big_order_info(code)
                # total_big_order_info = LCancelBigNumComputer().statistic_total_big_order_info(code)
                response_data = json.dumps({"code": 0, "data":  l2_down_data})
                response_data = json.dumps({"code": 0, "data": l2_down_data})
            except Exception as e:
                logger_debug.exception(e)
servers/huaxin_trade_server.py
@@ -406,7 +406,7 @@
            # 09:25之后才开始记录
            if datas and tool.get_now_time_str() > '09:25:00':
                for d in datas:
                    MaxPriceInfoManager().set_price_info(d[0], price=d[1], time=d[9], sell1_info=(d[10], d[11]))
                    MaxPriceInfoManager().set_price_info(d[0], price=d[1], time_str=d[9], sell1_info=(d[10], d[11]))
        except Exception as e:
            logger_debug.exception(e)
test/l2_trade_test.py
@@ -317,21 +317,22 @@
            l2_transaction_data_processor.HuaXinTransactionDatasProcessor().process_huaxin_transaction_datas(code, d)
    def test_cancel(self):
        code = "603300"
        code = "002383"
        l2.l2_data_util.load_l2_data(code)
        TradeBuyQueue.get_traded_index = mock.Mock(return_value=(3742, False))
        l2.cancel_buy_strategy.RDCancelBigNumComputer._RDCancelBigNumComputer__watch_indexes_cache ={ code: {3686, 3691, 3693, 3694, 3699, 3700}}
        l2.cancel_buy_strategy.RDCancelBigNumComputer().need_cancel(code, 4370, 4372)
        TradeBuyQueue.get_traded_index = mock.Mock(return_value=(21836, False))
        l2.cancel_buy_strategy.RDCancelBigNumComputer._RDCancelBigNumComputer__watch_indexes_cache = {
            code: {21851, 21844, 21854}}
        l2.cancel_buy_strategy.RDCancelBigNumComputer().need_cancel(code, 22197, 22217)
class TestTradedProgress(unittest.TestCase):
    @unittest.skip("跳过此单元测试")
    def test_get_progress(self):
        code = "000925"
        code = "002383"
        l2.l2_data_util.load_l2_data(code)
        # l2.l2_data_util.local_today_datas[code] = l2.l2_data_util.local_today_datas[code][:898]
        TradeBuyQueue.get_traded_index = mock.Mock(return_value=(10, False))
        TradeBuyQueue.get_traded_index = mock.Mock(return_value=(21836, False))
        buy_progress_index = TradeBuyQueue().compute_traded_index(code, "9.76",
                                                                  [9999, 1506], "09:32:45")
        print("获取到交易进度:", buy_progress_index)
test/test.py
@@ -7,6 +7,8 @@
from code_attribute import gpcode_manager
from l2.huaxin import l2_huaxin_util
from third_data import history_k_data_manager
from third_data.history_k_data_manager import HistoryKDataManager
from utils import tool
@@ -89,10 +91,15 @@
if __name__ == '__main__':
    q = queue.Queue()
    if not  q.empty():
        data = q.get(block=False)
        print(data)
    def callback_function(res):
        print("回调数据:", res)
    def exec(call_back):
        call_back({"code": 0})
    exec(callback_function)
if __name__ == '__main__1':
    # 加载每一天的代码的涨停价
test/test_k_datas.py
@@ -60,7 +60,7 @@
    print(",".join(codes))
if __name__ == '__main__':
    code = "002809"
    code = "601138"
    limit_up_price = 13.01
    volumes_data = init_data_util.get_volumns_by_code(code, 150)
    volumes = init_data_util.parse_max_volume_new(code, volumes_data[:60])
test/test_l2.py
@@ -61,12 +61,12 @@
                    "SubSeq": int(row[7]), "BuyNo": int(row[8]),
                    "SellNo": int(row[9]),
                    "ExecType": int(row[5])}
            if item["TradePrice"] <=0:
            if item["TradePrice"] <= 0:
                continue
            # print(item)
            if item["SecurityID"] not in l2_data_manager_dict:
                l2_data_manager_dict[item["SecurityID"]] = L2TransactionDataManager(item["SecurityID"], True)
            l2_data_manager_dict[item["SecurityID"]].add_transaction_data(item)
            l2_data_manager_dict[item["SecurityID"]].add_transaction_data(item, big_order_money_threshold=60e4)
    for code in l2_data_manager_dict:
        __L2TransactionDataManager: L2TransactionDataManager = l2_data_manager_dict.get(code)
        if __L2TransactionDataManager.big_accurate_buy_order_queue.qsize() or __L2TransactionDataManager.big_accurate_sell_order_queue.qsize():
@@ -75,6 +75,6 @@
if __name__ == "__main__":
    print( tool.trade_time_add_second(tool.get_now_time_str(), -3600).replace(":", ""))
    print(tool.trade_time_add_second(tool.get_now_time_str(), -3600).replace(":", ""))
    parse_transaction()
third_data/kpl_data_constant.py
@@ -391,6 +391,16 @@
            return set()
        return cls.__history_code_data_dict.keys()
    @classmethod
    def get_history_limit_up_data(cls, code):
        """
        获取今日历史涨停数据
        @return:
        """
        if not cls.__history_code_data_dict:
            return None
        return cls.__history_code_data_dict.get(code)
if __name__ == "__main__":
    LimitUpCodesBlockRecordManager()