编写策略/AIStudio
由jliang创建,最终由jliang 被浏览 2992 用户
简单介绍
AIStudio是BigQuant平台以AI为核心的Cloud IDE,可以用于量化投资数据分析、因子挖掘、模型训练、回测和交易以及更广泛的程序开发和AI模型开发训练等。
快速入门
启动AIStudio
点击顶部导航栏中的【编写策略】即可启动AIStudio,或点击AIStudio超链接直接跳转。
初次启动可能需要一些时间,请耐心等待。
启动过程中可以点击"签到领宽币",获得50宽币的奖励。
\
设置计算资源规格(可选)
点击左下角资源规格,页面上方会弹出算力资源规格选项面板。
点击想要切换的规格(8档规格可选,其中最后三档为GPU资源),右下角会弹出二次确认选项卡。
二次确认后即可切换到对应计算资源规格。规格切换后,计费即开始。
建议执行任务运行时再更换算力规格等级,避免浪费。
\
新建策略
- 点击左侧边栏中的“+”号图标开始新建策略
若在侧边栏中没有找到右图所示图标,可在插件应用市场中下载“新建策略”插件。
- 选择“可视化AI策略”模板(原StockRanker-DAI策略模板)
\
-
重命名并按Enter按键确认新建
\
新建成功后策略会自动打开。
\
编辑策略
如何编辑策略请参考BigQuant 学院内的教学视频。
运行策略
点击全部运行即可开始运行策略,策略运行需要一段时间,具体由计算资源量和计算复杂程度决定。
运行中会实时输出运行日志。
运行后可以查看策略运行结果。
\
提交模拟交易
运行策略的本质是使用历史数据对量化策略进行样本内测试,存在过拟合、先验数据的可能性,模拟交易旨在策略完工后,使用每天市场的增量数据对策略进行更为贴近实际市场的样本外测试。
点击右上角的“提交模拟交易”按钮,开始提交模拟交易。
在提交模拟交易面板配置模拟交易参数并确定提交。
在AIStudio中点击右上角的我的交易按钮或者点击左上角的BigQuant图标打开菜单,查看我提交的模拟交易。
或者点击首页-导航栏-我的交易,查看我提交的模拟交易。
欢迎进入BigQuant的策略开发空间,在这里我们将引导你一步一步创建属于您的人工智能量化交易策略。
从0到1开发一个AI量化策略
AI量化策略操作流程
纸上得来终觉浅,绝知此事要躬行。
首先,访问bigquant.com首页并登录,点击 "编写策略" 按钮进入策略开发空间
其次,通过点击➕号图标,选择可视化AI策略模板(原StockRanker-DAI策略模板)
然后,确定策略名称,直接点击回车键,生成策略
最终,你的AI量化策略如下
AI量化策略主要有特征抽取、数据标注、模型、策略回测四个部分,依次介绍。
(1)抽取特征
抽取特征即抽取因子,因子直接决定了策略效果的好坏,抽取特征是一名专业量化交易员90%的工作,除了抽取特征模块,其他几个模块基本上无需改动。我们把鼠标选中m1模块并右键,然后点击"展开或收起属性栏",进入因子sql语句编写窗口。
我们只需编辑DAI SQL语句即可抽取特征
在上图示例中,close、high、open、low是预计算因子,BigQuant提供了数千个预计因子,文档见 量化因子。m_lag是表达式算子,主要用于预计算因子的计算处理加工,BigQuant提供了数千个表达式算子,以便用户能结合基础的预计算因子衍生计算出各类复杂的因子,表达式算子文档见 DAI数据平台。
(2)数据标注
数据标注是通过对股票打一个标签,使得能辨别出股票的好坏,一般以股票未来一段时间的收益率作为标注。
同抽取特征类似,我们鼠标放在m2模块上能打开数据标注的编写窗口。
在这个SQL语句中,最重要的是 m_lead(close, 5) / m_lead(open, 1) AS _future_return 这一句,表示我们用未来5天收盘价除以未来1天开盘价的比值作为标注。
(3)模型训练和预测
模型的训练和预测都是m3模块完成,该模块右键能打开属性窗口,如下:
其中,训练开始日期、训练结束日期确定了训练集的时间范围,预测开始日期、预测结束日期确定了预测集的时间范围。训练集用于算法训练,以便得到最终模型。预测集在最终模型上预测,得到预测结果。训练集和预测集时间要完全不能交叉,以免算法使用到未来数据。日期参数均可以勾选并绑定交易日,绑定后模拟交易运行的时候,该日期就是最新的交易日期。
学习率、树的数量、叶节点数量是模型超参数,一般不用调整。
(4)策略回测
策略回测是指将模型的预测结果用于构建投资组合,模型预测结果一般是代表着未来股票上涨的概率,所以我们可以将预测结果较大的股票构建投资组合进行买入。
m5模块主要是用来策略回测得到回测报表,具体的交易逻辑见该模块的各个事件函数。右键该模块即可打开事件函数的编辑窗口,我们可以按需修改交易逻辑和规则。
策略回测的各个事件函数及变量定义可以参考文档:BigTrader交易引擎
回测完成后,会输出回测报表,如下:
回测报表中的绩效指标公式及其含义说明见文档:
https://bigquant.com/wiki/doc/562w55wl5zue5rwl57ut5p6c5oyh5qch6km6kej-odCSHxlMER
\
什么是机器学习?
人工智能技术得到了飞速发展,其在各个领域的运用也不断取得成果。机器学习被评为人工智能中最能体现人类智慧的技术,因此人工智能量化策略可以理解为将机器学习应用在量化投资领域。
人类对新问题做出有效决策依靠的是过去积累的许多经验,并对经验进行利用,而对机器来说,“经验”以“数据”方式存在,机器从过去众多“数据”中总结规律,生产出模型,并用模型对新数据进行预测,这个过程就可理解为“机器学习”。
机器学习所研究的内容,是从数据中产生模型,然后给定新的数据后,模型会输出预测结果。
可以看出,机器学习求解问题的思路和人类几千年来求解问题的思路是完全一致的,我们接下来看看AI量化策略的开发流程。
\
开发AI量化策略的流程
使用机器学习开发AI量化策略的流程如下图所示:
假设我们要预测个股未来n天的收益率,然后将其进行排序,使用该算法在新的一天数据上进行预测,可以向我们推荐应该买入哪些股票。我们结合上图介绍使用StockRanker算法来开发量化策略的流程。
- 首先,数据标注,即确定目标。因为是监督学习,因此需要对收益率数据进行标注。
- 其次,特征抽取。特征构造是至关重要的一步,特征构造的好将会直接影响模型效果和策略表现。在这一步,你在金融行业的专业知识和投资经验将发挥很大的作用。
- 然后,模型训练。在特征构造完毕后,就可以训练好StockRanker算法并得到具体的模型。
- 然后,模型预测。根据StockRanker算法在预测集数据上进行预测,得到模型预测结果。。
- 最后,策略回测。根据StockRanker预测结果构建投资组合,进行策略回测,获取策略绩效表现。
\
如何理解stockranker算法
BigQuant提供了众多量化投资AI算法 ,StockRanker 是 BigQuant为选股量化而设计,核心算法主要是排序学习和梯度提升树:
StockRanker = 选股 + 排序学习 + 梯度提升树
StockRanker有如下特点:
- 选股:股票市场和图像识别、机器翻译等机器学习场景有很大不同。StockRanker充分考虑股票市场的特殊性,可以同时对全市场5000只股票的数据进行学习,并预测出股票排序
- 排序学习 (Learning to Rank):排序学习是一种广泛使用的监督学习方法 (Supervised Learning),比如推荐系统的候选产品、用户排序,搜索引擎的文档排序,机器翻译中的候选结果排序等等。StockRanker 开创性的将排序学习和选股结合,并取得显著的效果 。
- 梯度提升树 (GBDT):有多种算法可以用来完成排序学习任务,比如SVM、逻辑回归、概率模型等等。StockRanker使用了GBDT,GBDT是一种集成学习算法,在行业里使用广泛。
StockRanker的领先效果还得益于优秀的工程实现,我们在学习速度、学习能力和泛化性等方面,都做了大量的优化,并且提供了参数配置,让用户可以进一步根据需要调优。
关闭AIStudio
点击左下角的齿轮图标打开设置菜单,点击“停止开发环境”即可立刻结束AIStudio的运行(并释放资源、停止计费),否则AIStudio会在休眠倒计时结束后自动停止运行。
\
关键概念
我们将一些AIStudio中涉及到的和新引入的概念和操作汇集成了一篇速查文档,希望能降低您的理解开销。
自动休眠
为了避免资源浪费,AIStudio引入倒计时休眠机制,休眠时间默认为120分钟。
休眠时间可以手动修改,点击左下角休眠时间入口可以打开休眠时间选择面板。
免费资源最长可以选择480分钟(到期需要再次手动续时),付费资源可以选择“不关机”。
可视化开发环境
我们将原有Notebook环境中的可视化低代码开发功能迁移到了 AIStudio 环境。您依然可以通过简单地拖放组件轻松地构建策略界面。我们在 AIStudio 中实现了可视化低代码开发功能与其他功能的无缝集成,大大提高了开发效率。
关于可视化功能的具体使用请参考 学院。
计算资源规格、消费、充值、查询
AIStudio中的计算资源采用实时租赁、实时计费、灵活扩缩容的底层设计,在AIStudio启动后,资源规格可以灵活切换,按规格与使用时间计费,使用时间的最小单位是1分钟。
后台会实时生成账单、扣减您账户内的宽币余额;如果宽币不足,您会收到通知,同时AIStudio将会在一小段时间后被提前结束,并在再次拥有足够的余额前只能以免费的计算资源规格启动。您可以通过签到、完成任务、参与活动和宽币充值等方式获得宽币。
计算资源规格与宽币充值、订单和账单查询入口在首页-导航栏-您的ID-账户充值,您还可以点击 这里 直接进入对应页面。
GPU
区别于以前的按天租赁,您现在可以通过实时分钟级租赁、FAI云加速集群和任务管理三种方式使用GPU。
具体方法请参考对应词条。
\
实时计算资源用量查询
AIStudio暂时只支持实时计算资源用量查询,具体方法是先点击左上角BigQuant图标,在菜单中选择终端-新建终端。
之后在弹出的终端中输入“htop”后按Enter键,即可查询AIStudio当前实时计算资源用量。
\
插件
- QuantChat- AI金融LLM终端
- QuantLLM是专注量化投资,可以用于金融数据分析、因子挖掘、策略生成、代码编写等。
- QuantChat是BigQuant研发的下一代金融投资终端,依托于BigQuant平台大规模能力。
- AIStudio是BigQuant平台以AI为核心的Cloud IDE。进入 AIStudio 开始使用QuantChat。
点击打开 QuantChat使用文档
\
- FAI - 分布式云计算加速集群
FAI是BigQuant研发的云加速集群调度应用,可以动态调用服务器集群级的算力,加速海量数据处理、高频因子挖掘、并行超参搜索、滚动训练等任务的运行。
点击打开 FAI使用文档
\
- 任务管理
todo
\
- BigQuant Color Theme - 切换主题颜色
BigQuant Color Theme插件可以提供AIStudio内的主题配色切换服务。
插件一般默认安装,如果插件没有被安装,可以在扩展中搜索安装。
点击【设置->主题颜色】即可切换配色方案。
\
常见问题
如何在每次启动时默认打开签到页
欢迎页面有每日AIStudio签到赠送宽币任务,默认弹出。部分用户可能因为设置原因,该页面不再默认打开,如果仍想默认弹出界面,可以:
- 打开设置
- 搜索‘startup’并将设置的默认值改为‘welcomepage’
\
如何在AIStudio中安装python包TODO
推荐使用BigQuant AIStudio,新版开发环境,支持自己安装python包
\
如何在AIStudio中显示文件最后修改时间
AIStudio支持显示文件最后修改时间,但是未默认开启该功能。
如果想开启该功能,需要修改两个设置项:
- 将explorer.showModifyTime勾选
- 将explorer.sortOrder选择modified
然后刷新页面即可。
\
如何重置开发环境
重置AIStudio
当AIStudio因为环境包安装问题或者插件问题、设置问题变得难以使用时,可以分别调用重置开发环境功能和重置插件功能,将AIStudio的重置到初始状态。
在AIStudio中按下Ctrl (Command) + Shift + P,在弹出输入框的“>”后输入“aistudio”,选择“AIStudio: 重置开发环境”,即可重置AIStudio开发环境,这个操作将清除所有安装的包。
在AIStudio中按下Ctrl (Command) + Shift + P,在弹出输入框的“>”后输入“aistudio”,选择“AIStudio: 重置AIStudio插件与设置”,即可重置AIStudio插件与设置,这个操作会将插件与设置重置到初始状态。
\
开发环境
AIStudio 开发环境
集成开发环境(Integrated Development Environment,简称IDE)是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本、并编译打包成为可用的程序,
AIStudio是BigQuant平台以AI为核心的Cloud IDE,可以用于量化投资数据分析、因子挖掘、模型训练、回测和交易等以及更广泛的程序开发和AI模型开发训练。
\
用户界面
AIStudio的本质是一个代码编辑器,AIStudio用户界面的左侧是资源管理器,显示您可以访问的所有文件和文件夹,右侧是编辑器,显示您已打开的文件的内容。
AIStudio由以下这几个部分构成:
- 活动栏
- 侧边栏
- 编辑器
- 面板
- 状态栏
以下对每个部分的操作分别说明。
侧边栏
显示诸如新建面板、FAI云加速集群面板、QuantChat面板、文件浏览器等的不同视图,以协助您处理项目。
编辑器
编辑文件的主要区域。您可以根据需要在垂直和水平方向上并排打开任意数量的编辑器。
面板
位于编辑器区域下方的附加视图空间默认情况下,它包含输出、调试信息、错误和警告以及终端。面板还可以移动到左侧或右侧以获得更多垂直空间。
状态栏
显示已打开项目及所编辑文件的相关信息。
常用策略模版介绍
上述两个模版,前者是传统的因子选股策略,没有用到机器学习深度学习算法,就是基于某个指标排序,过滤得到一些票池,进行组合的构建;后者是使用StockRanker算法开发的一个AI量化选股策略,用到了训练集数据进行模型训练,并在预测集上进行预测得到预测结果得分score,再根据这个得分score来构建投资组合。
\
如何使用新的开发环境适配旧策略
之前很多用户使用的是老的开发环境的策略(非aistudio环境,只是jupyter notebook环境),这里特称旧策略,我们简单下旧策略如何进行修改适配可以在新环境aistudio下回测和模拟交易。策略模版代码如下:
代码里有详尽的注释,特别强调几点:
首先,没有了“代码列表”模块,数据的开始日期和结束日期是通过数据抽取(DAI)模块来控制的;
其次,模块的输入输出不再是 DataSource.write_df 而是dai.DataSource.write_df ,因此后续模块的输入输出都是通过dai的这个接口来保存数据;
最后,回测模块为BigTrader,不在是HFTrader模块,新模块不需要“代码列表”这个输入。
如果大家还有疑惑或者优化改进的地方,请联系小q或者在知识库发贴我们来帮你进行旧策略的适配改造。
\
使用案例
BigQuant AIStudio 用于程序员笔试和电话面试
\
反馈收集
尊敬的用户们:
您好。为了更好地优化和改进AIStudio,我们特此发起关于该产品意见反馈收集。我们团队诚挚地邀请您分享在使用过程中的体验、建议及问题,您的反馈将对我们的产品持续改进起到至关重要的作用。
- 反馈方式一:微信扫码添加客服小Q为好友,向小Q反馈使用建议
- 反馈方式二:在本帖中留言告知我们您的宝贵意见
让我们携手共同打造更优质的产品体验,期待您的参与。提供有效反馈的用户还将随机获赠少量宽币哦~
感谢您的支持与关注!\n
用户储存管理
{{heading_numbering_zhCN}}