奇怪的問題,非常重要,請求幫忙! [開拓者 TB]
- 咨詢內容:
編寫目的:
當一根K線走完時,我要利用這根剛走完的K線數據計算壓力或支撐位,這個計算過程比較復雜,比較消耗計算資源,所以我想在最新一條K線產生的瞬間也就是它的第一個TICK數據發來時只需計算一次,就可把計算結果存入CR1中,而不想每發一個TICK,就重復計算,這樣毫無必要,因為本來用不著這根沒走完的K線數據。如果不限制這個條件,則每來一個TICK都必須重復計算,大大的浪費了寶貴的計算時間。
本結果在歷史數據中準確,但新產生K線時,CR1的計算結果存不進序列CR1中。
測試源碼如下:
Vars
Numeric MinPoint(0); //1跳的距離
Numeric Tmptime(0); // 全局變量0的值 用于新一條K線產品時記錄時間
NumericSeries CR1(0);
Begin
MinPoint=MinMove * PriceScale; //1跳的距離
tmptime=GetGlobalVar(0); //獲取記錄的最新時間值
If(tmptime==InvalidNumeric)
{
tmptime=Time;
SetGlobalVar(0,tmptime);
}
//當一條新K線產生時
If(tmptime<>Time)
{
tmptime=Time;
SetGlobalVar(0,tmptime);
CR1=CurrentBar;
}
PlotString("T1",Text(CR1),H+2*MinPoint,Red);
End
測試結果:
- TB技術人員:
- TB客服:
20160121141305.png (3.52 KB, 下載次數: 1) 2016-1-21 14:27:39 上傳 下載次數: 1 - 網友回復:
以上為測試結果,只有歷史K線的結果是對的,新產生的K線對應的CR1值總不變,真奇怪!
- 網友回復:
thc526119163 發表于 2016-1-21 14:30
以上為測試結果,只有歷史K線的結果是對的,新產生的K線對應的CR1值總不變,真奇怪! ...
我覺得原因應該是CR1=CurrentBar這一句只有在新K線產生的第一個Tick會執行,這樣后面來的Tick運行公式時,CR1因為是序列變量,因此會傳遞上一根BAR的值,所以就一直不變。而歷史BAR,因為執行1次,所以不影響。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容