PureBytes Links
Trading Reference Links
|
Possibly a little late but this is what I use to achieve the band:
"//No position = 1, Long = 2, Short = 3,
Positions=
IIf(BarsSince(Sell)<BarsSince(Buy) AND BarsSince(Sell)<BarsSince
(Short),1,
IIf(BarsSince(Cover)<BarsSince(Short) AND BarsSince(Cover)<BarsSince
(Buy),1,
IIf(BarsSince(Buy)<BarsSince(Short) AND BarsSince(Buy)<BarsSince
(Sell),2,
IIf(BarsSince(Short)<BarsSince(Buy) AND BarsSince(Short)<BarsSince
(Cover),3,0))));
Color=IIf(positions==1, colorLightGrey,IIf(positions==3, colorRed,IIf
(positions==2,colorGreen,colorWhite)));
//Plot(3,"Position",Color,styleOwnScale|styleArea|styleNoLabel, -
0.5, 100 );"
Willem Jan
--- In amibroker@xxxxxxxxxxxxxxx, "sslack88" <jzzpiano88@xxxx> wrote:
>
> Thanks eveyone for all the help, I finally got this to work using
> arrays, here is the code if anyone is interested:
>
> ///////////////////////////////////////////////////////////
> //3-Bar Indicator
> //////////////////////////////////////////////////////////
>
>
> //Identifys number of lookback bars to ignore inside days
> Countbars=BarIndex()-ValueWhen(Inside()==0,BarIndex(),4);
>
> //Long and Short Setups
> HigherClose = C > Ref(C,-1);
> LowerClose = C < Ref(C,-1);
>
> //3-bar stop level
> ThreeBarLow = LLV(L,Countbars);
> ThreeBarHigh = HHV(H,Countbars);
>
> //Recalculates stop based on a higher close or lower close
> LowerStopLoss = IIf(HigherClose, ThreeBarLow, Ref(ThreeBarLow,-1));
> UpperStopLoss = IIf(LowerClose, ThreeBarHigh, Ref(ThreeBarHigh,-
1));
>
> //Plots stop loss staircase
> Plot(LowerStopLoss,"Lower Stop",ParamColor("Lower Color",
> colorLime), styleStaircase);
> Plot(UpperStopLoss,"Upper Stop",ParamColor("Upper Color",
> colorOrange ),styleStaircase);
>
> //Long and Short stop loss levels
> LongStopOut = C < LowerStopLoss;
> ShortStopOut = C > UpperStopLoss;
>
> //Identifying if there is an open long or short position
> LongPosition = Flip(HigherClose,LongStopOut);
> ShortEntry = LowerClose AND LongPosition == 0;
> ShortPosition = Flip(ShortEntry,ShortStopOut);
>
> //Bands
> LongShortBand = IIf(LongPosition==1 AND Ref(ShortPosition==0,-
> 1),1,0);
> Color = IIf(LongShortBand==1,colorLime,colorOrange);
> Plot(1,"",Color,styleArea|styleOwnScale|styleNoLabel);
>
>
>
> --- In amibroker@xxxxxxxxxxxxxxx, "cstrader" <cstrader232@xxxx>
> wrote:
> >
> > I didn't get a chance to look at your code yet. But here's a
> generic loop
> > that might be useful
> >
> > Buy = Short = Bought = Shorted = BuyopenPrice = Shortopenprice =
0;
> >
> > Buy[1] = Bought[1] = 1; //Initialize 1st bar to a Buy
> >
> > for (i = 2; i < BarCount-1; i++)
> >
> > {
> >
> > //Continue these variables across the loop
> >
> > Bought[i] = Bought[i-1];
> >
> > Shorted[i] = Shorted[i-1];
> >
> > BuyOpenPrice[i] = BuyOpenPrice[i-1];
> >
> > ShortOpenPrice[i] = ShortOpenPrice[i-1];
> >
> >
> >
> > //Remove intermediate signals
> >
> > if (Short[i] AND Shorted[i-1])
> >
> > {Short[i] = 0;
> >
> > }
> >
> > if (Buy[i] AND Bought[i-1])
> >
> > {Buy[i] = 0;
> >
> > }
> >
> >
> > //Test for Buy exit
> >
> > if (Bought[i-1])
> >
> > {
> >
> >
> > Buystopprice[i] = BuyOpenPrice[i] - XXX; //Stop value code here
> >
> > if (C[i] < BuyStopprice[i] )
> >
> > {
> >
> > Short[i] = Shorted[i] = 1; //This is reversal system (New short
> when Long
> > closes) You may not want this
> >
> > ShortOpenPrice[i] = C[i];
> >
> > Bought[i] = 0;
> >
> > }
> >
> >
> > }
> >
> > //Test for Short exit
> >
> > if (Shorted[i-1])
> >
> > {
> >
> > ShortStopPrice[i] = ShortOpenPrice[i] + XXX; //Stop value code
here
> >
> > if (C[i] > ShortStopprice[i] )
> >
> > {
> >
> > Buy[i] = Bought[i] = 1;
> >
> > BuyOpenPrice[i] = C[i];
> >
> > Shorted[i] = 0;
> >
> > }
> >
> >
> > }
> >
> > }
> >
> > ----- Original Message -----
> > From: "sslack88" <jzzpiano88@xxxx>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > Sent: Sunday, January 22, 2006 11:44 PM
> > Subject: [amibroker] Re: Plotting Bands when Long or Short
> >
> >
> > > Thanks for the reply chuck. TrailingStop is the LLV value of
the
> > > past three days (ignoring inside periods). I don't want to
> initiate
> > > a short position until the lowerstop is violated. It sounds
> like I
> > > might have to create a FOR loop. Could you give me a basic
> piece of
> > > code on how to do this type of LongOpenPosition and
> > > ShortOpenPosition?
> > >
> > > Here is the sample code that I was writing (run this as an
> > > explore). Everthing works except the LongPosition because I
> cannot
> > > initialize the ShortPosition == 0 until the array is run.
Take a
> > > look and see if you can figure it out.
> > >
> > > //3-Bar Pattern Exploration
> > >
> > > Filter=1;
> > >
> > > //Bar Number
> > > AddColumn(BarIndex(),"Bar Index");
> > >
> > >
> > > //Identifys number of lookback bars to ignore inside days
> > > Countbars=BarIndex()-ValueWhen(Inside()==0,BarIndex(),4);
> > >
> > > //Long and Short Setups
> > > HigherClose = C > Ref(C,-1);
> > > LowerClose = C < Ref(C,-1);
> > > AddColumn (HigherClose,"Higher Close");
> > > AddColumn (LowerClose, "Lower Close");
> > >
> > > //3-bar stop level
> > > ThreeBarLow = LLV(L,Countbars);
> > > ThreeBarHigh = HHV(H,Countbars);
> > >
> > > //Recalculates stop based on a higher close or lower close
> > > LowerStopLoss = IIf(HigherClose, ThreeBarLow, Ref(ThreeBarLow,-
> 1));
> > > UpperStopLoss = IIf(LowerClose, ThreeBarHigh, Ref
(ThreeBarHigh,-
> 1));
> > > AddColumn (LowerStopLoss,"3-Bar High Stop");
> > > AddColumn (UpperStopLoss,"3-Bar Low Stop");
> > >
> > > //Long and Short stop loss levels
> > > LongStopOut = C < LowerStopLoss;
> > > ShortStopOut = C > UpperStopLoss;
> > > AddColumn (LongStopOut,"LongStopOut");
> > > AddColumn (ShortStopOut,"ShortStopOut");
> > >
> > > //Identifying if there is an open long or short position
> > > LongEntry = HigherClose;
> > > LongPosition = Flip(LongEntry,LongStopOut);
> > > ShortEntry = LowerClose AND LongPosition == 0;
> > > ShortPosition = Flip(ShortEntry,ShortStopOut);
> > > AddColumn (LongPosition,"LongPosition");
> > > AddColumn (ShortPosition,"ShortPosition");
> > >
> > >
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, "cstrader" <cstrader232@xxxx>
> > > wrote:
> > >>
> > >> I believe you are having the same troubles that I was in a few
> > > weeks ago.
> > >> It's not clear to me if you want the long to close when the
> short
> > > is opened
> > >> or not. Also, your 'trailing stop' formula is not clear. If
> the
> > > trailing
> > >> stop is based on the open price then your sell is linked to
the
> > > buy. I'm
> > >> guessing you are also wanting to exclude unwanted intermediate
> > > signals. To
> > >> do these things I have discovered -- with much help from the
> users
> > > of this
> > >> group -- that you must use either applystop if it is
suitable,
> or
> > > use a
> > >> 'for' loop to define your trade signals -- Flip, exrem etc
are
> not
> > > suitable
> > >> for this.
> > >>
> > >> chuck
> > >>
> > >>
> > >> ----- Original Message -----
> > >> From: "sslack88" <jzzpiano88@xxxx>
> > >> To: <amibroker@xxxxxxxxxxxxxxx>
> > >> Sent: Sunday, January 22, 2006 7:45 PM
> > >> Subject: [amibroker] Plotting Bands when Long or Short
> > >>
> > >>
> > >> >I want to plot a green band if I am in a long position, and
a
> red
> > > band
> > >> > if I am in a short position. No problem, right?
> > >> >
> > >> > Here's the tricky part:
> > >> >
> > >> > ** Only one position can be open at a time
> > >> > * TrailingStop is a function I created
> > >> >
> > >> > LongEntry = C > Ref(C,-1);
> > >> > LongExit = C < TrailingStop;
> > >> >
> > >> > ShortEntry = C < Ref(C,-1);
> > >> > ShortExit = C > TrailingStop;
> > >> >
> > >> > * Remember, only one position can be open at a time.
> Obviously,
> > >> > higher closes are going to exist even when I am in a short
> > > position,
> > >> > so using the FLIP function doesn't seem to work.
> > >> >
> > >> > Any Ideas? Thanks in advance.
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > 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 other support material please check also:
> > >> > http://www.amibroker.com/support.html
> > >> >
> > >> >
> > >> > Yahoo! Groups Links
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >> >
> > >>
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > 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 other support material please check also:
> > > http://www.amibroker.com/support.html
> > >
> > >
> > > Yahoo! Groups Links
> > >
> > >
> > >
> > >
> > >
> > >
> >
>
------------------------ Yahoo! Groups Sponsor --------------------~-->
Try Online Currency Trading with GFT. Free 50K Demo. Trade
24 Hours. Commission-Free.
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/GHeqlB/TM
--------------------------------------------------------------------~->
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 other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|