Thanks for spending time explaining things so well.  I have already
implemented what you advised and still have a couple of questions but will
give your reply the attention it deserves first.

many thanks

AH

On Sat, May 3, 2008 at 11:03 AM, Mike <[EMAIL PROTECTED]> wrote:

>   Hi,
>
> It sounds like you have the wrong trade delays set in your settings.
> For this particular code, you've already accounted for referring only
> to previous bar values, so you might as well hard code the trade
> delays directly into your code as follows:
>
> SetTradeDelays(0, 0, 0, 0);
>
> That way, if you ever mess around with the settings later, it won't
> effect this script.
>
> To start with, simplify your life and focus just on Buy/Sell. Leave
> Short/Cover until after you have Buy/Sell working.
>
> If it is possible to have redundant Buy signals, you will
> need to remove them before using the ValueWhen on the Buy array when
> calculating Low2:
>
>
> Buy = NR4DayYest AND InsideDayYest AND HigherHigh;
>
> Low1 = Ref(L, -2);
> SellTrigger1 = L < Low1;
>
> Buy = ExRem(Buy, SellTrigger1); // Remove redundant buys
> Low2 = ValueWhen(Buy, Ref(L, -1) - 0.01);
> SellTrigger2 = L < Low2;
>
> Sell = SellTrigger1 OR SellTrigger2;
>
> I notice a needed adjustment to the BuyPrice/SellPrice to correct for
> the fact that if the current bar opens above/below your calculated
> price, you have to take the Open rather than your calculated price.
> So, you're BuyPrice becomes:
>
> BuyPrice = Ref(High, -1);
> BuyPrice = IIF(Open > BuyPrice, Open, BuyPrice);
>
> And your SellPrice becomes:
>
> SellPrice = IIf(L < Low1,
> IIf(L < Low2,
> Max(Low1, Low2),
> Low1),
> IIf(L < Low2,
> Low2,
> 0)
> );
> SellPrice = IIF(Open < SellPrice, Open, SellPrice);
>
> To help see what is going on, you can then add the following code to
> the bottom of your script and show it all on a chart. Regular bars
> will show as dark grey, NR4Days will show as pink, InsideDays will
> show as blue, days that are both NR4Day and InsideDay will show as
> orange, buy actions will show as a green circle at the actual buy
> price, sell actions will show as a red circle at the actual sell
> price:
>
> Buy = ExRem(Buy, Sell);
> Sell = ExRem(Sell, Buy);
>
> BarColors = IIF(InsideDay,
> IIF(NR4Day,
> colorOrange,
> colorBlue),
> IIF(NR4Day,
> colorPink,
> colorDarkGrey)
> );
>
> Plot(Close, "Close", BarColors, styleBar);
> PlotShapes(IIf(Buy, shapeSmallCircle, shapeNone), colorBrightGreen,
> 0, BuyPrice, 0);
> PlotShapes(IIf(Sell, shapeSmallCircle, shapeNone), colorRed, 0,
> SellPrice, 0);
>
> Hope that helps.
>
> Mike
>
> --- In [email protected] <amibroker%40yahoogroups.com>, "alta hob"
> <[EMAIL PROTECTED]> wrote:
> >
> > I tried changing it as you specified but when I run a backtest it
> still will
> > exit a trade on the previous bars high/low (depending on whether im
> short or
> > long). I want AB to exit on either the low/high of the inside day
> or on a
> > two bar trailing stop. Can you see what is causing this problem
> because I
> > can't work out why?
> >
> >
> > thanks
> > -------
> >
> > NR4Day = (H - L) < Ref(LLV(H-L,3),-1);
> > Column1 = NR4Day;
> > Column1Name = "Nr4Day";
> >
> > InsideDay = H < Ref(High,-1) AND Low > Ref(Low,-1);
> > Column2 = InsideDay;
> > Column2Name = "Inside Day";
> >
> >
> > NR4DayYest = Ref( NR4Day, -1 ); // new array - NR4Day shifted
> forward 1 bar
> >
> > InsideDayYest = Ref( InsideDay, -1 ); // new array - InsideDay
> shifted
> > forward 1 bar
> >
> > HigherHigh = High > Ref( High, -1 );
> >
> > LowerLow = Low < Ref( Low, -1 );
> >
> > Buy = NR4DayYest AND InsideDayYest AND HigherHigh;
> >
> > BuyPrice = Ref ( High, -1 );
> >
> > Low1 = Ref(L, -2);
> > Low2 = ValueWhen(Buy,Ref(L,-1)-0.01);
> >
> > Sell = L < Low1 OR L < Low2;
> >
> > SellPrice = IIf(L < Low1,
> > IIf(L < Low2,
> > Max(Low1, Low2),
> > Low1),
> > IIf(L < Low2,
> > Low2,
> > 0)
> > );
> >
> > Short = NR4DayYest AND InsideDayYest AND LowerLow;
> >
> > High1 = Ref(H, -2);
> > High2 = ValueWhen(Sell,Ref(H,-1)+0.01);
> >
> > Cover = H > High1 OR H > High2;
> >
> > CoverPrice = IIf(H > High1,
> > IIf(H > High2,
> > Max(High1, High2),
> > High1),
> > IIf(H < High2,
> > High2,
> > 0)
> > );
> >
> > On Fri, May 2, 2008 at 11:29 PM, Mike <[EMAIL PROTECTED]> wrote:
> >
> > > Yes, it takes the lower of the two lows preceding the current
> bar. If
> > > you want specifically the low of two bars ago, just use:
> > >
> > > Low1 = Ref(L, -2);
> > >
> > >
> > > Mike
> > >
> > > --- In [email protected] <amibroker%40yahoogroups.com><amibroker%
> 40yahoogroups.com>, "alta hob"
> > > <altahob@> wrote:
> > > >
> > > > Thanks for taking the time to help. I will study the code you
> gave
> > > me.
> > > >
> > > > Another question.
> > > >
> > > > If I use the
> > > >
> > > > Low1 = Ref(LLV(L,2),-1);
> > > >
> > > > Does this take the lowest low of the last 2 bars? If it does
> then
> > > I have
> > > > made a mistake. What I want to do is use the low from two bars
> > > ago, not the
> > > > lowest of the last two bars as this doesn't give my trade room
> to
> > > breathe.
> > > >
> > > > cheers
> > > >
> > > > AH
> > > >
> > > > On Fri, May 2, 2008 at 9:09 PM, Mike <sfclimbers@> wrote:
> > > >
> > > > > For these types of problems, it often helps to break up the
> > > > > conditions for easier understanding.
> > > > >
> > > > > Using your example, what about something like:
> > > > >
> > > > > Low1 = Ref(LLV(L,2),-1);
> > > > > Low2 = ValueWhen(Buy,Ref(L,-1)-0.01);
> > > > >
> > > > > Sell = L < Low1 OR L < Low2;
> > > > >
> > > > > SellPrice = IIF(L < Low1,
> > > > > IIF(L < Low2,
> > > > > max(Low1, Low2),
> > > > > Low1),
> > > > > IIF(L < Low2,
> > > > > Low2,
> > > > > 0)
> > > > > );
> > > > >
> > > > > I'm assuming that if both conditions are met, then the one
> that
> > > > > happened first (i.e. the higher price point) would be the
> selling
> > > > > price.
> > > > >
> > > > > Mike
> > > > >
> > > > >
> > > > > --- In [email protected] 
> > > > > <amibroker%40yahoogroups.com><amibroker%
> 40yahoogroups.com><amibroker%
>
> > > 40yahoogroups.com>, "alta hob"
> > > > > <altahob@> wrote:
> > > > > >
> > > > > > Hi
> > > > > >
> > > > > >
> > > > > > I am trying to do something similar but need my sellprice to
> > > > > execute at the
> > > > > > point the sell criteria below is hit
> > > > > >
> > > > > > Sell = L < Ref(LLV(L,2),-1) OR L<ValueWhen(Buy,Ref(L,-1)-
> 0.01);
> > > > > >
> > > > > > Can someone please show me how to add the sellprice code to
> > > this?
> > > > > >
> > > > > >
> > > > > > thanks
> > > > > >
> > > > > >
> > > > > > On Sat, Apr 26, 2008 at 12:03 AM, safetrading <safetrading@>
> > > > > wrote:
> > > > > >
> > > > > > > Thanks Graham;
> > > > > > >
> > > > > > > That was exactly what I needed. I use Valuewhen all the
> time,
> > > for
> > > > > > > some reason I just drew a blank on this. I think the "buy"
> > > > > variable
> > > > > > > threw me, as I have never really done anything with it
> except
> > > put
> > > > > my
> > > > > > > formula there.
> > > > > > >
> > > > > > > Anyways, thanks very much.
> > > > > > >
> > > > > > > Safetrading
> > > > > > >
> > > > > > >
> > > > > > > --- In [email protected] 
> > > > > > > <amibroker%40yahoogroups.com><amibroker%
> 40yahoogroups.com><amibroker%
> > > 40yahoogroups.com><amibroker%
> > >
> > > > > 40yahoogroups.com>,
> > > > > Graham
> > > > > > > <kavemanperth@> wrote:
> > > > > > > >
> > > > > > > > Valuewhen is useful for this
> > > > > > > > I assume you are entering on same bar as buuy signal.
> This
> > > line
> > > > > > > gives
> > > > > > > > you the low of the bar before buy signal
> > > > > > > >
> > > > > > > > sell=L<valuewhen(buy,ref(l,-1)-0.01);
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Cheers
> > > > > > > > Graham Kav
> > > > > > > > AFL Writing Service
> > > > > > > > http://www.aflwriting.com
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > 2008/4/26 safetrading <safetrading@>:
> > > > > > >
> > > > > > > > > This is probably easy for most of you, but I just
> can't
> > > seem
> > > > > to
> > > > > > > > > figure this out.
> > > > > > > > >
> > > > > > > > > I'm using one tick above the high of the previous day
> for
> > > an
> > > > > > > entry
> > > > > > > > > point and trying to create an exit rule where for a
> long
> > > > > > > position,
> > > > > > > > > the exit would be one tick below the low of the day
> prior
> > > to
> > > > > the
> > > > > > > > > entry day ( the same days where I got my entry point
> from)
> > > > > > > until a
> > > > > > > > > low exists that is above the high of my entry point,
> at
> > > which
> > > > > > > time
> > > > > > > > > the exit would then become one tick below that low and
> > > > > continue
> > > > > > > to
> > > > > > > > > follow the trade like this; sell=L<ref(l,-1)-0.01;
> > > > > > > > >
> > > > > > > > > So what I need to do is label and hang on to the "one
> tick
> > > > > > > below"
> > > > > > > > > the low of the day prior to entering. I believe I
> need to
> > > use
> > > > > > > the
> > > > > > > > > Hold function, but am not sure how to identify the
> price
> > > > > point I
> > > > > > > > > need.
> > > > > > > > >
> > > > > > > > > Any suggestions would be appreciated.
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > >
> > > > > > > > > Safetrading
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ------------------------------------
> > > > > > > > >
> > > > > > > > > Please note that this group is for discussion between
> > > users
> > > > > > > only.
> > > > > > > > >
> > > > > > > > > To get 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