为什么AA 和BB 没有 输出值?使用在分钟周期里, 肯定超过1万个数据以上。
DIFF :EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA :EMA(DIFF,M);
MACD:2*(DIFF-DEA),COLORSTICK;
MACDMAX:=MAX(C,O);
MACDMIN:=MIN(C,O);
MACDL:=LLV(MACDMIN,7);//8周期内最低收盘价
AA:MA(ABS(DIFF),10000),NOAXIS;
BB:STD(ABS(DIFF),10000),NOAXIS;
我用在15分钟上CC已经2324, 为什么BB 也显示不出来?为什么BB不会自动找前面1400的数据? 我程序化难道还要缩小画面才能让他自己找数据吗?

此主题相关图片如下:qq图片20200728173202.png

DIFF :EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);
DEA :EMA(DIFF,M);
MACD:2*(DIFF-DEA),COLORSTICK;
MACDMAX:=MAX(C,O);
MACDMIN:=MIN(C,O);
MACDL:=LLV(MACDMIN,7);//8周期内最低收盘价
BB:STD(ABS(DIFF),1440),NOAXIS;
cc:datacount,NOAXIS;
举个例子你要计算360均线,你在刚上市品种那几根k上去看均线,能得到均线吗
那下面的语句要怎样改才能正确? 就是开始的时候DIFFSTD取值少一点, barpos多了之后 std()的N值取值多一些
VARIABLE:DIFFSTD:=5;
IF BARPOS>50 AND BARPOS<100 THEN DIFFSTD:=STD(ABS(DIFF),50);
IF BARPOS>=100 AND BARPOS<200 THEN DIFFSTD:=STD(ABS(DIFF),100);
IF BARPOS>=200 AND BARPOS<300 THEN DIFFSTD:=STD(ABS(DIFF),200);
IF BARPOS>=300 AND BARPOS<500 THEN DIFFSTD:=STD(ABS(DIFF),300);
IF BARPOS>=500 AND BARPOS<750 THEN DIFFSTD:=STD(ABS(DIFF),500);
IF BARPOS>=750 AND BARPOS<1000 THEN DIFFSTD:=STD(ABS(DIFF),750);
IF BARPOS>=1000 THEN DIFFSTD:=STD(ABS(DIFF),1000);
你这里的问题是std不能用在if里面吧。那你可以这样,先把std的参数计算好,再算std,这样就不用把std放在if里面的:
VARIABLE:DIFFSTD:=5;
Len:BARPOS;
IF BARPOS>50 AND BARPOS<100 THEN Len:=50;
IF BARPOS>=100 AND BARPOS<200 THEN Len:=100;
IF BARPOS>=200 AND BARPOS<300 THEN Len:=200;
IF BARPOS>=300 AND BARPOS<500 THEN Len:=300;
IF BARPOS>=500 AND BARPOS<750 THEN Len:=500;
IF BARPOS>=750 AND BARPOS<1000 THEN Len:=750;
IF BARPOS>=1000 THEN Len:=1000;
DIFFSTD:=STD(ABS(DIFF),Len);//对BARPOS小于50的就按照有多少个K算多少K。
那能否这样写? LEN:=BARPOS; //就是说Len 每次都+1
IF BARPOS>=1000 THEN LEN=1000;
DIFFSTD:=STD(ABS(DIFF),LEN);