如何bar内传递 [MC]
-
MC用户求助:
一、由于这里mp[1]取的是前一根bar的数值,并不是前一笔tick的数值,所以在限制bar只有一笔进场和出场的情况下,如果mp<>mp[1]为true,那么在当根bar内就会一直为true。
二、close是实时变化的,所以在bar内的某笔tick上close>=close[1]+5成立,然后aa变量被赋值为true;然后下一笔tick的时候,mp<>mp[1]仍然成立,aa又被赋值为false了;这时,close>=close[1]+5可能不再成立了,因为close在bar内是实时变化的,这样,aa变量就没有达到您想要的效果。
三、使用barstatus关键字进行判断了一下,使mp<>mp[1] and flag=0这个条件在bar内只可能成立一次,也就是mp<>mp[1]在bar内第一次成立的时候,代码如下:
[IntrabarOrderGeneration = True]
setfpcompareaccuracy(fpcverylowaccuracy);
var:
IntraBarPersist aa(False),
IntraBarPersist bb(False),
IntraBarPersist cc(0),
IntraBarPersist dd(0),
IntraBarPersist mp(0),
intrabarpersist flag(0);
mp=marketposition;
if barstatus=0 then flag=0;
if mp<>mp[1] and flag=0 then begin
aa=False;
bb=False;
flag=1;
end;
if Close>=Close[1]+5 then aa=True;
if aa then bb=true;
commentary(" 300yun=", bb) ;、close是实时变化的,所以在bar内的某笔tick上close>=close[1]+5成立,然后aa变量被赋值为true;然后下一笔tick的时候,mp<>mp[1]仍然成立,aa又被赋值为false了;这时,close>=close[1]+5可能不再成立了,因为close在bar内是实时变化的,这样,aa变量就没有达到您想要的效果。
三、使用barstatus关键字进行判断了一下,使mp<>mp[1] and flag=0这个条件在bar内只可能成立一次,也就是mp<>mp[1]在bar内第一次成立的时候,代码如下:
[IntrabarOrderGeneration = True]
setfpcompareaccuracy(fpcverylowaccuracy);
var:
IntraBarPersist aa(False),
IntraBarPersist bb(False),
IntraBarPersist cc(0),
IntraBarPersist dd(0),
IntraBarPersist mp(0),
intrabarpersist flag(0);
mp=marketposition;
if barstatus=0 then flag=0;
if mp<>mp[1] and flag=0 then begin
aa=False;
bb=False;
flag=1;
end;
if Close>=Close[1]+5 then aa=True;
if aa then bb=true;
commentary(" 300yun=", bb) ;
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容