原创内容第837篇,专注智能量化投资、个人成长与财富自由。这几天折腾一了圈智能量化平台的gui,基本上确定了选型:思考:结合大模型智能体平台,我们知能投研能做什么?自动获取信息,结构化数据,自动去生成因子,自动评价因子效果,然后生成策略,动态调整策略。传统量化投资,或者说深度学习驱动的量化投资,都有一个问题,就是策略是“静态”的。指标也好,因子也好,都是对过去规律的“拟合”。因子在某段时间“恰好”有效罢了。一个动态的量化系统,应该是开放式的,这是主观交易的优点,而智能体可能可以替换一部分“主观”交易。


import os
from dotenv import load_dotenv
from langchain_community.adapters.openai import convert_openai_messages
from core.tools.api import logger
from core.tools.openrouter_config import env_path
from core.utils.logging_config import ERROR_ICON, SUCCESS_ICON
def read_file_2_list(filepath):
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
text = f.readlines()
return text
sample_json = """
{
"expr": 生成的因子表达式,
"desc": 对该因子表达式的解释说明
}
"""
from langchain_openai import ChatOpenAI
import json as json
# 加载环境变量
if os.path.exists(env_path):
load_dotenv(env_path, override=True)
logger.info(f"{SUCCESS_ICON} 已加载环境变量: {env_path}")
else:
logger.warning(f"{ERROR_ICON} 未找到环境变量文件: {env_path}")
# 验证环境变量
api_key = os.getenv("API_KEY")
class FactorGPTAgent:
def __init__(self):
self.sources = [x.strip() for x in read_file_2_list('worldquant_101.txt')]
optional_params = {
"response_format"
: {"type": "json_object"}
}
# openai_api_key = KIMI_KEY
self.model = ChatOpenAI(temperature=0, openai_api_key=api_key, model='moonshot-v1-8k',
base_url="https://api.moonshot.cn/v1", max_retries=1, model_kwargs=optional_params)
def build_prompt(self):
prompt = [{
"role": "system",
"content": "你是一个量化分析师. 你可以通过阅读多个alpha因子表达式,总结其内在规律,并且可以创新性的生成可用的因子表达式。"
"对于生成的表达式,你能够解释其有效性,并且能够用清晰简洁的语言解释其各个变量的含义。\n "
}, {
"role": "user",
"content": f"指令描述: 生成因子表达式"
f"样例数据:{self.sources}\n"
f"你的任务学习以上资源之后,总结其规律,输出一个同类型表达式。\n "
f"书写表达式时,请仅使用样例数据里的函数,每次生成1个,,生成的表达式,不要带Alpha#xxx,期望因子的相关性低\n"
f"Please return nothing but a JSON in the following format:\n"
f"{sample_json}\n "
}]
return prompt
def run(self):
lc_messages = convert_openai_messages(self.build_prompt())
response = self.model.invoke(
lc_messages).content
print(response)
return json.loads(response)
if __name__ == '__main__':
FactorGPTAgent().run()


2025-03-25 14:33:26 - api_calls - INFO - ✓ 已加载环境变量: D:\work\AGI\.env
2025-03-25 14:33:26 - api_calls - INFO - 🔄 使用基础 URL: https://api.moonshot.cn/v1
2025-03-25 14:33:26 - api_calls - INFO - 🔄 使用模型: moonshot-v1-32k
2025-03-25 14:33:28 - api - INFO - ✓ 已加载环境变量: D:\work\AGI\.env
{
"expr": "(-1 * rank(correlation(rank(((close - open) / open)), rank(volume), 5)))",
"desc": "这个因子表达式计算了股票开盘价与收盘价之差与开盘价的比值的排名与成交量排名之间的相关性,并且取其负值。具体来说,'((close - open) / open)' 表示的是开盘价与收盘价之间的百分比变化,这个比值越大,说明价格从开盘到收盘的变化幅度越大。'rank(volume)' 是成交量的排名,成交量越大,排名越高。'correlation' 函数计算这两个排名之间的相关性,衡量了价格变化幅度与成交量之间的关联程度。最后取负值,意味着我们寻找负相关性,即价格变化幅度大时,成交量反而小,或者价格变化幅度小时,成交量大的情况。这种因子可能捕捉到了市场流动性或者价格操纵的迹象。"
}
把眼光放长远一点:比如想象五年后,十年后的理想状态。把目标放大一点:比如先赚它个1000个W或者一个小目标。
每周三定为咱们「AGI通用智能实验室」发布源代码的日子。
网站上的不少同学的策略创下新高,有点“不可思议”,当然系统和策略代码都是交付的,欢迎大家提出不同的看法,未来函数什么的,是肯定没有的。(http://ailabx.com/mall)