Hello,

You are completely missing the point and mix up things.

First: the timestamp - if you backtest on EOD data, the time component does not 
matter (should be ignored),
because the EOD bar timestamp depends on data source delivering data.
If you use true EOD data, it will be without time component at all.
If you are using compressed intraday data it will use timestamp that is either 
beginning or end
of interval based on Preferences Tools->Preferences->Intraday "Timestamp ... 
shows:".
Anyway, the time component does not matter if you backest EOD system and solely 
depends
on how data source time stamps bars, and has no indication when trade happened.

Second: position sizing - you are using FUTURES mode. In futures mode when you 
defined
MarginDeposit, entry price does not matter ! Why? Because in FUTURES mode you 
just pay
MARGIN DEPOSIT (i.e. $2500) in your case, regardless of current price.
Since you also defined position size of ONE contract, the position sizing DOES 
NOT depend
on Equity at all, since it will be JUST ONE contract.


MarginDeposit = 2500; // $2500 is required to enter that trade, price of actual 
contract does NOT matter
in futures mode

SetPositionSize(1, spsShares); // here you say to enter ONE contract.

So simply $2500 is taken from your account and you have 1 futures contract
open pos, regardless of account equity and any other conditions.

The price used TO ENTER this position was CORRECT OPEN price:

"The prices on 11/3/2008 are as follows: Open  = 1.2840"
1.2840


So everything operates as it should

The EXIT was on 11/4/2008 (not 11/3) therefore data from 11/3 are irrelevant 
for the exit.
The OPEN price for 11/4/2008 apparently is 1.2574 so the exit is at that price. 
Again as it should be.

Best regards,
Tomasz Janeczko
amibroker.com
  ----- Original Message ----- 
  From: ozzyapeman 
  To: [email protected] 
  Sent: Thursday, January 22, 2009 1:13 AM
  Subject: [amibroker] Re: How to force Backtester to Calculate Position Size 
on Open Price?


  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