orangelam
發表於 14-8-10 16:54
所以如果你的策略用C的話, 它會在這一秒符合條件買入
但在下一秒又會不符合
那你之後就會發現backtest時沒這個trade
但live trading會出現, 所以才說要加barcomplete去限制當根BAR跑完才入場
j 大, 那我明白了, 我開頭誤以為, close在整數時間才生成, 但其實 H,L,C都會在每時每刻更新. 所以我的case 1 and case 2 的buy signal 在每時每刻都有機會等於1 的. 因為很多時做back test, 假設我只有1 min data, 如果我buy signal 是根據H/L/C來判別, 實際上1mins data 的H/L 是那一分鍾內的High and low. 所以最make senese是buy at closeor next open. 所以在live traging 時, 我當然希望我入市是根據back test result, 所以便要用barcomplete 來控制在整數分鍾才入市. 有時我對於amibrokerembedded/implicit looping (e.g buy/sell) or explicit loop(eg, use i in forloop) 感到混亂, 我想知道這個barcomplete是要在每個loop 裡加, 還是它都是屬於implicit loop嗎? J 大可以示範一下如何加這個barcomplete嗎?
而在live trading中, 由於那些variable會每秒去run一次 所以在K大那條thread才會有這麼多討論
real time裡需用到staticvariable這些functions 再配合newbar去限制那分鐘的BAR只下單一次我的理解是, 因為amibroker 每秒refresh 時, variable value will be cleared. 如果想keep 住variable value, 便要宣告static variable.例如在trail stop 的例子中, 要被宣告成static 的variable便是 trailstop 了, 因為它記住了每個position 的stop level.J 大可以示範一個簡單宣告static variable 再配合newbar去限制那分鍾的bar 只下單一次給我看看嗎? 但相信我現在back test 層面也用不著, 唯有現在了解他, 將來live trading 時用… 但其實我現在也盡量build 一個model 不論在back test 還是在live trading 也用得著, 那就十分方便了….
IB是有實時數據, 而它是snapshot報價的, 好像廿幾元一個月
paper account是免費的, 只要你去IB開戶口然後去申請就可以了
開戶口亦很快, 我只用了3天就已開了
你上網申請完後, 香港IB會聯絡你去交些身份証明文件
然後很快會開通的
之後你存USD10000去activate個account就可以
小弟經驗尚淺, 還是一個苦學生, 財力不夠, usd10000是最少的金額去維持個戶口嗎? 其實暫時有冇這個account 也不要緊, 因為我暫時focus 的是back test 找strategies, 只不過看到j 大的post 後才發現live trading 跟back test 原來有這些不同. 小弟知道在這裡有世界期貨(包括恆指期貨)每秒的data3x.com.tw/FRAME/DataBank/
我在想, 雖然我冇live trading account, 但因為有每秒的data, amibroker 是不是能用以上data來模擬一下live trading 呢? 即利用以上每條data去refresh 我的afl code 模擬live trading. 如果能夠, 我便能用以上data 來做一下”live trading”從而學習一下live trading 時會遇上的問題.
我試了一下用apply stop + equity(1) function 來plot graph,不知道j 大懂不懂, 不懂的話也可以參巧一下:
Buy=Cross(MA(C,10),MA(C,50));Sell=Cross(MA(C,50),MA(C,10));
"buy="+WriteVal(Buy);"sell="+WriteVal(Sell)+"\n";
ApplyStop(stopTypeLoss,stopModePoint,15,1);
Plot(MA(C,10), "movingaverage 10", colorRed, styleLine);Plot(MA(C,50), "movingaverage 10", colorBlue, styleLine);
PlotShapes(shapeUpArrow*Buy,colorBrightGreen);PlotShapes(shapeDownArrow*Sell,colorRed);
Equity(1); // THIS EVALUATES STOPSPlotShapes(shapeDigit2*(Sell==2),colorBlack);
"buy="+WriteVal(Buy);"sell="+WriteVal(Sell);
"buy="+WriteVal(Buy)這個句子是把每條bar variable 的數值input 在interpretation window, 當滑鼠 click 向每條bar 時, 數值便能顯示在 interpretation window. 這個interperation window 很好, 對於我地了解程序運行很有幫助. 原來equity function 會revise 了sell/cover 的數值, 1 - regular exit
2 - max. loss
3 - profit target
4 - trailing
5 - n-bar stop
6 - ruin stop
如果applystop的type 是max loss,equity(1) 便會把2 字assign 在sell/cover.
jacklcl
發表於 14-8-10 23:26
orangelam 發表於 14-8-10 16:54 static/image/common/back.gif
所以如果你的策略用C的話, 它會在這一秒符合條件買入
但在下一秒又會不符合
那你之後就會發現backtest時沒 ...
Barcomplete只需在Buy/Short condition裡加就可以了
那個Loop是exit的, 你Buy/Short = 1 它才會執行
我自己沒用Barcomplete, 如果我用C去trigger的話
通常用Ref這個function, 當前根BAR符合條件後用Open Buy/Short
static variable你可以參考K大那個post, 那裡有很詳細討論和下單的code
模擬live trading我試過用bar replay去debug, 但跟live trading還有些距離
可能我自己還未掌握如何用
IB是要存USD10000去activate account, 只要activate後你可以匯走的
不用長期維持的
我自己沒研究用applystop, 我花了很多時間在exit loop
所以應該不會轉方法了, 除了那個trailing stop
我還有幾種出場方法也是用loop去寫的
orangelam
發表於 14-8-11 22:14
其實我看不懂這句, 當live traging 在每條bar的中間時間時, barindex()會是甚麼數?
barcomplete = BarIndex() < LastValue(BarIndex());
lastvalue return the last element of barindex array. 假設每條bar 是1 min, 如果現在剛完成time n, barindex=n, 如果過了0.2秒, barindex 是甚麼?
為何不用integer check? 例如check whether barindex is integer?
j 大可以給我k 大那個post 嗎? 我找不到...
對, 我也在寫出場的loop, 我的感悟是, 先生成buy sell short cover(用implicit loop), 然後再用for loop 來處理每個element 如何stop loss 或者走人. 以後strategies 都是寫在 buy sell short cover 之上, 那以後就不用改for loop了...不知j 大是不是這樣?
orangelam
發表於 14-8-14 22:18
不好意思j 大, 小弟估計雖然我沒有live trading account, 但如果我用bar replay, 我估計也能試出這句barcomplete, 但就是試不出如何寫.
還有, 對於fhsi, 為什麼你commission 假設30? 證監+交易所都只是10.6, 如果用program trade, 每月trade 數量達某一數目, 證券商會提供便宜的package. 但小弟覺得j 大這樣假設應該也有你的原因吧? j 大有空指點一下吧! thanks!
jacklcl
發表於 14-8-15 09:54
orangelam 發表於 14-8-14 22:18 static/image/common/back.gif
不好意思j 大, 小弟估計雖然我沒有live trading account, 但如果我用bar replay, 我估計也能試出這句barcom ...
barcomplete這句我自己其實沒有用
所以也不清楚
我自己會簡單些, 用ref這個function
除了交易所及証監費用, 還有broker的佣金
我以前用開那間即日平倉就HK$30單邊了
現在看IB還便宜一些
osdak
發表於 14-8-16 19:24
Hi, I wanna know, if I want to have the historical data of HSI future, is adding the below one correct?
thanks!!
kilroy
發表於 14-8-16 23:53
osdak 發表於 14-8-16 19:24 static/image/common/back.gif
Hi, I wanna know, if I want to have the historical data of HSI future, is adding the below one corre ...
應該是這個
osdak
發表於 14-8-17 00:23
kilroy 發表於 14-8-16 23:53 static/image/common/back.gif
應該是這個
thanks! thanks Kilroy{:4_82:}
osdak
發表於 14-8-18 18:06
jacklcl 發表於 14-7-17 00:00 static/image/common/back.gif
我想要看看你的策略能否捕捉大行情
我暫時測試了2年的數據(2010及2011), 共780個交易樣本
這些交易樣本都 ...
Hi, may i know how long is your IS and OOS? I wanna make a reference - no idea which is the best(if there is any....) period for HSI. I have tried 3months IS and 1 month OOS for 30min bar period. seems not a good option.....
thanks!!
jacklcl
發表於 14-8-18 18:19
osdak 發表於 14-8-18 18:06 static/image/common/back.gif
Hi, may i know how long is your IS and OOS? I wanna make a reference - no idea which is the best(i ...
我覺得沒一定準則的
而且每個策略效果都會不同
我是每個組合都測試的
例如 12M/9M/6M/3M vs 1M/2M/3M
做WF我自己就用了差不多1個月時間
這本書<交易策略評估與最佳化>有提過如何做WF
它設定了一些準則, 你可以參考一下
osdak
發表於 14-8-19 09:24
hi, thanks for reply. 我想請問一下, 用loop止損, sellprice, 是否跟當根k的open比較, 才合理?
if( trailstopB > 0 AND Low[ i ] < trailstopB )
{
Sell[ i ] = 1;
SellPrice[ i ] = Min(Open,trailstopB);
trailstopB = 0;
}
jacklcl
發表於 14-8-19 10:20
osdak 發表於 14-8-19 09:24 static/image/common/back.gif
hi, thanks for reply. 我想請問一下, 用loop止損, sellprice, 是否跟當根k的open比較, 才合理?
if( tra ...
是的, 另外我會用 L [ i ] <= trailstopB的
如果只用<, 那個sellprice可能要減1,2點去模擬
jacklcl
發表於 14-8-23 22:49
最近我將策略改用5分鐘
測試5年數據共大約1000個trade
trade no. 較15 MINS多了, 不過equity curve沒15 MINS那麼斜
但績效就好多了, 開始做WF TEST及其他測試看看績效會否走樣
osdak
發表於 14-8-25 10:00
jacklcl 發表於 14-8-23 22:49
最近我將策略改用5分鐘
測試5年數據共大約1000個trade
trade no. 較15 MINS多了, 不過equity curve沒15 MIN ...
看來像很不錯^_^
2/3都是short, 不是long/short平衡的嗎?
jacklcl
發表於 14-8-25 14:03
osdak 發表於 14-8-25 10:00
看來像很不錯^_^
2/3都是short, 不是long/short平衡的嗎?
2邊參數範圍是一樣,short較多可能是過去幾年下跌的速度較上升急,好多時升勢是gap up完就沒趨勢,我的策略是開市後半小時才入市