m5:=ma(c,5);
m10:=ma(c,10);
VARIABLE:a=0;
variable:b=1;
if b=1 then
begin
if m5>m10 then
a:=a+1;
else
a:=0;
end
else
a:=0;
if a=5 then
b:=0;
AA:a;
bb:b;
1、请问这种if then 语句 是每来一笔新数据重上到下算一次吗 ?
2、如果每笔新的数据条件继续满足,里面的赋值部分 a:=a+1; 也要不断加1吗 ?
再请教
1、如果现在a =2 新来的一笔tick 使m5<m10 此时的a应被赋予a=0 的值,对吗 ?
2 、如过再来一笔tick 再次使m5>m10 此时的a又被赋予a=1,对吗 ?
1.变成0,
2.还是2
值是根据公式计算,计算是在上根k线的结果基础上计算,而不是当根k线上一笔数据的结果做计算
还是不太理解 我再举个例子
比如
m5:=ma(c,5);
m10:=ma(c,10);
VARIABLE:a=0;
variable:b=1;
if b=1 then
a:=-1;
ifm5>m10 then
a:=1;
如某tick使m5>m10 那么a此时被赋予1 ; 如果再新的一笔tick 使m5<m10 ,那么a是否又被赋予-1 的值 即a:=-1 , 而不是1 , 因为又重新算了一次
if b=1 then
a:=-1; 下面的条件不满足 所以不执行
举个例子
variable:a=0;
if c>o then a:=a+1;
if c<o then a:=a-1;
当上根k线a的值为0,
那么当期k线a只会在0的基础上做变动。如果当前行情是c>o ,那么a是在0的基础上自加1,变成1;然后不管有多少笔数据都是c>o,那么结果仍然是1,因为值是和上个周期的值比较,而不是上一笔
那就是根据老师你的例子
当上根k线a的值为0, 如果当前行情c>o 此时a取1 如果某一笔使c<o 那么a的取值应该为0-1=-1 而不是用上一笔的a取1时的值来计算1-1=0;