請(qǐng)教編程問(wèn)題
作者:開拓者 TB 來(lái)源:cxh99.com 發(fā)布時(shí)間:2022年02月25日
-
咨詢內(nèi)容:
Params
? ? ? ? Numeric Length1(10);
? ? ? ? Numeric Length2(30);
? ? ? ? Numeric Length3(60);
Vars
? ? ? ? //此處添加變量
? ? Numeric Dea;
? ? ? ? Numeric Diff;
? ? ? ? Numeric MACD;
? ? ? ? Numeric MA10;
? ? ? ? Numeric MA30;
? ? ? ? Numeric MA60;
? ? ? ? Numeric Peakval;
? ? ? ? Numeric Vallyval;
? ? ? ? Numeric ExtreV;
? ? ? ? Numeric EVP;
? ? ? ? Numeric Peak_s;
? ? ? ? Numeric Vally_s;
? ? ? ?
? ? ? ? BOOL? ? SIT_P;
? ? ? ? BOOL? ? SIT_v;
? ? ? ? BOOL? ? TEST1;
? ? ? ? BOOL? ? TEST2;
? ? ? ? BOOL? ? TEST3;
? ? ? ? BOOL? ? TEST4;
Events
? ? ? ? OnBar(ArrayRef<Integer> indexs)
? ? ? ? {
? ?? ???Diff = XAverage( Close, 12) - XAverage( Close,26) ;? ? ? ?
? ? ? ?? ???Dea = XAverage(Diff,9);
? ? ? ?? ???MACD = 2*(Diff - Dea);
? ? ? ?? ???MA10 = AverageFC(Close,Length1);
? ? ? ?? ???MA30 = AverageFC(Close,Length2);
? ? ? ?? ???MA60 = AverageFC(Close,Length3);
? ? ? ?? ???
? ? ? ?? ???PlotNumeric("MA10",AverageFC(Close,Length1),red);
? ? ? ?? ???PlotNumeric("MA60",AverageFC(Close,Length3),blue);
? ? ? ?? ???
? ? ? ?? ? ? ? ? ?
? ? ? ?? ? SIT_P = ((NthCon(Dea<0 && MA10<MA60,1) == 0 && NthCon(Dea<0 && MA10<MA60,2)>1 && CountIf(Dea>0 && MA10>MA60,NthCon(Dea<0 && MA10<MA60,2))>1));
? ? ? ?? ? TEST1 = ((NthCon(Dea<0 && MA10<MA60,1) == 0) && (NthCon(Dea<0 && MA10<MA60,2)>1));
? ? ? ?? ? test2 = NthCon(Dea<0 && MA10<MA60,2)>1;
? ? ? ?? ? test3 = NthCon(Dea<0 && MA10<MA60,1) == 0;
? ? ? ?? ? test4 = test2 && test3;
? ? ? ???
? ? ? ?? ? COMMENTARY("nthcon"+text(NthCon(Dea<0 && MA10<MA60,1)));
? ? ? ?? ? COMMENTARY("nthcon"+text(NthCon(Dea<0 && MA10<MA60,2)));
? ? ? ?? ? COMMENTARY("VALLYVAL="+text(Vallyval));
? ? ? ?? ? PlotBool("TEST2",TEST2);
? ? ? ?? ? PlotBool("TEST3",TEST3);
? ? ? ?? ? PlotBool("TEST4",TEST4);
? ? ? ? }
以上程序中,當(dāng)test2 為true, test3為true,寫成test4也是ture。但是test1的表達(dá)式卻是false。為什么?請(qǐng)教了。有知道的指點(diǎn)下,不勝感謝!
?
?來(lái)源:CXH99.COM
-
TB技術(shù)人員:
小米版主,能幫忙指點(diǎn)一下嗎?謝謝了。
?
-
TB客服:
hill_Luo 發(fā)表于 2019-11-8 12:01
小米版主,能幫忙指點(diǎn)一下嗎?謝謝了。
正確的寫法就是test2,test3,test4這個(gè)步驟。。。
nthcon的計(jì)算判斷并非只要當(dāng)前bar的數(shù)據(jù)就可以計(jì)算出來(lái)的,也需要?dú)v史K線上的相關(guān)數(shù)據(jù)才能計(jì)算出來(lái)。
在Test1語(yǔ)句中,前一個(gè)判斷的滿足與否會(huì)影響后一個(gè)判斷式是否進(jìn)行計(jì)算。如果前一個(gè)判斷為否,則后一個(gè)根本不計(jì)算了。如果歷史中的相關(guān)值沒(méi)有計(jì)算到,那也沒(méi)法在當(dāng)前K線得出正確的結(jié)果。。
所以,只test234的寫法才能確保每一個(gè)必要的數(shù)據(jù)都有被正確計(jì)算。