网站首页 > 博客文章 正文
2024年9月19日
一.效果
二.实现
1.获取数据
2.用talib定义动量指标
#https://www.pybroker.com/zh-cn/latest/notebooks/5.%20Writing%20Indicators.html#%E4%BD%BF%E7%94%A8-TA-Lib
# rsi_20 = pybroker.indicator('rsi_20', lambda data: talib.RSI(data.close, timeperiod=20))
#talib 获取标的20日收益率数据,计算20日收益率
roc_20 = pybroker.indicator('roc_20', lambda data: talib.ROC(data.close, timeperiod=20)/100)
roc_20(df)
3.定义买入卖出规则函数
#https://www.pybroker.com/zh-cn/latest/notebooks/2.%20Backtesting%20a%20Strategy.html#%E5%AE%9A%E4%B9%89%E7%AD%96%E7%95%A5%E8%A7%84%E5%88%99
#如果没有持仓,20日roc大于8%时买入100%
#如果20日roc小于0时,卖出所有
def pick_time(ctx):
if not ctx.long_pos() and ctx.indicator("roc_20")[-1] > 0.08:
ctx.buy_shares = ctx.calc_target_shares(1.0)
if ctx.indicator("roc_20")[-1] < 0:
ctx.sell_all_shares()
4.回测
from pybroker import Strategy, StrategyConfig
config = StrategyConfig(bars_per_year=252, exit_on_last_bar=True)
#1.策略起始时间和结束时间
strategy = Strategy(df, "20111209", "20240913", config)
#2.对标的159915 添加pick_time 执行条件,用到了roc_20指标
strategy.add_execution(pick_time, ["159915.SZ"], indicators=[roc_20])
result = strategy.backtest()
完整代码已上传到知识星球上。
猜你喜欢
- 2024-11-10 BingChat试图教我量化分析,被我无情拒绝了
- 2024-11-10 使用Python示例代码实现KDJ和CCI指标的简单组合交易策略
- 2024-11-10 从零打造智能交易系统:零 VNPY环境搭建
- 2024-11-10 展示如何使用BOLL和CII指标结合的组合交易策略
- 2024-11-10 神经网络变得轻松(第十四部分):数据聚类
- 2024-11-10 量化交易-特征分析(量化交易模型有哪些)
- 2024-11-10 安装量化分析库talib,超级简单(量化分析pdf)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)