# 量化策略 **Repository Path**: wezly/quantitative-strategy ## Basic Information - **Project Name**: 量化策略 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-06-04 - **Last Updated**: 2022-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 量化策略选股及回测 ### 量化策略框架 搭建量化策略框架,该框架将包含以下五个类(class): - DataRead: 数据的读取和存储 - OrderManage: 订单信息存储与更新 - Strategy: 量化策略的具体步骤 - BackTesting: 回测的指标及指标的储存 - GraphPlot: 指标的可视化 #### Class1: DataRead **支持读取自己所选时间段的股票收盘价,换手量,PE(TTM)等因子** 通过 Joinquant 平台中的get_price函数调取所选股票的相应因子 * 按照每个因子的dataframe格式形成一个csv文件(index: timeSeries, column: stock_code) * 当进行回测时,调取每个因子的csv文件作为该因子的数据集 * **该类支持实时从Joinquant平台读取数据:在登入帐号后,可通过get_price实时调取因子值** #### Class2: OrderManage **支持查询持仓信息及历史订单信息** 1. 通过buy及sell函数进行持仓信息更新及订单记录 * buy函数记录股票名称、买入数量、买入价格和时间 * sell函数中记录订单量(技术性地在sell股票时记录订单),并返回当前股票市值 2. 通过历史订单信息计算指标,例如:pnl #### Class3: Strategy **支持给出策略名,并运行相应策略** ##### Strategy1: find_max_LSTM 1. 在股票池中挑选过去一个月收益最高的 choose_nums 支股票 2. LSTM预测这 choose_nums 支股票在接下来 predict_days 的价格走向 3. 选取涨幅最大的 hold_nums 支股票进行持仓 4. 清仓频率为每3个月一次 ##### Strategy2: Drop/Rise Top K Strategy 1. 通过所有股票n天前以及1日前的股票价格计算浮动大小 2. 挑选价格下降/上升最大的前k个股票进行持仓 #### Class4: BackTesting **支持不同策略在历史数据集的运行,并计算并可视化统计指标如市值,胜手率等** ```python class BackTesting(object): """ 回测函数 支持不同策略在历史数据集的运行,并计算并可视化统计指标如市值,胜手率等; 当前回测系统需要策略实现如下接口: class StrategyInterface: def init_strings(self): ''' 返回当前策略的名称 :return: ''' def selected_stocks(self, data): ''' 传入历史数据,返回给回测系统相应交易信号,目前信号即策略决定的股票代码列表 :param data: 当前交易日前因子价格 :return: 策略决定的股票代码列表及状态 ''' 目前回测系统支持两种交易模式: 周期清仓交易: 按固定时间间隔进行清仓,并将最新数据传给策略,由策略决定当前买入的股票, 信号买卖交易: 每天将最新数据传递给策略,由策略决定当前是否进行买入、卖出或者无操作, 两种交易模式均以 [['股票代码1','状态'], ['股票代码2', '状态'],.....] 的形式作为信号传递给回测系统 """ def run(self): """ 根据策略传入的多支股票买卖数和状态进行买卖,状态标记为'buy' or 'sell' 买卖基于现有的self.value等权购买 要求策略给出[['股票代码1','状态'], ['股票代码2', '状态'],.....] 并将传入值封装至selected_stock函数 :return: """ ``` #### Class5: BackTesting **可视化不同的统计指标如市值,胜手率等** **市值可视化** **胜率可视化**