//SetOption("RequireDeclarations", True );
procedure kStaticVarSet( SName, SValue ) { StaticVarSet("158"+Sname+GetChartID()+Name()+Interval(), Svalue); }
function kStaticVarGet( SName ) { return StaticVarGet("158"+Sname+GetChartID()+Name()+Interval()); }
procedure DrawButton( Text, x1, y1, x2, y2, BackColor, TextColor )
{
GfxSetOverlayMode( 0 );
GfxSelectFont( "Tahoma", 12, 800 );
GfxSelectPen( colorBlack );
GfxSetBkMode( 1 );
GfxSelectSolidBrush( BackColor );
GfxSetBkColor( BackColor );
GfxSetTextColor( TextColor );
GfxRectangle( x1, y1, x2, y2 );
GfxDrawText( Text, x1, y1, x2, y2, 32 | 1 | 4 );
}
ButtonX0 = 80;//offset from right
ButtonWidth = 80;
ButtonHeight = 40;
ButtonX1=Status("pxwidth")-ButtonX0-ButtonWidth;
ButtonX2=Status("pxwidth")-ButtonX0;
armButtonLabel = "ERROR";
armButtonY1 = 20;
armButtonBackColor = colorWhite;
armButtonTextColor = colorBlack;
longButtonLabel = "LONG";
longButtonY1 = 80;
longButtonBackColor = colorWhite;
longButtonTextColor = colorLightGrey;
flatButtonLabel = "FLAT";
flatButtonY1 = 120;
flatButtonBackColor = colorYellow;
flatButtonTextColor = colorBlack;
shortButtonLabel = "SHORT";
shortButtonY1 = 160;
shortButtonBackColor = colorWhite;
shortButtonTextColor = colorLightGrey;
LButtonTrigger = GetCursorMouseButtons() == 9;
MousePx = Nz( GetCursorXPosition( 1 ) );
MousePy = Nz( GetCursorYPosition( 1 ) );
CursorInArmButton = MousePx > ButtonX1 AND MousePx < ButtonX2 AND MousePy > armButtonY1 AND MousePy < (armButtonY1+ButtonWidth);
CursorInLongButton = MousePx > ButtonX1 AND MousePx < ButtonX2 AND MousePy > longButtonY1 AND MousePy < (longButtonY1+ButtonWidth);
CursorInFlatButton = MousePx > ButtonX1 AND MousePx < ButtonX2 AND MousePy > flatButtonY1 AND MousePy < (flatButtonY1+ButtonWidth);
CursorInShortButton = MousePx > ButtonX1 AND MousePx < ButtonX2 AND MousePy > shortButtonY1 AND MousePy < (shortButtonY1+ButtonWidth);
if ( LButtonTrigger )
{
switch(Nz(kStaticVarGet("zState")))
{
case 1: // FLAT
if ( CursorInArmButton ) kStaticVarSet("zState",0);
if ( CursorInLongButton ) kStaticVarSet("zState",2);
if ( CursorInShortButton ) kStaticVarSet("zState",3);
break;
case 2: // LONG
if ( CursorInArmButton ) kStaticVarSet("zState",0);
if ( CursorInFlatButton ) kStaticVarSet("zState",1);
if ( CursorInShortButton ) kStaticVarSet("zState",3);
break;
case 3: // SHORT
if ( CursorInArmButton ) kStaticVarSet("zState",0);
if ( CursorInLongButton ) kStaticVarSet("zState",2);
if ( CursorInFlatButton ) kStaticVarSet("zState",1);
break;
default: // DISARMED
if ( CursorInArmButton ) kStaticVarSet("zState",1);
}
//Say("Apoon maalamaal ray, koi na fikar apni");
}
SetChartBkColor(colorLightGrey);
switch(Nz(kStaticVarGet("zState")))
{
case 1: // FLAT
armButtonLabel = "DISARM";
armButtonBackColor = colorRed;
longButtonBackColor = colorWhite;
longButtonTextColor = colorLightGrey;
flatButtonBackColor = colorYellow;
flatButtonTextColor = colorBlack;
shortButtonBackColor = colorWhite;
shortButtonTextColor = colorLightGrey;
SetChartBkGradientFill(colorBlack,colorBlack);
break;
case 2: // LONG
armButtonLabel = "DISARM";
armButtonBackColor = colorRed;
longButtonBackColor = colorYellow;
longButtonTextColor = colorBlack;
flatButtonBackColor = colorWhite;
flatButtonTextColor = colorLightGrey;
shortButtonBackColor = colorWhite;
shortButtonTextColor = colorLightGrey;
SetChartBkGradientFill(colorDarkBlue,colorDarkGreen);
break;
case 3: // SHORT
armButtonLabel = "DISARM";
armButtonBackColor = colorRed;
longButtonBackColor = colorWhite;
longButtonTextColor = colorLightGrey;
flatButtonBackColor = colorWhite;
flatButtonTextColor = colorLightGrey;
shortButtonBackColor = colorYellow;
shortButtonTextColor = colorBlack;
SetChartBkGradientFill(colorDarkRed,colorDarkYellow);
break;
default: //DISARMED
armButtonLabel = "ARM";
armButtonBackColor = colorWhite;
armButtonTextColor = colorLightGrey;
SetChartBkGradientFill(colorWhite,colorWhite);
}
DrawButton( armButtonLabel, ButtonX1, armButtonY1, ButtonX2, armButtonY1+ButtonHeight, armButtonBackColor, armButtonTextColor );
if (Nz(kStaticVarGet("zState"))) {
DrawButton( longButtonLabel, ButtonX1, longButtonY1, ButtonX2, longButtonY1+ButtonHeight, longButtonBackColor, longButtonTextColor );
DrawButton( flatButtonLabel, ButtonX1, flatButtonY1, ButtonX2, flatButtonY1+ButtonHeight, flatButtonBackColor, flatButtonTextColor );
DrawButton( shortButtonLabel, ButtonX1, shortButtonY1, ButtonX2, shortButtonY1+ButtonHeight, shortButtonBackColor, shortButtonTextColor );
}
_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 ) ) ));
zColor = IIf(C>O,colorGreen,IIf(C<O,colorOrange,colorLightGrey));
SetBarFillColor(zColor);
Plot( C, "Close", zColor, styleNoTitle | ParamStyle("Style") | GetPriceStyle() | styleNoLabel);
_SECTION_END();