|
對於trail stop的code, 我跟你的理解是一樣的, 在回測時, 假設我用1min data, 因為是做回測, 明確地i=1時指第一條bar即第一分鍾, n=2時指第二條bar...
所以那個for loop 也十分明確地在loop 每條bar, 但back test 是失去了一分鍾內的data的(前題是我只有1min data), 所以在live trading 時, 如果每秒refresh, 我便想到case 1 and case 2的問題,
你case 1里的 n + 0.2 是否指buy = 1 (buy was triggered at N bar) 後過了0.2分鐘?
對, 我假設在分鍾n 時, 這個buy 叫做buy[n]=1, 如果現在到了時間n+0.2(就當作是上一下refresh 在t=n, 下一下就refresh 在t=n+0.2 吧),在這個t=n+0.2 時, 我想知道如果BUY=(Triggered by Close price only)
因為如果close 只在整數分鍾才生成, 那這個buy[n+0.2]會是甚麼? 例如buy trigger by MA(10)>23000, 而這個MA 是根據過去十分鍾的close 來生成, 但在t=n+0.2 時, 因為close 還未出現, 何來MA(10)?
你case 2如果用H/L去trigger signals的話
那個buyprice/shortprice會是你那個條件的價件
例如breakout strategy, 突破前3條BAR高位則BUY = 1
Upper = HHV(Ref(H, -1), 3);
Buy = H >= Upper;
那你模擬的buyprice則會是這個breakout point
BuyPrice = Upper;
j 大意思是不是指, 因為如果buy/short trigger 是根據H/L, 而H,L在每秒也會生成的, 所以唯有手動設定一個Buyprice? (我混亂的是, 在setting--> trades set 了buy at close, 但你用buyprice=upper, 不會起衝突嗎?)
如果是的話, 它不會有buyprice的, 最後那句else Buy[ i ] = 0已filter了之後的buy signal
對, 當我們做back test 時, 開頭的buy, sell 巳經loop through 了所有bar一次, 例如buy arrary 是
(0,0,1,0,0,1) 當走到下面的for loop 時, 再由第一粒buy loop到第六粒buy, 如果第三粒的buy=1 在for loop走到第六粒時還未被settle position, 第六粒的buy 便會強制變成0了. 應該是這樣吧...
IB paper account 應該是在live trading 時可以實時import 數據入amibroker, 然後再用自己的strategies 模擬trade. 但有免費試用版嗎? 應該都冇的...
感謝j大, 現在清晰了很多, 也肯定了一些understanding
|
|