是不是內置的序列值系統(tǒng)會保證每個Bar初始化,而序列函數(shù)則不一定?
作者:開拓者 TB 來源:cxh99.com 發(fā)布時間:2013年08月10日
- 咨詢內容:
大家好!最近嘗試的寫策略被序列值(**Series)和序列函數(shù)(在代碼中使用了**Series的函數(shù),如:HighD(n)等)折磨,總是弄不太清楚什么時候要對其賦值才能保證程序按照預想的方式運行。
我想問的是:
1、如同Close, High這樣的內置的序列值是否系統(tǒng)會保證初始化,從而在使用時不會出現(xiàn)因賦值而導致的錯誤結果;但是序列函數(shù)則需要對if語句的使用格外小心?
2、請版主詳細的講解一下Series的形成機理,如:空間的分配,何時初始化,if語句在什么情況下會導致序列值的錯誤。(我想的有些頭大)
謝謝啦。
- TB技術人員:
本帖最后由 vividboy 于 2013-7-13 20:22 編輯
測試了一下好像前面的說法也不正確。我想問一下如同Close, High這樣的序列變量是在什么時候初始化,什么時候賦值的?是在調用它的時候嗎?
比如有這樣一個例子:
Params
Vars
Numeric myValue;
Begin
If(Date == 20130712 && Time == 0.093500)
{
myValue = CoefficientR(Close, OpenInt, 10);
Commentary("Rho = " + Text(myValue));
}
End
如果去掉外面的If,則代碼是正常運行的。但是增加了If后,代碼在對應時間的輸出就是錯誤值。
- TB客服:
這個Series的使用和處置問題我看論壇帖子很多,希望管理員和斑竹能詳細的介紹一下Series的初始化和使用的相關過程。為什么會出現(xiàn)可能的警告。以及上面的例子為什么會執(zhí)行不正確。
歷史回溯是程序化交易的核心要素(統(tǒng)計需要),這個有差池很多策略的有效性就無從談起,所以希望能弄清楚。謝謝。
- 網友回復:
vividboy 發(fā)表于 2013-7-15 10:54
這個Series的使用和處置問題我看論壇帖子很多,希望管理員和斑竹能詳細的介紹一下Series的初始化和使用的相 ...
建議你先看看公式指南,里面有詳細的介紹
- 網友回復:
ample 發(fā)表于 2013-7-15 10:57
建議你先看看公式指南,里面有詳細的介紹
《指南》我全部都看了一遍,我看到比較相關的部分就是講“序列變量”的,就是aaa, bbb賦值的問題。
首先,我不太明白一些內置的序列變量是如何/在什么時候初始化的,比如:Close。
其次,我也想不太明白,為什么使用條件(if-else)和不使用結果不一樣,我不太明白這個機理是如何的?
因為Close我們是不能賦值的,但是我取它的值和我在不在if-else中間為什么有關系呢?
所以我希望能有個官方對序列變量初始化和使用機理(如:為什么if-else下會有問題)進行一個詳細清晰的解釋。
如果還有其他的資料我沒涉及也請告知。謝謝。 |