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" <gonzag...@...> 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
> > >
> > >
>