Ptrade量化交易实战:如何设置止盈和止损机制?
发布时间:2小时前阅读:18
今天,我们要为策略添加一块拼图——止损和止盈机制,让你的"股票收割机"真正具备风险控制和利润锁定能力!
文章很长,耐心观看哦,记得点个关注!

前置代码如下:


这个策略已经具备了基本的趋势跟踪能力和仓位控制逻辑,但还缺少一个关键要素——如何保护利润和控制亏损。
为什么需要止损止盈?
作为一个"资深韭菜",你一定经历过这样的痛苦:
买入后股价下跌,因为没有止损,结果越亏越多;
买入后股价上涨,因为没有止盈,结果利润回吐甚至转亏。
止损和止盈机制就是解决这两个痛点的利器:
止损:当亏损达到预设比例时自动卖出,防止亏损扩大;
止盈:当盈利达到预设比例时自动卖出,锁定利润。
如果是自然语言应该怎么做:
找到持仓的所有股票;
逐个的找到每一个持仓的股票;
获取到股票的持仓成本价;
获取股票的当前价格计算收益率:(当前价 - 成本价) / 成本价;
如果收益率超过止盈比例或低于止损比例,则清仓。
策略添加止损止盈逻辑:
让我们在initialize函数中添加止损止盈比例的全局变量:

并在handle_data函数中添加止损止盈检查逻辑:


关键点解析:
我们可以从handle_data函数由ptrade传进来的context变量中一层层地拿到我们的持仓股票的数据:context.portfolio.positions.items(),参考ptrade的帮助文档如下:



由于持仓的股票可能有多只,在自然语言中描述的逐个找到每一个持仓股票,在python代码中使用for ... in ... 语法实现。

注意:类比if语法,for... in语法最后也有个英文冒号,具体循环中执行的逻辑在换行之后,也需要注意空格对齐,如下:

注意:从context一层层地拿到持仓变量positions,这个变量是一个字典类型,字典在显示生活中比如,页码1对应的是一个内容,页面2对应另外一个内容,所以字典应该有两个信息,类比页码和对应的内容,在程序中就用key和value两个变量表示,那么如下for ... in ...语法。
下面进行完整的代码展示:



回测结果演示:

上图可以看到,在3个月的回测中,效果也很不错,总体收益和年化收益比较高,总体来看,各个指标相比没有添加止盈和止损之前都要好一些。止损和止盈比例可以结合自己风险偏好和实际情况进行调整:
策略收益:21.22%、最大回测:7.01%、夏普比率:2.85、年化收益率:105.03%、胜率:50.0%、盈亏比:172.84%。
今天就到这里啦,欢迎关注,我们下期再见!
温馨提示:投资有风险,选择需谨慎。
下一篇资讯:
暂无下一篇
-
被套不敢动、选股全靠蒙?国金证券AI投顾6大功能,专治普通人的投资无力感
2026-03-17 15:15
-
股市震荡期,如何用网格交易工具来赚钱?(附操作指南)
2026-03-17 15:15
-
普通人也能用的量化工具?国金证券QMT开通指南来了~
2026-03-17 15:15


问一问

+微信
分享该文章
