jacklcl 發表於 14-5-9 14:22

請問如何跑多策略

如我有2個完全不同的策略在單商品跑, 應如何做到?
爬過一下文, 但不太理解
希望有大大指點!!
謝謝!!

kilroy 發表於 14-5-9 14:34

HI
有幾個方式

1. 開兩個圖表
2. 開一個圖表

但結果都一樣,你必須把倉位的數量正確送出到下單機下單

所以得計算這兩個策略進場訊號的倉位總和


參考看看了

jacklcl 發表於 14-5-9 14:43

本帖最後由 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:19

本帖最後由 joshsmi 於 14-5-9 15:20 編輯

#6 http://www.coco-in.net/thread-34191-1-1.html

kilroy 發表於 14-5-9 15:21

jacklcl 發表於 14-5-9 14:43 static/image/common/back.gif
如開一個圖表, 請問具體操作是怎樣?
我還沒去到下單階段, 只用來做回測看看
我再補充一下


寫兩組買賣條件

分別畫指標

jacklcl 發表於 14-5-9 15:32

本帖最後由 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!!

lwhuang 發表於 14-5-9 15:44

寫2個afl,開2個analysis,都指向同一個商品,run
that's all

jacklcl 發表於 14-5-9 15:49

lwhuang 發表於 14-5-9 15:44 static/image/common/back.gif
寫2個afl,開2個analysis,都指向同一個商品,run
that's all

大大, 現在我就是這樣做
不過這樣做就會有2個回測報告
而我想將2個合併後只出一個回測報告
主要是想看合併後EQUITY CURVE走勢
所以不知如何做到

謝謝!!

wicebing 發表於 14-5-9 16:26

推薦策略經理人

http://www.quantitative-advisors.com/strategymanager

你的需求先用他的試用版就夠了

jacklcl 發表於 14-5-9 17:42

wicebing 發表於 14-5-9 16:26 static/image/common/back.gif
推薦策略經理人

http://www.quantitative-advisors.com/strategymanager


謝大大, 剛看過了
只能測試台指
不能自行匯入其他商品

kilroy 發表於 14-5-9 17:43

jacklcl 發表於 14-5-9 17:42 static/image/common/back.gif
謝大大, 剛看過了
只能測試台指
不能自行匯入其他商品

輸出成 excel 在自製一下吧 XD

jacklcl 發表於 14-5-9 21:23

kilroy 發表於 14-5-9 17:43 static/image/common/back.gif
輸出成 excel 在自製一下吧 XD

大大意思是將回測結果輸出成EXCEL
再自行用EXCEL將2個策略的EQUITY CURVE畫出?

lwhuang 發表於 14-5-9 21:36

大家有寫信去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 );

kilroy 發表於 14-5-9 21:37

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:46

本帖最後由 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
查看完整版本: 請問如何跑多策略