關于IF語句是不是有bug? [開拓者 TB]
- 咨詢內容:
同樣的策略,每一條進場出場的if語句分開寫和合并寫的結果不一樣。
看代碼- If(MarketPosition == 0 And Time >= begintime/100)
- {
- if(Buycondition)
- {
- Buy(BuyLots,Open);
- }
-
- if(Sellcondition)
- {
-
- SellShort(BuyLots,Open);
- }
- }
- If(MarketPosition == 0 And Time >= begintime/100)
- TB技術人員:
除了你貼出來的部分,公式里還有其它什么代碼?
僅就你貼出來的代碼來看(代碼一),第一個開倉信號出現后,不可能再出現其它的第二個信號的。。所以那個開空,應該是其它代碼來實現的。。 - TB客服:
小米 發表于 2015-2-27 10:25
除了你貼出來的部分,公式里還有其它什么代碼?
僅就你貼出來的代碼來看(代碼一),第一個開倉信號出現后 ...
還有一個出場代碼:- if(MarketPosition != 0)
- {
- if(MarketPosition == 1)
- {
-
- /*HighestAfterEntry = Max(High,HighestAfterEntry);
- if(High > EntryPrice + Profit)
- {
- Sell(BuyLots,EntryPrice+ Profit );
- }*/
- if(EntryPrice-low>=par3)
- {
- Sell(BuyLots,Min(open,EntryPrice-par3));
- }
- Else if(BarsSinceEntry >= par1 And low-entryprice<=par2)
- {
- Sell(Buylots,EntryPrice+par2);
- }
- Else if(Sellcondition)
- {
- Sell(BuyLots,Open);
- }
- }
- if(MarketPosition == -1)
- {
- /*if(Low < EntryPrice - Profit)
- {
- BuyToCover(BuyLots,EntryPrice - Profit);
- }*/
- if(high-EntryPrice>=par3 )
- {
- BuyToCover(BuyLots,Max(open,EntryPrice+par3));
- }
- Else if(BarsSinceEntry >= par1 And EntryPrice-High <= par2)
- {
- BuyToCover(BuyLots,entryprice-par2);
- }
- Else if(Buycondition)
- {
- BuyToCover(BuyLots,Open);
- }
- }
- }
- if(Time==0.15143000 and MarketPosition==1)
- {
- Sell(Buylots,open);
- }
- if(Time==0.15143000 and MarketPosition==-1)
- {
- BuyToCover(Buylots,open);
- }
第二種代碼的其他部分就是把if全部拆開來的,跟主樓的例子一樣。 - if(MarketPosition != 0)
- 網友回復:
vista852 發表于 2015-2-27 10:32
還有一個出場代碼:其他的代碼都不涉及進出場了。
第二種代碼的其他部分就是把if全部拆開來的,跟主樓的 ...
所以你的一樓的測試沒有意義呀。。因為信號受了其它語句的影響 。。你要多判斷你的代碼一與代碼二是否結果一致,那只能使用這其中的語句方可。。。 - 網友回復:
小米 發表于 2015-2-27 10:25
除了你貼出來的部分,公式里還有其它什么代碼?
僅就你貼出來的代碼來看(代碼一),第一個開倉信號出現后 ...
是不是在實時行情中,開盤那一個tick,代碼一從上到下執行的時候,只會平倉,等到第二個tick來了才會開倉。而代碼二在第一個tick的執行中會多次判斷持倉狀態,從而開倉。
在歷史測試中每根K線只執行一次,代碼一就只能等到第二根K線才執行?
動態行情中我沒有監控過兩個的區別,信號太多了..
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 1145508240 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容