以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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啊 ![]() |
-- 作者: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 -- 本地没有出现满足条件的地方 用户注明一下是哪个合约品种,哪个周期,哪个时间点上成立了 |