PureBytes Links
Trading Reference Links
|
Andrew,
"you can get rid of at least 6 of the 8 PREV functions"
I'm glad to see you've found the remaining two. :)
"1. What is the function of the cum(set)=1?"
This is a bit of code I found that aids Roy's latch in getting that
first complete trade.
"I do notice that your code starts later than the original"
As Roy has already mentioned in private mail, it doesn't seem possible
for the latch to capture the first long entry unless there is a short
entry prior to it. The PREV version doesn't have this small problem,
other than melting down your CPU with excess processing.
Good stuff, Andrew. :)
jose '-)
--- In equismetastock@xxxxxxxxxxxxxxx, "Andrew Tomlinson"
<andrew_tomlinson@xxxx> wrote:
>
> Jose
>
> 1. What is the function of the cum(set)=1 in Trigger1 and it's
equivalent in
> Trigger 3? I know it refers to the first occurrence of "set" within
the
> selected data, but that's as far as I get. Is it related in some way
to the
> initialization variable? But that's already referred to in the
statement, so
> the earliest occurrences have been validated. I do notice that your
code
> starts later than the original (on the data I was using my first
trade is a
> short).
>
> 2. I liked the non-PREV code for "short", so I tried using it for
"long"
> too. This seems to work, as
>
> long:= BarsSince(Init OR Set)
> <BarsSince(Init OR Reset OR TStopL)
> +(Cum(Set)=1);
>
> giving a completely PREV free code! It looks ok on my test case. Am
I
> missing anything?
>
> Best
> Andrew
>
>
>
> -----Original Message-----
> From: Jose [mailto:josesilva22@x...]
> Sent: Tuesday, June 29, 2004 10:06 PM
> To: equismetastock@xxxxxxxxxxxxxxx
> Subject: [EquisMetaStock Group] Re: Entry testing code issues
>
>
>
> Andrew, you can get rid of at least 6 of the 8 PREV functions in
your
> code, as well as some redundant code, with the code below which
gives
> identical signals to the sloooow original.
>
> ---8<----------------
>
> { Single MA System }
> { Entry: slope of MA changes in one bar. }
> { Exit: reverse of Entry }
>
> B1:=Input("EMA periods",1,300,50);
> B2:=Input("TStop periods",1,100,10);
>
> MA:=Mov(C,B1,E);
> Set:=Cross(C,MA);
> Reset:=Cross(MA,C);
> Init:=Cum(Set+Reset>-1)=1; {thanks Roy}
>
> Trigger1:=BarsSince(Init OR Set)
> <BarsSince(Init OR Reset)+(Cum(Set)=1);
>
> TStopL:=If(Trigger1,
> BarsSince(ROC(Trigger1,1,$)>0)=B2,0);
>
> long:=If(PREV=0,Set,
> If(Reset OR BarsSince(PREV=0)>=B2,0,1));
>
> Trigger3:=BarsSince(Init OR Reset)
> <BarsSince(Init OR Set)+(Cum(Reset)=1);
>
> TStopS:=If(Trigger3,
> BarsSince(ROC(Trigger3,1,$)>0)=B2,0);
>
> short:=BarsSince(Init OR Reset)
> <BarsSince(Init OR Set OR TStopS)
> +(Cum(Reset)=1);
>
> long-short
>
> ---8<----------------
>
>
> jose '-)
> http://users.bigpond.com/prominex/pegasus.htm
>
>
>
> --- In equismetastock@xxxxxxxxxxxxxxx, "Andrew Tomlinson"
> <andrew_tomlinson@xxxx> wrote:
> >
> > I am writing some code to follow Le Beau's strategy for testing
> Entries in
> > "Computer Analysis of the Futures Markets" - i.e. test a bunch of
> entries
> > using with the only exits being time stops and compare to a random
> entry. I
> > am therefore assuming an entry as per the system, and an exit as
the
> earlier
> > of a system reversal or a time stop.
> >
> > For a long and short system, I am ending up with code with 4 PREV
> latches. I
> > can't get the indicator exit and the time stop in the same latch
> since the
> > time stop needs to refer to the prior latch to set the clock
> running. This
> > seems to work, but it feels clumsy - is there a better way?
> >
> > Here's an example, written as an indicator which will show long
> positions as
> > +1, short as -1 and time out of the market as 0. The entry is on
the
> slope
> > of a moving average. I've annotated the long side for clarity.
Short
> is just
> > the opposite of long. I have included entry and exit signals for
use
> in
> > TE/TradeSim/System Tester although they're not actually used in
the
> > Indicator. Ideally I'm trying to get to a baseline code that I can
> use to
> > quickly compare different entries. [NB this is not a tradable
system
> -it
> > cuts off trends way too early- just an exercise to compare
different
> > entries]
> >
> > Thanks for your thoughts
> > Andrew
> >
> >
>
----------------------------------------------------------------------
> ------
> > ---------------------------
> >
> > {Single MA System - gives entry signals when slope of MA changes
to
> up or
> > down in one day. Exit is a reverse signal or a time stop.
Indicator.
> }
> >
> >
> > B1:= Input("Enter bars for MA1",1,300,50);
> > B2:= Input("Enter bars for TStop",1,100,10);
> >
> > MA:= Mov(C,B1,E); {today's MA}
> > MA1:= Ref(Mov(C,B1,E),-1); {yesterday's MA}
> > MA2:= Ref(Mov(C,B1,E),-2); {day before yesterday's MA}
> >
> > Set:= MA2>=MA1 AND MA1<MA; {MA turns up}
> > Reset:= MA2<=MA1 AND MA1>MA; {MA turns down}
> >
> > Trigger1:= If(PREV=0,If(Set,1,0),If(Reset,0,PREV));
> > {first binary trigger for set and reset signals}
> > TStopL:=if(Trigger1=1,if(barssince(roc(Trigger1,1,$)>0)=B2,1,0),0)
;
> > {time stop keying off Trigger1}
> > Trigger2:= If(PREV=0,If(Set,1,0),If(Reset OR TStopL,0,PREV));
> > {second binary trigger to include time stop} Long:=Trigger2;
> >
> > EL:=if(ref(long,-1)=0,if(set,1,0),0);
> > {Enter Long if you're out of the market and get an indicator
> buy}
> > CL:=if(ref(long,-1)=1,if(Reset OR TStopL,-1,1),0);
> > {Close Long on an indicator sell or time stop}
> >
> >
> > Trigger3:= If(PREV=0,If(Reset,1,0),If(Set,0,PREV));
> > TStopS:=if(Trigger3=1,if(barssince(roc(Trigger3,1,$)>0)=B2,1,0),0)
;
> > Trigger4:= If(PREV=0,If(Reset,1,0),If(Set OR TStopS,0,PREV));
> > Short:=Trigger4;
> >
> > ES:=if(ref(short,-1)=0,if(Reset,1,0),0);
> > CS:=if(ref(short,-1)=1,if(Set OR TStopS,-1,1),0);
> >
> > Long - Short; {i.e., will show +1 for long market position, -1 for
> short and
> > 0 for out}
------------------------ Yahoo! Groups Sponsor --------------------~-->
Yahoo! Domains - Claim yours for only $14.70
http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/BefplB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/equismetastock/
<*> 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/
|