PureBytes Links
Trading Reference Links
|
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/
|