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

Re: [amibroker] Re: Perfect Profit and DOF



PureBytes Links

Trading Reference Links

> In an ideal world ie in a PP situation
> we would have no drawdown and 100% winrate.
> But I think PP would have the same no of trades, and roughly the same
> exposure as the real system.

Paul, I don't think this is correct if you look at how Pardo describes 
PP. 

Regards,

Thomas

> So I'm not sure if I understand what you 
> meant by "the most profitable trading delta/frequency" Would you like
> to elaborate?
> /Paul.
>
> --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@xxx> wrote:
> > > Now a few questions to both Thomas and Dennis
> > > What kind of insights can one obtain with this comparsion? and
>
> How do
>
> > > you intend to use it? And would you mind post some of your
>
> findings?
>
> > > Cheers
> > > Paul.
> >
> > Paul,
> >
> > The first insights are just the normal ones around the most
>
> profitable
>
> > trading delta/frequency.  I also use this as the denominator to
> > determine the relative efficiency of a system relative to what the
> > market is offering, and to determine the shifting nature of the
>
> market
>
> > over time.  I use it with broad market indexes, not individual
> > issues.  I am still experimenting with it to discover new ways to
>
> use
>
> > this information.
> >
> > BR,
> > Dennis
> >
> > On May 16, 2008, at 11:20 PM, Paul Ho wrote:
> > > Thomas
> > > I think the model efficency can be calculated in the CBT without
> > > directly getting PP, This can be done by obtaining the
> > > Theoretical buy point (tbp) around the actual buy point, and
> > > obtaining tsp
>
> around
>
> > > the sell point.
> > > The tbp can happen either before or just after the buy point.
> > > first look at the before scenario, you can either use trough or
>
> LLV
>
> > > function. the problem with the trough function is that the low
> > > obtained from Trough() could be quite far away. Lets say we use
>
> LLV
>
> > > (L, pds) where pds is half the average bars held obtained
> > > directly from CBT metrics
> > > so tbp_before = LLV(L, bars/2)
> > > To find tbp_after we can use the mae metrics from backtest
>
> directly
>
> > > tbp_after = (1 + mae)*buyprice;
> > > tbp = min(tbp_before, tbp_after);
> > > The cbt code for tbp could be as follows:
> > > ....
> > > bo = GetBacktesterObject();
> > > bo.Backtest();
> > > st.bo.GetPerformanceStats(0);
> > > bars = st.GetValue("AllavgBarsHeld");
> > > me = 0; //stores the sum of model eff per trade
> > > for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade
>
> () )
>
> > > {
> > >   sym = trade.Symbol;
> > >   mae = trade.GetMAE();
> > >   lp = foregin(sym, "L");
> > >   tbp_before = lastvalue(valuewhen(datetime()==
>
> trade.EntryDateTime,
>
> > > LLV(lp,bars/2)));
> > >   tbp_after = (1+mae)*trade.EntryPrice;
> > >   tbp = min(tbp_before, tbp_after);
> > >   ........
> > >   tsp = max(tsp_before, tsp_after);
> > >   theoreticProfitratio = tsp/tbp;
> > >   realprofitratio = trade.ExitPrice/trade.EntryPrice;
> > >   me += realprofitratio/theoreticProfitratio;
> > > }
> > > .... // do the same with open position
> > >   mean_me = me/st.GetValue("AllQty");
> > > There are a number of variations depending on your perference
> > > 1. You can use trough and peak instead of LLV and HHV
> > > 2. instead of average ME, you can go for accumulated ME by
>
> dividing
>
> > > real profit / theoretical profit. Not sure the figure would be
> > > too small to make a lot of sense.
> > > 3. you can use geometric average instead of arithmetic average
> > >
> > > Now a few questions to both Thomas and Dennis
> > > What kind of insights can one obtain with this comparsion? and
>
> How do
>
> > > you intend to use it? And would you mind post some of your
>
> findings?
>
> > > Cheers
> > > Paul.
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@> wrote:
> > >> Thomas,
> > >>
> > >> That is what I do.  Though I also add all the trading overhead
> > >> as
> > >
> > > if
> > >
> > >> it were real trades, then adjust the % change to the maximum
>
> total
>
> > >> profit which gives you a lot more insights.
> > >>
> > >> BR,
> > >> Dennis
> > >>
> > >> On May 16, 2008, at 1:35 PM, Thomas Ludwig wrote:
> > >>> Hi all,
> > >>>
> > >>> Rober Pardo suggests in his book "The Evaluation and
>
> Optimization
>
> > > of
> > >
> > >>> Trading Strategies" the calculation of "Perfect Profit" (PP)
> > >
> > > which "is
> > >
> > >>> the sum total of all of the potential profit that could be
> > >
> > > realized by
> > >
> > >>> buying every bottom and selling every top". By comparing Net
> > >
> > > Profit of
> > >
> > >>> your trading system with PP you can calculate the "Model
> > >
> > > Efficiency"
> > >
> > >>> (ME).
> > >>>
> > >>> I think PP can be easily calculated as a stand-alone code by
> > >>> applying a,
> > >>> say, 1% Zigzag. But how can it be done if I want to add ME as
> > >>> an additional metric in the Custom Backtester? The Equity()
>
> function
>
> > > is
> > >
> > >>> used for your trading system and cannot be used for the Zigzag
> > >
> > > system
> > >
> > >>> at the same time in order to compare both, IMHO. So the only
> > >>> solution I
> > >>> can think of is to loop through all Zigzag signals and
> > >>> calculate
> > >
> > > the
> > >
> > >>> profit programmatically. Or am I overlooking something?
> > >>>
> > >>> Pardo also suggests to calculate the Remaining Percentage of
> > >
> > > Degrees
> > >
> > >>> of
> > >>> Freedom (through Used Dgrees of Freedom and Original Degrees of
> > >>> Freedom). Any idea if and how they can be counted in AFL?
> > >>>
> > >>> Regards,
> > >>>
> > >>> Thomas
> > >>>
> > >>> ------------------------------------
> > >>>
> > >>> 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
>
> ------------------------------------
>
> 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/