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

Re: [EquisMetaStock Group] System Testing for same day trade



PureBytes Links

Trading Reference Links

Pankaj

> I want to test a very simple system which enters and exits the trade
> on the same day. For e.g., enter a trade at Open and exit at the
> close.
>
> How can I use the system tester of MS 7.2 to code this?

You can't.

A free alternative is to use one of the "Trade Equity" tools. In the example below I've set up a buy
at the open of each Thursday and a sell at the close of each Thursday. This is the same tool that
Jose' posted with the "Holy Grail" system. Do NOT try to enter any code longer than one line in
place of my example. Instead create indicators for your Enter Long and Close Long code and use Fml()
calls to access those buy and sell signals. Use 'N' and 'X' variables for binary signals, and 'Ns'
and 'Xs' variables for price (stop) signals. Change the 'B' and/or 'Z' entry/exit options as
appropriate.

TE cannot handle two consecutive intraday trades but it will handle a "trade / no trade / trade / no
trade" sequence of intraday trades. If you mess with anything under the {* end user area *} line
you're on your own.

Roy

  {Trade Equity LE} {V4.2b}
  {© 2004 Roy Larsen, rlarsen@xxxxxxxxxxxxxx}
B:=Input("Entry 1=O 2=C 3=H 4=L 5=Stop",1,5,5);
Z:=Input("Exit 1=O 2=C 3=H 4=L 5=Stop" ,1,5,5);
Nd:=Input("Entry Delay",0,3,0);
Xd:=Input("Exit Delay", 0,3,0);
Cn:=Input("Entry / Exit Costs",0,9999,0000);
En:=Input("Display Options 0-12",0,12,0);
Cp:=1000; {* trade capital, 0 = points only}
F:=1; {* position size, <1 = %, >1 = shares}
N:=0; {binary entry, use Fml() call}
Ns:=(DayOfWeek()=4)*OPEN;  {price entry};
X:=0; {binary exit, use Fml() call}
Xs:=(DayOfWeek()=4)*CLOSE; {price exit};
  {* end user area *}
  {* use Xs with caution *}
F:=If(F=0,1,F);
Ns:=(B=5)*Ns;
Cx:=Cn-100*Int(Cn/100);
Cn:=Int(Cn/100);
M:=If(Ns>0,Ns,If(B=1,O,If(B=3,H,If(B=4,L,C))));
N:=N AND Alert(N=0,2);
X:=If(Z<5,X AND Alert(X=0,2),0);
N:=If(Nd=0,N,Alert(N,Nd+1) AND Alert(N,Nd)=0);
N:=If(B<5,N,Ns>0);
Y:=If(Xs>0,Min(H,Max(L,Xs)),
If(Z=1,O,If(Z=3,H,If(Z=4,L,C))));
X:=If(Xd=0,X,Alert(X,Xd+1) AND Alert(X,Xd)=0);
X:=X OR Xs>0;
Y:=If(Z<5 AND X=0,C,Y);
Y:=If(Xs>0 AND N AND X,Xs,Y);
I:=Cum((N+X)>-1)=1;
Y:=If(I,Y,If((N+X=0)+Alert(N+X=2,2)=2,ValueWhen(2,1,Y),Y));
N:=If(I>-1,N,0);
F:=ValueWhen(1,I OR N,F);
Tr:=BarsSince(I+N)<(BarsSince(I+X)+(Cum(N)=1 AND Cum(I+X)=1));
Tr:=If(N+X>1 AND (Alert(Tr,2) OR (Nd+Xd<1 AND
B<>2 AND Z>1 AND (Max(B,Z)>4 OR B<>Z))),1,Tr);
Nd:=En;
En:=Tr+Alert(Tr=0,2)=2 OR I;
Ex:=Tr=0 AND Alert(Tr,2);
M:=If(I AND N=0,C,M);
Lb:=Alert(Tr,2) AND LastValue(Cum(1))=Cum(1);
A:=ValueWhen(1,En,M);
F:=ValueWhen(1,En,If(F<1,Cp*F,If(F>1, (A*F)+Cn,Cp)));
En:=Tr+(Alert(Tr=0,2)+I>0)=2;
Z:=Nd;
N:=If(Ex+Lb>0,If(Cp=0,Y-A-Cn-Cx,(F-Cn)*(Y/A)-F-If(Ex,Cx,0)),0);
B:=If(Alert(Tr,2),1+BarsSince(En OR I),0);
Xs:=If(Alert(Tr,2),If(Cp=0,Y-A,(F-Cn)*(Y/A)-F-If(Ex,Cx,0)),0);
Nd:=LowestSince(1,I,Xs);
Ns:=HighestSince(1,I,Xs);
X:=Cum((Ex+Lb>0 AND N>0)*B);
Xd:=Cum((Ex+Lb>0 AND N<=0)*B);
M:=PREC(Cum(N)+Cp+(Tr AND Lb=0) * If(Cp=0,Y-A-Cn,(F-Cn)*(Y/A)-F),2); {M;}
{ options
0 total $ equity
1 total % equity
2 $ equity/trade
3 % equity/trade
4 winning trade $
5 losing trade $
6 winning trade #
7 losing trade #
8 trade in progress
9 bars/trade
10 bars/all trades
11 MFE
12 MAE}
If(Z=0,M,
If(Z=1,100*(M-Cp)/Cp,
If(Z=2,N+M-Cp-Cum(N),
If(Z=3,100*(N+M-Cp-Cum(N))/Cp,
If(Z=4,Cum((N>0)*N),
If(Z=5,Cum((N<0)*N),
If(Z=6,Cum(N>0),
If(Z=7,Cum(Ex+Lb>0 AND N<=0),
If(Z=8,Tr,
If(Z=9,BarsSince(I OR Alert(Tr,2)=0)*Alert(Tr,2),
If(Z=10,Cum(Alert(Tr,2)),
If(Z=11,Ns,Nd))))))))))));




 
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/