That is very likely due to commission. In the General tab of the AA settings, 
set Commission & rates to $per trade and enter 0 in the area beside that 
option. Also, set Interest rate to 0 and set margin to 100. This should give 
you the results you expect. You can then decide later if you want to trade with 
margin and whether or not to track commissions.

Mike

--- In [email protected], "Gonzaga" <gonzag...@...> wrote:
>
> UPS!. The image does not appear!
> 
> Well this  is, written, my backtest:
> Ticker-- Trade--     date---           price--  Exdate-------exprice--%chg--  
>   %profit
> AA--        MaxLoss   10-Nov-05 --26.25--18-sep-08-     23.5           
> -10.48%  -10.51%
> AA--        MAxloss    21-jul-05       28.7        23-sep-05       24         
>       -16.38%   -16.41%
> 
> The problem: there is always a little difference between stop and the profit..
> 
> 
> --- In [email protected], "Gonzaga" <gonzagags@> wrote:
> >
> > Thanks a lot, Mike, you're very kind! [:)] I have tried the code as
> > you've posted. I buy in the same dates as you, but, the stops sells
> > sligthly more cheap, I don't know why!I thought could be my commissions
> > table, but I have get it out, and the problem still there..This is my
> > backtest:
> > As you see, the 23 september 2005, the stop sells in 24$, but the open
> > is 24.1$. And the rest of the stops sell slightly wrong..
> > Why? No idea. Something related my initial capital?
> > Anyway, it's posible  that I give up the predefined  stops, and try to
> > program my own in do while loops.. So I will be sure of the behaviour. I
> > hope.
> > Thanks a lot
> > --- In [email protected], "Mike" <sfclimbers@> wrote:
> > >
> > > Hi,
> > > I haven't done much with ApplyStop. But, the scenario that you are
> > > trying to accomplish is provided as an example in the user guide here:
> > > http://www.amibroker.com/guide/afl/afl_view.php?id=20
> > > <http://www.amibroker.com/guide/afl/afl_view.php?id=20>
> > >   <http://www.amibroker.com/guide/afl/afl_view.php?id=20> You can add
> > the
> > > following line to your code, just to be sure:SetOption(
> > > "ActivateStopsImmediately", true );
> > > For testing purposes, remove all Sell rules by replacing your Sell
> > logic
> > > with Sell = false;
> > > Also, you should add a Plot for the price and then look at the
> > > individual trades to see why you are getting losses greater than you
> > > expected.
> > > Most likely, the stock has gapped down (i.e. opened below your stop
> > > price) and you are immediately getting stopped out at the lower price.
> > > An example of this can be seen by running your code on the symbol AA
> > in
> > > the default AmiBroker database (Data);
> > > Run a backtast over all quotations for single symbol AA, you will see
> > 4
> > > trades and one remaining open position. 3 of the 4 trades stopped out
> > at
> > > exactly -10%, as per your code. 1 trade stopped out at -15.57% (entry
> > > Jul 21/2005, exit Sept 23/2005). Looking at the chart you will see
> > that
> > > AA opened way below your stop price on Sept 23. AmiBroker applied the
> > > stop at the open, exactly as your broker would have.
> > > The revised code looks like this:
> > > SetOption( "ActivateStopsImmediately", true );
> > > SetTradeDelays( 1, 1, 1, 1 );
> > > ExitPct = 10;
> > > ApplyStop( stopTypeLoss, stopModePercent, ExitPct, 1 );
> > > //CONDITIONS---------------------------------------
> > > Cond1 = Cross( MA( C, 10 ), MA( C, 50 ) );
> > > //LONG------------------------------------
> > > Buy = Cond1;
> > > BuyPrice = Open; //open next bar!
> > > Sell = false; //Sell = Cross( MA( C, 50 ), MA( C, 10 ) );
> > > SellPrice = Open ;
> > > //END OF CODE----------------------
> > >
> > > _SECTION_BEGIN( "Price1" );
> > > SetChartOptions( 0, chartShowArrows | chartShowDates );
> > > _N( Title = StrFormat( "{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi
> > %g,
> > > Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC(
> > C,
> > > 1 ) ) ) );
> > > Plot( C, "Close", ParamColor( "Color", colorBlack ), styleNoTitle |
> > > ParamStyle( "Style" ) | GetPriceStyle() );
> > > _SECTION_END();
> > > If you're still having trouble, post the exact formula being run on
> > > exactly which symbols over exactly which dates stating exactly which
> > > trades are not behaving as you expect.
> > > Mike
> > > --- In [email protected], "Gonzaga" gonzagags@ wrote:
> > > >
> > > > Grrrr!
> > > > I am crazy with stops.
> > > > I can not find any sense on  them..
> > > > Just this code:
> > > > //--------------------------
> > > > SetTradeDelays(1,1,1,1);
> > > > ExitPct =10;
> > > > ApplyStop(stopTypeLoss, stopModePercent, ExitPct, 1); //
> > > > //CONDITIONS---------------------------------------
> > > > Cond1=Cross(MA(C,10),MA(C,50));
> > > > //LONG------------------------------------
> > > > Buy= Cond1;
> > > > BuyPrice=Open; //open next bar!
> > > > Sell=Cross(MA(C,50),MA(C,10));
> > > > SellPrice=Open ;
> > > > //END OF CODE----------------------
> > > > I cannot imagine something easier! Two conditions to open and close,
> > > and a stoploss.
> > > > Well, the stops work as they want.
> > > > First, which have the preference: "Allow exit in the same bar" or
> > > "activate stops immediately"?
> > > > And both are preferred over the 4th parameter of the applyStop? or
> > > not?
> > > >
> > > > But anyway, if the exitPct is -10%.. Why Amibroker close the
> > position
> > > not in -10%, but, -10.5%, -11% or so?
> > > >
> > > > I begin to be tired.. Couldn't be this easier?
> > > >
> > > > puf... anyone knows TradeStation and its EASYlanguage? could be an
> > > alternative?
> > > > Tired greetings
> > > >
> > > >
> > > >
> > > > --- In [email protected], "Gonzaga" gonzagags@ wrote:
> > > > >
> > > > > Thanks for testing the code.
> > > > > I have tested your tweaked code also, using a portfolio of stocks,
> > > or even just one stock.
> > > > > For example, in EOD bars, this code buys GRA on 6th feb2009,
> > selling
> > > in the same bar in a profit stop on 6th Feb. Ok.
> > > > > But, it sells with 4.65% change (4.5% profit), nearly in the high
> > of
> > > the day
> > > > > So, it is supposed to close the position on 1% profit, isn't it?
> > > > > So?
> > > > > And, the stop loss has similar problems, closing positions on the
> > > same bar lower than -1% loss..
> > > > > We can not trigger stops in the same buying bar ?
> > > > > I think I'm gonna program my own stops..
> > > > > mmm..
> > > > > greetings
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > --- In [email protected], "progster01" <progster@> wrote:
> > > > > >
> > > > > > Your code seems to work for me here.
> > > > > >
> > > > > > Here it is again, just slightly tweaked:
> > > > > >
> > > > > > //SETTINGS--->
> > > > > > PosQty=Param("Posiciones",10,1,20,1);
> > > > > > SetOption("InitialEquity", 1000000 );
> > > > > > SetOption("AllowPositionShrinking", True );
> > > > > > SetOption("MaxOpenPositions", PosQty );
> > > > > > SetOption ("accountmargin",100);
> > > > > > PositionSize = -100/(posqty);
> > > > > >
> > > > > >
> > > > > > Buy = Sell = Short = Cover = 0 ;
> > > > > > //-----------
> > > > > >
> > > > > > ExitPct = Param( "ExitPct", 1, .1, 10, .1 ) ;
> > > > > >
> > > > > > SetTradeDelays(1,1,1,1);//buy after signal
> > > > > > ApplyStop(stopTypeProfit, stopModePercent, ExitPct, 1); //exit
> > > intraday on same bar at 2%
> > > > > > ApplyStop(stopTypeLoss, stopModePercent, ExitPct, 1);  //exit
> > > intraday on same bar at 2%
> > > > > >
> > > > > > //CONDITIONS---------------------------------------
> > > > > > Cond1=Cross(MACD(12,26),0);
> > > > > >
> > > > > > //long entry-----------------------------
> > > > > > PositionScore= 100-StochK(15,3);
> > > > > > Buy= Cond1;
> > > > > > // BuyPrice=Open*1.001; //in open next bar!
> > > > > > BuyPrice=Open ; //in open next bar!
> > > > > >
> > > > > > Sell=Cross(Signal(12,26,9),MACD(12,26));//sell in open next bar
> > > > > > // SellPrice=Open*0.999;
> > > > > > SellPrice=Open ;
> > > > > >
> > > > > >
> > > > > > Buy=ExRem(Buy,Sell); Sell=ExRem(Sell,Buy);
> > > > > >
> > > > > > //------------END OF CODE------------------
> > > > > >
> > > > > >
> > > > > > Notes:
> > > > > >
> > > > > > 1.  My AB 5.3 install requires Buy, Sell, Stop, and Cover to all
> > > be defined.
> > > > > >
> > > > > > 2.  I use the Open for BuyPrice and SellPrice.  If you multiply
> > > the Open you could wind up with a price that does not exist during
> > that
> > > bar.
> > > > > >
> > > > > > 3.  I parameterized the ExitPct, and added the stopTypeLoss.
> > > > > >
> > > > > > 4.  When I run a backtest, results look good, with rows and rows
> > > of profit and loss exits at the ExitPct, differing only in the 2nd
> > > decimal place.
> > > > > >
> > > > > > So, I don't know why it isn't working for you ...
> > > > > >
> > > > > > - Progster
> > > > > >
> > > > > >
> > > > > > --- In [email protected], "Gonzaga" <gonzagags@> wrote:
> > > > > > >
> > > > > > > Thanks for the answer.
> > > > > > > But I don't understand, yet. I'm sorry, but, suppose the next
> > > purchase:
> > > > > > > Using end-of-day bars:
> > > > > > > The system triggers a buy signal.
> > > > > > > Then I buy on next day bar, just in the open.
> > > > > > > Then, the stoploss should 'look the price', selling in the
> > same
> > > bar if loss is reached.
> > > > > > >
> > > > > > > How could the system knows if the stops triggers before or
> > after
> > > the buyprice?
> > > > > > >  Well, If I buy the open price, if the low is less than the
> > > stoplevel, the system sells.
> > > > > > > Is that simple, I think I could programm.
> > > > > > > But I thought that was easier with the stops commands..
> > > > > > > Where is the mistake?
> > > > > > > Thanx
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --- In [email protected], Progster <progster@> wrote:
> > > > > > > >
> > > > > > > > Gonzaga,
> > > > > > > >
> > > > > > > > If a chart bar is the smallest data unit under test, your
> > test
> > > cannot be
> > > > > > > > accurate if price-based entries and exits take place in the
> > > same bar.
> > > > > > > > This is because the path of price inside the bar is not
> > known.
> > > > > > > >
> > > > > > > > Some platforms have an "inside the bar" smallest data unit
> > > under test
> > > > > > > > (e.g. testing actually done to the tick level, assuming tick
> > > data
> > > > > > > > exists, even though you are observing a Daily chart). This
> > can
> > > be
> > > > > > > > somewhat helpful for visualizing and testing some kinds of
> > > strategies,
> > > > > > > > but tests done this way run at tick-bar speed, not at Daily
> > > bar speed.
> > > > > > > > In any case, AB does not work this way.
> > > > > > > >
> > > > > > > > I recommend testing your system on a low enough timeframe
> > such
> > > that
> > > > > > > > entries and exits never occur on the same bar.
> > > > > > > >
> > > > > > > > I also recommend, if you need Daily TA numbers, then run on,
> > > say, a 5m
> > > > > > > > chart (or even a 30m chart, depending), and write your code
> > to
> > > use AB's
> > > > > > > > time-compression/expansion to do the Daily-level TA.
> > > > > > > >
> > > > > > > > - Progster
> > > > > > > >
> > > > > > > >
> > > > > > > > On 6/16/2010 3:50 PM, Gonzaga wrote:
> > > > > > > > >
> > > > > > > > > Well, I have to admit that I don't understand at all the
> > > stop system
> > > > > > > > > performed by Amibroker.
> > > > > > > > >
> > > > > > > > > I have super-simplified my code, letting only a buy
> > > condition, and a
> > > > > > > > > stop, established in the settings dialog, to avoid any
> > code
> > > mistake.
> > > > > > > > > So, I want to have a stoploss or stop profit, for example
> > > 5%.
> > > > > > > > > I use settradedelays (1,1,1,1);
> > > > > > > > > the stops execute in the same bar as stop-loss signal,
> > using
> > > the
> > > > > > > > > parameter in settings "exit intraday at stop(1)",which, as
> > > help files
> > > > > > > > > says, "check High-Low prices and exit intraday on price
> > > equal to stop
> > > > > > > > > level on the same bar when stop was triggered".
> > > > > > > > > I also set "activate stops immediately", which is supposed
> > > that if
> > > > > > > > > it's activated, "stop is activated after current bar
> > > signals"
> > > > > > > > > And I also set to true, (I dont know if it's needed)
> > "allow
> > > same bar exit"
> > > > > > > > >
> > > > > > > > > Well, my system buys the day after buy signal, at open.
> > And
> > > the stop
> > > > > > > > > should sell in the stoploss limit exactly, at least if the
> > > stop
> > > > > > > > > triggers in the same buying bar. If it is in another bar,
> > > there could
> > > > > > > > > be a gap that make bigger the loss, of course.
> > > > > > > > >
> > > > > > > > > Well, there's no way. I obtain any loss, in the same bar,
> > in
> > > different
> > > > > > > > > bars, and never limit to the stop loss number.
> > > > > > > > > I understand nothing.
> > > > > > > > > Does anybody know how to enter at next-bar open, and let
> > the
> > > stoploss
> > > > > > > > > triggers in the same bar of the stop signal?
> > > > > > > > > Or at least, where is a clear paper explaining the exact
> > > usage of the
> > > > > > > > > amibroker's stops??
> > > > > > > > >
> > > > > > > > > Thanks a looot
> > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>


Reply via email to