1. Modal, 100jt. Ukuran modal akan memberikan BIAS, pada timeframe backtest singkat. Logikanya begini, dengan PositionSize 20%, modal 100jt tidak bisa beli ASII, kalau backtestnya dilakukan dalam timeframe 1 tahun. Kalau lebih dari 10 tahun, efeknya berkurang to almost negligible.
2. Tidak begitu jelas dengan pertanyaannya. Mau backtest terhadap 3 emiten ONLY, atau mau ambil 3 emiten dari sekumpulan emiten list? Jawabannya ada di filter dan MaxOpenPositions, Pak. Kalau yang pertama, filternya saja diisi tiga emiten. Kalau yang kedua, set nilai MaxOpenPositions jadi 3. Kalau tentang ukuran tiap posisi sama, itu sudah dikerjakan oleh PositionSize 20% tadi. Tapi kalau tiga, ya dibuat jadi 100/3 %.
Oya, sudah ada yang optimize belum MaxOpenPosition ini? Klik saja button optimize, AmiBroker akan tunjukkan, nilai optimalnya. Backtest, optimize, are cold screener for our perception.
3. System wise, not enough, Pak. Dengan data 5-6 tahun, saya tidak bisa lihat 1997, 1998, 2000.. semua tahun ini besar nilainya in terms of risk assessment. Diskonnya ASII di 98, lebih tajam dari 2008, Pak.. hehe..
4. RSI based scoringnya, saya buat - karena ini BARGAIN HUNTER, tentunnya nilai RSI terkecil PREFERRED. Makanya formulanya, PositionScore=100-RSI(); Artinya nilai RSI kecil akan memiliki scoring lebih besar dibanding yang nilai RSI nya lebih tinggi.
Salam.
2010/12/22 Eco Syariah <esyariah@gmail.com>
Nanya juga ya mas Wisnu,
Dari snapshot terlihat kalau backtest tsb dilakukan thdp sekumpulan saham terpilih, bukan satu saham atau keseluruhan symbol yg ada di AB mas Wisnu... pertanyaannya:
1) Modal awal pd BT itu berapa mas ? karena kalau tidak salah besar modal berpengaruh pd position size atau banyaknya saham yg bisa "dibeli" per sinyal sistem, sehingga sec keseluruhan mempengaruhi hasil akhir: Profit/Loss, CAR, DD, dll... kecuali,
2) Bisa ndak kita BT thdp sekumpulan saham tapi proses BT nya satu per satu saham dengan modal yang sama ? ... misal: modal 100jt, maxpostsize = 3... maka hasil BT akan menunjukkan ke 3 saham tsb dr sekumpulan saham yg dipilih ? Kalau bisa dan ada waktu, bantuin codingnya ya... soalnya saya ndak bisa dan ndak tau how to do it.
3) 20 tahun backtest boleh gak diganti 3-5 thn saja, apalagi kek saya yg pakai data yahoo... dimana data yg tersedia tidak mencapai waktu 20 thn dan banyak data bolong serta belum adjusted... Dan kalau saya tidak salah dengan waktu 5-6 thn masih mencerminkan kondisi/price movement terkini ?
4) PositionScore kan dgn RSI... apakah artinya untuk meranking saham2 tsb sesuai dgn score RSI terbesar ? Bagaimana memahami hubungan RSI dengan DivBar / Wiseman1 atau Buy Sell nya ?
Uupss... maaf kebanyakan nanya... soalnya belum ngerti...
Thanks,
ES2010/12/21 <timurlangit.is.here@gmail.com>
Mantap Pak Wisnu,
Untuk mengurangi drawdown, bagaimana jika dikasi level cutloss misal -2% dari L pada candle beli.
Btw Pak, sebagai benchmark, berapa
CAR dan MaxSysDD utk system BO Pak Wisnu pada saham ini?
TimurFrom: Wisnu Mobile <wisnu.working@gmail.com>Sender: amibroker-4-bei@yahoogroups.comDate: Tue, 21 Dec 2010 12:57:45 +0700ReplyTo: amibroker-4-bei@yahoogroups.comSubject: [Komunitas AmiBroker] [PROJECT] Bargain Hunter Backtest - CLOSEDTernyata Wiseman1 lumayan menguntungkan.
1. 20 years backtested. CAR: 82%! WB kalah tuw.. Problema nya ada di MaxSysDD: -52%! Saya belum pernah lihat trader senior yang mampu stomach this kind of drawdown. Kalau beginner malah sering lihat.. :) Bisa diperbaiki dengan better Exit.2. Entry: BULLISH DIVERGENCE BAR, with DISCOUNT as a qualifier (gantinya Angulasi). Silahkan diganti dengan kondisi lain yang anda mau. Leave variable names intact, supaya bisa dipanggil.3. Simple MM: 5 max open positions (optimization capable - untuk yang mau belajar optimasi), RSI based position score.4. Exit, karena tidak ada inputan - mungkin entry nya sangat profitable barangkali, saya pakai REVERSE Divergence Bar... hehe... silahkan diganti kalau punya kode yang lebih baik.5. Realtime Entry-Exit.Snapshot and code, attached.Hari ini sudah masuk pasar lagi... jadinya project ini kudu diselesaikan.. :) Silahkan dikembangkan sendiri-sendiri ya..Salam.Code:_SECTION_BEGIN("Price");SetChartOptions(0,chartShowArrows|chartShowDates|chartLogarithmic);_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );if( ParamToggle("Tooltip shows", "All Values|Only Prices" ) ){ToolTip=StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 )));}_SECTION_END();
_SECTION_BEGIN("Trade System");GfxSelectFont("Tahoma", 12, 400);GfxDrawText("Wiseman1 - BETA", 4, 15, 350, 40);SetFormulaName("Wiseman1 - BETA");SetTradeDelays( 0, 0, 0, 0);MaxOpenPos=Optimize("MaxOpenPositions", 5, 1, 10, 1);SetOption("MaxOpenPositions", MaxOpenPos);PositionSize=-100/MaxOpenPos;PositionScore=100-RSI();/*Wiseman1*/DivBar=(L<Ref(L,-1)) AND (C>(H+L)/2); //DivBar/*Angulation Replacement - take out and replace if you want, but keep the variables name intact.*/PriceDisc=1-Param("PriceDisc (%)", 5, 0, 50, 5)/100;DBQualifier1=(C<=Ref(C,-Param("LookBack Period", 5, 3, 10, 1))*PriceDisc);WS1DivBar=DivBar AND DBQualifier1;DaySinceDivBar=BarsSince(WS1DivBar);WS1BuyCond1=C>Ref(H,-DaySinceDivBar);//Entry if Close higher than DivBar HBuy=WS1BuyCond1;BuyPrice=Ref(H,-DaySinceDivBar);//Realtime Buy Price at DivBar HRevDivBar=(L>Ref(L,-1)) AND (C<(H+L)/2); // Reverse DivBar ExitDaySinceRevDivBar=BarsSince(RevDivBar);WS1ExitCond1=C<Ref(L,-DaySinceRevDivBar); //Exit if Close lower than RevDivBar LSell=WS1ExitCond1;SellPrice=Ref(L,-DaySinceRevDivBar);//Realtime Exit Price at RevDivBar LBuy=ExRem(Buy,WS1DivBar);Sell=ExRem(Sell,RevDivBar);Sell=ExRem(Sell,Buy);PlotShapes(IIf(WS1DivBar,shapeSmallUpTriangle,Null), colorBlue, 0, L, -15);PlotShapes(IIf(Buy,shapeSmallUpTriangle,Null), colorBrightGreen, 0, L, -10);PlotShapes(IIf(RevDivBar,shapeSmallDownTriangle,Null), colorYellow, 0, H, -15);PlotShapes(IIf(Sell,shapeSmallDownTriangle,Null), colorRed, 0, H, -10);_SECTION_END();_SECTION_BEGIN("Daily Explorer");Filter=Buy OR Sell;AddTextColumn( WriteIf(Buy, "Buy!",WriteIf(Sell, "Sell!", "")), "Trade Signal", 1.0);AddColumn(C, "Close", 1.0);_SECTION_END();
__._,_.___



No comments:
Post a Comment