Quantlab3.3(这个版本兼容2.x主体,更简洁,性能更高,代码更易读,总之,建议大家尽快更新):
先上图——策略回测:
单因子分析(Alphalens-reloaded+streamlit整合):
1、底层重写:全自研回测。
2、支持streamlit gui:支持可视化回测、单因子分析。
3、带三大策略模板(大类资产配置,轮动和择时),附四个示例策略。
4、改造alphalens,并与streamlit进行整合,可方便进行单因子分析。
大家一定按照附件的目录结构,python3.9的环境。
安装 pip install -r requirements.txt。然后单独安装ta-lib:
pip install libs/TA_Lib-0.4.24-cp39-cp39-win_amd64.whl。
运行main.py即可。
今日计划:
1、静待花开策略。
2、stock ranker 1.0代码(lightgbm l2r)实现。
今天同样来做一个轮动策略——静待花开。
发现在一些平台,这个策略的参数需要打赏才能获得了。之前写过,在3.3我们刷新一下:
def Rolling_flower(): task = TaskRolling() task.name = '轮动策略-全球大类资轮动-静待花开' task.benchmark = '510300.SH' task.start_date = '20150115' task.symbols = [ '511220.SH', # 城投债 '512010.SH', # 医药 '518880.SH', # 黄金 '163415.SZ', # 兴全商业 '159928.SZ', # 消费 '161903.SZ', # 万家行业优选 '513100.SH' # 纳指 ] # 证券池列表 task.features = ["因子" ] task.feature_names = ["因子名"] task.rules_buy = ['买入信号'] task.rules_sell = ["卖出信号"] task.order_by = '排序因子' task.topK = 8 return task
年化13.9%,回撤15%。大家前往星球下载代码体验。
第2件事情,还实现StockRanker,为后续多因子机器学习做好准备。
def train(self, x_train, y_train, q_train, model_save_path): ''' 模型的训练和保存 :param x_train: :param y_train: :param q_train: :param model_save_path: :return: ''' train_data = lgb.Dataset(x_train, label=y_train, group=q_train) params = { 'task': 'train', # 执行的任务类型 'boosting_type': 'gbrt', # 基学习器 'objective': 'lambdarank', # 排序任务(目标函数) 'metric': 'ndcg', # 度量的指标(评估函数) 'max_position': 10, # @NDCG 位置优化 'metric_freq': 1, # 每隔多少次输出一次度量结果 'train_metric': True, # 训练时就输出度量结果 'ndcg_at': [10], 'max_bin': 255, # 一个整数,表示最大的桶的数量。默认值为 255。lightgbm 会根据它来自动压缩内存。如max_bin=255 时,则lightgbm 将使用uint8 来表示特征的每一个值。 'num_iterations': 200, # 迭代次数,即生成的树的棵数 'learning_rate': 0.01, # 学习率 'num_leaves': 31, # 叶子数 # 'max_depth':6, 'tree_learner': 'serial', # 用于并行学习,‘serial’:单台机器的tree learner 'min_data_in_leaf': 30, # 一个叶子节点上包含的最少样本数量 'verbose': 2 # 显示训练时的信息 } gbm = lgb.train(params, train_data, valid_sets=[train_data]) # 这里valid_sets可同时加入train_data,val_data gbm.save_model(model_save_path)
传统排序学习的代码都比较简洁,与分类和回归不同之处在于,排序学习还需要一个qtrain的数据。这个咱们明天细说。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103566
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!