老师您好,我用TYPEBAR函数做为判断条件,交易没有触发,
SELLSHORT(HOLDING<0 AND TYPEBAR(1,4)<5 ,手数,THISCLOSE),ORDERQUEUE;
想法是,如果前4根K线里,有平仓信号,而理论持仓有空单,就下单平仓。
请问老师这个应该怎么写才对?谢谢!
代码没错。
但是这个语句, 你如果只有这样的一句平空仓语句,永远也无法触发。
TYPEBAR(1,4)<5
你必须有一个最起始的平仓信号才行。因为后面平仓都依赖前面的平仓,那么很简单的问题第一个平仓是怎么触发的?第一个平仓前面必然是没有平空仓的。
是因为信号闪烁,如用持仓同步,会频繁开平仓,所以想自己写一个判断。
我试了一下用 DD:TYPEBAR(1,4) ,可以正确的取到上个信号到当前K线的周期值,
比如前2根有平仓信号,后面1根会正确取到上次平仓周期为1,再后面1根会取到上次平仓周期为2。
但是用TYPEBAR函数做为判断条件时,又不能触发下单,所以很奇怪。
就是能取到,函数是没有问题的。
但是你不能只有这个做平仓条件,必须有个初始的信号,也就是第一次平仓时候的问题。你这个就是鸡和鸡蛋的问题。你想要鸡蛋 前提是要有个鸡 怎样有鸡,你得有个鸡蛋。。。
你必须保证第一次平仓 是不需要考虑
TYPEBAR(1,4)<5的
这样处理:
not(TYPEBAR(1,4)) 返回值是1的时候 说明前面是没有一次平空信号的。