以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  新手求助,循环无法累加  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=137261)

--  作者:littleyeyo
--  发布时间:2016/7/29 11:34:34
--  新手求助,循环无法累加
A1:=C>REF(C,1);  //
FC:=CLOSE;
N:=BARPOS,NOAXIS;
NT:=0; ;

FOR j=N downto 2  DO 
BEGIN
 IF A1=0 THEN BREAK;
 A1:=REF(A1,1);
 NT:=NT+1;
END

想得到连续满足A1的周期数,试了好几种方法都没法得到,请老师指点一下。

--  作者:jinzhe
--  发布时间:2016/7/29 12:49:04
--  
这里的break是起何作用的?
--  作者:littleyeyo
--  发布时间:2016/7/29 14:38:14
--  
为了在条件不符合的时候就直接跳出循环。这个问题我自己已经解决了。
还有一个问题就是backset的用法。

AY1:=BACKSET(TJ11=1,9);
这句输入后,在TJ11=1的情况下,AY1还是没有任何改变,麻烦老师解释一下,谢谢!

--  作者:jinzhe
--  发布时间:2016/7/29 14:49:17
--  
这句是条件满足后,把AY1当前k线以及之前8根k线(一共9根)赋值为1,其他为0。也就是最近9根k线上的ay1是1,其他时候是0
--  作者:littleyeyo
--  发布时间:2016/7/29 15:07:01
--  

FOR j=N downto 2  DO 
BEGIN
 IF X[j]=0 THEN BREAK;
 NT:=NT+1;
END

NX:NT;
TJ11:NT=9;
TJ13:ISLASTBAR AND BETWEEN(NT,5,8);
AY1:BACKSET(TJ11=1,9);

就是在图表上已经显示了TJ11=1,而AY1还是等于0.
这是相关的代码,麻烦看看有什么问题

--  作者:jinzhe
--  发布时间:2016/7/29 15:16:03
--  

你看的AY1,是TJ11成立附近的9根,还是随便的一根k线?

就如我上面讲的,要TJ11条件成立哪根和之前8根,AY1才是1


--  作者:littleyeyo
--  发布时间:2016/7/29 15:22:57
--  
就是成立的那根和它前面8根都还是0啊  图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160729152049.png
图片点击可在新窗口打开查看


--  作者:jinzhe
--  发布时间:2016/7/29 15:31:18
--  
把全部代码都贴一下,我本地测试一下
--  作者:littleyeyo
--  发布时间:2016/7/29 15:34:22
--  
A1:=C>REF(C,4);  //
FC:=CLOSE;
N:=BARPOS,NOAXIS;
NT:=0;
VARIABLE: X[360]=0;
X[N]:=A1;

FOR j=N downto 2  DO 
BEGIN
 IF X[j]=0 THEN BREAK;
 NT:=NT+1;
END

NX:NT;
TJ11:NT=9;
TJ13:ISLASTBAR AND BETWEEN(NT,5,8);
AY1:BACKSET(TJ11=1,9);

 

--  作者:jinzhe
--  发布时间:2016/7/29 15:38:44
--  

本地没有出现满足条件的地方

用户注明一下是哪个合约品种,哪个周期,哪个时间点上成立了