Workflow
机器学习因子选股月报(2025年9月)-20250831
Southwest Securities·2025-08-31 04:12

Quantitative Models and Construction Methods - Model Name: GAN_GRU Model Construction Idea: The GAN_GRU model combines Generative Adversarial Networks (GAN) for processing volume-price time-series features and Gated Recurrent Unit (GRU) for encoding time-series features to create a stock selection factor[4][13][41] Model Construction Process: 1. GRU Component: - Input features include 18 volume-price features such as closing price, opening price, turnover, and turnover rate[14][17][19] - Training data consists of the past 400 days of these features, sampled every 5 trading days, forming a 40x18 matrix to predict cumulative returns over the next 20 trading days[18] - Data preprocessing includes outlier removal and normalization at both time-series and cross-sectional levels[18] - Model architecture: Two GRU layers (128, 128) followed by an MLP (256, 64, 64), with the final output being the predicted return (pRet), which serves as the stock selection factor[22] - Training method: Semi-annual rolling training, with training conducted on June 30 and December 31 each year[18] - Optimization: Adam optimizer, learning rate of 1e-4, IC loss function, early stopping after 10 epochs, and a maximum of 50 training epochs[18] 2. GAN Component: - GAN consists of a generator (G) and a discriminator (D)[23] - Generator: Uses LSTM to preserve the time-series nature of the input features, transforming random noise into realistic data samples[33][37] - Loss function: LG=EzPz(z)[log(D(G(z)))]L_{G} = -\mathbb{E}_{z\sim P_{z}(z)}[\log(D(G(z)))] where z z represents random noise, G(z) G(z) is the generated data, and D(G(z)) D(G(z)) is the discriminator's output probability[24][25] - Discriminator: Uses CNN to process the two-dimensional volume-price time-series features, distinguishing between real and generated data[33][37] - Loss function: LD=ExPdata(x)[logD(x)]EzPz(z)[log(1D(G(z)))]L_{D} = -\mathbb{E}_{x\sim P_{data}(x)}[\log D(x)] - \mathbb{E}_{z\sim P_{z}(z)}[\log(1-D(G(z)))] where x x is real data, D(x) D(x) is the discriminator's output for real data, and D(G(z)) D(G(z)) is the output for generated data[27][29] - Training: Alternating updates of the generator and discriminator parameters until convergence[30] Model Evaluation: The GAN_GRU model effectively captures both time-series and cross-sectional features, leveraging the strengths of GAN and GRU for stock selection[4][13][41] --- Model Backtesting Results - GAN_GRU Model: - IC Mean: 11.36%[41][42] - ICIR (Non-Annualized): 0.88[42] - Turnover Rate: 0.83[42] - Recent IC: -2.56%[41][42] - 1-Year IC Mean: 8.94%[41][42] - Annualized Return: 38.09%[42] - Annualized Volatility: 23.68%[42] - IR: 1.61[42] - Maximum Drawdown: 27.29%[42] - Annualized Excess Return: 23.52%[41][42] --- Quantitative Factors and Construction Methods - Factor Name: GAN_GRU Factor Factor Construction Idea: Derived from the GAN_GRU model, this factor encodes volume-price time-series features to predict stock returns[4][13][41] Factor Construction Process: - The factor is generated using the output of the GAN_GRU model, which combines GAN-based feature generation and GRU-based time-series encoding[4][13][41] - The factor undergoes industry and market capitalization neutralization, as well as standardization, before being used for testing[22] Factor Evaluation: The GAN_GRU factor demonstrates strong predictive power across various industries, with consistent outperformance in recent years[4][13][41] --- Factor Backtesting Results - GAN_GRU Factor: - IC Mean: 11.36%[41][42] - ICIR (Non-Annualized): 0.88[42] - Turnover Rate: 0.83[42] - Recent IC: -2.56%[41][42] - 1-Year IC Mean: 8.94%[41][42] - Annualized Return: 38.09%[42] - Annualized Volatility: 23.68%[42] - IR: 1.61[42] - Maximum Drawdown: 27.29%[42] - Annualized Excess Return: 23.52%[41][42]