kr_gld的作业
实现了 :
xgboost 和 stockrank 的策略。以及 超参测试
相同因子的情况下, stockrank 要比 xgboost 更好些。
实现 :
xgboost 的策略
因子设计
c_pct_rank(dividend_yield_ratio) as rank_div_ratio
c_pct_rank(total_market_cap) as rank_cap
c_pct_rank(close) as real_close
c_rank(close / m_lag(close, 20)) as rank_mount
c_pct_rank(m_avg(turn,20)) as rank_turn
m.tune
result = M.tune.run(
"search",
[
# 叶子节点数量为30, 树的数量为20
{"m5.number_of_leaves": 30, "m5.number_of_trees": 20, '__outputs__': ['m7']},
# 叶子节点数量为40, 树的数量为30
{"m5.number_of_leaves": 50, "m5.number_of_trees": 30, '__outputs__': ['m7']},
# 叶子节点数量为80, 树的数量为40
{"m5.number_of_leaves": 80, "m5.number_of_trees": 60, '__outputs__': ['m7']},
# 叶子节点数量为100, 树的数量为50
{"m5.number_of_leaves": 100, "m5.number_of_trees": 50, '__outputs__': ['m7']},
],
)
实现:
stockrank 的策略
因子设计:
c_pct_rank(dividend_yield_ratio) as rank_div_ratio
c_pct_rank(total_market_cap) as rank_cap
c_pct_rank(close) as real_close
c_rank(close / m_lag(close, 20)) as rank_mount
c_pct_rank(m_avg(turn,20)) as rank_turn
m.tune
[
{"m5.number_of_leaves": 10, "m5.number_of_trees": 20, 'outputs': ['m6']},
{"m5.number_of_leaves": 20, "m5.number_of_trees": 20, 'outputs': ['m6']},
{"m5.number_of_leaves": 30, "m5.number_of_trees": 30, 'outputs': ['m6']},
{"m5.number_of_leaves": 40, "m5.number_of_trees": 30, 'outputs': ['m6']},
],
BigQuant CodeShare