TJ --
I didn't know about mtRandomA.  I'll make some changes now.
Thank you.
-- Keith

Tomasz Janeczko wrote:
Hello,
You were using Microsoft's random in the formula you posted. Random() AFL function uses Microsoft rand() function from the C run time library. mtRandomA uses Mersene Twister algorithm which is way superior and specifically designed for use in Monte-Carlo applications. Consult the manual http://www.amibroker.com/f?mtrandom <http://www.amibroker.com/f?mtrandom> for more details. To plot histogram, you need to:
a) copy paste results to Excel (Ctrl+C in AA window, then Ctrl+V in Excel)
b) in Excel one can easily create distribution chart of any system metric using Tools->Data Analysis, "Histogram" option. (Assumes that you have Data analysis add-on installed in Excel - it can be found on Office CD-ROM/DVD)

Best regards,
Tomasz Janeczko
amibroker.com

    ----- Original Message -----
    *From:* Keith McCombs <mailto:[email protected]>
    *To:* [email protected] <mailto:[email protected]>
    *Sent:* Thursday, January 22, 2009 8:27 PM
    *Subject:* Re: [amibroker] Re: Using Optimizer with
    PositionScore=Random()

    TJ --
    "PositionScore SHOULD be an array." -- Thank you.

    "Microsoft's random" -- Who mentioned Microsoft's random?
    I suggested exporting to a spread sheet for further analysis.  For
    example, I like to plot a histogram of the returns and scatter
    diagrams of different metrics.

    -- Keith


    Tomasz Janeczko wrote:
    That is incorrect. PositionScore SHOULD be an array. Also use
    mtRandomA()
    instead. Mersene Twister is way way way better than Microsoft's
    random.

    Best regards,
    Tomasz Janeczko
    amibroker.com

        ----- Original Message -----
        *From:* Keith McCombs <mailto:[email protected]>
        *To:* [email protected]
        <mailto:[email protected]>
        *Sent:* Thursday, January 22, 2009 7:13 PM
        *Subject:* Re: [amibroker] Re: Using Optimizer with
        PositionScore=Random()

        Richard --
        runs = 1000;  // Number of runs using random scores
        TotalRuns = Optimize("TotalRuns", 1, 1, runs, 1);
        PositionScore = LastValue(Random());  // need value, not array
        -- Keith

        richpach2 wrote:

        Keith,

        How would you use Random() to set up an optimization to run
        say 1000
        iterations overnight?

        Regards
        Richard

        --- In [email protected]
        <mailto:[email protected]>, Keith McCombs
        <kmcco...@...> wrote:
        >
        > Curt --
        > IMO, it makes a whole lot of sense.
        >
        > Notice that if your strategy could select many stocks to
        trade, if you
        > do not use Random(), the system is biased to those stocks
        whose symbols
        > are near the front of the alphabet.
        >
        > You can use Random() to set up an optimization to run say
        1000
        > iterations overnight. Export the results to your favorite
        spread sheet
        > and see a more realistic distribution of returns you might
        expect.
        > -- Keith
        >
        > Curt wrote:
        > >
        > > --- In [email protected]
        <mailto:amibroker%40yahoogroups.com>
        <mailto:amibroker%40yahoogroups.com>,
        > > "Curt" <crcmcc@> wrote:
        > > >
        > > > Does it make sense to try to use the optimizer if
        PositionScore
        is set
        > > > to Random()? For example:
        > > >
        > > > OptimizerSetengine("cmae");
        > > > PositionScore = Random();
        > > >
        > > I should clarify that by setting PositionScore=Random(),
        runs with
        > > exactly the same parameters will not produce the same
        results. This is
        > > because, in the cases where the portfolio becomes fully
        invested, a
        > > different set of stocks will populate the portfolio each
        run.
        > >
        > >
        >

Reply via email to