Cut and paste 'Entry Binary' and 'Exit Binary' into the Indicator Builder before attempting to install any Trade Equity indicators. ---8<--------------------------- {Entry Binary} F1:=ValueWhen(1,Cum(1)=5 OR (HRef(L,-2) AND Ref(L,-1)>Ref(L,-2) AND Ref(L,-3)>Ref(L,-2) AND Ref(L,-4)>Ref(L,-2)),Ref(L,-2)); Cross(F2,L); ---8<--------------------------- =============== Trade Equity LC =============== This is one of a series of 'Trade Equity' indicators used to create trading system equity curves without running the System Tester. 'Trade Equity LC' assumes compounding position sizes (reinvested gains) and long only trades. Other indicators in the family are available for equal (fixed) positions and/or short trades. Four explorations are also available for each TE indicator. The explorations create trading system reports for modest portfolios through to entire databases. Several system statistics in addition to the equity curve can be plotted directly onto the chart of any security. Disabling the display option improves the execution speed of TE explorations. Cut and paste the 'Entry Binary' and 'Exit Binary' indicators before attempting to install 'Trade Equity LC'. ---8<--------------------------- {Trade Equity LC} {V5.0} {© 2004 Roy Larsen, rlarsen@man.quik.co.nz} B:=Input("Buy 1=O 2=C 3=H 4=L 5=Stop", 1,5,2); Z:=Input("Sell 1=O 2=C 3=H 4=L 5=Stop",1,5,2); Nd:=Input("Buy Delay", 0,3,0); Xd:=Input("Sell Delay",0,3,0); Cn:=Input("Buy / Sell Costs",0,9999,3030); En:=Input("Display Options 0-12",0,12,0); Cp:=5000; {* trade capital} N:= Fml("Entry Binary"); {Buy} Ns:=0; X:= Fml("Exit Binary"); {Sell} Xs:=0; {* end user area *} 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)+(Cum(N>-1)=1); X:=X AND (Z<5)*(Alert(X=0,2)+(Cum(N>-1)=1)); N:=If(Nd=0,N,Alert(N,Nd+1)*(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)*(Alert(X,Xd)=0)); X:=X+Xs>0; Y:=If((Z<5)*(X=0),C,Y);Y:=If((Xs>0)*N*X,Xs,Y); I:=Cum((N+X)>-1)=1; N:=(I>-1)*N; K:=If(I,Y,ValueWhen(2,1,Y)); Y:=If((N+X=0)*Alert(N*X,2),K,Y); Tr:=BarsSince(I+N)<(BarsSince(I+X)+(Cum(N)=1 AND Cum(I+X)=1)); Tr:=If((N+X>1)*(Alert(Tr,2) OR ((Nd+Xd<1)*(B<>2)*(Z>1)*(Max(B,Z)>4 OR B<>Z))),1,Tr); Nd:=En; En:=Tr+Alert(Tr=0,2)=2 OR I; Ex:=(Tr=0)*Alert(Tr,2); M:=If(I*(N=0),C,M); Lb:=Alert(Tr,2)*(LastValue(Cum(1))=Cum(1)); A:=ValueWhen(1,En,If(M=0,1,M)); En:=Tr+(Alert(Tr=0,2)+I>0)=2; Z:=Nd; N:=Cum(I*Cp-En*Cn-Ex*Cx); Ns:=Cum(If(Alert(Tr,2)*If(B=5,1,En=0), (PREV+If(B+En=6,N,If(I,N+Cn,ValueWhen(2,1,N))))* If((B+En=6)+((B<5)*(En=0)*Alert(En,2)),(Y-A)/A,(Y-K)/K),0)); M:=N+Ns; X:=A*(M+(Ex*Cx))/Y; Xs:=If((Ex+Lb)*(M>X+Cx),M-X-Cn,0); Xd:=If((Ex*Lb)*(M<=X+Cx),M-X-Cn,0); Nd:=Alert(Tr,2)*(M-If(I,M,ValueWhen(2,1,ValueWhen(1,I+(Tr=0),M)))); { Display 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,Nd, If(Z=3,100*Nd/ValueWhen(1,I+(Alert(Tr,2)=0),M), If(Z=4,Cum(Xs), If(Z=5,Cum(Xd), If(Z=6,Cum(Xs>0), If(Z=7,Cum((Ex+Lb>0)*(Xs=0)), If(Z=8,Tr, If(Z=9,BarsSince(I+(Alert(Tr,2)=0))*Alert(Tr,2), If(Z=10,Cum(Alert(Tr,2)), If(Z=11,HighestSince(1,I,Nd),LowestSince(1,I,Nd))))))))))))); ---8<--------------------------- http://www.metastocktips.co.nz/