PureBytes Links
Trading Reference Links
|
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 amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@xxx> 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 amibroker@xxxxxxxxxxxxxxx, "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 amibroker@xxxxxxxxxxxxxxx, "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: amibroker@xxxxxxxxxxxxxxx > > > 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 amibroker@xxxxxxxxxxxxxxx, "ozzyapeman" <zoopfree@> wrote: > > > >> > > > >> Buyprices set in AFL formula are all Open: > > > >> > > > >> BuyPrice = Open; > > > >> ShortPrice = Open; > > > >> SellPrice = Open; > > > >> CoverPrice = Open; > > > >> > > > >> very wierd... > > > >> > > > >> > > > >> --- In amibroker@xxxxxxxxxxxxxxx, "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: amibroker@xxxxxxxxxxxxxxx > > > >> > 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 amibroker@xxxxxxxxxxxxxxx, "gonzagags" <gonzagags@> > wrote: > > > >> > > > > > >> > > Try in settings- trades, set in long trades buyprice in > open.. > > > >> > > > > > >> > > > > > >> > > --- In amibroker@xxxxxxxxxxxxxxx, "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 > > > > > > > > > > > > > > > > > >
__._,_.___
**** 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
*********************************
__,_._,___
|