Ptrade的3个小自定义函数范例
我们在刚开始写PT代码的时候,很容易就直接用IF语句来进行一些简单判断,久而久之策略代码就会充斥着很多条件非常多的判断语句,这样可以实现一些功能,但是后期代码量增加之后阅读、修改、维护都会比较麻烦。为了代码简洁,是可以把一些通用功能函数化的。
以下举了具体3个小自定义函数的范例,抛砖引玉。
范例1:
判断——某个价格( price) 是否在一个设定的价格区间内( down_price 是区间下边界价格 线 , up_price 是区间上边界价格线) 。通过这个小函数,后续策略中所有需要进行这种区间判断的地方,都可以反复调用它,只需要传入这么3个价格参数就可以了。
“
def price_in_area (down_price, price, up_price):
if
down_price
<=
price
<=
up_price
: return True
else : return False
”
范例2:
判断——某个价格(price )离开某一个价格线(line)是否超过一个距离 (distance) 。
“
def price_go_away (price, line, distance):
if abs(price
- line) >=
distance: return True
else : return False
”
范例3:
判断——标的价格是否触碰到某个 价格线(line)。一个价格是否触碰到一个价格线其实存在多种情况:
a、比如设定的价格线是100,上一个价格是105,现在价格是95,这算触碰了 ;
b、 比如设定的价格线是100,上一个价格是95,现在价格是105,这算触碰了 ;
c、 比如设定的价格线是100,上一个价格是98,现在价格是100,这算触碰了 ;
d、
比如设定的价格线是100,上一个价格是102,现在价格是100,这算触碰了 。
所以,标的价格是否触碰到某个价格线的情况,需要使用到现价和上一个价格(这里上一个价格是上一个TICK价格 ,还是上一分钟价格,还是上5分钟都OK,具体怎么使用取决于设计者想要跟踪得多细节)
“
def price_touch_line (line, nowprice
,lastprice
):
if (nowprice
>= line >= lastprice) or (lastprice
>= line >= nowprice) : return True
else : return False
“
2024-03-14 11:37
2024-03-13 14:54