从专业量化投资的角度,核心第一要务是因子。
因子挖掘,分为手工构造,机器挖掘,以及星球在尝试的GPT挖掘。
手工注定是低效的,尽管现在在很小小型私募里仍然有效。
我们重心放在后两者上。
gpt大家可以先看这几篇文章:
Quantlab3.9代码:内置大模型LLM因子挖掘,全A股数据源以及自带GUI界面
AlphaGPT v0.1发布后答疑——基于大模型的智能因子挖掘框架(代码)
机器挖掘当下也有两个方向:gplearn和强化学习。在这DeepAlpha我们都覆盖了:DeepAlpha通用因子挖掘:支持GPlearn遗传算法和深度强化学习挖掘因子(代码+数据下载)
但这个系统有个缺陷,基于qlib,另外它生成的因子还没有办法在Quantlab直接使用、回测。
Qlib的表达式系统有一个天生的缺陷,就是不支持截面因子!——因为它的表达式是基于一个个类,而类是针对单个symbol来计算的。截面计算,需要group by date。
在咱们代码目录AlphaGPT下,我带了WorldQuant101的因子表达式集合,给GPT few-shot学习用的。
大家仔细看下,满眼的rank,这就是典型的“截面函数”。——qlib不支持且无法支持!
Alpha#3: (-1 * correlation(rank(open), rank(volume), 10))
比如这个三号因子,就是10日开盘价与交易量的负相关性,在投资上,我们称之为“价量背离”。——一个很好理解的因子,它不是用价格和成交量的值来算相关系数,因为量纲不一样,取rank后,量纲就一致了。
因此rank是一个很通用的函数。
qlib只能算时序,不能算截面,就限制了它的表达式引擎不可用。
我们重定并改进了这个缺点。
咱们同样在dataloader下计算因子:
所有数据加载到一个DataFrame里后,选group_by_date,按日期分组,然后调用相应的函数,比如rank即可。
@calc_by_date def rank(se: pd.Series): ret = se.rank() return ret
我们后续会还原WorldQuant101里这100多个因子:
其实就是把常用函数实现就好了,比如 delay, delta, rank
import pandas as pd from .expr_utils import calc_by_symbol, calc_by_date @calc_by_symbol def delay(se: pd.Series, periods=5): return se.shift(periods=periods) @calc_by_date def delta(se: pd.Series, periods=20): se_result = se - se.shift(periods=periods) return se_result
测试代码如下:
import numpy as np import pandas as pd from config import DATA_DIR from datafeed.expr import calc_expr sh300 = pd.read_csv(DATA_DIR.joinpath('quotes').joinpath('000300.SH.csv').resolve()) sh905 = pd.read_csv(DATA_DIR.joinpath('quotes').joinpath('000905.SH.csv').resolve()) sh016 = pd.read_csv(DATA_DIR.joinpath('quotes').joinpath('000016.SH.csv').resolve()) df = pd.concat([sh300, sh905, sh016]) df['date'] = df['date'].apply(lambda x: str(x)) df.dropna(inplace=True) df.set_index(['date', 'symbol'], inplace=True) df = df.loc[df.index.get_level_values('date') > '20100101', :] # Alpha#101: ((close - open) / ((high - low) + .001)) se = calc_expr(df, expr='((close - open) / ((high - low) + .001))') df['alpha_101'] = se # Alpha#12: (sign(delta(volume, 1)) * (-1 * delta(close, 1))) se = calc_expr(df, expr='(sign(delta(volume, 1)) * (-1 * delta(close, 1)))') df['alpha_12'] = se print(df)
计算两个alpha,比如简单:
测试代码在如下位置:
公用函数其实就那么一些,我们实现一下就好了(之前是qlib的标准,我会按WorldQuant101的标准重新刷一轮):
abs(x),log(x),sign(x) = standard definitions
分别为:取绝对值、对数值、正负号(正数返回1,负数返回-1)
rank(x) = 截面rank
股票的排名,数值从1-最后,若输入值含nan,则nan不参与排名,输出为股票对应排名的boolean值(排名所占总位数的百分比)
delay(x,d) = value of x d days ago
x变量d天之前的值
correlation(x,y,d) = time-serial correlation of x and y for the past d days
x和y两个变量d天以来的值的相关系数
covariance(x,y,d) = time-serial covariance of x and y for the past d days
x和y两个变量d天以来的值的协方差
scale(x,a) = rescaled x such that sum(abs(x))=a (the default is a=1)
将x中的值标准化,使x的绝对值的和为a,默认a=1
delta(x,d) = today’s value of x minus the value of x d days ago
指定enddate的x值减去d天之前的x值
signedpower(x,a) = x^a
x值的a次方,如果x为一个list或者series,则为x中每一个值的a次方
decay_linear(x,d) = weighted moving average over the past d days with linearly decaying weights d,d-1,…,1 (rescaled up to 1)
x中时间从最远到最近的值,分别乘权重d,d-1,…,1(权重要进行标准化,使和为1)再求和
ts_min(x,d) = time-series min over the past d days
x中d天内最小的值
ts_max(x,d) = time-series max over the past d days
x中d天内最大的值
ts_argmin(x,d) = which day ts_min(x,d) occurred on
ts_min(x,d)发生在d天中的第几天,最远的天为第一天
ts_argmax(x,d) = which day ts_max(x,d) occurred on
ts_max(x,d)发生在d天中的第几天,最远的天为第一天
ts_rank(x,d) = time-series rank in the past d days
x中,最后一天的值,在这d天中,排多少名,最后输出的名次为boolean值(即该名次占总排名数的百分比)
min(x,d) = ts_min(x,d)
当遇到min函数时,当ts_min函数处理——-注意!!实际上遇到min时,当min中的输入不是(x,d)而是(x,y)时,取x、y两个值中的最小值
max(x,d) = ts_max(x,d)
当遇到max函数时,当ts_max函数处理——注意!!实际上遇到max时,当max中的输入不是(x,d)而是(x,y)时,取x、y两个值中的最大值
sum(x,d) = time-series sum over the past d days
d天以来x值的和
product(x,d) = time-series product over the past d days
d天以来x值的乘积
stddev(x,d) = moving time series standard deviation over the past d days
d天以来,x值的标准差
从因子函数库的实现角度分析:
1、单时间序列计算:比如log, sign,abs这种,numpy都有函数,技术分析类的,可以直接调用ta-lib。
2、单时间序列的rolling, 比如shift, delta,使用pd.Series的rolling加apply即可。
3、多序列直接运算,比如加,减,金叉之类的。直接序列运算即可。
4、多序列多为双序列窗口计算,比如correlation等。这种计算有性能问题,我还在想办法,RSRS计算就是一个典型场景,计算high和low两个序列的rolling的beta。
后续这些因子引擎与gplearn和强化学习自动挖掘因子打通,形成一个“自动化的因子工厂”!
代码已经发布至星球:
01 强化学习因子挖掘
这是答应过星友好久的事情,但肯定会重启。
DeepAlpha通用因子挖掘:支持GPlearn遗传算法和深度强化学习挖掘因子(代码+数据下载)
之前这个版本是基于qlib的,qlib不支持截面因子,而且数据更新不那么方便。——后续做全A股市场多因子的时候,没准还是会重启qlib。
def _get_data(self) -> Tuple[torch.Tensor, pd.Index, pd.Index]:
features = ['
这里是数据初始化,本身也是把所有instrument的数据加载进入,转成“三维”的 Tensor。
token是因子表达式的基本要素:
class Token: def __repr__(self): return str(self) class ConstantToken(Token): def __init__(self, constant: float) -> None: self.constant = constant def __str__(self): return str(self.constant) class DeltaTimeToken(Token): def __init__(self, delta_time: int) -> None: self.delta_time = delta_time def __str__(self): return str(self.delta_time) class FeatureToken(Token): def __init__(self, feature: FeatureType) -> None: self.feature = feature def __str__(self): return '
生成如下的“逆波兰“表达式:
print(f'ref: Add(Ref(Abs($low),-10),Div($high,$close))')
最近抽时间,要把qlib重构掉,生成的因子表达式可以与Quantlab回测融合到一起。
02 web (app)开发
最近从flet到nicegui再到webapp(uniapp和ionic)。
uniapp和ionic vue的调研过程发现一个问题,难的不是ui层面,而是vue框架的问题。
都说Vue比React上手曲线平滑。
但真正有经验的程序员可能不这么看。
vue对js的魔改,实在让人看不懂,本身js就没规律,你又自己建立一套规矩,真还不如react的中规中举!
其实仔细想来,web及webapp是我们的核心诉求(桌面和App不是)。那么策略呈现,使用bootstrap是可以完成的,本身就是移动优先,而且果仁本身就是bootstrap+jquery开发。
唯独策略可视化这个交互比较多罢了。——而这一点nicegui是可以完成的。
最后想还,还来基于Django后端驱动 + Bootstrap(CSS框架,少数jquery辅助),可以加上jquery或者考虑 React(CDN模式,之前尝试过vue3,还是对vue3的感觉一般般。)
最近技术调研一个深刻的体会的:所有的选型都有其代价。
大团队无所谓,考虑效果,性能,可维护性为主。
而小团队,甚至是“一人企业”,更多就是找自己擅长的。
——如无必要,勿增实体。
吾日三省吾身
居安要思危。
在经济下行周期,每个人都要考虑自己的退路与出路。
光环是公司或平台给的,离开了,你还剩下什么?
这就不是人生意义的问题,而是生存问题。
我们不要混淆这两个层面: 在生存中谈意义。
至少基本财务安全,甚至财务基本自由的时候谈意义,否则专业赚钱!
原创文章第511篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由”。
我们在大类资产轮动策略的基础上,加上RSRS择时,当RSRS<0.7时平仓。RSRS因子的说明:阻力支撑指标RSRS策略:光大证券研报复现
name = "全球大类资产轮动+RSRS择时"
desc = "全球大类资产轮动:强者恒强"
symbols = ["563300.SH", "510300.SH", "510500.SH", "512100.SH", "159915.SZ", "159967.SZ", "159920.SZ", "513100.SH", "513500.SH", "518880.SH", "159985.SZ", "513520.SH", "510050.SH"]
algo_period = "RunDaily"
algo_period_days = 20 #在RunDays时有效
rules_buy = [] at_least_buy = 1 rules_sell = ['rsrs_18<0.7'] at_least_sell = 1 order_by = "roc_20" topK = 1 dropN = 0 b_ascending = 0 algo_weight = "WeightEqually" algo_weight_fix = [] feature_names = ['roc_20','rsrs_18'] features = ['roc(close,20)','slope_pair(high,low,18)'] start_date = "20100101" end_date = "" commission = 0.0001 slippage = 0.0001 init_cash = 1000000 benchmark = "510300.SH"
代码已经发布至星球:
吾日三省吾身
个人不太关注所谓网红,但有一个非知名网红除外,那就是郭宇。
28岁从字节财富自由退休。
个人觉得他的状态是最好的,戴了皇冠也不承其重。
如何获得财富自由: 郭宇在字节跳动工作期间获得了一定的期权,随着公司估值的大幅增长,这些期权成为了他实现财富自由的关键。
据分析,他在2014年进入字节跳动时获得的期权应该在50万股左右,而字节跳动的估值从2014年的5亿美金涨到了1000亿美金,使得他的身价达到了近亿级别。
除了在字节跳动的期权,郭宇还通过投资股市和其他资产逐渐积累了财富。
他在日本购置了房产,并通过房地产投资获得了稳定的收益。
郭宇在28岁时决定退休,移居日本,专注于温泉酒店和写作事业。
我让KIMI总结的
“如果你在火箭上有一个位置,别计较坐在哪儿。先上去再说”。——谢丽尔·桑德伯格,谷歌前营销部门负责人。
其实做为同行,郭宇的职业履历还好。
他的转折点在于字节跳动的期权。这是第一桶金的来源,然后通过投资(美股+日本房产)获得杠杆倍增。
关于财富自由,有一个“悖论”——你得先有钱。
本金越大,你“自然而然”会理财,会懂得控制风险。——后者虽然也有难度,但学习起来要容易得多。很多人暴雷是性格使然。但前者,需要运气、机遇各种偶然因素作用在一起。
作为同行,我们经历过几次可以坐上火箭的机会,但没有珍惜。可以说运气相关,也可以说没有财商教育的积累,理解不到股权的价值。
如果说总结起来,郭宇厉害的地方,在于他对财富的思考能力。知道股权的价值,同步善于理财投资。
郭宇在股市和房地产市场的投资决策主要包括以下几点: 1、长期持有潜力股股票:郭宇持有了腾讯股票长达6年的时间,这只股票在此期间翻了近10倍,为他带来了巨额收益。
2、分散投资:在清仓腾讯股票后,郭宇并没有停止投资,而是慢慢分散投资到美股、港股,通过这些多元化的投资策略,他在股市大涨大跌中也赚取了一些收益。
3、房地产投资:郭宇在日本投资了多套房产,并从这些房产中获得稳定的租金收益。他的投资策略不仅限于购买房产,还包括关注不动产投资市场,将股市的资金转移到房地产市场中。
先有钱,然后做好投资组合配置。
试图通过小资金,炒股的方式,直接实现财富自由,这个路径很难。除了江湖野史传说——还没有见过正式的记录。
量化投资或者说AI量化投资,也不是所谓的圣杯。——我们的目标是帮你更轻松、稳健地获得20%的年化收益。
历史文章:
风险平价之上的目标波动率控制7%,年化7%。(源代码+数据)
今日策略:全球资产风险平价,年化8%,就图个省心(源代码+数据)
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
Quantlab3.9代码:内置大模型LLM因子挖掘,全A股数据源以及自带GUI界面
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
+ f.name.lower() for f in self._features]
df = self._load_exprs(features)
df = df.stack().unstack(level=1)
dates = df.index.levels[0] # type: ignore
stock_ids = df.columns
values = df.values
values = values.reshape((-1, len(features), values.shape[-1])) # type: ignore
return torch.tensor(values, dtype=torch.float, device=self.device), dates, stock_ids
这里是数据初始化,本身也是把所有instrument的数据加载进入,转成“三维”的 Tensor。
token是因子表达式的基本要素:
生成如下的“逆波兰“表达式:
最近抽时间,要把qlib重构掉,生成的因子表达式可以与Quantlab回测融合到一起。
02 web (app)开发
最近从flet到nicegui再到webapp(uniapp和ionic)。
uniapp和ionic vue的调研过程发现一个问题,难的不是ui层面,而是vue框架的问题。
都说Vue比React上手曲线平滑。
但真正有经验的程序员可能不这么看。
vue对js的魔改,实在让人看不懂,本身js就没规律,你又自己建立一套规矩,真还不如react的中规中举!
其实仔细想来,web及webapp是我们的核心诉求(桌面和App不是)。那么策略呈现,使用bootstrap是可以完成的,本身就是移动优先,而且果仁本身就是bootstrap+jquery开发。
唯独策略可视化这个交互比较多罢了。——而这一点nicegui是可以完成的。
最后想还,还来基于Django后端驱动 + Bootstrap(CSS框架,少数jquery辅助),可以加上jquery或者考虑 React(CDN模式,之前尝试过vue3,还是对vue3的感觉一般般。)
最近技术调研一个深刻的体会的:所有的选型都有其代价。
大团队无所谓,考虑效果,性能,可维护性为主。
而小团队,甚至是“一人企业”,更多就是找自己擅长的。
——如无必要,勿增实体。
吾日三省吾身
居安要思危。
在经济下行周期,每个人都要考虑自己的退路与出路。
光环是公司或平台给的,离开了,你还剩下什么?
这就不是人生意义的问题,而是生存问题。
我们不要混淆这两个层面: 在生存中谈意义。
至少基本财务安全,甚至财务基本自由的时候谈意义,否则专业赚钱!
原创文章第511篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由”。
我们在大类资产轮动策略的基础上,加上RSRS择时,当RSRS<0.7时平仓。RSRS因子的说明:阻力支撑指标RSRS策略:光大证券研报复现
代码已经发布至星球:
吾日三省吾身
个人不太关注所谓网红,但有一个非知名网红除外,那就是郭宇。
28岁从字节财富自由退休。
个人觉得他的状态是最好的,戴了皇冠也不承其重。
如何获得财富自由: 郭宇在字节跳动工作期间获得了一定的期权,随着公司估值的大幅增长,这些期权成为了他实现财富自由的关键。
据分析,他在2014年进入字节跳动时获得的期权应该在50万股左右,而字节跳动的估值从2014年的5亿美金涨到了1000亿美金,使得他的身价达到了近亿级别。
除了在字节跳动的期权,郭宇还通过投资股市和其他资产逐渐积累了财富。
他在日本购置了房产,并通过房地产投资获得了稳定的收益。
郭宇在28岁时决定退休,移居日本,专注于温泉酒店和写作事业。
我让KIMI总结的
“如果你在火箭上有一个位置,别计较坐在哪儿。先上去再说”。——谢丽尔·桑德伯格,谷歌前营销部门负责人。
其实做为同行,郭宇的职业履历还好。
他的转折点在于字节跳动的期权。这是第一桶金的来源,然后通过投资(美股+日本房产)获得杠杆倍增。
关于财富自由,有一个“悖论”——你得先有钱。
本金越大,你“自然而然”会理财,会懂得控制风险。——后者虽然也有难度,但学习起来要容易得多。很多人暴雷是性格使然。但前者,需要运气、机遇各种偶然因素作用在一起。
作为同行,我们经历过几次可以坐上火箭的机会,但没有珍惜。可以说运气相关,也可以说没有财商教育的积累,理解不到股权的价值。
如果说总结起来,郭宇厉害的地方,在于他对财富的思考能力。知道股权的价值,同步善于理财投资。
郭宇在股市和房地产市场的投资决策主要包括以下几点: 1、长期持有潜力股股票:郭宇持有了腾讯股票长达6年的时间,这只股票在此期间翻了近10倍,为他带来了巨额收益。
2、分散投资:在清仓腾讯股票后,郭宇并没有停止投资,而是慢慢分散投资到美股、港股,通过这些多元化的投资策略,他在股市大涨大跌中也赚取了一些收益。
3、房地产投资:郭宇在日本投资了多套房产,并从这些房产中获得稳定的租金收益。他的投资策略不仅限于购买房产,还包括关注不动产投资市场,将股市的资金转移到房地产市场中。
先有钱,然后做好投资组合配置。
试图通过小资金,炒股的方式,直接实现财富自由,这个路径很难。除了江湖野史传说——还没有见过正式的记录。
量化投资或者说AI量化投资,也不是所谓的圣杯。——我们的目标是帮你更轻松、稳健地获得20%的年化收益。
历史文章:
风险平价之上的目标波动率控制7%,年化7%。(源代码+数据)
今日策略:全球资产风险平价,年化8%,就图个省心(源代码+数据)
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
Quantlab3.9代码:内置大模型LLM因子挖掘,全A股数据源以及自带GUI界面
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
+ self.feature.name.lower()
class OperatorToken(Token):
def __init__(self, operator: Type[Operator]) -> None:
self.operator = operator
def __str__(self): return self.operator.__name__
class SequenceIndicatorToken(Token):
def __init__(self, indicator: SequenceIndicatorType) -> None:
self.indicator = indicator
def __str__(self): return self.indicator.name
BEG_TOKEN = SequenceIndicatorToken(SequenceIndicatorType.BEG)
SEP_TOKEN = SequenceIndicatorToken(SequenceIndicatorType.SEP)
生成如下的“逆波兰“表达式:
最近抽时间,要把qlib重构掉,生成的因子表达式可以与Quantlab回测融合到一起。
02 web (app)开发
最近从flet到nicegui再到webapp(uniapp和ionic)。
uniapp和ionic vue的调研过程发现一个问题,难的不是ui层面,而是vue框架的问题。
都说Vue比React上手曲线平滑。
但真正有经验的程序员可能不这么看。
vue对js的魔改,实在让人看不懂,本身js就没规律,你又自己建立一套规矩,真还不如react的中规中举!
其实仔细想来,web及webapp是我们的核心诉求(桌面和App不是)。那么策略呈现,使用bootstrap是可以完成的,本身就是移动优先,而且果仁本身就是bootstrap+jquery开发。
唯独策略可视化这个交互比较多罢了。——而这一点nicegui是可以完成的。
最后想还,还来基于Django后端驱动 + Bootstrap(CSS框架,少数jquery辅助),可以加上jquery或者考虑 React(CDN模式,之前尝试过vue3,还是对vue3的感觉一般般。)
最近技术调研一个深刻的体会的:所有的选型都有其代价。
大团队无所谓,考虑效果,性能,可维护性为主。
而小团队,甚至是“一人企业”,更多就是找自己擅长的。
——如无必要,勿增实体。
吾日三省吾身
居安要思危。
在经济下行周期,每个人都要考虑自己的退路与出路。
光环是公司或平台给的,离开了,你还剩下什么?
这就不是人生意义的问题,而是生存问题。
我们不要混淆这两个层面: 在生存中谈意义。
至少基本财务安全,甚至财务基本自由的时候谈意义,否则专业赚钱!
原创文章第511篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由”。
我们在大类资产轮动策略的基础上,加上RSRS择时,当RSRS<0.7时平仓。RSRS因子的说明:阻力支撑指标RSRS策略:光大证券研报复现
代码已经发布至星球:
吾日三省吾身
个人不太关注所谓网红,但有一个非知名网红除外,那就是郭宇。
28岁从字节财富自由退休。
个人觉得他的状态是最好的,戴了皇冠也不承其重。
如何获得财富自由: 郭宇在字节跳动工作期间获得了一定的期权,随着公司估值的大幅增长,这些期权成为了他实现财富自由的关键。
据分析,他在2014年进入字节跳动时获得的期权应该在50万股左右,而字节跳动的估值从2014年的5亿美金涨到了1000亿美金,使得他的身价达到了近亿级别。
除了在字节跳动的期权,郭宇还通过投资股市和其他资产逐渐积累了财富。
他在日本购置了房产,并通过房地产投资获得了稳定的收益。
郭宇在28岁时决定退休,移居日本,专注于温泉酒店和写作事业。
我让KIMI总结的
“如果你在火箭上有一个位置,别计较坐在哪儿。先上去再说”。——谢丽尔·桑德伯格,谷歌前营销部门负责人。
其实做为同行,郭宇的职业履历还好。
他的转折点在于字节跳动的期权。这是第一桶金的来源,然后通过投资(美股+日本房产)获得杠杆倍增。
关于财富自由,有一个“悖论”——你得先有钱。
本金越大,你“自然而然”会理财,会懂得控制风险。——后者虽然也有难度,但学习起来要容易得多。很多人暴雷是性格使然。但前者,需要运气、机遇各种偶然因素作用在一起。
作为同行,我们经历过几次可以坐上火箭的机会,但没有珍惜。可以说运气相关,也可以说没有财商教育的积累,理解不到股权的价值。
如果说总结起来,郭宇厉害的地方,在于他对财富的思考能力。知道股权的价值,同步善于理财投资。
郭宇在股市和房地产市场的投资决策主要包括以下几点: 1、长期持有潜力股股票:郭宇持有了腾讯股票长达6年的时间,这只股票在此期间翻了近10倍,为他带来了巨额收益。
2、分散投资:在清仓腾讯股票后,郭宇并没有停止投资,而是慢慢分散投资到美股、港股,通过这些多元化的投资策略,他在股市大涨大跌中也赚取了一些收益。
3、房地产投资:郭宇在日本投资了多套房产,并从这些房产中获得稳定的租金收益。他的投资策略不仅限于购买房产,还包括关注不动产投资市场,将股市的资金转移到房地产市场中。
先有钱,然后做好投资组合配置。
试图通过小资金,炒股的方式,直接实现财富自由,这个路径很难。除了江湖野史传说——还没有见过正式的记录。
量化投资或者说AI量化投资,也不是所谓的圣杯。——我们的目标是帮你更轻松、稳健地获得20%的年化收益。
历史文章:
风险平价之上的目标波动率控制7%,年化7%。(源代码+数据)
今日策略:全球资产风险平价,年化8%,就图个省心(源代码+数据)
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
Quantlab3.9代码:内置大模型LLM因子挖掘,全A股数据源以及自带GUI界面
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
+ f.name.lower() for f in self._features]
df = self._load_exprs(features)
df = df.stack().unstack(level=1)
dates = df.index.levels[0] # type: ignore
stock_ids = df.columns
values = df.values
values = values.reshape((-1, len(features), values.shape[-1])) # type: ignore
return torch.tensor(values, dtype=torch.float, device=self.device), dates, stock_ids
这里是数据初始化,本身也是把所有instrument的数据加载进入,转成“三维”的 Tensor。
token是因子表达式的基本要素:
生成如下的“逆波兰“表达式:
最近抽时间,要把qlib重构掉,生成的因子表达式可以与Quantlab回测融合到一起。
02 web (app)开发
最近从flet到nicegui再到webapp(uniapp和ionic)。
uniapp和ionic vue的调研过程发现一个问题,难的不是ui层面,而是vue框架的问题。
都说Vue比React上手曲线平滑。
但真正有经验的程序员可能不这么看。
vue对js的魔改,实在让人看不懂,本身js就没规律,你又自己建立一套规矩,真还不如react的中规中举!
其实仔细想来,web及webapp是我们的核心诉求(桌面和App不是)。那么策略呈现,使用bootstrap是可以完成的,本身就是移动优先,而且果仁本身就是bootstrap+jquery开发。
唯独策略可视化这个交互比较多罢了。——而这一点nicegui是可以完成的。
最后想还,还来基于Django后端驱动 + Bootstrap(CSS框架,少数jquery辅助),可以加上jquery或者考虑 React(CDN模式,之前尝试过vue3,还是对vue3的感觉一般般。)
最近技术调研一个深刻的体会的:所有的选型都有其代价。
大团队无所谓,考虑效果,性能,可维护性为主。
而小团队,甚至是“一人企业”,更多就是找自己擅长的。
——如无必要,勿增实体。
吾日三省吾身
居安要思危。
在经济下行周期,每个人都要考虑自己的退路与出路。
光环是公司或平台给的,离开了,你还剩下什么?
这就不是人生意义的问题,而是生存问题。
我们不要混淆这两个层面: 在生存中谈意义。
至少基本财务安全,甚至财务基本自由的时候谈意义,否则专业赚钱!
原创文章第511篇,专注“AI量化投资、世界运行的规律、个人成长与财富自由”。
我们在大类资产轮动策略的基础上,加上RSRS择时,当RSRS<0.7时平仓。RSRS因子的说明:阻力支撑指标RSRS策略:光大证券研报复现
代码已经发布至星球:
吾日三省吾身
个人不太关注所谓网红,但有一个非知名网红除外,那就是郭宇。
28岁从字节财富自由退休。
个人觉得他的状态是最好的,戴了皇冠也不承其重。
如何获得财富自由: 郭宇在字节跳动工作期间获得了一定的期权,随着公司估值的大幅增长,这些期权成为了他实现财富自由的关键。
据分析,他在2014年进入字节跳动时获得的期权应该在50万股左右,而字节跳动的估值从2014年的5亿美金涨到了1000亿美金,使得他的身价达到了近亿级别。
除了在字节跳动的期权,郭宇还通过投资股市和其他资产逐渐积累了财富。
他在日本购置了房产,并通过房地产投资获得了稳定的收益。
郭宇在28岁时决定退休,移居日本,专注于温泉酒店和写作事业。
我让KIMI总结的
“如果你在火箭上有一个位置,别计较坐在哪儿。先上去再说”。——谢丽尔·桑德伯格,谷歌前营销部门负责人。
其实做为同行,郭宇的职业履历还好。
他的转折点在于字节跳动的期权。这是第一桶金的来源,然后通过投资(美股+日本房产)获得杠杆倍增。
关于财富自由,有一个“悖论”——你得先有钱。
本金越大,你“自然而然”会理财,会懂得控制风险。——后者虽然也有难度,但学习起来要容易得多。很多人暴雷是性格使然。但前者,需要运气、机遇各种偶然因素作用在一起。
作为同行,我们经历过几次可以坐上火箭的机会,但没有珍惜。可以说运气相关,也可以说没有财商教育的积累,理解不到股权的价值。
如果说总结起来,郭宇厉害的地方,在于他对财富的思考能力。知道股权的价值,同步善于理财投资。
郭宇在股市和房地产市场的投资决策主要包括以下几点: 1、长期持有潜力股股票:郭宇持有了腾讯股票长达6年的时间,这只股票在此期间翻了近10倍,为他带来了巨额收益。
2、分散投资:在清仓腾讯股票后,郭宇并没有停止投资,而是慢慢分散投资到美股、港股,通过这些多元化的投资策略,他在股市大涨大跌中也赚取了一些收益。
3、房地产投资:郭宇在日本投资了多套房产,并从这些房产中获得稳定的租金收益。他的投资策略不仅限于购买房产,还包括关注不动产投资市场,将股市的资金转移到房地产市场中。
先有钱,然后做好投资组合配置。
试图通过小资金,炒股的方式,直接实现财富自由,这个路径很难。除了江湖野史传说——还没有见过正式的记录。
量化投资或者说AI量化投资,也不是所谓的圣杯。——我们的目标是帮你更轻松、稳健地获得20%的年化收益。
历史文章:
风险平价之上的目标波动率控制7%,年化7%。(源代码+数据)
今日策略:全球资产风险平价,年化8%,就图个省心(源代码+数据)
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
Quantlab3.9代码:内置大模型LLM因子挖掘,全A股数据源以及自带GUI界面
Quantlab v3.9.2:策略集合——创成长与红利低波动的智能Beta策略(年化29.3%,最大回撤24%)(附源码)
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103417
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!