社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

低代码配置出的年化70%,夏普2.06的策略。(python代码+数据下载)

七年实现财富自由 • 2 月前 • 89 次点击  

原创内容第813篇,专注量化投资、个人成长与财富自由。

看社区里有同学写了一个策略,挺厉害的。

不过用户没有公开策略参数:

欢迎大家一起来PK。

网站上支持“策略订阅列表”,以及查看“积分变动历史”了:

其实我们内置了上百个函数,只是把部分指标在界面上显示出来,大家看系统代码,手动输入也是可以的,只要符合表达式的逻辑即可:


import pandas as pd

from datafeed.expr_utils import calc_by_symbol


@calc_by_symbol
def ts_delay(se: pd.Seriesperiods=5):  滞后N天的序列
    return se.shift(periods=periods)


@calc_by_symbol
def ts_delta(se: pd.Seriesperiods=20):  当前序列与滞后N天之差
    se_result = se - se.shift(periods=periods)
    return se_result


@calc_by_symbol
def ts_mean(se: pd.Seriesd):
    return se.rolling(window=d).mean()


@calc_by_symbol
def ts_median(se: pd.Seriesd):
    return se.rolling(window=d).median()


@calc_by_symbol
def ts_pct_change(se: pd.SeriesN):
    return se / se.shift(N) - 1

@calc_by_symbol
def roc(se: pd.SeriesN):
    return se / se.shift(N) - 1


@calc_by_symbol
def ts_max(se: pd.Seriesperiods=5):
    return se.rolling(window=periods).max()


@calc_by_symbol
def ts_min(se: pd.Seriesperiods=5):
    return se.rolling(window=periods).min()


@calc_by_symbol
def ts_maxmin(Xd):
     return (X - ts_min(Xd)) / (ts_max(Xd) - ts_min(Xd))


@calc_by_symbol
def ts_sum(se: pd.SeriesN):
    ret = se.rolling(N).sum()
    return ret


@calc_by_symbol
def ts_std(seperiods=5):
    return se.rolling(window=periods).std()


@calc_by_symbol
def ts_skew(Xd):
    return X.rolling(window=d).skew()


@calc_by_symbol
def ts_kurt(Xd):
    return X.rolling(window=d).kurt()


#
@calc_by_symbol
def ts_argmin(se: pd.Seriesperiods=5):
    return se.rolling(periodsmin_periods=1).apply(lambda x: x.argmin())


@calc_by_symbol
def ts_argmax(se: pd.Seriesperiods=5):
    return se.rolling(periodsmin_periods=1).apply(lambda x: x.argmax())


@calc_by_symbol
def ts_argmaxmin(Xd):
    return ts_argmax(Xd) - ts_argmin(Xd)


@calc_by_symbol
def ts_rank(se: pd.Seriesperiods=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(Xd):
    X.ffill(inplace=True)
    y = X.rolling(window=d).mean()
    return y





五日三省吾身


同一个地点,不同的心境。

我相信,困境终将过去,而且会很快。

一波平息,也许还会再来。

接纳焦虑,与之共处,进而平息。


绝对的允许,充分地体验,允许一切发生。

这句话太高级了。

做到的确不容易。


还得解决根源的问题。

对于不确定性和完美的态度。


人生的意义是什么呢?

似乎不问的个问题的人会更幸福。

——按你自己喜欢的方式过一生?!

什么是你喜欢的方式呢?


三千年读史,无外乎功名利禄;

九万里问道,终归是诗酒田园。


这一切,终将成为你时过境迁后的笑谈。


回头看,轻舟已过万重山;
向前看,前路漫漫亦灿灿。


允许自己偶尔脱轨,
说不定那些意外的偏移,
带来的是计划外的惊喜。


遇到困境时,“享受”困境,充分地体验,“毕竟”这样的机会不多。

提升自己,锻炼心性,让自己成长。

穿越暴风说,成长就来了。

那些打不死我们的,终将让我们更加强大!


凡事遇见,皆为因果,均为渡你而来。

有些时候,涅槃才能重生。


代码和数据下载:AI量化实验室——2025量化投资的星辰大海

AI量化实验室 星球,已经运行三年多,1500+会员。

aitrader代码,因子表达式引擎、遗传算法(Deap)因子挖掘引等,支持vnpy,qlib,backtrader和bt引擎,内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。

扩展  •  历史文章   

EarnMore(赚得更多)基于RL的投资组合管理框架:一致的股票表示,可定制股票池管理。(附论文+代码)
deap系统重构,再新增一个新的因子,年化39.1%,卡玛提升至2.76(附python代码)

低风险中等收益(年化15.59%,夏普比1.12)的投资策略,主要投资于小市值股票和基金(python代码+数据)

aitrader_v4.4含本周策略及代码发布,webapp上线。(python代码及数据)

近五年年化23%,最大回撤14.26%,基于历史评分因子和EPO优化权重的ETF轮动策略(python代码+数据)

年化18%-39.3%的策略集 | backtrader通过xtquant连接qmt实战


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/179628
 
89 次点击