[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [amibroker] Re: Position sizing based on current equity possible ???



PureBytes Links

Trading Reference Links

Of course he would!  8-)

d 

> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx 
> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of john_dxd_smith
> Sent: Tuesday, April 24, 2007 1:56 PM
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: Position sizing based on current 
> equity possible ???
> 
> 
> Not so fast.
> 
> Wouldn't you like to see the equivalent Custom Backtester codes just
> out of intellectual curiosity or for educational purpose ?
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Thomas" <tzg@xxx> wrote:
> >
> > Hello Graham,
> > 
> > thanks a lot !
> > My headache is over now. :-)
> > Seems that i have tried it to complicated.
> > 
> > Kind regards
> > Thomas
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, Graham <kavemanperth@> wrote:
> > >
> > > I thought you could just so it as this in the main afl code
> > > 
> > > RiskPerContract = 2*ATR(50) x PointValue x TickSize;  ( eg 2*ATR
> > (50) x
> > > 100000 x 0.0001 )
> > > 
> > > PositionSize = -0.75 x MarginDeposit / RiskPerContract;
> > > 
> > > -- 
> > > Cheers
> > > Graham
> > > AB-Write >< Professional AFL Writing Service
> > > Yes, I write AFL code to your requirements
> > > http://www.aflwriting.com
> > > 
> > > 
> > > On 24/04/07, Thomas <tzg@> wrote:
> > > >
> > > > Hello,
> > > >
> > > >
> > > >
> > > > I am trying to write a system that risks always 0.75% 
> of CURRENT 
> > EQUITY
> > > > per trade and uses ATR stops, which means that I need 
> the custom 
> > backtester
> > > > to access actual equity. The problem is that I can't access the 
> > ATR value
> > > > in the signal object, where I could define the position size.
> > > >
> > > >
> > > >
> > > > Here is the description that shows how it should work 
> when it is 
> > finished:
> > > >
> > > >
> > > >
> > > > 1.)     RiskPerContract = 2*ATR(50) x PointValue x (1/TickSize);
> > > >
> > > > 2.)     Contracts = (CurrentEquity x 0.75%) / RiskPerContract;
> > > >
> > > > 3.)     PositionSize = Contracts x MarginDeposit;
> > > >
> > > >
> > > >
> > > > I have already tried a lot and can't find any solution. Please 
> > help if
> > > > possible. See my code below. For simplicity i have just 
> tried to 
> > access the
> > > > ATR value. It seems that AmiBroker simply ignores the value of 
> > sig.PosSizeand instead uses full equity for the trade.
> > > >
> > > > Thanks in advance !
> > > >
> > > >
> > > >
> > > > Kind regards,
> > > >
> > > > Thomas
> > > >
> > > >
> > > >
> > > > SetCustomBacktestProc("");
> > > >
> > > >
> > > >
> > > > *if*( Status("action") == *actionPortfolio* )
> > > >
> > > > {
> > > >
> > > >    bo = GetBacktesterObject();
> > > >
> > > >    bo.PreProcess();
> > > >
> > > >
> > > >
> > > >    *for*( bar = 0; bar < *BarCount*; bar++)
> > > >
> > > >    {
> > > >
> > > >        CurrentPortfolioEquity = bo.Equity;
> > > >
> > > >
> > > >
> > > >        *for*( sig = bo.GetFirstSignal(bar); sig; sig = 
> > bo.GetNextSignal
> > > > (bar))
> > > >
> > > >        {
> > > >
> > > >        sym = sig.Symbol;
> > > >
> > > >        SetForeign(sym);
> > > >
> > > >        MyATR = Ref(2*ATR(50),-1);
> > > >
> > > >        RestorePriceArrays();
> > > >
> > > >
> > > >
> > > >        *if*( CurrentPortfolioEquity > 0 ) sig.PosSize = MyATR
> > [bar];
> > > >
> > > >        *else* sig.PosSize = 0;
> > > >
> > > >        }
> > > >
> > > >        bo.ProcessTradeSignals(bar);
> > > >
> > > >    }
> > > >
> > > >    bo.PostProcess();
> > > >
> > > > }
> > > >
> > > 
> > > 
> /*******************************************************************
> > ****/
> > > >
> > > > // sample rules:
> > > >
> > > > *Buy* = Cross( CCI(), 100 );
> > > >
> > > > *Sell* = Cross( 100, CCI() );
> > > >
> > > > *Short* = Cross( -100, CCI() );
> > > >
> > > > *Cover* = Cross( CCI(), -100 );
> > > >
> > > 
> > > 
> /*******************************************************************
> > ****/
> > > >
> > > > SetOption("InitialEquity",100000);
> > > >
> > > > SetOption("FuturesMode",*True*);
> > > >
> > > > *PointValue* = *PointValue* * (1/*TickSize*);
> > > >
> > > > *RoundLotSize* = 1;
> > > >
> > > > *MarginDeposit* = 1000;
> > > >
> > > 
> > > 
> /*******************************************************************
> > ****/
> > > >
> > > > _SECTION_BEGIN("Price");
> > > >
> > > > SetChartOptions(0,*chartShowArrows*|*chartShowDates*);
> > > >
> > > > _N(*Title* = StrFormat("{{NAME}} - {{INTERVAL}} 
> {{DATE}} Open %g, 
> > Hi %g,
> > > > Lo %g, Close %g (%.1f%%) {{VALUES}}", *O*, *H*, *L*, *C*, 
> > SelectedValue(
> > > > ROC( *C*, 1 ) ) ));
> > > >
> > > > Plot( *C*, "Close", ParamColor("Color", *colorBlack* ), 
> > *styleNoTitle* |
> > > > ParamStyle("Style") | GetPriceStyle() );
> > > >
> > > > _SECTION_END();
> > > >
> > > 
> > > 
> /*******************************************************************
> > ****/
> > > > 
> > > >
> > >
> >
> 
> 
> 
> 
> Please note that this group is for discussion between users only.
> 
> To get support from AmiBroker please send an e-mail directly to 
> SUPPORT {at} amibroker.com
> 
> For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> http://www.amibroker.com/devlog/
> 
> For other support material please check also:
> http://www.amibroker.com/support.html
>  
> Yahoo! Groups Links
> 
> 
> 
> 



Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/