Fave This

Tuesday, 21 December 2010

Re: [Komunitas AmiBroker] [PROJECT] Bargain Hunter Backtest - CLOSED



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,
ES


2010/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?

Timur


From: Wisnu Mobile <wisnu.working@gmail.com>
Date: Tue, 21 Dec 2010 12:57:45 +0700
Subject: [Komunitas AmiBroker] [PROJECT] Bargain Hunter Backtest - CLOSED

 

Ternyata 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 H

Buy=WS1BuyCond1;
BuyPrice=Ref(H,-DaySinceDivBar);//Realtime Buy Price at DivBar H

RevDivBar=(L>Ref(L,-1)) AND (C<(H+L)/2); // Reverse DivBar Exit
DaySinceRevDivBar=BarsSince(RevDivBar);
WS1ExitCond1=C<Ref(L,-DaySinceRevDivBar); //Exit if Close lower than RevDivBar L

Sell=WS1ExitCond1;
SellPrice=Ref(L,-DaySinceRevDivBar);//Realtime Exit Price at RevDivBar L

Buy=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();








__._,_.___


Apabila membutuhkan software AmiBroker, Realtime Intraday Data & Pelatihan silahkan kontak : Dendo Valentino | Cell : 08159304868 | e-mail: amibrokerfreak{at}yahoo.co.id | YM id : dendov | http://www.facebook.com/dendo.amibrokerfreak | http://www.amibroker-4-bei.org





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

No comments:

Post a Comment