# transformer-quant **Repository Path**: Sultan-ST/transformer-quant ## Basic Information - **Project Name**: transformer-quant - **Description**: 基于Transformer架构的量化金融预测研究 - **Primary Language**: Python - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2023-04-25 - **Last Updated**: 2023-04-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # transformer-quant 基于Transformer架构的量化金融预测研究 ## 因子 | 名称 | 介绍 | 数量 | 备注 | | --------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---- | ---------------------------------- | | 开收高低 | 这分钟内的股价开收高低 | 4 | 使用过去1200条数据进行ZScore归一化 | | 成交量、成交金额 | | 2 | 使用过去1200条数据进行ZScore归一化 | | 分钟末尾买一至十、卖一至十价格 | | 20 | 使用过去1200条数据进行ZScore归一化 | | 分钟末尾买一至十、卖一至十数量 | | 20 | 使用过去1200条数据进行ZScore归一化 | | 上行/下行波动占比 | 过去n分钟内 $sum(上行r^2)/sum(r^2)$ | 2 | 25-已实现波动分解 | | 高频偏度 | $N^{1/2} *sum(r^3)/(sum(r^2))^{3/2}$ | 1 | 19-股票收益分布特征 | | 主买占比 | 主动买入成交金额/总成交金额 | 1 | 57-基于主动买入行为的选股因子 | | 平均单笔成交金额 | amount/trade_num | 0 | 不做因子,计算下面的因子需要用到 | | 平均单笔流入/流出金额占比 | total_inflow_amount/total_inflow_trade_num/AmtPerTrd | 2 | 46-日内分时成交中的玄机 | | 平均单笔流入流出金额之比 | AmtPreTrd_inFlow_ratio/AmtPreTrd_outFlow_ratio | 1 | 46-日内分时成交中的玄机 | | 量价相关性 | corr(close, vol) | 1 | 69-高频因子的现实与幻想 | | 大单资金净流入率 amt_netinflow_bigorder_ratio | | 1 | 46-日内分时成交中的玄机 | | 大单驱动涨幅 mom_bigorder | | 1 | 46-日内分时成交中的玄机 | | 大买/卖成交金额占比 | 大买成交金额/总成交金额 (大买是指大单买入,大单指的是成交量大于均值+N倍标准差的买卖单) | 2 | 56-买卖单数据中的alpha | | 大单成交金额占比、大买大卖成交金额占比差值 | 上面两个相加、相减 | 2 | 56-买卖单数据中的alpha | | 小买/卖主动成交度 | 小买(卖)单中主动成交的金额/小买(卖)单成交金额 (小、中、大单按照均值、均值+1倍标准差为界) | 2 | 85-买卖单主动成交中的隐藏信息 | | 买单/卖单集中度 | sum(买单/卖单成交金额^2)/总成交金额^2 | 2 | 56-买卖单数据中的alpha | | 买卖单集中度之和 | 上面两个相加 | 1 | 56-买卖单数据中的alpha | | 主买强度 | mean(主买金额)/std(主买金额) | 1 | 57-基于主动买入行为的选股因子 | | 净主买强度 | mean(主买金额-主卖金额)/std(主买金额-主卖金额) | 1 | 57-基于主动买入行为的选股因子 | 用到的分钟频因子: | 名称 | 数量 | | ------------------------------ | ---- | | 开收高低 | 4 | | 分钟成交量、成交金额 | 2 | | 分钟末尾买一至十、卖一至十价格 | 20 | | 分钟末尾买一至十、卖一至十数量 | 20 | | 主买占比 | 1 | | 主买强度 | 1 | | 高频偏度 | 1 | | 上行/下行波动占比 | 2 | | 量价相关性 | 1 | | 平均单笔流入/流出金额占比 | 2 | | 大单资金净流入率 | 1 | | 大单驱动涨幅 | 1 | 日频因子: | 名称 | 数量 | | ------------------- | ---- | | 大买/卖成交金额占比 | 2 | | 小买/卖主动成交度 | 2 | | 买单/卖单集中度 | 2 | ## TODO ```sh ## baseline # BiLSTM 1*256 zz500 15epoch lr0.001 python main.py --save-path "0-LSTM" --model "LSTM" ## Model # Transformer 2层256 python main.py --save-path "0-Trans" --model "Transformer" # Transformer+Time2Vec python main.py --save-path "0-base" ## Loss # TimeTrans IC python main.py --save-path "0-IC" --loss-fn "IC" # TimeTrans CCC python main.py --save-path "0-CCC" --loss-fn "CCC" # LSTM IC python main.py --save-path "0-LSTM-IC" --model "LSTM" --loss-fn "IC" # LSTM CCC python main.py --save-path "0-LSTM-CCC" --model "LSTM" --loss-fn "CCC" ## stock # hs300 python main.py --save-path "0-hs300" --stock "hs300" # zz1000 python main.py --save-path "0-zz1000" --stock "zz1000" # zz1800 python main.py --save-path "0-zz1800" --stock "hs300" "zz500" "zz1000" # LSTM hs300 python main.py --save-path "0-LSTM-hs300" --stock "hs300" --model "LSTM" ## minute_len python main.py --save-path "0-seq480" --seq-len 480 python main.py --save-path "0-seq720" --seq-len 720 python main.py --save-path "0-seq1200" --seq-len 1200 ## pred_time_points python main.py --save-path "0-8points" --pred-time-points "10:00:00" "10:30:00" "11:00:00" "11:45:00" "13:30:00" "14:00:00" "14:30:00" "15:15:00" ## daily factor python main.py --save-path "0-daily" --model "TimeTransformer+daily" ## final python main.py --save-path "0-final" --model "TimeTransformer+daily" --loss-fn "CCC" --stock "hs300" "zz500" "zz1000" --seq-len 480 --epoch-num 30 ``` 最终模型: IC、CCC hs300,zz1000,zz1800 长度480、720、1200 每日预测8次 结合日频因子 最终实验: zz1800+seq_len480或720+日频因子+CCC+30epoch +8points?