Quantlab3.8源码发布:整合AlphaGPT大模型自动因子挖掘以及zvt股票数据框架

AI量化实验室

今天我们升级Quantlab:

代码已经发布:

图片

1、引入大模型LLM为因子挖掘的框架之一(基于KIMI,LangGraph)。

2、整合zvt为A股数据源。

01 AlphaGPT整合到Quantlab中

图片

主流程基于LangGraph已经走通:

from concurrent.futures import ThreadPoolExecutor

from langchain_community.tools.file_management import MoveFileTool
from langchain_core.messages import HumanMessage
from langchain_core.utils.function_calling import convert_to_openai_function
from langchain_openai import ChatOpenAI
from langgraph.graph import Graph, END
from agents.factor_gpt import FactorGPTAgent
from agents.eval_gpt import EvalGPTAgent
import os

# 这里配置自己的KIMI_KEY,可以持久化在系统用户变量里。
KEY = ''
if 'OPENAI_API_KEY' in os.environ:
    KEY = os.environ['OPENAI_API_KEY']

print(KEY)
optional_params = {
            "response_format": {"type": "json_object"}
        }
model = ChatOpenAI(temperature=0, model='moonshot-v1-8k', openai_api_key=KEY,
                                base_url="https://api.moonshot.cn/v1", max_retries=1, model_kwargs=optional_params)


workflow = Graph()
workflow.add_node("factor", FactorGPTAgent().run)
workflow.add_node("eval", EvalGPTAgent().run)
workflow.add_edge('factor', 'eval')
workflow.add_edge('eval', END)

workflow.set_entry_point("factor")

chain = workflow.compile()

chain.invoke({})

运算结果如下:

{

“expr”: “(-1 * rank((Ts_Rank(correlation(rank(open), rank(volume), 5)) * rank((returns < 0) ? close : open)))”,

“desc”: “这个因子表达式首先计算开盘价和成交量的排名的相关性,然后将这个相关性与开盘价和收盘价的排名进行交互。接着,我们对每日收益是否为负进行判断,如果为负则使用收盘价,否则使用开盘价。最后,将这个结果取负值并进行排名。这个因子可能捕捉了市场开盘和收盘价格行为与成交量之间的某种关系,以及这种关系如何受到市场收益的影响。”

}

EvalGPT开始自动计算这个因子表达式,并评估它的风险、收益特性:

开始计算:(-1 * rank((Ts_Rank(correlation(rank(open), rank(volume), 5)) * rank((returns < 0) ? close : open)))

02 整合zvt为A股数据源

客观讲,zvt作为A股数据框架还是不错的,可以节省不少时间。

多数的框架,要么就是可以自行导入csv,或者整合一个商用数据库。zvt把免费与商用接口都实现了,而且低门槛就获取了数据。

代码在如下位置:

图片

一行代码,获取A股股票列表:

图片

图片

from zvt.domain import Stock

Stock.record_data(provider="em")

下面这段代码,可以获取股票后复权日线数据:

entity_ids = ["stock_sz_000001", "stock_sz_000338", "stock_sh_601318"]
Stock1dHfqKdata.record_data(provider="em", entity_ids=entity_ids, sleeping_time=1)

图片数据查询也是统一接口:

df = Stock1dHfqKdata.query_data(code='000338', provider='em')
print(df)

包括财务数据都是可以统一下载的(后续下载完成,可以考虑打包给大家使用)。

这样我们就可以全市场数据,包括价量数据,财务因子数据,进行选股和择时量化分析。

大模型落地&AGI

星球近期目标:围绕自媒体内容智能创作,包含但不限于:图文,视频。从策划主题,信息收集,内容撰写,自动发布环节。通过大模型Agent的方式来完成。

吾日三省吾身

这两天听书,从苏东坡、陆游到阿加莎.克里斯蒂,挺好。

之前学习很多理财、个人成长类、心理类的书籍的感觉就是,仁者见仁。

肯定有用,但看多了,道理就是那么些道理,反复地说。

其实多数都是显学。

只是他们说得比较系统罢了。

而传记类、历史类的不一样,它就是“真实”发生的,或者人生的一些际遇。

人生裹挟在历史的洪流中,有时候顺遂,有时候惊天巨变,谁不是局中人呢?谁又能左右历史进程呢?

时光白驹过隙,历史的车轮滚滚向前。

我们要做的,无外乎向外探寻世界,而内找回自己。如果还能做点对他人有价值的事情,就再好不过了。

只是当下,太多人都在忙于生存。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103445
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注