开云体育(kaiyun)官方网站 (附代码与怒放攻略)量化来去ptrade实操:如何作念好仓位的示寂?

 139    |      2026-03-20 05:21

开云体育(kaiyun)官方网站 (附代码与怒放攻略)量化来去ptrade实操:如何作念好仓位的示寂?

有许多小伙伴有了精熟的来去政策,却莫得好的仓位示寂的谬误,今天就来教一下公共,ptrade中仓位如何示寂?

著述相比长,先点个退换哦!

如下有一个均线政策,买入卖出顺次如下:

现时价高于5日均价或20日则全仓买入;现时价同期低于5日和20日则全仓卖出。

其中initialize函数是政策启动化的时候由Ptrade的引擎自动调用一次,何况传入了context变量,咱们面前还没灵验到这个变量;

handle_data函数亦然由Ptrade的引擎,在开盘的本事段内,每隔一定频率自动调用一次(比如每分钟调用一次),并传入了两个变量context和data,context不错手脚是一个环境变量,咱们也用来赢得了账号的可用现款,data存放的是现时本事的各个股票行情数据,比如开盘价、收盘价等!

伸开剩余76%

“def handle_data(context, data): ”是函数的声名,戒备临了有个英文的冒号,函数声名换行后便是这个函数的具体代码逻辑,戒备前边有几个空格,这个空格数目是斡旋的,乐动手机app 比如2个空格,那么其余在归拢个层级的代码前边应该都是2个空格,看起来若是对皆的;

雷同,关于要求判断"if"、"elif"这么的语句后头随着要求,要求临了也有一个英文的冒号,换行后雷同是要求得志后需要践诺的逻辑,归拢个层级的逻辑前边的空格数目也需要一致,看起来也若是对皆的。

前边带上"g."声名的变量,是全局的变量,在政策的扫数函数中都不错用,开云体育如果莫得带上"g." 那么只好在声名场合的函数中使用。虽然只好在现时函数中变量声名之后才气使用,总不可还莫得变量就平直用吧。

增多仓位示寂的需求

作为一个“资深韭菜”,如何看全仓买入和全仓卖出都有点“虎”了,咱们不错左证教会完善如下:

在尾盘14:50分的时候进行来去;

现时价高于5日均价何况高于20日均线则全仓买入;

现时价高于5日均价好像高于20日均线则半仓买入好像卖出半仓;

现时价同期低于5日和20日则清仓。

当然讲话扫尾买入卖出顺次

拿到以前5日的收盘价的数据(由于尾盘来去,是以需要算上现时价钱作为今天收盘价);

求以前5日的平均收盘价(由于尾盘来去,是以需要算上现时价钱作为今天收盘价);

拿到以前20日的收盘价数据(由于尾盘来去,是以需要算上现时价钱作为今天收盘价);

求以前20日的平均收盘价(由于尾盘来去,是以需要算上现时价钱作为今天收盘价);

拿到现时价钱

现时价高于5日均价和20日均价则全仓买入;

现时价高于5日均价好像20日均价则半仓买入或卖出;

同期低于5日和20日则清仓。

代码实操

前边说了一大堆,当今咱们来展示一下代码如何扫尾:

谬误点分解

context.current_dt:使用context变量得到现时的本事,这里从context中拿到current_dt属性赢得到现时本事,平直记取就行;

current_dt.hour和current_dt.minute永诀拿到现时本事的"小时"和"分钟",因为context.current_dt这个本事现实也曾赋值给了current_dt变量,是以不错这么拿"小时"和"分钟";

get_history这个接口默许不包含今日的数据,是以需要先拿前4天,后头再皆集今日价钱通筹办平均;

(df1['close'].sum() + curr_price) / 5 这里的sum暗意"乞降"的真理,先求出前4天的和,再加上现时价钱,通盘除以5便是5天(包含今日)的平均收盘价了。

order_target_value这个接口是Ptrade提供的,调理股票抓仓市值到指定的价值;context.portfolio.portfolio_value暗意赢适现时账户的总价值,包括酿成股票市值的和不错现款的总额;

临了阿谁"else" 一般是放在要求判断的临了,暗意其它情况,戒备后头有个英文冒号,这个语句后头就不可跟要求了,因为也曾是抹杀上头的扫数要求之后的其它情况了,便是不得志上头两个"if"和"elif"之后的其它情况。

回测驱散演示

上图不错看到,即使如斯轻便的一个政策,在3个月的回测中,遵守雷同惊东说念主。

政策收益:20.6%、最大回测:7.60%、夏普比率:2.45、年化收益率:103.68%、胜率:50%、盈亏比:456.39%。

接待退换开云体育(kaiyun)官方网站,期待下次碰面!

发布于:四川省亚搏app官方网站