怎么给Ptrade量化系统加上止盈止损呢?大家都知道,好的策略除了赚钱,还得保住本钱。今天我们就在这个基础上补一块很关键的拼图,让你的“股票收割机”真正有本事管住风险、守住利润。这次的文章有点长,咱们慢慢看。 先说说前面的代码情况吧。这套策略已经有基本的趋势判断和仓位控制能力了,唯独缺了个核心的保护措施。毕竟你肯定有过那种惨痛经历:买完就跌,因为没设止损被套得死死的;或者涨了没跑,最后把利润全吐回去甚至还亏钱。 那为什么要设止损和止盈?其实就是为了解决这两个让人头痛的问题:把钱输光(止损),或者好不容易赚的钱又没了(止盈)。 具体该怎么做呢?其实步骤也很简单:先把手里所有持有的股票找出来,再一个一个去算收益率。 收益率的算法也不复杂:拿现在的股价减去买进来的成本价,再除以成本价。要是算出来的结果比你预设的止盈比例高,或者比止损比例低,那就赶紧把货全卖光。 接下来咱们把这逻辑加到代码里去。 首先在initialize函数里设两个全局变量:一个是止损比例,一个是止盈比例。然后在handle_data函数里加上检查的逻辑。 怎么拿到持仓的数据呢?其实ptrade传进来的context变量里就有现成的positions这个字典。 因为可能有好几只股票,所以我们要用for循环去遍历。这跟if判断很像,语法最后有个冒号,缩进也要注意对齐。 举个例子,字典就像书页,一页对应一个内容。在程序里我们把它拆成key和value来看。 下面就来看完整的代码吧。 回测效果也挺不错。看上图就能看出来,在这3个月里总体收益和年化收益都很高。而且各个指标跟没加止盈止损之前比都要好了不少。 具体数据是这样的:策略收益是21.22%,最大回撤是7.01%,夏普比率是2.85,年化收益率到了105.03%,胜率是50.0%,盈亏比更是高达172.84%。 好了,今天就聊到这儿。欢迎大家关注我哦!咱们下期再见!