Here is an explicit example.

In addition to OPEN being set in the reserved variables below, OPEN is
also set for all trade prices in AA settings:


//
-----------------------------------------------------------------------
//                      BACKTESTER SETTINGS
//
-----------------------------------------------------------------------

SetBarsRequired(10000, 0);
SetOption("AllowPositionShrinking", False);
SetOption("AllowSameBarExit", True);
SetOption("CommissionAmount", 3.00);
SetOption("CommissionMode", 3);
SetOption("FuturesMode", 1);
SetOption("InitialEquity", 100000);
SetOption("InterestRate",0);
SetOption("MaxOpenPositions", 1);
SetOption("MinPosValue", 0);
SetOption("MinShares", 1);
SetOption("PriceBoundChecking", False );
SetOption("ReverseSignalForcesExit", False);
SetOption("UsePrevBarEquityForPosSizing", False );
SetTradeDelays(0, 0, 0, 0);
SetPositionSize(1, spsShares);
TickSize      = 0.0001;    // The minimum price move of symbol for Forex
PointValue    = 100000;
RoundLotSize  = 1;
MarginDeposit = 2500;
BuyPrice      = SellPrice = ShortPrice = CoverPrice = Open;


//
-----------------------------------------------------------------------
//                   SIMPLE TRADING SYSTEM
//
-----------------------------------------------------------------------

fast = Optimize( "fast", 3, 5, 10, 1 );
slow = Optimize( "slow", 6, 10, 15, 1 );

Buy = Cross( MACD( fast, slow ), Signal( fast, slow ) );
Sell = Cross( Signal( fast, slow ), MACD( fast, slow ) );

Short = Sell;
Cover = Buy;


Backtesting the above on EUR.USD  for 11/01/2008 - 12/01/2008 gives the
following result ( I will just paste the first line):

Ticker          Trade       Date                                   
Price
EURUSD     Short      11/3/2008 23:59          1.284


Ex. date                          Ex. Price     % chg             Profit
11/4/2008 23:59      1.2575           -2.06%        3326.11


% Profit    Contracts        Position value          Cum. Profit
105.81%    1                                 3143.5                  
3326.11


# bars    Profit/bar    MAE    MFE    Scale In/Out
2    1663.06           -0.47%    2.45%    0/0


The prices on 11/3/2008 are as follows:

Open  = 1.2840
Low    = 1.2525
High   = 1.2900
Close = 1.2574


If you reverse the Position Value, based on 40:1 leverage, you find that
it was calculated on a price of 1.2574, which is the CLOSE:

$3,143.50 * 40 / 100000  = 1.2574






--- In [email protected], "ozzyapeman" <zoopf...@...> wrote:
>
> I should note that for Entry prices, the backtester is correctly using
> OPEN prices and for ApplyStop, it is correctly exiting at the right
> price point between LOW and HIGH.
>
> It is only for the position values that the backtester is using CLOSE
> prices to calculate, even though CLOSE is nowhere in my AA settings or
> AFL reserved variables or SetOptions.
>
>
> --- In [email protected], "ozzyapeman" zoopfree@ wrote:
> >
> > Tomasz,
> >
> > Thanks for the reply, but I *did* read the manual and *did* set the
> > buyprice reserved variables, etc. (all to OPEN), and yet the
> > backtester is still using CLOSE for position value calculations.
> >
> > Hence I posted the question.
> >
> > So either this is a bug or there is some other setting which is
> > overriding both my AA settings and reserved variable settings. I
can't
> > seem to find any such setting error, so at this point I am thinking
> > it's a bug.
> >
> > Is it?
> >
> >
> >
> > --- In [email protected], "Tomasz Janeczko" <groups@> wrote:
> > >
> > > Hello,
> > >
> > > When everything fails consult..... the manual:
> > >
> > > http://www.amibroker.com/guide/h_backtest.html
> > >
> > > Quote
> > >
> > > "Controlling trade price
> > >
> > > AmiBroker now provides 4 new reserved variables for specifying the
> > price at which buy, sell, short and cover orders are executed.
> > > These arrays have the following names: buyprice, sellprice,
> > shortprice and coverprice.
> > >
> > > The main application of these variables is controlling trade
price:
> > >
> > > BuyPrice = IIF( dayofweek() == 1, HIGH, CLOSE );
> > > // on monday buy at high, otherwise buy on close
> > >
> > > So you can write the following to simulate real stop-orders:
> > >
> > > BuyStop = ... the formula for buy stop level;
> > > SellStop = ... the formula for sell stop level;
> > >
> > > // if anytime during the day prices rise above buystop level
> > (high>buystop)
> > > // the buy order takes place (at buystop or low whichever is
higher)
> > > Buy = Cross( High, BuyStop );
> > >
> > > // if anytime during the day prices fall below sellprice level (
low
> > < sellstop )
> > > // the sell order takes place (at sellstop or high whichever is
lower)
> > > Sell = Cross( SellPrice, SellStop);
> > >
> > > BuyPrice = max( BuyStop, Low ); // make sure buy price not less
> than Low
> > > SellPrice = min( SellStop, High ); // make sure sell price not
> > greater than High
> > >
> > > Please note that AmiBroker presets buyprice, sellprice, shortprice
> > and coverprice array variables with the values defined in system
> > > test settings window (shown below), so you can but don't need to
> > define them in your formula. If you don't define them AmiBroker
> > > works as in the old versions.
> > >
> > > During back-testing AmiBroker will check if the values you
assigned
> > to buyprice, sellprice, shortprice, coverprice fit into high-low
> > > range of given bar. If not, AmiBroker will adjust it to high price
> > (if price array value is higher than high) or to the low price
> > > (if price array value is lower than low)"
> > >
> > > Best regards,
> > > Tomasz Janeczko
> > > amibroker.com
> > > ----- Original Message -----
> > > From: "ozzyapeman" <zoopfree@>
> > > To: [email protected]
> > > Sent: Wednesday, January 21, 2009 10:46 PM
> > > Subject: [amibroker] Re: How to force Backtester to Calculate
> > Position Size on Open Price?
> > >
> > >
> > > > and here are all my other options set in the AFL.
> > > >
> > > > I can't see how any of them would force the backtester to use
Close
> > > > prices, but maybe one option does?
> > > >
> > > >
> > > > SetBarsRequired( 10000, 0 );
> > > > SetOption( "AccountMargin", 100 );
> > > > SetOption( "ActivateStopsImmediately", True );
> > > > SetOption( "AllowPositionShrinking", False );
> > > > SetOption( "AllowSameBarExit", True );
> > > > SetOption( "CommissionAmount", 3.00 );
> > > > SetOption( "CommissionMode", 2 );
> > > > SetOption( "FuturesMode", 1 );
> > > > SetOption( "InitialEquity", 100000 );
> > > > SetOption( "InterestRate", 0 );
> > > > SetOption( "MaxOpenPositions", 1 );
> > > > SetOption( "MinPosValue", 0 );
> > > > SetOption( "MinShares", 1 );
> > > > SetOption( "PriceBoundChecking", True );
> > > > SetOption( "ReverseSignalForcesExit", False );
> > > > SetOption( "UsePrevBarEquityForPosSizing", False );
> > > > SetTradeDelays( 0, 0, 0, 0 );
> > > > SetPositionSize( 1, spsShares );
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > --- In [email protected], "ozzyapeman" <zoopfree@>
wrote:
> > > >>
> > > >> Buyprices set in AFL formula are all Open:
> > > >>
> > > >> BuyPrice      = Open;
> > > >> ShortPrice    = Open;
> > > >> SellPrice     = Open;
> > > >> CoverPrice    = Open;
> > > >>
> > > >> very wierd...
> > > >>
> > > >>
> > > >> --- In [email protected], "Anthony Faragasso"
<ajf1111@>
> > wrote:
> > > >> >
> > > >> > Is there anywhere in your code formula that you may be
> specifying a
> > > >> different buyprice....because I believe the formula overrides
the
> > > >> settings in the preference window..
> > > >> >
> > > >> > Anthony
> > > >> >
> > > >> >
> > > >> >   ----- Original Message -----
> > > >> >   From: ozzyapeman
> > > >> >   To: [email protected]
> > > >> >   Sent: Wednesday, January 21, 2009 3:41 PM
> > > >> >   Subject: [amibroker] Re: How to force Backtester to
Calculate
> > > >> Position Size on Open Price?
> > > >> >
> > > >> >
> > > >> >   I've always had the trade settings set to buyprice Open.
> > > >> >
> > > >> >   Unfortunately, the backtester insists on using the Close,
and I
> > > > can't
> > > >> >   figure out why that is.
> > > >> >
> > > >> >   --- In [email protected], "gonzagags" <gonzagags@>
> wrote:
> > > >> >   >
> > > >> >   > Try in settings- trades, set in long trades buyprice in
> open..
> > > >> >   >
> > > >> >   >
> > > >> >   > --- In [email protected], "ozzyapeman"
<zoopfree@>
> > wrote:
> > > >> >   > >
> > > >> >   > > Hello, even though I have set Buyprice = Open; I
noticed
> > > > that the
> > > >> >   > > backtester report is displaying position sizes based on
the
> > > >> Close of
> > > >> >   > > the bar. On some trades this makes a huge difference.
> > > >> >   > >
> > > >> >   > > I am backtesting Forex. And I imagine that when trading
> > on the
> > > >> Open,
> > > >> >   > a
> > > >> >   > > broker like IB will use the dynamic price of the Open
to
> > > >> calculate
> > > >> >   > the
> > > >> >   > > exchange rate and position size, since the Close price
is
> > > > not yet
> > > >> >   > > known at the time of the trade.
> > > >> >   > >
> > > >> >   > > So how do I force the backtester to mimic the above,
and
> > > > calculate
> > > >> >   > > position sizes based on Opens? Or is this not even an
> option?
> > > >> >   > >
> > > >> >   > > I looked up Setoption in the reference guide, and don't
> seem
> > > >> to see
> > > >> >   > an
> > > >> >   > > appropriate setting to switch.
> > > >> >   > >
> > > >> >   > > Any input appreciated.
> > > >> >   > >
> > > >> >   >
> > > >> >
> > > >> >
> > > >> >
> > > >> >
> > > >> >
> > > >> >
> > > >> >
> > > >>
> > > >
> >
>
------------------------------------------------------------------------\
------
> > > >> >
> > > >> >
> > > >> >
> > > >> >   No virus found in this incoming message.
> > > >> >   Checked by AVG - http://www.avg.com
> > > >> >   Version: 8.0.176 / Virus Database: 270.10.10/1906 - Release
> Date:
> > > >> 1/21/2009 7:07 AM
> > > >> >
> > > >>
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > > **** IMPORTANT ****
> > > > This group is for the discussion between users only.
> > > > This is *NOT* technical support channel.
> > > >
> > > > *********************
> > > > TO GET TECHNICAL 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
> > > >
> > > >
> > > >
> > >
> >
>

Reply via email to