loop this through bar array and you can write the values to text file

SetCustomBacktestProc("");
if( Status("action") == actionPortfolio )
{
    bo = GetBacktesterObject();
    bo.Backtest(1);

    expectancy = SumProfit = 0;
    NumTrades = 0;


fw = fopen(..................... , "w" )
for(i=0;i<barcount;i++)
{
   expectancy = SumProfit = 0;
    NumTrades = 0;

    for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() )
    {
        SumProfit = SumProfit + trade.GetProfit();
        NumTrades++;
        expectancy = SumProfit/trade.TickSize/trade.PointValue/NumTrades;
    }
    for( trade = bo.GetFirstOpenPos(); trade; trade = bo.GetNextOpenPos() )
    {
        SumProfit = SumProfit + trade.GetProfit();
        NumTrades++;
        expectancy = SumProfit/trade.TickSize/trade.PointValue/NumTrades;
    }

if(fw) fputs(................................. , fw );

}
if(fw) fclose(fw);

    for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() )
    {
        SumProfit = SumProfit + trade.GetProfit();
        NumTrades++;
        expectancy = SumProfit/trade.TickSize/trade.PointValue/NumTrades;
        trade.AddCustomMetric("Expectancy-Pips", expectancy );
    }

    for( trade = bo.GetFirstOpenPos(); trade; trade = bo.GetNextOpenPos() )
    {
        SumProfit = SumProfit + trade.GetProfit();
        NumTrades++;
        expectancy = SumProfit/trade.TickSize/trade.PointValue/NumTrades;
        trade.AddCustomMetric("Expectancy-Pips", expectancy );
    }
    bo.AddCustomMetric( "Total Expectancy-Pips", expectancy );
    bo.ListTrades();
}


-- 
Cheers
Graham Kav
AFL Writing Service
http://www.aflwriting.com

On 23/01/2008, ChrisB <[EMAIL PROTECTED]> wrote:
>
>  Graham/others
>
> 2 a.m. now.
> Spent the night going through Herman's IntroToAtc.pdf and help files.
>
> I am probably way off track here, but ....
>
> Seems to me I still need to feed an array into the AddtoComposite(
> array,...) function.
> It also seems to me that to do this I need to somehow extract this from
> the CBT code for expectancy:
>
> ************
> SetCustomBacktestProc("");
> if( Status("action") == actionPortfolio )
> {
>     bo = GetBacktesterObject();
>     bo.Backtest(1);
>
>     expectancy = SumProfit = 0;
>     NumTrades = 0;
>
>     for( trade = bo.GetFirstTrade(); trade; trade = bo.GetNextTrade() )
>     {
>         SumProfit = SumProfit + trade.GetProfit();
>         NumTrades++;
>         expectancy = SumProfit/trade.TickSize/trade.PointValue/NumTrades;
>         trade.AddCustomMetric("Expectancy-Pips", expectancy );
>     }
>
>     for( trade = bo.GetFirstOpenPos(); trade; trade = bo.GetNextOpenPos()
> )
>     {
>         SumProfit = SumProfit + trade.GetProfit();
>         NumTrades++;
>         expectancy = SumProfit/trade.TickSize/trade.PointValue/NumTrades;
>         trade.AddCustomMetric("Expectancy-Pips", expectancy );
>     }
>     bo.AddCustomMetric( "Total Expectancy-Pips", expectancy );
>     bo.ListTrades();
> }
>
> *********
>
> I would have thought then that if I could extract the Expectancy from the
> CBT into an array I might just as easily be able to plot this.
> Looking at the COM documents does not make it immediately apparent how I
> do this.(mea culpa as a non programmer).
>
> Apart from the AddCustomMetric (command, if that's what it's called) which
> tells the CBT to send the expectancy to the Backtester Report , is there
> anything else I can do get this from CBT bit into regular AFL array variable
> so I can just plot it?
>
> In the meantime I am happy to just export this from the backtester into an
> Excel spreadsheet for the moment.
>
> Regards
>
> ChrisB
>
>
> ChrisB wrote:
>
>   Thanks Graham
>
> Of course!
> from the Backtester results I can see the column with the expectancy
> figures.
> Then I just export this to csv and plot this in Excel which is what I will
> do for the moment.
> I will look at the Addtocomposite function again to see if I can extract
> that data into a composite symbol.
> I guess though if I am only getting 30 trades per year on a given strategy
> that will be an array that will need padding of data, and may not look too
> pretty.
>
> Regards
>
> ChrisB
>
> Graham wrote:
>
>   You could try exporting the expectancy to a text file and plot from
> this, or create a composite symbol
>
>
> --
> Cheers
> Graham Kav
> AFL Writing Service
> http://www.aflwriti ng.com <http://www.aflwriting.com>
>
>  On 21/01/2008, *ChrisB* <[EMAIL PROTECTED] net.au <[EMAIL PROTECTED]>>
> wrote:
>
> Promised attachment:
>
>
> ChrisB wrote:
>
>   I will try and re-phrase the question:
>
> Anyone have any pointers as to how to Plot the running expectancy after
> I have run a Backtest?
>
> In Excel when I walk forward manually, I plot my Expectancy like this:
>
> Currently I place these trade on a Demo account to acquire the data for
> entries and exits.
> This is quite time consuming.
> I want to plot similar or the same in a pane after running a Backtest.
> When Positive and rising switch back to trading this strategy.
> When Negative and or Falling, stop using this strategy.
>
> Any pointers in the right direction would be appreciated, but I suspect
> this may involve more programming than
> I am capable of and may wish to farm this out.
>
> Regards
>
> ChrisB
> ChrisB wrote:
> >
> > The help files give code for including Expectancy in the backtest and
> > Optimization.
> >
> > I am not familiar with the working of the CBT. I can get the expectancy
> > to appear in a column in the backtester
> >
> > How would I extract the expectancy figures into an array so that I can
> > plot this?
> >
> > Regards
> >
>
>
>
>
>
>
>
>  _
>
>
> 
>

Reply via email to