原创内容第755篇,专注量化投资、个人成长与财富自由。
今天的文章几件事情(明天本周五星球更新本周所有代码):
1、A股主要宽基指数轮动策略。
2、期货历史主连合约导入vnpy。
3、海龟策略vnpy版本跑通。
ETF池子:上证50(510050)、沪深300(510300)、中证500(510500)、中证1000(512100)、创业板ETF(159915)、创业50ETF(159949)
单一市场而言,择时就显得比较重要,但回撤率依然比较大,这也是我们为何建议做大类资产配置的原因所在。
对比大类资产:
主连合约数据同步:
主力连续合约: 主力连续合约是由该品种期货不同时期主力合约接续而成, 代码以 88 或 888 结尾结尾, 例如 IF88 或 IF888. 前者为合约量价数据的简单拼接, 未做平滑处理; 后者对价格进行了”平滑”处理,
处理规则如下: 以主力合约切换前一天(T-1日)新、旧两个主力合约收盘价做差, 之后将 T-1 日及以前的主力连续合约的所有价格水平整体加上或减去该价差, 以”整体抬升”或”整体下降”主力合约的价格水平。
用akshare下载所有主连合约历史日线数据:
def get_future_continue_quotes(symbol): df = ak.futures_zh_daily_sina(symbol=symbol) ''' 日期 开盘价 最高价 最低价 收盘价 成交量 持仓量 动态结算价 0 2020-01-02 6520 6530 6485 6500 54491 230632 6500 1 2020-01-03 6500 6510 6480 6495 72391 229655 6495 ''' cols = {'hold': 'open_interest'} df.rename(columns=cols, inplace=True) df['date'] = df['date'].apply(lambda x: x.replace('-', '')) # df = df[list(cols.values())] df['symbol'] = symbol return df def update_all_futures(): basic = DATA_DIR.joinpath('basic').joinpath('futures.csv') df_basic = pd.read_csv(basic.resolve()) for s in df_basic['symbol']: print(s) df = get_future_continue_quotes(s) df.to_csv(DATA_DIR_QUOTES.joinpath(f'{s}.csv').resolve(), index=False)
把csv全部导入vnpy的数据库(这里暂时没有对应期货交易所的信息):
def to_vnpy(): from vnpy_datamanager import engine from vnpy.trader.constant import Exchange, Interval e = engine.ManagerEngine(None, None) basic = DATA_DIR.joinpath('basic').joinpath('futures.csv') df_basic = pd.read_csv(basic.resolve()) for s in df_basic['symbol']: csv = DATA_DIR_QUOTES.joinpath(f'{s}.csv').resolve() print(csv) e.import_data_from_csv(csv, symbol=s, exchange=Exchange.CFFEX, interval=Interval.DAILY, tz_name='Asia/Shanghai', datetime_head='date', open_head='open', high_head='high', low_head='low', close_head='close', volume_head='volume', turnover_head='turnover', open_interest_head='open_interest', datetime_format='%Y%m%d')
直接就可以跑策略了:
代码和数据、策略明天一起打包提交星球:AI量化实验室——2024量化投资的星辰大海
AI量化实验室 星球,已经运行三年多,1200+会员。
aitrader代码,含几十个策略源代码,因子表达式引擎、遗传算法(Deap)因子挖掘引擎等,支持vnpy,qlib,backtrader和bt引擎,名内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。
扩展 • 历史文章
EarnMore(赚得更多)基于RL的投资组合管理框架:一致的股票表示,可定制股票池管理。(附论文+代码)
十年年化35%的斜率轮动策略(几行python代码),aitrader_v2.0代码发布
10年17倍:使用卡曼滤波过滤器优化动量和斜率策略(python代码策略下载)
卡曼滤波把策略从年化30%提升到年化53%(python代码)
在长期年化收益32.6%的轮动策略上加择时逻辑,最大回撤略降(python代码)
aitrader v2.1源码发布:沪深300换成红利低波后,十年长期年化提升至34.1%,夏普1.21(python代码)。
aitrader兼容多引擎:vnpy,qlib, backtrader和bt回测实盘一体(附:年化30%策略集python代码)
近四年年化59.1%动量轮动+均线择时策略在aitrader本地实现了。
▼点击阅读原文,访问“AI量化实验室”策略集合
(http://www.ailabx.com/mall)。