原创内容第813篇,专注量化投资、个人成长与财富自由。
看社区里有同学写了一个策略,挺厉害的。
不过用户没有公开策略参数:
欢迎大家一起来PK。
网站上支持“策略订阅列表”,以及查看“积分变动历史”了:
其实我们内置了上百个函数,只是把部分指标在界面上显示出来,大家看系统代码,手动输入也是可以的,只要符合表达式的逻辑即可:
import pandas as pd
from datafeed.expr_utils import calc_by_symbol
@calc_by_symbol
def ts_delay(se: pd.Series, periods=5): # 滞后N天的序列
return se.shift(periods=periods)
@calc_by_symbol
def ts_delta(se: pd.Series, periods=20): # 当前序列与滞后N天之差
se_result = se - se.shift(periods=periods)
return se_result
@calc_by_symbol
def ts_mean(se: pd.Series, d):
return se.rolling(window=d).mean()
@calc_by_symbol
def ts_median(se: pd.Series, d):
return se.rolling(window=d).median()
@calc_by_symbol
def ts_pct_change(se: pd.Series, N):
return se / se.shift(N) - 1
@calc_by_symbol
def roc(se: pd.Series, N):
return se / se.shift(N) - 1
@calc_by_symbol
def ts_max(se: pd.Series, periods=5):
return se.rolling(window=periods).max()
@calc_by_symbol
def ts_min(se: pd.Series, periods=5):
return se.rolling(window=periods).min()
@calc_by_symbol
def ts_maxmin(X, d):
return (X - ts_min(X, d)) / (ts_max(X, d) - ts_min(X, d))
@calc_by_symbol
def ts_sum(se: pd.Series, N):
ret = se.rolling(N).sum()
return ret
@calc_by_symbol
def ts_std(se, periods=5):
return se.rolling(window=periods).std()
@calc_by_symbol
def ts_skew(X, d):
return X.rolling(window=d).skew()
@calc_by_symbol
def ts_kurt(X, d):
return X.rolling(window=d).kurt()
#
@calc_by_symbol
def ts_argmin(se: pd.Series, periods=5):
return se.rolling(periods, min_periods=1).apply(lambda x: x.argmin())
@calc_by_symbol
def ts_argmax(se: pd.Series, periods=5):
return se.rolling(periods, min_periods=1).apply(lambda x: x.argmax())
@calc_by_symbol
def ts_argmaxmin(X, d):
return ts_argmax(X, d) - ts_argmin(X, d)
@calc_by_symbol
def ts_rank(se: pd.Series, periods=9):
ret = se.rolling(window=periods).rank(pct=True)
return ret
# @calc_by_symbol
# def ts_product(se: pd.Series, d):
# return se.rolling(window=d).apply(np.product)
#
#
@calc_by_symbol
def ma(X, d):
X.ffill(inplace=True)
y = X.rolling(window=d).mean()
return y
五日三省吾身
同一个地点,不同的心境。
我相信,困境终将过去,而且会很快。
一波平息,也许还会再来。
接纳焦虑,与之共处,进而平息。
绝对的允许,充分地体验,允许一切发生。
这句话太高级了。
做到的确不容易。
还得解决根源的问题。
对于不确定性和完美的态度。
人生的意义是什么呢?
似乎不问的个问题的人会更幸福。
——按你自己喜欢的方式过一生?!
什么是你喜欢的方式呢?
三千年读史,无外乎功名利禄;
九万里问道,终归是诗酒田园。
这一切,终将成为你时过境迁后的笑谈。
回头看,轻舟已过万重山;
向前看,前路漫漫亦灿灿。
允许自己偶尔脱轨,
说不定那些意外的偏移,
带来的是计划外的惊喜。
遇到困境时,“享受”困境,充分地体验,“毕竟”这样的机会不多。
提升自己,锻炼心性,让自己成长。
穿越暴风说,成长就来了。
那些打不死我们的,终将让我们更加强大!
凡事遇见,皆为因果,均为渡你而来。
有些时候,涅槃才能重生。
代码和数据下载:AI量化实验室——2025量化投资的星辰大海
AI量化实验室 星球,已经运行三年多,1500+会员。
aitrader代码,因子表达式引擎、遗传算法(Deap)因子挖掘引擎等,支持vnpy,qlib,backtrader和bt引擎,内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。