請問如何跑多策略
如我有2個完全不同的策略在單商品跑, 應如何做到?爬過一下文, 但不太理解
希望有大大指點!!
謝謝!! HI
有幾個方式
1. 開兩個圖表
2. 開一個圖表
但結果都一樣,你必須把倉位的數量正確送出到下單機下單
所以得計算這兩個策略進場訊號的倉位總和
參考看看了
本帖最後由 jacklcl 於 14-5-9 14:54 編輯
kilroy 發表於 14-5-9 14:34 static/image/common/back.gif
HI
有幾個方式
如開一個圖表, 請問具體操作是怎樣?
我還沒去到下單階段, 只用來做回測看看
我再補充一下
這2個策略的買賣點不同
1個是突破策略並在當天BUY或SHORT
另一個則是捕捉轉折點策略, SIGNAL出現後, 在隔天OPEN PRICE BUY 或 SHORT
所以我不知如何將2個策略結合
主要我是想看看結合後EQUITY CURVE會怎樣
謝謝大大!!
本帖最後由 joshsmi 於 14-5-9 15:20 編輯
#6 http://www.coco-in.net/thread-34191-1-1.html jacklcl 發表於 14-5-9 14:43 static/image/common/back.gif
如開一個圖表, 請問具體操作是怎樣?
我還沒去到下單階段, 只用來做回測看看
我再補充一下
寫兩組買賣條件
分別畫指標
本帖最後由 jacklcl 於 14-5-9 15:34 編輯
joshsmi 發表於 14-5-9 15:19 static/image/common/back.gif
#6 http://www.coco-in.net/thread-34191-1-1.html
Hi joshsmi,
I have just read yr AFL in this post but found that the entry prices are the same in these multiple strategies (BuyPrice = SellPrice = Close;).
But if the strategies have different entry point, says one will buy at breakout out point at intraday but another will buy at next day at open price, how can I write this in AFL if i want to combine it into one?
Thank you again!!
寫2個afl,開2個analysis,都指向同一個商品,run
that's all lwhuang 發表於 14-5-9 15:44 static/image/common/back.gif
寫2個afl,開2個analysis,都指向同一個商品,run
that's all
大大, 現在我就是這樣做
不過這樣做就會有2個回測報告
而我想將2個合併後只出一個回測報告
主要是想看合併後EQUITY CURVE走勢
所以不知如何做到
謝謝!!
推薦策略經理人
http://www.quantitative-advisors.com/strategymanager
你的需求先用他的試用版就夠了 wicebing 發表於 14-5-9 16:26 static/image/common/back.gif
推薦策略經理人
http://www.quantitative-advisors.com/strategymanager
謝大大, 剛看過了
只能測試台指
不能自行匯入其他商品
jacklcl 發表於 14-5-9 17:42 static/image/common/back.gif
謝大大, 剛看過了
只能測試台指
不能自行匯入其他商品
輸出成 excel 在自製一下吧 XD
kilroy 發表於 14-5-9 17:43 static/image/common/back.gif
輸出成 excel 在自製一下吧 XD
大大意思是將回測結果輸出成EXCEL
再自行用EXCEL將2個策略的EQUITY CURVE畫出? 大家有寫信去amibroker問過嗎?他們會回答喔!針對這個問題我去信問了,回覆如下:還沒研究,先貼上來
Hello,
Thank you very much for your e-mail. You can create a copy of equity from each backtest run:
http://www.amibroker.com/kb/2006/03/11/how-to-create-copy-of-portfolio-equity/
If you use different names for the composite tickers you create, then you can use FOREIGN to combine them all:
equityTicker = Foreign("~EquityCopy1", "C")+Foreign("~EquityCopy2", "C")+Foreign("~EquityCopy3", "C");
See:
http://www.amibroker.com/f?foreign
So – you can for example modify the built-in Portfolio-equity formula for that like this:eq = Foreign("~EquityCopy1", "C")+Foreign("~EquityCopy2", "C")+Foreign("~EquityCopy3", "C");;
Cash = Foreign("~EquityCopy1", "L")+Foreign("~EquityCopy2", "L")+Foreign("~EquityCopy3", "L");;
dr = eq - Highest(eq);
bslh = HighestBars(eq);
GraphZOrder=1;
Plot(eq, "Portfolio Equity", colorLightBlue, styleArea );
if( ParamToggle("Show Cash", "No|Yes", 1 ) ) Plot(cash, "Cash", colorGreen, styleArea );
if( ParamToggle("Show Drawdown", "No|Yes", 1 ) ) Plot(dr, "Drawdown", colorDarkRed, styleArea );
if( ParamToggle("Show #bars since last high", "No|Yes", 0 ) ) Plot(bslh, "#bars since last high", colorDarkYellow, styleLine | styleOwnScale, 0, 10 * LastValue( Highest( bslh ) ) );
islastbar = Status("lastbarintest");
isfirstbar = Status("firstbarintest");
bar = BarIndex();
firstbar = LastValue( ValueWhen( isfirstbar, bar ) );
lastbar = LastValue( ValueWhen( islastbar, bar ) );
al = LastValue( ValueWhen( islastbar, LinRegSlope( eq, Lastbar - firstbar + 1 ) ) );
bl = LastValue( ValueWhen( islastbar, LinRegIntercept( eq, Lastbar - firstbar + 1 ) ) );
Lr = al * ( BarIndex() - firstbar ) + bl;
Lr = IIf( bar >= firstbar AND bar <= lastbar , Lr, Null );
if( ParamToggle("Show lin. reg.", "No|Yes", 0 ) )Plot( Lr , "Linear Reg", colorRed, styleThick ); jacklcl 發表於 14-5-9 21:23 static/image/common/back.gif
大大意思是將回測結果輸出成EXCEL
再自行用EXCEL將2個策略的EQUITY CURVE畫出?
是的
AB 可以一個 AFL 回測 多個商品
而多個 AFL 跑一個商品的回測,沒辦法跑在同一個 report 上
這點 MC 就做得很好,也方便多了
---
以下是輸出進出場點位的範例
_SECTION_BEGIN("BackTest Export");
BT=fopen("C:\\BackTEST.csv","w");
_PZ=1;
y = Year(); m = Month(); d = Day();
ThisIsLastBar = BarIndex() == LastValue( BarIndex() );
for( i = 0; i < BarCount; i++ )
{
if( Buy )
{
BTE=StrFormat("%02.0f/%02.0f/%02.0f,B,%.04f,%g\n",Y,M,D,BuyPrice, _PZ);
fputs(BTE,BT);
}
if( Short )
{
BTE=StrFormat("%02.0f/%02.0f/%02.0f,S,%.04f,%g,%g\n",Y,M,D, ShortPrice, _PZ);
fputs(BTE,BT);
}
if( ThisIsLastBar )
{
BTE = StrFormat("%02.0f/%02.0f/%02.0f,Close,%.4f\n",Y,M,D, C);
fputs(BTE,BT);
}
}
fclose(BT);
_SECTION_END();
---
當中 _PZ 是口數,請依照自己的策略來設定囉
跑出來的 CSV 還需要再自行輸入判斷式來計算損益(記得將滑價與成本加進去算)
兩個 AFL 跑出 CSV 檔之後,計算好了再畫圖表出來
參考看看了
本帖最後由 kilroy 於 14-5-9 21:54 編輯
lwhuang 發表於 14-5-9 21:36 static/image/common/back.gif
大家有寫信去amibroker問過嗎?他們會回答喔!針對這個問題我去信問了,回覆如下:還沒研究,先貼上來
Hel ...
小弟也愛發問
之前問過的問題,比較有印象的大概是...
1. 可否自行設定 rollover date
ans: 沒有這樣的功能,可以自己寫 AFL 來接資料 (但不提供範例 囧")
2. 可否增設關閉確認視窗
ans: 不小心關閉視窗(chart)時,可以用 new -> defult chart 再開啟原本預載的AFL視窗
(但不符合我的需求) 目前也無打算增設這樣的功能 囧"
其實我只要一個關閉前的確認視窗而已 XD
3. 回補 eSignal 為何 1min 的資料只能回補到 2011/7 左右
ans: 說是 eSignal 的問題,不過把 time base interval 設定成 5min 就可以回補到 2007/mar 了
而 time base 不影響即時接收 tick 的週期
4. 有關於 IB Controller 對應 IB TWS 的語法使用,如重複送單問題等等...
ans: 參考此網站
大大能提供建議給 AB,AB 再增加新功能,這點很棒~~
感謝分享
頁:
[1]
2