nsmvjmsojki 發表於 16-7-19 23:45

請問AB的for loop問題

本帖最後由 nsmvjmsojki 於 16-7-19 23:48 編輯

請問各位高手
如下面範例程式裡的for loop,在回測時的k棒是跑完的,當買進條件成立後,trailstop為當天最高點沒有問題,下一根K去跑出場條件.但盤中的k棒一直在動,當買進條件成立後觸價進場,此時trailstop會被記錄為當下的高點(但非收盤後的高點),
可是當日K棒還在跳動,會進到trailstop > 0的條件裡去嗎?
還是雖在盤中進場也會等到K棒跑完去記錄trailstop收盤後的高點?
若即時進場每秒scan一次,會不會進場後在下一秒的scan又進到trailstop > 0去跑出場條件了,(在同一根日K棒裡)

不好意思,問題可能很基本,還請釋疑
Buy = H > ref(MA(C, 50), -1);Sell = 0;
trailARRAY = Null;
trailstop = 0;


for( i = 1; i < BarCount; i++ )
{   
if( trailstop > 0 AND Low[ i ] < trailstop )
{      
Sell[ i ] = 1;      
SellPrice[ i ] = trailstop;      
trailstop = 0;   
}
if( trailstop > 0 )   
{         
trailstop = Max( High[ i ] * stoplevel, trailstop );      
trailARRAY[ i ] = trailstop;   
}   
if( trailstop == 0 AND Buy[ i ] )   
{      
trailstop = High[ i ] * stoplevel;   
}   else Buy[ i ] = 0;}






lwhuang 發表於 16-7-20 07:57

每秒scan一次就會以當下的價格在做,看你的策略,你是想要觸價做還是收k做,要是觸價做就是當下的價格,若是收k做,就檢查上一根k,或是 SetTradeDelays

nsmvjmsojki 發表於 16-7-20 12:45

lwhuang 發表於 16-7-20 07:57
每秒scan一次就會以當下的價格在做,看你的策略,你是想要觸價做還是收k做,要是觸價做就是當下的價格,若 ...

感謝回覆,
我是想觸價做,我想問的是,
在for loop裡的當根K,已觸價進場後因為還沒收盤,K棒還在跳動,
這樣會不會已設定好trailstop去跑退場條件(在當根K棒)
還是觸價後trailstop會等到收盤才給定值,接著於下根K棒才去跑退場條件,
謝謝


PS在回測時歷史資料都已經收盤並固定,所以不會有這問題.

lwhuang 發表於 16-7-20 20:56

不會等收k啊,除非你叫他收k你再檢查,要這樣你就檢查上一根就好了。
要想好回測跟上線要儘量一致,不會有這問題就是個問題,想辦法回測儘量做到實際會有的樣子
頁: [1]
查看完整版本: 請問AB的for loop問題