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

Re: [amibroker] Re: Passing array to Backtester [1 Attachment]



PureBytes Links

Trading Reference Links

Hi,

Attached is the afl.  This runs on EC 5min database.  If you want me to upload this db to the files section, i'll be happy to do it. I've tried everything.  For some reason I just cannot pass the risk per trade to the backtester just to output the values and calc r-multiples. I can't believe how difficult and cumbersome this process is. The values are in the ~MSL before the backtester.

Mike, if will be much harder to recalc the ATR array in the bactester and trying to figure out which bar the trade happened and take that value from the array as the original risk.  That's why i'm trying to pass it.  Also, if the trade object had a method getEntryBarNum it would have been easier.

Any help appreciated!
Nick

Attachment: Description: Binary data


On Jul 15, 2009, at 9:04 PM, Mike wrote:

Nick, 

Since ATR uses OHLC I'm assuming that it will use the OHLC of the foreign symbol once bracketed by SetForeign/RestorePriceArrays.

The point that I was trying to stress was that once you've called SetForeign, you can do all kinds of array manipulations on that symbol, then reference the value you want for the bar in question. 

In other words, instead of trying to reference your external array FROM the backtester code, calculate the array IN the backtester code. 

Look again at the earlier post and try using ATR between SetForeign/RestorePriceArrrays.

That being said, when looking again at your original code example and taking a cue from Bruce's reply; try using "X" in both the AddToComposite and Foreign, and use atcFlagEnableInPortfolio instead of atcFlagEnableInBacktest.

Mike

--- In amibroker@xxxxxxxxxps.com, Nick Willemse <nick.willemse@...> wrote:
>
> Thanks Mike,
> 
> Yea, van tharp's stuff makes a lot of sense to me :)
> 
> The example you've posted still uses only price data, which is kind of 
> straight forward referring back to price. I am using that value of 
> the ATR of price. The problem is trying to make this value(array) 
> available in the backtester part of the code.
> 
> 
> Nick
> 
> On Jul 15, 2009, at 1:32 PM, Mike wrote:
> 
> >
> >
> > This is a popular topic lately. Van Tharp must be doing well with 
> > his new book ;)
> >
> > See my earlier post on the subject for how to calculate the risk 
> > anyway you see fit. Note that the expectancy shown in that post was 
> > the formula provided by the original poster, it is not the formula 
> > used by Van Tharp, so refer to the methodology, but not the formula:
> >
> > http://finance.groups.yahoo.com/group/amibroker/message/139969
> >
> > Mike
> >
> > --- In amibroker@xxxxxxxxxps.com, Nick Willemse <nick.willemse@> 
> > wrote:
> > >
> > > Hi Everyone,
> > >
> > > I'm trying to add Risk and R-Multiples to the TradeList. I've looked
> > > at the example using MaxLossPercent to add r-multiples and that is
> > > pretty straight forward. However, my risk per trade is based on some
> > > multiple of the ATR. So I put the risk points per trade in an array,
> > > then I tried using the addtocomposite and Foreign functions to get
> > > this array to the backtester section, but it seems that all the data
> > > is zero when it gets to the backtester. Is there any other way to
> > > make this array holding the risks per trade available to the
> > > backtester to output this for each trade?
> > >
> > > Here's some of the code:-
> > >
> > >
> > > Risk = 2.5 * ATR(14);
> > > i = 0;
> > > MSL = 0;
> > > for( bar=1; bar < BarCount; bar++)
> > > {
> > > if (Buy[bar] == 1 OR Short[bar] == 1)
> > > {
> > > MSL[i] = Risk[bar];
> > > // _TRACE("MSL = " + MSL[i]); //this outputs correct values
> > > i++;
> > > }
> > > }
> > > AddToComposite( MSL,"~MSL","V", atcFlagDeleteValues |
> > > atcFlagEnableInBacktest); // if i plot this it looks fine
> > >
> > > ...
> > >
> > > if(AAAction == actionPortfolio)
> > > {
> > > MSL = Foreign("~MSL", "X",0);
> > > _TRACE("MSL=" + MSL[0]); // this output 0 for every index in the
> > > array
> > > ...
> > >
> > > }
> > >
> > >
> > >
> > > Nick
> > >
> >
> >
> >
>