TB軟件邏輯操作的一點(diǎn)疑惑——請(qǐng)版主解釋下 - TradeBlazer公式 [開拓者 TB]
- 咨詢內(nèi)容:
Params
Numeric shijian_3(1440);
Vars
Bool Condition_Buy_Kai_1(false);
Bool Condition_Buy_Kai_2(false);
Bool Condition_Sell_Ping(false);
Bool Buy_Kai_m(false);
Bool Buy_Kai_c(false);
Begin
Condition_Buy_Kai_1 =( (MarketPosition ==0) &&
(Close[1] >(OpenD(0)*1.02))
) ;
Buy_Kai_m = (MarketPosition ==0) ;
Buy_Kai_c = (Close[1] >(OpenD(0)*1.02)) ;
Condition_Buy_Kai_2 =(Buy_Kai_m &&Buy_Kai_c) ;
// 在1分鐘周期的K線上,若當(dāng)時(shí)的Close[1]超過當(dāng)天的開盤價(jià)OpenD(0) 的2%,就開倉(cāng)。
// 上面的兩種表達(dá)式 Condition_Buy_Kai_1 與 Condition_Buy_Kai_2 完全等價(jià)嗎?
if (Condition_Buy_Kai_1)
{
Buy(1,Open);
}
Condition_Sell_Ping =(BarsSinceEntry>=shijian_3 );
if (Condition_Sell_Ping)
{
Sell(1,Close);
}
End
//上面的公式程序,用于歷史數(shù)據(jù)測(cè)試。將Condition_Buy_Kai_2 替換Condition_Buy_Kai_1 作為開倉(cāng)條件,
//測(cè)試結(jié)果完全不同,不知什么原因? - TB技術(shù)人員:
不完全等價(jià),如果用到邏輯判斷符表達(dá)式中含有序列函數(shù)(比如openD這類),TB會(huì)發(fā)生莫名的邏輯錯(cuò)誤。
我在實(shí)際編寫時(shí)也遇到此類問題,TB方面沒有官方的解釋,目前強(qiáng)調(diào)的是自主規(guī)避。
比如你寫個(gè)表達(dá)式TEMP=openD(……),然后將TEMP代入表達(dá)式再行運(yùn)算就行了。 - TB客服: 謝謝cexia回復(fù)。 前段時(shí)間就覺得有問題,直到節(jié)后上班才聯(lián)系上TB的客戶人員,客戶人員讓發(fā)到論壇上,說有人處理。咱就把這論壇當(dāng)“圣地”一樣朝拜,發(fā)了兩次帖子,也沒見TB官方任何回應(yīng)。實(shí)在無語。。。。。 想想還有如此的陷阱,難免讓人背脊發(fā)涼。。。。。。
相關(guān)文章
-
沒有相關(guān)內(nèi)容