【求教】使用非確定不變的數據作為判斷條件,有什么辦法使信號不消失? [開拓者 TB]
- 咨詢內容:
小弟有一難題,求各位大神幫幫!如下:
If(MarketPosition == 1 And BarsSinceEntry >= 1)
{
If(Close < MA1)
{
Sell(0,Close);
}
當K線還在運動時,close 代表的是最新價,而我想要的也是當最新價跌破MA1的時候平倉,
當以最新價平倉后,K線是沒有停止運動的,
然而K線停止后,CLose 代表的是收盤價,這樣收盤的標示也會隨之下移到收盤價的位置,
導致信號標注得不準確(有時候也會導致信號消失),進行回測的結果也是天壤之別!
面對這樣的問題,請問該如何解決?謝謝 - TB技術人員:
Q:如何處理訊號出現又消失的情況?
A:有以下兩種方式:
1、使用Buy(1,Close,True)這樣的格式,將信號延遲到該Bar走完,下一個Bar的第一個Tick出現的時候發送。
這個時候您可以用Buy(1,Close,True),表示的意思是用當前Bar的收盤價在下一個Bar開始時候交易。
您也可以用Buy(1,NextOpen,True),表示用下一個Bar的開盤價交易。
對于上面的這種處理方式,還有另外一種變通的處理,那就是取上一個Bar的條件或數據,只用當前Bar的Open價來進行判斷。這樣公式會寫得更清晰。以下兩段代碼效果是相同的。- 01.Condition = 您的交易條件;
- 02.If(Condition)
- 03.{
- 04. Buy(1,NextOpen,True);
- 05.}
- 01.Condition = 您的交易條件;
- 02.If(Condition[1])
- 03.{
- 04. Buy(1,Open);
- 05.}
此時我們需要選擇另外一種處理方式。使用High,Low,Open這樣能夠保持住的價格來進行條件判斷。
是價格往上的突破形成的交易操作用High來判斷。是價格下上的突破形成的交易操作用Low來判斷。其他不確定方向的情況最好用Open來判斷。
比如,以下兩種情況在實時交易方面同樣迅速,但后面的就不會出現訊號消失的問題。- 01.AvgClose = AverageFC(Close,10);
- 02.If(CrossOver(Close,AvgClose))
- 03.{
- 04. Buy(1,AvgClose+MinMove*PriceScale);
- 05.}
- 01.AvgClose = AverageFC(Close,10);
- 02.If(CrossOver(High,AvgClose))
- 03.{
- 04. Buy(1,AvgClose+MinMove*PriceScale);
- 05.}
TB公式之常見問題(Q&A)!
http://bbs.tb18.net/forum.php?mo ... &fromuid=202052
- 01.Condition = 您的交易條件;
- TB客服:
CWQ_dylan 發表于 2015-1-29 21:32
Q:如何處理訊號出現又消失的情況?
A:有以下兩種方式:
1.因為AvgClose獲取的是當前K線的Close,在實盤中Close會隨時改變,因此AvgClose是不真實的
2.用H或者L判斷,在實盤中不會出現信號消失,但測試結果也是不準的(小周期影響不大,大周期會有很大影響)
3.通過MinMove*PriceScale這種方式增加滑點,也會導致測試結果不準,但影響不會很大
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 1145508240 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容