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

RE: [EquisMetaStock Group] Re: Entry testing code issues



PureBytes Links

Trading Reference Links

A wealth of riches here! And now I have to decide whether I prefer Jose's
code or Roy's code...No, can't do it. I'll never tell. Particularly as I'm
not sure whether it's me or my code which is the "sloooow original". Anyway,
pretty soon this market will have eroded my account so effectively that I'll
have to go back to a real job. The secret will die with me.

Thanks to you both.
Andrew




-----Original Message-----
From: Jose [mailto:josesilva22@xxxxxxxxx] 
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 Links



 




------------------------ Yahoo! Groups Sponsor --------------------~--> 
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/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/