Mình có thể lấy thí dụ như chỉ báo này công thức cực kỳ phức tạp nhưng mình dùng thấy cũng chưa chắc đã hiệu quả hơn Bollinger Bands
Nc:=Input("Entry Commission Points",0,99,20);
Xc:=Input("Exit Commission Points",0,99,20);
Pt:=Input("Profit Target Points",1,500,150);
Ls:=Input("Maximum Loss Points",1,500,100);
Np:=Input("Enter 1=Open 2=Close",1,2,2);
Xo:=Input("Exit 1=Open 2=Close 3=Stop ",1,3,2);
Equity:=1000; {Trade capital}
N:=Cross(Mov(C,9,E),Mov(C,13,E));{Entry formula}
X:=Cross(Mov(C,13,E),Mov(C,9,E));{Exit formula}
I:=Cum(N<>-1 AND X<>-1)=1; {Formulas valid}
Np:=If(Np=1,O,If(Np=2,C,N)); {Entry price}
Xp:=If(Xo=1,O,C); {Exit price}
Pf:=(Equity+Pt+Xc)/(Equity-Nc); {Profit factor}
Lf:=(Equity-Ls+Xc)/(Equity-Nc); {Loss factor}
Ea:=If(BarsSince(I OR N>0)>=BarsSince(I OR X>0
{bars since entry >= bars since normal exit}
OR
If(Xo<3,Xp,H)>=Pf*(ValueWhen(1,I OR (N>0 AND Alert(If(BarsSince(I
OR N>0)>=BarsSince(I OR X>0),0,1)=0,2)), Np))
{bars since entry >= bars since profit exit}
OR
If(Xo<3,Xp,L)<=Lf*(ValueWhen(1,I OR (N>0 AND Alert(If(BarsSince(I
OR N>0)>=BarsSince(I OR X>0),0,1)=0,2)), Np))),
{bars since entry >= bars since stop loss exit
then flag value is} 0,
{else flag value is}
ValueWhen(1,I OR (N>0 AND Alert(If(BarsSince(I OR N>0)>=
BarsSince(I OR X>0),0,1)=0,2)),Np));
Xb:=Ea=0 AND Alert(Ea>0,2); {Exit bar}
Ev:=ValueWhen(1,I OR Ea>0,Ea); {Entry value}
Sp:=If(Xb,If(Xo<3 AND Xp>=Ev*Pf,Xp,
If(O>=Ev*Pf,O,If(H>=Ev*Pf,Ev*Pf,0))),0);
{Profit sell price}
Sl:=If(Xb,If(Xo<3 AND Xp<=Ev*Lf,Xp,
If(O<=Ev*Lf,O,If(L<=Ev*Lf,Ev*Lf,0))),0);
{Stop loss price}
Nx:=If(Xb AND Sp=0 AND Sl=0,Xp,0);
{Normal exit price}
Ea; Ea*Pf; Ea*Lf; Sp; Sl; Nx;
*** Substitute these variables for percent stops}
{Pt:=Input("Profit Target %",1,99,15)/100;}
{Ls:=Input( "Maximum Loss %",1,99,10)/100;}
{Pf:=(Equity*(1+Pt)+Xc)/(Equity-Nc);}
{Lf:=(Equity*(1-Ls)+Xc)/(Equity-Nc);}
Bookmarks