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();