如我现在有KD条件,PD条件和MA30指标
现在我要在KD条件时,读MA30值,且MA30值要是KD条件刚满足时的MA30值,PD条件满足时MA30值要不变的,PD条件时MA30值置0,
VARIABLE:KDact=0,KKact=0,KDA1=0,KKB1=0;
IF KD THEN KDact:=act;
IF KK THEN KKact:=act;
IF KD THEN KDA1:=A1;
IF KK THEN KKB1:=B1;
IF PD THEN KDact:=0;
IF PK THEN KKact:=0;
IF PD THEN KDA1:=0;
IF PK THEN KKB1:=0;
是不是这样,
可是KDact,KKact,KDA1,KKB1运行过程中是变化的,我想要的是条件满足时固定下来呀
1,某个条件满足不就会赋值,赋值户不就固定了么!您简单的来个例子看下
[此贴子已经被作者于2014/6/27 13:22:15编辑过]
试下这个类子,开仓后ACT是变动的,而不是开仓时候的ACT值
VARIABLE:KDact=0,KKact=0,KDA1=0,KKB1=0;
k1:=100;
act:=k1*STKINDI('','bias.bais1',0,1,-1),LINETHICK0;
MA30:=MA(act,30),LINETHICK0;
KD:abs(act)>abs(MA30) and act>0 AND ma30>0 ,NOAXIS; //开多条件
PD:=abs(act)<abs(MA30) ,NOAXIS;//平多条件
KK:abs(act)>abs(MA30) and act<0 AND ma30<0,NOAXIS; //开空条件
PK:=abs(act)<abs(MA30) ,NOAXIS;//平空条件
IF KD THEN KDact:=act;
IF KK THEN KKact:=act;
IF PD THEN KDact:=0;
IF PK THEN KKact:=0;
1KDact:KDact,LINETHICK0;//满足KD条件时的act值
1KKact:KKact,LINETHICK0;//满足KK条件时的act值
开多:BUY( KD AND HOLDING=0 ,1,THISCLOSE);//开多信号
开空:BUYSHORT(KK AND HOLDING=0 ,1,THISCLOSE);//开空信号
平多:SELL(PD,abs(HOLDING),THISCLOSE);//平多信号
平空:SELLSHORT(PK ,abs(HOLDING),THISCLOSE) ;//平空信号
IF KD THEN KDact:=act; //你KD条件一直有成立,你这里加个holding的条件保持和你开仓语句的条件一样去看看
是的,因为我的开仓条件一直成立,所以他才变,但我要固定他,是不是可以这样处理:
条件成立我就开始计数N,然后我再用KDact:=REF(act,N);
不知可否,这个条件成立时的计数怎么计?
你在后面加个holding=0的判断条件不就好了,这样就保持和你开多信号一致。
您这个做法只对单品种有效,如果对多品种,就没有作用,因为这时可能有的品种有,有的品种没有持仓