以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请问如果在条件满足时读到某一个指标值,而这个值要在程序运行过程中另一条件满足时保持不变。  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=66686)

--  作者:ZHUZHU
--  发布时间:2014/6/27 11:13:51
--  请问如果在条件满足时读到某一个指标值,而这个值要在程序运行过程中另一条件满足时保持不变。
如我现在有KD条件,PD条件和MA30指标
现在我要在KD条件时,读MA30值,且MA30值要是KD条件刚满足时的MA30值,PD条件满足时MA30值要不变的,PD条件时MA30值置0,

--  作者:FexTel
--  发布时间:2014/6/27 11:16:34
--  

可以学习使用下VARIABLE等全局变量

例如:

VARIABEL:MA30=0;

 

IF KD THEN  MA30:=

 

IF PD THEN MA30:=0;


--  作者:ZHUZHU
--  发布时间:2014/6/27 12:06:27
--  
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运行过程中是变化的,我想要的是条件满足时固定下来呀

--  作者:FexTel
--  发布时间:2014/6/27 13:21:37
--  
1,某个条件满足不就会赋值,赋值户不就固定了么!您简单的来个例子看下
[此贴子已经被作者于2014/6/27 13:22:15编辑过]

--  作者:ZHUZHU
--  发布时间:2014/6/27 14:02:21
--  
试下这个类子,开仓后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) ;//平空信号


--  作者:yukizzc
--  发布时间:2014/6/27 14:09:40
--  
IF KD THEN  KDact:=act;      //你KD条件一直有成立,你这里加个holding的条件保持和你开仓语句的条件一样去看看

--  作者:ZHUZHU
--  发布时间:2014/6/27 14:29:11
--  
是的,因为我的开仓条件一直成立,所以他才变,但我要固定他,是不是可以这样处理:
条件成立我就开始计数N,然后我再用KDact:=REF(act,N);
不知可否,这个条件成立时的计数怎么计?

--  作者:yukizzc
--  发布时间:2014/6/27 14:43:32
--  

你在后面加个holding=0的判断条件不就好了,这样就保持和你开多信号一致。

 


--  作者:ZHUZHU
--  发布时间:2014/6/27 15:31:12
--  
您这个做法只对单品种有效,如果对多品种,就没有作用,因为这时可能有的品种有,有的品种没有持仓
--  作者:FexTel
--  发布时间:2014/6/27 15:36:08
--  

1,VARIABLE:A=0;

MA30:MA(C,30);

 

IF 条件 then a:=MA30;

 

//方法是这样,关键在你条件的控制