“10分钟内“分时线”在2%范围内横盘震荡怎么表达? ”
这是网友提了一个具体问题,我以前没怎么认真想过分时图的问题,但是看很多从手工交易转来用Ptrade的朋友好像很喜欢分时图,所以我试着写了一下。
碰到一个问题第一步应该是搞清楚到底要算什么?
1、为了避免自己对分时线理解不准确,第一步我先去搜索确认”分时图“是什么,百度告诉我它是由每分钟最后一笔成交价连接起来的图,所以我认为可以理解为 分时图 实际就是1分钟行情的收盘价连接曲线(后来看了这个网友的其他表达,我觉得他的真实意思其实是10分钟内所有价格都应该考虑进去);
2、”10分钟内“应该可以理解成10个1分钟Bar的横向时间宽度,是我们需要观测的时间范围;
3、2%的波动范围,应该可以理解现在这个时间点,往回数10根1分钟BAR的收盘价,计算它的+-(2%/2)作为上下边界;
4、计算判断,在这10个 1分钟Bar内,所有价格都在上边界、下边界内波动,不能超过。
明确了问题,接着就开始写代码
为了可以使用Ptrade回测,检验代码是否符合要求:
1、我在回测内新建一个策略;
2、设置周期为1分钟频率;
3、随便选了一个有数据的日期;
4、初始化中,随便指定了一个标的代码,这里用的是恒生电子;
5、接着,在
def handle_data(context, data): 内写了一个判断语句,如果行情符合我们设定的要求就打印YES,如果行情不符合就打印NO;
6、重点开始自定义函数,函数需要有3个入参,
security为标的代码str;lengh为观测的1分钟数量int;width为观测的+-比例范围float,然后就是把3个参数传入自定义函数进行计算,函数返回的结果只有2个——
True、
False。
测试输出的截图如下
回测设置界面如下:

我写的源代码放在附件内了,有兴趣的朋友按需自取。
2024-03-28 05:31
2024-03-27 21:56