Hệ thống sóng Elliott trong Amibrocker
Đây là mô phỏng theo sóng Elliott được phát triển bởi platfin.vn dành cho Amibrocker
SECTION_BEGIN("Price");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();
_SECTION_BEGIN("ZIG-ZAG");
P = ParamField( "ZIG Price field" );
change = Param("% change",1.0,0.25,25,0.25);
Color1 =(ParamColor("Slaller Elliott Wave1",colorBlue));
Plot( zz=DEMA(Zig(P, change),1), _DEFAULT_NAME(), Color1, styleLine+styleThick) ;
Color2 =(ParamColor("Slaller Elliott Wave2",ColorRGB(195, 195, 0 )));
Plot( zz=DEMA(Zig(P, change),2), _DEFAULT_NAME(), Color2, styleLine+styleThick) ;
Buy1 = Cross(DEMA(Zig(P, change), 1), MA(Zig(P, change), 2)) OR
DEMA(Zig(P, change), 1) > MA(Zig(P, change), 2);
Sell1 = Cross(DEMA(Zig(P, change), 2), MA(Zig(P, change), 1)) OR
DEMA(Zig(P, change), 2) > MA(Zig(P, change), 1);
BuyPrice1 =ValueWhen(Buy1, (H+L)/2);
SellPrice1=ValueWhen(Sell1, (H+L)/2);
Buy1 = ExRem(Buy1,Sell1);
Sell1 = ExRem(Sell1,Buy1);
//PlotShapes( shapeUpArrow * Buy1, colorWhite, 0, Low );
//PlotShapes( shapeDownArrow * Sell1, colorBlack, 0, High );
_SECTION_END();
_SECTION_BEGIN("ZIG-ZAG1");
P1 = ParamField( "ZIG Price field" );
change1 = Param("% change1",4.5,0.25,25,0.25);
Color3 =(ParamColor("Larger Elliott Wave1",colorCustom11));
Plot( zz=TEMA(Zig(P1, change1),1), _DEFAULT_NAME(), Color3, styleLine+styleThick) ;
Color4 =(ParamColor("Larger Elliott Wave2",colorBlue));
Plot( zz=TEMA(Zig(P1, change1),2), _DEFAULT_NAME(), Color4, styleLine+styleDots+styleThick) ;
Buy = Cross(TEMA(Zig(P1, change1),1), TEMA(Zig(P1, change1),2)) ;
Sell = Cross(TEMA(Zig(P1, change1),2), TEMA(Zig(P1, change1),1)) ;
//PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0,L, Offset=-25);
//PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-35);
//PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-30);
//PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorDarkRed, 0,H, Offset= 25);
//PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0,H, Offset= 35); PlotShapes(IIf(Sell, shapeDownArrow,shapeNone),colorWhite, 0,H, Offset=-30);
BuyPrice =ValueWhen(Buy, (L+L+L+H)/4);SellPrice=ValueWhen(Sell,(L+H+H+H)/4);
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
if(SelectedValue(Buy))
{
StaticVarSet( "tmp", 1 );
PlaySound("C:\\Program Files\\AmiBroker\\sound\\buy.wav");
Say("Buy Buy buy");
}
if(SelectedValue(Sell))
{
StaticVarSet( "tmp", 0 );
PlaySound("C:\\Program Files\\AmiBroker\\sound\\sell.wav");
Say("sell sell sell");
}
if(StaticVarGet("tmp")==1)
{
}
_SECTION_END();
_SECTION_BEGIN("AUTO SEC Version 1.2");
Heading="AUTO SEC Version 1.2";
SECUpColor=ParamColor("SEC-UpColor",colorGreen);
SECDnColor=ParamColor("SEC-DownColor",colorRed);
SECLastColor=ParamColor("SEC-LastColor",10);
BckGndColor=ParamColor("BackGroundColor",colorBlack);
ZZSwitch=Param("ZZSwitch",0,0,1,1);
Sens=Param("Sens",4.75, 0.5, 15, 0.25);
SECSwitch=Param("SECSwitch",1,0,1,1);
BarPK=BarsSince(Zig(C,Sens)==Peak(C,Sens));
BarTGH= BarsSince(Zig(C,Sens)==Trough(C,Sens));
Turnpoint=Min(BarPK,BarTGH);
x = Cum(1);
lastx = ValueWhen(Turnpoint==0,( x ));
Daysback = ValueWhen(Turnpoint==0,(Max(PeakBars(C,Sens,1),TroughBars(C,Sens,1))))+1;
aa =ValueWhen(Turnpoint==0,LinRegIntercept( Close, Daysback) );
bb =ValueWhen(Turnpoint==0,LinRegSlope( Close, Daysback));
y = Aa + bb * ( x - (Lastx - DaysBack+1) );
e= ValueWhen(Turnpoint==0,StdErr(C,Daysback));
eU= y + 2*e;
eL= y - 2*e;
ColorSEC=IIf(Cross(bb,0) OR Cross(0,bb),colorBlack,IIf(bb<0,colorRose,SECUpColor));
Plot(IIf( x >= (lastx - Daysback), IIf( Ref(C,-1) <eU AND Ref(C,-1) >eL,y,Null) , -1e10 ) , "LinReg", colorSEC,1 );
Plot(IIf( x >= (lastx - Daysback), IIf( Ref(C,-1) <eU AND Ref(C,-1) >eL,eU,Null) , -1e10 ) ,"",ColorSEC,1);
Plot(IIf( x >= (lastx - Daysback), IIf( Ref(C,-1) <eU AND Ref(C,-1) >eL,eL,Null) , -1e10 ) ,"",ColorSEC,1);
PlotShapes(shapeUpArrow*Cross(C,eU),colorWhite,0,L,Offset=-40);
PlotShapes(shapeDownArrow*Cross(eL,C),colorWhite,0,H,Offset=-40);
PlotShapes(shapeDigit3*Cross(C,eU),colorWhite,0,L,Offset=-55);
PlotShapes(shapeDigit3*Cross(eL,C),colorWhite,0,H,Offset=55);
DaysbackL = LastValue(Min(PeakBars(C,Sens,1),TroughBars(C,Sens,1)));
Slope= ValueWhen(Turnpoint==0,bb,0);
Level= ValueWhen(Turnpoint==0,aa,0);
Err= ValueWhen(Turnpoint==0,e,0);
Mback= Level + slope*( Turnpoint) ;
Uback= MBack + 2*Err;
Lback= MBack - 2*Err;
ColorSEC2=IIf(Cross(bb,0) OR Cross(0,bb),colorBlack,IIf(bb<0,SECUpColor,colorRose));
Plot( IIf( (X>(LastValue(x)-DaysbackL) ),Null ,Uback) ,"",ColorSEC2);
Plot( IIf( (X>(LastValue(x)-DaysbackL) ),Null ,Mback) ,"",ColorSEC2);
Plot( IIf( (X>(LastValue(x)-DaysbackL) ),Null ,Lback) ,"",ColorSEC2);
Buy = Cross(C,eU) OR C > eU;
Sell = Cross(eL,C) OR C < eU;
BuyPrice =ValueWhen(Buy, (L+L+L+H)/4);
SellPrice=ValueWhen(Sell,(L+H+H+H)/4);
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);
if(SelectedValue(Buy))
{
StaticVarSet( "tmp", 1 );
PlaySound("C:\\Program Files\\AmiBroker\\sound\\buy.wav");
Say("Buy Buy buy");
}
if(SelectedValue(Sell))
{
StaticVarSet( "tmp", 0 );
PlaySound("C:\\Program Files\\AmiBroker\\sound\\sell.wav");
Say("sell sell sell");
}
if(StaticVarGet("tmp")==1)
{
}
else
{
}
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0,L, Offset=-25);
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-35);
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-30);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorDarkRed, 0,H, Offset= 25);
PlotShapes(IIf(Sell, shapeSquare, shapeNone),colorRed, 0,H, Offset= 35);
PlotShapes(IIf(Sell, shapeDownArrow,shapeNone),colorWhite, 0,H, Offset=-30);
if(Status("action") == actionExplore)
_SECTION_END();