四金_作业
由bqf6mces创建,最终由bqf6mces 被浏览 25 用户
多轮因子评估后,因子计算方式复杂,模型容易出现幻觉,将数据表信息,补充到上下文中。
将模型修改为kimi:
-
api_key="sk-",
-
base_url="https://api.moonshot.cn/v1"
-
model="kimi-k2-0711-preview",
\
多轮验证后最终输入token爆炸,优化上下文:
1、将所有DAI因子计算的结果命名为table_1,其他通过get_data新抽取的数据命名为table_{index}
2、每次因子计算时,将table_1带入提示词,下一轮因子计算基于当前table_1继续进行,并清理get_data获取的table_{index}临时表
6-7轮评测后, table_1 数据信息:
['date', 'instrument', 'amount', 'turn', '(amount / turn)', 'c_zscore((amount / turn))', 'close', 'm_stddev(close, 20)', 'c_zscore(m_stddev(close, 20))', '(c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))', 'c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20))))', 'm_corr(amount, close, 20)', 'c_zscore(m_corr(amount, close, 20))', '(c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))) + c_zscore(m_corr(amount, close, 20)))', 'c_zscore((c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))) + c_zscore(m_corr(amount, close, 20))))', 'total_market_cap', '(1 / total_market_cap)', 'c_zscore((1 / total_market_cap))', '(c_zscore((c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))) + c_zscore(m_corr(amount, close, 20)))) * c_zscore((1 / total_market_cap)))', 'c_zscore((c_zscore((c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))) + c_zscore(m_corr(amount, close, 20)))) * c_zscore((1 / total_market_cap))))', 'm_stddev(turn, 20)', 'c_zscore(m_stddev(turn, 20))', '(c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))', 'c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20))))', 'm_pct_rank(close, 20)', 'c_zscore(m_pct_rank(close, 20))', '(c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) + c_zscore(m_pct_rank(close, 20)))', 'c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) + c_zscore(m_pct_rank(close, 20))))', 'm_corr(amount, turn, 20)', 'c_zscore(m_corr(amount, turn, 20))', '(c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20)))', 'c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20))))', 'pb', '(1 / pb)', 'c_zscore((1 / pb))', '(c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20)))) * c_zscore((1 / pb)))', 'c_zscore((c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20)))) * c_zscore((1 / pb))))', 'm_corr(amount, m_pct_rank(close, 20), 20)', 'c_zscore(m_corr(amount, m_pct_rank(close, 20), 20))', '(c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20)))) * c_zscore(m_corr(amount, m_pct_rank(close, 20), 20)))']
因子:
(c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20)))) * c_zscore(m_corr(amount, m_pct_rank(close, 20), 20)))
历史评测结果:
- 因子 c_zscore((amount / turn)) 的 IC 为 0.0067, 因子累计收益为 -0.251, 年化收益为 -0.14, 夏普比例为 -0.794, 年化波动率为 0.171, 最大回撤为 -0.278
- 因子 c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))) 的 IC 为 0.0148, 因子累计收益为 -0.106, 年化收益为 -0.059, 夏普比例为 -0.084, 年化波动率为 0.274, 最大回撤为 -0.358
- 因子 c_zscore((c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))) + c_zscore(m_corr(amount, close, 20)))) 的 IC 为 -0.0175, 因子累计收益为 -0.245, 年化收益为 -0.141, 夏普比例为 -0.543, 年化波动率为 0.231, 最大回撤为 -0.369
- 因子 c_zscore((c_zscore((c_zscore((c_zscore((amount / turn)) - c_zscore(m_stddev(close, 20)))) + c_zscore(m_corr(amount, close, 20)))) * c_zscore((1 / total_market_cap)))) 的 IC 为 0.0042, 因子累计收益为 -0.304, 年化收益为 -0.178, 夏普比例为 -0.839, 年化波动率为 0.208, 最大回撤为 -0.377
- 因子 c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) 的 IC 为 0.0093, 因子累计收益为 -0.488, 年化收益为 -0.304, 夏普比例为 -1.0, 年化波动率为 0.313, 最大回撤为 -0.542
- 因子 c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) + c_zscore(m_pct_rank(close, 20)))) 的 IC 为 -0.0211, 因子累计收益为 0.108, 年化收益为 0.057, 夏普比例为 0.346, 年化波动率为 0.253, 最大回撤为 -0.301
- 因子 c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20)))) 的 IC 为 0.0056, 因子累计收益为 -0.239, 年化收益为 -0.138, 夏普比例为 -0.493, 年化波动率为 0.241, 最大回撤为 -0.332
- 因子 c_zscore((c_zscore((c_zscore((c_zscore((amount / turn)) / c_zscore(m_stddev(turn, 20)))) * c_zscore(m_corr(amount, turn, 20)))) * c_zscore((1 / pb)))) 的 IC 为 -0.0051, 因子累计收益为 -0.2, 年化收益为 -0.114, 夏普比例为 -0.313, 年化波动率为 0.27, 最大回撤为 -0.271
通过多轮反思,table_1越来越大,冗余数据越来越多,容易对模型造成幻觉,以及整体结果不可控。
对于因子分析,最后因子的计算公式及其复杂,分析回测时间也会随之增加。
https://bigquant.com/codesharev3/81aaa9fd-5712-4c12-8a9b-b67804d4cc2a
\