以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]记录和判断本周期新开仓前后的状态  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=8071)

--  作者:ccf
--  发布时间:2011/9/17 11:27:44
--  [求助]记录和判断本周期新开仓前后的状态

     设置一个全局变量A,在本K有执行反手或开仓指令后,令A值为0,直到走完K线前,调出的A值应该为0,以此判断本周期已经新开仓。

     次周期,令A=1或其他(非0),直到下次开仓前,都保持A<>0,而再有开仓(或反手)指令执行后(K线未走完),把A变为0.
     目的是把新开仓后至K线K线走完这段时间,在全局变量的值中体现出来。

 

 


--  作者:ccf
--  发布时间:2011/9/17 11:40:53
--  
    我自己曾经以 开仓历时函数 为元素,写过一个程序。运行结果是全局变量‘开仓历时’能按思路的要求显示,但不能在

开仓历时=0时,使X值等于-X0。不知何故,请高手指导。

 

VARIABLE:开仓历时=1;
K:=MA(C,5);
D:=MA(C,10);
S:=ABS(K-D);
KCLS:EXTGBDATA(\'开仓历时\'),COLORYELLOW,LINETHICK0;
X:IF(KCLS<>0,X0,-X0),COLORYELLOW,LINETHICK0;
BB:=K>D;
SS:=D>K;

 IF BB THEN BEGIN
     SELLSHORT(Holding<0, 0,THISCLOSE);
     BUY(Holding=0, 1, THISCLOSE);
 END
 IF SS THEN BEGIN
    SELL(Holding>0,0,THISCLOSE);
    BUYSHORT(Holding=0, 1,THISCLOSE);
 END
EXTGBDATASET(\'开仓历时\',ENTERBARS );

//以下两句用于调试
开仓历时值:EXTGBDATA(\'开仓历时\'),COLORYELLOW,LINETHICK0;
开仓历时函数:ENTERBARS,COLORYELLOW,LINETHICK0;


--  作者:阿火
--  发布时间:2011/9/17 14:59:42
--  

X0是什么??

按照你的写法,EXTGBDATA(\'开仓历时\')的值一直等于最后一根K线图时候的enterbars


--  作者:ccf
--  发布时间:2011/9/17 18:47:23
--  
以下是引用leevolvo在2011-9-17 14:59:42的发言:

X0是什么??

按照你的写法,EXTGBDATA(\'开仓历时\')的值一直等于最后一根K线图时候的enterbars

      1. X0 是中间变量,程序的目的,是要在 新开仓后至K线走完这段时间 使 X=-X0;其他时段X=X0。

      2.\'开仓历时\'最后肯定 等于‘最后一根K线图时候的enterbars’,而不是‘一直’,最好加载看看。这里面涉及全局变量应用的问题,明明全局变量库里的值是正确的,但 KCLS:EXTGBDATA(\'开仓历时\'),  读出的值是另一个,你加载到图表自然会看到,这也是不能达到1楼目的的关键。

      3. 这这是我的做法,我是想高手们用其他途径达到1楼的目的。