|
amibroker.com/kb/2007/03/24/how-to-plot-a-trailing-stop-in-the-price-chart/
if( trailstop > 0 AND Low[ i ] < trailstop )
{
Sell[ i ] = 1;
SellPrice[ i ] = trailstop;
trailstop = 0;
}
假設在做backtest 時(以下簡單一點假設滑價是0), 做的是1mins data, 又假設某一刻buy at 22320, trailing stop level 是22350. 如果現在loop到下面這支bar
high22360
open22355
close22348
low22345
因為trailstop > 0 AND Low[ i ] < trailstop, 所以符合了exit rule, 所以sellprice=22350
但在real time data時(假設現在是交易時間, 每一刻都有價格進入amibroker), 如果未來這一分鍾是上述這條bar, 假設在這一分鍾內, 有六個交易價格進入amibroker, 例如下面:
when
Time=n, price=22355 (open)
Time=n+0.2, price=22349
Time=n+0.4, price=22345 (low)
Time=n+0.6, price=22353
Time=n+0.8, price=22360 (high)
Time=n+1, price=22348 (close)
如果amibroker一分鍾才refresh 一次, 當然一分鍾後low(n+1)=22345, 符合了exit rule and sellprice=22350, 但在t=n+1 時, 以22350 sell 出是不實際的. 所以我估計amibroker 是不是在這一分鍾內, 每收到價格時便refresh and loop 一次? 例如下面:
when Time=n+0.2, 現在有兩支價格, 分別是
Time=n, price=22355 (open)
Time=n+0.2, price=22349
所以 在這刻, amibroker 如果loop 一次的話, low(n to n+0.2)=22349, 符合exit rule, 所以sellprice=22350 (當然現實中會滑一點點價, 例如2點, 所以sellprice=22348, 便可以成交了)
Furthermore, if generalise this idea, 是不是每當有data 進入amibroker 時, amibroker 便會造出對應的open high low close 然後再loop 一次?
例如現在是t=n+0.2而且有一個data 進入amibroker, amibroker便根據t=n to t=n+0.2 內的數據做一set open high low close, then loop once.
例如現在是t=n+0.4而且有一個data 進入amibroker, amibroker便根據t=n to t=n+0.4 內的數據做一set open high low close, then loop once.
小弟未試過real time data, 不知道以上想法合不合理, 及在real time 時amibroker會怎樣處理連續的data.
j 大及o大有空解答一下吧:) 感謝
|
|