計算平均振幅,數據起始的數天計算不對,該如何處理 - TradeBlazer公式 [開拓者 TB]
- 咨詢內容:
本帖最后由 xiaoye51888 于 2012-4-16 11:59 編輯
例如在5min的圖上,計算HighD(1)-LowD(1)到HighD(5)-LowD(5)的均值,那么需要圖表上現在有前5天的數據,否則會出錯。這個可以理解,TB的操作都是基于圖表的。那就想跳過開頭那幾天,等所有要計算的數據齊了,再開始運算,再進行信號運算開平倉。
加上了過濾,直到所有要計算的數據齊了,再開始運算。
Numeric RANGE_LENGTH(5);
if(highD(RANGE_LENGTH+2)==InvalidNumeric())
{
return;
}
sumRange = 0;
For i=1 To RANGE_LENGTH
{
sumRange = sumRange+(HighD(i)-LowD(i));
}
PlotString("sumRange",Text(sumRange),upperband,Red);
PlotString("HighD1",Text(HighD(1)-LowD(1)),upperband,Red);
PlotString("HighD2",Text(HighD(2)-LowD(2)),upperband,Red);
PlotString("HighD3",Text(HighD(3)-LowD(3)),upperband,Red);
PlotString("HighD4",Text(HighD(4)-LowD(4)),upperband,Red);
PlotString("HighD5",Text(HighD(5)-LowD(5)),upperband,Red);
進行檢測的時候發現,所有計算需要的HIGHD LOWD的確已有數據,而且對比日線數據HIGHD()-LOWD()都是正確的,但開始幾天的sumRange計算結果不對,從數據齊全開始計算起,第一天sumRange為0,第二天sumRange只計算了前一天的振幅,第三天只計算了前2天的振幅,以此類推,直到過了5天才計算正確,可是我已經試了好幾種方法,終于能夠跳過前面數據不齊又可能導致計算錯誤的RANGE_LENGTH+2天。為何還會出錯??? - TB技術人員:
我也發現了這個問題,用openD,closeD,highD,lowD計算出來的數據都是前三天的,不知道為什么不能返回當天的值,用openD[1]也是返回三天前的數據,感覺很莫名其妙,用openD[5]
- TB客服:
我也發現了這個問題,用openD,closeD,highD,lowD計算出來的數據都是前三天的,不知道為什么不能返回當天的值,用openD[1]也是返回三天前的數據,感覺很莫名其妙,用openD[5]返回的數據也是3天前的,
在openD的F1幫助里面是這樣說的:
OpenD
說明 求N天前的開盤價
語法 Numeric OpenD(Numeric daysAgo)
參數 daysAgo 最近N天,0為當天,1為昨天,依次類推。
備注 該函數計算N天前的開盤價,返回值為浮點數。
示例 OpenD(3);計算3天前的開盤價。
我懷疑是不是軟件出差錯了,示例里面的openD返回值讓整個值都默認返回3天前的數據。 - 網友回復:
openD,closeD,highD,lowD等應該使用圓括號(),如: OpenD(3)
- 網友回復:
help
如果以上指標公式不適用于您常用的行情軟件
或者您想改編成選股公式,以便快速選出某種形態個股的話,
- 上一篇:[轉貼]漫談交易模型
- 下一篇:沒有了!
相關文章
-
沒有相關內容