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

[amibroker] Re: Add column to back-tester results grid



PureBytes Links

Trading Reference Links

Mike,

Great - thank you very much for the input.

I had actually missed your reply and went on the internet to search for a solution. 
I did find 2 old blog posts describing a way to implement the e-ratio (which is exactly what I want to implement)
I did reply to my own question before seeing yours, but it is not showing up - maybe because there were 2 links in it...

In any case the overview of the solution was the following:

My implementation of the Edge Ratio, included below, involves two profound Amibroker fudges. The first is the use of the AddToComposite function to create a composite ticker symbol in which to hold the ATR array of a given stock for later retrieval within the Custom Back Tester via the Foreign function.  The second fudge is the use of the VarSet/VarGet function to create a quasi array. This was necessary to overcome the limitation where array elements cannot exceed in number the value of barcount-1.


It seems to use the Custom backtester with the SetForeign function as well.
I'll try both and I am sure they'll help me climb the Amibroker learning curve...


--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Hi,
> Welcome to the group. AddColumn is used for explorations, not backtests.
> To get what you are asking for, in a backtest, you would need write
> custom backtester code to add your own custom metric. Custom metrics in
> general are described here: 
> http://www.amibroker.com/guide/a_custommetrics.html  However, that does
> not cover your special case in that you will need to use
> SetForeign/RestorePriceArrays to make your calculation: 
> http://www.amibroker.com/guide/afl/afl_view.php?id=54  Have a look at
> the following and see if it is what you are after. The custom backtester
> stuff is explained here:
> http://www.amibroker.org/userkb/2008/03/16/amibroker-custom-backtester-i\
> nterface-2/
> I've additionally added support for printing out the ATR during an
> exploration. Run your backtest to get some data. Then run an exploration
> for the same date range and cross check the ATR values. There will be
> some rounding errors. But, otherwise should match up.
> I have not tested the code extensively, so do your own due diligence.
> Mike
> 
> SetTradeDelays(0, 0, 0, 0); SetPositionSize(2, spsPercentOfEquity);
> weekDays = DayOfWeek();
> Buy = weekDays == 1; BuyPrice = Open;
> Sell = weekDays == 5; SellPrice = Close;
> SetCustomBacktestProc("");
> if (Status("action") == actionPortfolio) {    bo =
> GetBacktesterObject();    bo.Backtest(true);
>     dates = DateTime();    indices = BarIndex();
>     for (trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade()) {
> SetForeign(trade.Symbol);       entryBar =
> LastValue(ValueWhen(trade.EntryDateTime == dates, indices));      
> foreignATR = ATR(14);       trade.AddCustomMetric("Entry ATR",
> foreignATR[entryBar]);       RestorePriceArrays();    }
>     bo.ListTrades(); }
> Filter = Buy; AddColumn(ATR(14), "Entry ATR");
> --- In amibroker@xxxxxxxxxxxxxxx, "Jez" <jez@> wrote:
> >
> > Hi guys,
> > Jut downloaded Amibroker at the weeekend - I started reading all the
> user guide, AFL library, etc. (much better than my other software -
> tradersStudio..).
> >
> > I am stuck with one thing though: I want to be able to backtest a
> system and record the value of the ATR at the start of the trade for
> each of the trades. I tried to imitate on the AFL Example - Enhanced
> from the library and did something like:
> >
> > } else if (AASettings == 5) {
> >  // [Backtest] //
> >  SetTradeDelays(1, 1, 1, 1);
> >  AddColumn(ATR, "ATR", 1.3);
> > }
> >
> >
> > but that did not work. Any pointers on how I could get that done
> please.
> >
> > The reason for this is that I want to calculate the e-ratio for a
> trade entry signal.
> >
> > Thanks
> > -Jez
> >
>




------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

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

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/