[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [EquisMetaStock Group] help with barsSince



PureBytes Links

Trading Reference Links

Juan

Here's a 'Timed Exit' latch that you might like to play with to see the
effects of small changes to the code. Experiment with your own changes in
the fields marked by {*} and see what the different effects are. You will
need to change the name of the 'N' variable when you create in MS.

Roy

  {Timed Exit 1}
Pd:= 25 {*};{exit delay from entry leading edge}
N:=Fml("your entry signal"); {entry signal}
Tr:=If(PREV<=0,If(N>0, C {*}, 0 {*}),
If(BarsSince(PREV<=0)=Pd, -1 {*},PREV));
Tr{=-1};  {remove braces for trailing edge of latch}

  {Timed Exit 2}
Pd:= 25 {*};{exit delay from entry leading edge}
N:=Fml("your entry signal")>0; {entry signal}
Tr:=If(PREV<=0,If(N>0, C {*},PREV {*}),
If(BarsSince(PREV<=0)=Pd, -C {*},PREV));
Tr;

  {Timed Exit 3}
Pd:= 25 {*};{exit delay from entry leading edge}
N:=Fml("your entry signal"); {entry signal}
Tr:=If(PREV<=0,If(N>0, C {*}, 0 {*}),
If(BarsSince(PREV<=0)=Pd, -1 {*},
{OR "another exit condition",}
{OR "another exit condition",}PREV));
Tr;


> I've been reading a file in pdf format, not easy for begginers. You are
the
> author "Using latches in MS"?
> I have to redefine the binary latch to outcomes of -1 and 1, instead of 0
> and 1 as you pointed out before.
> But I tried in a different way, without changing the binary latch but it
> does no work:
>
> {draws resistances and supports}
> LookBack := 34;
>
> Resistance :=ValueWhen(1,Cross(Mov(C, LookBack,S),C),HHV(H, LookBack));
>
> Support :=ValueWhen(1,Cross(C,Mov(C, LookBack,S)),LLV(L, LookBack));
>
> R1:=Resistance;
>
> S1:=Support;
>
>
>
> {binary latch, gives 1 if L>Resistance, and resets if H<Resistance to 0}
>
> sigtl:=If(L>R1,1,0);
>
> rsttl:=If(H<R1,1,0);
>
> itl:=Cum(sigtl+rsttl>-1)=1;
>
> rmbtl:=BarsSince(sigtl OR itl)<BarsSince(rsttl OR itl);
>
>
>
> {looks for HHV since L>Resistance to place a trailing stop}
>
> all:=If(rmbtl=0,-1,l);
>
> stlongl:= If(all=-1,0, If(HHV(H,LastValue(PREV+
> BarsSince(all=-1)-PREV))-ATR(6)*0.5<C,1,0));
>
> stlongl;
>
>
>
>
>
>
> ----- Original Message -----
> From: "Roy Larsen" <rlarsen@xxxxxxxxxxxxxx>
> To: <equismetastock@xxxxxxxxxxxxxxx>
> Sent: Monday, March 10, 2003 1:14 AM
> Subject: Re: [EquisMetaStock Group] help with barsSince
>
>
> > Juan
> >
> > One problem that is evident with your 'stlong' variable is that the
> > BarsSince() function is often returning a "zero" value. This is not
> > acceptable for the HHV(H,periods) function, as I think I pointed out in
my
> > earlier post. So the problem at this point is not so much that the code
> > won't work as that it won't work with the parameters you are supplying
it.
> > Try adding some number to BarsSince(rmbtl=0) so that you have an
> expression
> > like (BarsSince(rmbtl=0)+5) instead. This should at least get an output
> > instead of N/A - It does for me. Because I don't yet understand the
> thinking
> > behind the formula I can't offer further suggestions, but using a
variable
> > as a constant does not appear to be the only issue.
> >
> > You can dispense with the If function in "stlong" (to simplify the code
a
> > little) because any output signal will be the same whether or not you
use
> > If(). But the main task is to rethink the BarsSince() function usage so
> the
> > result is never zero and always a whole number, as required by HHV()
> >
> > Roy
> >
> > ----- Original Message -----
> > From: "emarco" <emarco@xxxxxxxxxxxxxxx>
> > To: <equismetastock@xxxxxxxxxxxxxxx>
> > Sent: Monday, March 10, 2003 4:29 PM
> > Subject: Re: [EquisMetaStock Group] help with barsSince
> >
> >
> > > Thanks Roy.
> > > Unfortunatly it does not work.
> > > Here's the full code. Thanks again,
> > > Juan
> > >
> > > LookBack := 34;
> > >
> > > Resistance :=ValueWhen(1,Cross(Mov(C, LookBack,S),C),HHV(H,
LookBack));
> > >
> > > Support :=ValueWhen(1,Cross(C,Mov(C, LookBack,S)),LLV(L, LookBack));
> > >
> > > R1:=Resistance;
> > >
> > > S1:=Support;
> > >
> > >
> > >
> > > sigtl:=If(L>R1,1,0);
> > >
> > > sigts:=If(H<S1,1,0);
> > >
> > > rsttl:=If(H<R1,1,0);
> > >
> > > rstts:=If(L>S1,1,0);
> > >
> > > itl:=Cum(sigtl+rsttl>-1)=1;
> > >
> > > its:=Cum(sigts+rstts>-1)=1;
> > >
> > > rmbtl:=BarsSince(sigtl OR itl)<BarsSince(rsttl OR itl);
> > >
> > > rmbts:=BarsSince(sigts OR its)<BarsSince(rstts OR its);
> > >
> > > stlong:=If(HHV(H,LastValue(PREV+
> > > BarsSince(rmbtl=0)-PREV))-ATR(6)*2.5<C,1,0);
> > >
> > > stlong;
> > >
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: "Roy Larsen" <rlarsen@xxxxxxxxxxxxxx>
> > > To: <equismetastock@xxxxxxxxxxxxxxx>
> > > Sent: Sunday, March 09, 2003 6:38 PM
> > > Subject: Re: [EquisMetaStock Group] help with barsSince
> > >
> > >
> > > > Juan
> > > >
> > > > Thanks to Corey Saxe there is a way that MS will accept a variable
as
> > > > constant. Try redefining your variable using
> > > > LastValue(PREV+"Variable Data"-PREV)
> > > >
> > > > This method does not work on every occasion but there are a couple
of
> > > things
> > > > you can do to help.
> > > > 1. Make sure your variable is greater than or equal to one.
> > > > 2. Make sure your variable is a whole number.
> > > >
> > > > LastValue() can be used in a number of situations to make a result
> > > suitable
> > > > for using as a constant, but only where the last value of the
variable
> > is
> > > > the same as on every other bar. The above example of adding then
> > > subtracting
> > > > PREV from the current value appears to return the "actual" value
> rather
> > > than
> > > > the "last" value, and therefore is accepted as a "constant" by many
MS
> > > > functions.
> > > >
> > > > I have some doubts about the code you have given as an example and
> doubt
> > > it
> > > > could work in its present form even without MetaStock's perceived
> > > > inadequacies. The code appears to be looking for results from two
If()
> > > > statements yet I can only see one If(). It also seems to me that the
> > > > calculated "constant" for the HHV periods has no check to ensure
that
> it
> > > is
> > > > a whole number.
> > > >
> > > > When looking for assistance with code it is also helpful if
associated
> > > code
> > > > can be supplied. You may know how "rmbtl" is calculated but those
> > capable
> > > of
> > > > offering help won't. Providing actual code or at least a working
> > > substitute
> > > > will increase your chances of real help that goes beyond "buy some
> more
> > > > software".
> > > >
> > > > Good luck with your attempts to solve your problem whichever method
> you
> > > > choose to use.
> > > >
> > > > Roy
> > > >
> > > > ----- Original Message -----
> > > > From: "emarco" <emarco@xxxxxxxxxxxxxxx>
> > > > To: <equismetastock@xxxxxxxxxxxxxxx>
> > > > Sent: Saturday, March 08, 2003 11:37 AM
> > > > Subject: [EquisMetaStock Group] help with barsSince
> > > >
> > > >
> > > > This is a trailing stop. The problem is that MS does not accept
> variable
> > > > data in HHV.
> > > >
> > > >
> > > >
> > > > stlong:=if(HHV(H,BarsSince(rmbtl=0))-ATR(6)*2.5>C,1,0),1,0)
> > > >
> > > >
> > > > As you can see, MS does not accept barssince as a period data.
> > > > How can I solve this problem?
> > > > Thanks
> > > >
> > > > Juan
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > To unsubscribe from this group, send an email to:
> > > > equismetastock-unsubscribe@xxxxxxxxxxxxxxx
> > > >
> > > >
> > > >
> > > > Your use of Yahoo! Groups is subject to
> > http://docs.yahoo.com/info/terms/
> > > >
> > > >
> > >
> > >
> > >
> > >       Yahoo! Groups Sponsor
> > >             ADVERTISEMENT
> > >
> > >
> > >
> > >
> > > To unsubscribe from this group, send an email to:
> > > equismetastock-unsubscribe@xxxxxxxxxxxxxxx
> > >
> > >
> > >
> > > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
> > >
> >
> >
> >
> > To unsubscribe from this group, send an email to:
> > equismetastock-unsubscribe@xxxxxxxxxxxxxxx
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
> >
> >
> >
>
>
>
>       Yahoo! Groups Sponsor
>             ADVERTISEMENT
>
>
>
>
> To unsubscribe from this group, send an email to:
> equismetastock-unsubscribe@xxxxxxxxxxxxxxx
>
>
>
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
>



To unsubscribe from this group, send an email to:
equismetastock-unsubscribe@xxxxxxxxxxxxxxx

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/