Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请问如果在条件满足时读到某一个指标值,而这个值要在程序运行过程中另一条件满足时保持不变。

1楼
ZHUZHU 发表于:2014/6/27 11:13:51
如我现在有KD条件,PD条件和MA30指标
现在我要在KD条件时,读MA30值,且MA30值要是KD条件刚满足时的MA30值,PD条件满足时MA30值要不变的,PD条件时MA30值置0,
2楼
FexTel 发表于:2014/6/27 11:16:34

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

例如:

VARIABEL:MA30=0;

 

IF KD THEN  MA30:=

 

IF PD THEN MA30:=0;

3楼
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运行过程中是变化的,我想要的是条件满足时固定下来呀
4楼
FexTel 发表于:2014/6/27 13:21:37
1,某个条件满足不就会赋值,赋值户不就固定了么!您简单的来个例子看下
[此贴子已经被作者于2014/6/27 13:22:15编辑过]
5楼
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) ;//平空信号

6楼
yukizzc 发表于:2014/6/27 14:09:40
IF KD THEN  KDact:=act;      //你KD条件一直有成立,你这里加个holding的条件保持和你开仓语句的条件一样去看看
7楼
ZHUZHU 发表于:2014/6/27 14:29:11
是的,因为我的开仓条件一直成立,所以他才变,但我要固定他,是不是可以这样处理:
条件成立我就开始计数N,然后我再用KDact:=REF(act,N);
不知可否,这个条件成立时的计数怎么计?
8楼
yukizzc 发表于:2014/6/27 14:43:32

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

 

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

1,VARIABLE:A=0;

MA30:MA(C,30);

 

IF 条件 then a:=MA30;

 

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

共10 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 3 queries.