原创内容第989篇,专注AGI+,AI量化投资、个人成长与财富自由。年化收益466%,回撤7%,夏普5.28,只需要2个积分即可查看参数,策略地址如下:
http://www.ailabx.com/strategy/68b465a5e532c3b22efaf7b0
下面是今天实现的股票全市场小市值的策略:
核心代码如下:
from task_config import SortRule, Rule task = StockTask() task.period = 'RunEveryNPeriods' task.topK=10 task.period_days=5
task.filters_rules.append(Rule( factor_name='流通市值', params=[], op='大于', value=100 ))
task.orderby_rules.append(SortRule( factor_name='流通市值', params=[], desc=False, weight=1.0 ))
from load_bar_df import load_bar_df
df = load_all_data_polars( data_sources=[str(DATA_STOCK_QUOTES.joinpath('history').resolve()), str(DATA_STOCK_QUOTES.joinpath('inc').resolve())], start_date=task.start_date, end_date=task.end_date, columns=["date", "symbol", "open", "high", "low", "close", "volume",'circ_mv','real_close'] ) print(df) dataset = AlphaDataset() rules, _ = task.get_filter_rules() print(rules) for r in rules: dataset.add_feature(r, r) dataset.add_feature('排序因子',task.get_order_by_factor()) dataset.prepare_data(df) df = dataset.raw_df.to_pandas() data = df.pivot(values='close', index='date', columns='symbol') data = data.ffill() condition = df.pivot(values='circ_mv>100', index='date', columns='symbol') orderby = df.pivot(values='排序因子', index='date', columns='symbol') print(data) s = bt.Strategy('test', [bt.algos.RunMonthly(), bt.algos.SelectWhere(condition), SelectTopK(orderby,K=10,dropN=30), bt.algos.WeighEqually(), bt.algos.Rebalance()]) stra = bt.Backtest(s, data, name='benchmark', progress_bar=True) res = bt.run(stra) print(res.stats) res.plot() import matplotlib.pyplot as plt plt.show()
确实很验预测,事后你总能找到一堆理由和逻辑去佐证,但事前多数人对一些风险一无所知。
四处漂泊,还要考虑打工,就业,收入,还不如踏踏实实上班。代码和数据下载:AI量化实验室——2025量化投资的星辰大海AI量化实验室 星球,已经运行三年多,1800+会员。
aitrader代码,因子表达式引擎、遗传算法(Deap)因子挖掘引擎等,支持vnpy,qlib,backtrader和bt引擎,内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。
点击 “查看原文”,直接访问策略集合。