resolve all Critical Guard Attacks on Errante ...
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
//+------------------------------------------------------------------+
|
||||
//| CandleTimeStationary|
|
||||
//| |
|
||||
//| |
|
||||
//+------------------------------------------------------------------+
|
||||
|
||||
#property indicator_chart_window
|
||||
#property strict
|
||||
|
||||
//---- input parameters
|
||||
input color Clock_Color = clrDimGray;
|
||||
input ENUM_BASE_CORNER Corner = CORNER_RIGHT_UPPER;
|
||||
|
||||
string objname="Spread&Bar";
|
||||
double s1[];
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
//| expert initialization function |
|
||||
//+------------------------------------------------------------------+
|
||||
int OnInit()
|
||||
{
|
||||
ObjectCreate(0, objname, OBJ_LABEL,0, 0, 0);
|
||||
ObjectSetInteger(0, objname, OBJPROP_CORNER, Corner);
|
||||
ObjectSetInteger(0, objname, OBJPROP_XDISTANCE, 10);
|
||||
ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, 2);
|
||||
ENUM_ANCHOR_POINT Anchor = ANCHOR_LEFT_UPPER;
|
||||
switch (Corner)
|
||||
{
|
||||
case CORNER_LEFT_UPPER: Anchor=ANCHOR_LEFT_UPPER; break;
|
||||
case CORNER_RIGHT_UPPER: Anchor=ANCHOR_RIGHT_UPPER; break;
|
||||
case CORNER_LEFT_LOWER: Anchor=ANCHOR_LEFT_LOWER; break;
|
||||
case CORNER_RIGHT_LOWER: Anchor=ANCHOR_RIGHT_LOWER; break;
|
||||
}
|
||||
ObjectSetInteger(0, objname, OBJPROP_ANCHOR, Anchor);
|
||||
|
||||
return(INIT_SUCCEEDED);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
void OnDeinit(const int reason) { ObjectDelete(0, objname); }
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spreads[])
|
||||
{
|
||||
ArraySetAsSeries(time, true);
|
||||
int m=int(time[0]+PeriodSeconds()-TimeCurrent());
|
||||
int s=m%60;
|
||||
m=(m-s)/60;
|
||||
long spread=SymbolInfoInteger(Symbol(), SYMBOL_SPREAD);
|
||||
|
||||
string _sp="",_m="",_s="";
|
||||
if (spread<10) _sp="..";
|
||||
else if (spread<100) _sp=".";
|
||||
if (m<10) _m="0";
|
||||
if (s<10) _s="0";
|
||||
|
||||
ObjectSetString(0, objname, OBJPROP_TEXT, "Spread: " +IntegerToString(spread)+_sp+" Next Bar in "+_m+IntegerToString(m)+":"+_s+IntegerToString(s));
|
||||
ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 10);
|
||||
ObjectSetInteger(0, objname, OBJPROP_COLOR, Clock_Color);
|
||||
ObjectSetString(0, objname, OBJPROP_FONT, "Courier");
|
||||
|
||||
return(rates_total);
|
||||
}
|
||||
@@ -1678,6 +1678,14 @@ bool XAU5XTDHasLongSignal()
|
||||
mConditions.isXCHMALCPeak &&
|
||||
mConditions.isXAMANeutural)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCVale &&
|
||||
mConditions.isXCHMALCPeak &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXTSCurrentOverFarest &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
)
|
||||
//
|
||||
)
|
||||
@@ -2125,6 +2133,14 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMStartBullish &&
|
||||
mConditions.isXAMAStartBullish &&
|
||||
mConditions.isXTDSignalCrossedOverBear &&
|
||||
mConditions.isXLHPriceCrossedOverSignal &&
|
||||
mConditions.isXTSCurrentCrossedOverNearest)
|
||||
//
|
||||
||
|
||||
//
|
||||
((mConditions.isXTSCurrentUnderNearest ||
|
||||
mConditions.isXTSCurrentCrossedUnderNearest) &&
|
||||
(mConditions.isXTSCurrentUnderMediest ||
|
||||
@@ -2186,6 +2202,14 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXLHLLDecreased &&
|
||||
mConditions.isXCHMASCCrossedOverMax &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXTMNeutural &&
|
||||
mConditions.isXAMANeutural &&
|
||||
@@ -2212,6 +2236,13 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMNeutural &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXTDSignalCrossedOverBear &&
|
||||
mConditions.isXTSCurrentCrossedOverNearest)
|
||||
//
|
||||
||
|
||||
//
|
||||
((mConditions.isXTMNeutural &&
|
||||
mConditions.isXAMANeutural) &&
|
||||
(
|
||||
@@ -2549,6 +2580,16 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMBullish &&
|
||||
mConditions.isXAMABullish &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXCHMALCTrendsDown &&
|
||||
mConditions.isXTSCurrentOverFarest &&
|
||||
mConditions.isXTSCurrentOverMediest &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXCHLHSCMCHHSame &&
|
||||
mConditions.isXCHMASCCrossedOverMax &&
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
//+------------------------------------------------------------------+
|
||||
//| CandleTimeStationary|
|
||||
//| |
|
||||
//| |
|
||||
//+------------------------------------------------------------------+
|
||||
|
||||
#property indicator_chart_window
|
||||
#property strict
|
||||
|
||||
//---- input parameters
|
||||
input color Clock_Color = clrDimGray;
|
||||
input ENUM_BASE_CORNER Corner = CORNER_RIGHT_UPPER;
|
||||
|
||||
string objname="Spread&Bar";
|
||||
double s1[];
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
//| expert initialization function |
|
||||
//+------------------------------------------------------------------+
|
||||
int OnInit()
|
||||
{
|
||||
ObjectCreate(0, objname, OBJ_LABEL,0, 0, 0);
|
||||
ObjectSetInteger(0, objname, OBJPROP_CORNER, Corner);
|
||||
ObjectSetInteger(0, objname, OBJPROP_XDISTANCE, 10);
|
||||
ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, 2);
|
||||
ENUM_ANCHOR_POINT Anchor = ANCHOR_LEFT_UPPER;
|
||||
switch (Corner)
|
||||
{
|
||||
case CORNER_LEFT_UPPER: Anchor=ANCHOR_LEFT_UPPER; break;
|
||||
case CORNER_RIGHT_UPPER: Anchor=ANCHOR_RIGHT_UPPER; break;
|
||||
case CORNER_LEFT_LOWER: Anchor=ANCHOR_LEFT_LOWER; break;
|
||||
case CORNER_RIGHT_LOWER: Anchor=ANCHOR_RIGHT_LOWER; break;
|
||||
}
|
||||
ObjectSetInteger(0, objname, OBJPROP_ANCHOR, Anchor);
|
||||
|
||||
return(INIT_SUCCEEDED);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
void OnDeinit(const int reason) { ObjectDelete(0, objname); }
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spreads[])
|
||||
{
|
||||
ArraySetAsSeries(time, true);
|
||||
int m=int(time[0]+PeriodSeconds()-TimeCurrent());
|
||||
int s=m%60;
|
||||
m=(m-s)/60;
|
||||
long spread=SymbolInfoInteger(Symbol(), SYMBOL_SPREAD);
|
||||
|
||||
string _sp="",_m="",_s="";
|
||||
if (spread<10) _sp="..";
|
||||
else if (spread<100) _sp=".";
|
||||
if (m<10) _m="0";
|
||||
if (s<10) _s="0";
|
||||
|
||||
ObjectSetString(0, objname, OBJPROP_TEXT, "Spread: " +IntegerToString(spread)+_sp+" Next Bar in "+_m+IntegerToString(m)+":"+_s+IntegerToString(s));
|
||||
ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 10);
|
||||
ObjectSetInteger(0, objname, OBJPROP_COLOR, Clock_Color);
|
||||
ObjectSetString(0, objname, OBJPROP_FONT, "Courier");
|
||||
|
||||
return(rates_total);
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
//+------------------------------------------------------------------+
|
||||
//| CandleTimeStationary|
|
||||
//| |
|
||||
//| |
|
||||
//+------------------------------------------------------------------+
|
||||
|
||||
#property indicator_chart_window
|
||||
#property strict
|
||||
|
||||
//---- input parameters
|
||||
input color Clock_Color = clrDimGray;
|
||||
input ENUM_BASE_CORNER Corner = CORNER_RIGHT_UPPER;
|
||||
|
||||
string objname="Spread&Bar";
|
||||
double s1[];
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
//| expert initialization function |
|
||||
//+------------------------------------------------------------------+
|
||||
int OnInit()
|
||||
{
|
||||
ObjectCreate(0, objname, OBJ_LABEL,0, 0, 0);
|
||||
ObjectSetInteger(0, objname, OBJPROP_CORNER, Corner);
|
||||
ObjectSetInteger(0, objname, OBJPROP_XDISTANCE, 10);
|
||||
ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, 2);
|
||||
ENUM_ANCHOR_POINT Anchor = ANCHOR_LEFT_UPPER;
|
||||
switch (Corner)
|
||||
{
|
||||
case CORNER_LEFT_UPPER: Anchor=ANCHOR_LEFT_UPPER; break;
|
||||
case CORNER_RIGHT_UPPER: Anchor=ANCHOR_RIGHT_UPPER; break;
|
||||
case CORNER_LEFT_LOWER: Anchor=ANCHOR_LEFT_LOWER; break;
|
||||
case CORNER_RIGHT_LOWER: Anchor=ANCHOR_RIGHT_LOWER; break;
|
||||
}
|
||||
ObjectSetInteger(0, objname, OBJPROP_ANCHOR, Anchor);
|
||||
|
||||
return(INIT_SUCCEEDED);
|
||||
}
|
||||
//+------------------------------------------------------------------+
|
||||
void OnDeinit(const int reason) { ObjectDelete(0, objname); }
|
||||
|
||||
//+------------------------------------------------------------------+
|
||||
int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spreads[])
|
||||
{
|
||||
ArraySetAsSeries(time, true);
|
||||
int m=int(time[0]+PeriodSeconds()-TimeCurrent());
|
||||
int s=m%60;
|
||||
m=(m-s)/60;
|
||||
long spread=SymbolInfoInteger(Symbol(), SYMBOL_SPREAD);
|
||||
|
||||
string _sp="",_m="",_s="";
|
||||
if (spread<10) _sp="..";
|
||||
else if (spread<100) _sp=".";
|
||||
if (m<10) _m="0";
|
||||
if (s<10) _s="0";
|
||||
|
||||
ObjectSetString(0, objname, OBJPROP_TEXT, "Spread: " +IntegerToString(spread)+_sp+" Next Bar in "+_m+IntegerToString(m)+":"+_s+IntegerToString(s));
|
||||
ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 10);
|
||||
ObjectSetInteger(0, objname, OBJPROP_COLOR, Clock_Color);
|
||||
ObjectSetString(0, objname, OBJPROP_FONT, "Courier");
|
||||
|
||||
return(rates_total);
|
||||
}
|
||||
@@ -1678,6 +1678,14 @@ bool XAU5XTDHasLongSignal()
|
||||
mConditions.isXCHMALCPeak &&
|
||||
mConditions.isXAMANeutural)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCVale &&
|
||||
mConditions.isXCHMALCPeak &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXTSCurrentOverFarest &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
)
|
||||
//
|
||||
)
|
||||
@@ -2125,6 +2133,14 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMStartBullish &&
|
||||
mConditions.isXAMAStartBullish &&
|
||||
mConditions.isXTDSignalCrossedOverBear &&
|
||||
mConditions.isXLHPriceCrossedOverSignal &&
|
||||
mConditions.isXTSCurrentCrossedOverNearest)
|
||||
//
|
||||
||
|
||||
//
|
||||
((mConditions.isXTSCurrentUnderNearest ||
|
||||
mConditions.isXTSCurrentCrossedUnderNearest) &&
|
||||
(mConditions.isXTSCurrentUnderMediest ||
|
||||
@@ -2186,6 +2202,14 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXLHLLDecreased &&
|
||||
mConditions.isXCHMASCCrossedOverMax &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXTMNeutural &&
|
||||
mConditions.isXAMANeutural &&
|
||||
@@ -2212,6 +2236,13 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMNeutural &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXTDSignalCrossedOverBear &&
|
||||
mConditions.isXTSCurrentCrossedOverNearest)
|
||||
//
|
||||
||
|
||||
//
|
||||
((mConditions.isXTMNeutural &&
|
||||
mConditions.isXAMANeutural) &&
|
||||
(
|
||||
@@ -2549,6 +2580,16 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMBullish &&
|
||||
mConditions.isXAMABullish &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXCHMALCTrendsDown &&
|
||||
mConditions.isXTSCurrentOverFarest &&
|
||||
mConditions.isXTSCurrentOverMediest &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXCHLHSCMCHHSame &&
|
||||
mConditions.isXCHMASCCrossedOverMax &&
|
||||
|
||||
@@ -1678,6 +1678,14 @@ bool XAU5XTDHasLongSignal()
|
||||
mConditions.isXCHMALCPeak &&
|
||||
mConditions.isXAMANeutural)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCVale &&
|
||||
mConditions.isXCHMALCPeak &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXTSCurrentOverFarest &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
)
|
||||
//
|
||||
)
|
||||
@@ -2125,6 +2133,14 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMStartBullish &&
|
||||
mConditions.isXAMAStartBullish &&
|
||||
mConditions.isXTDSignalCrossedOverBear &&
|
||||
mConditions.isXLHPriceCrossedOverSignal &&
|
||||
mConditions.isXTSCurrentCrossedOverNearest)
|
||||
//
|
||||
||
|
||||
//
|
||||
((mConditions.isXTSCurrentUnderNearest ||
|
||||
mConditions.isXTSCurrentCrossedUnderNearest) &&
|
||||
(mConditions.isXTSCurrentUnderMediest ||
|
||||
@@ -2186,6 +2202,14 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXLHLLDecreased &&
|
||||
mConditions.isXCHMASCCrossedOverMax &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXTMNeutural &&
|
||||
mConditions.isXAMANeutural &&
|
||||
@@ -2212,6 +2236,13 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMNeutural &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXTDSignalCrossedOverBear &&
|
||||
mConditions.isXTSCurrentCrossedOverNearest)
|
||||
//
|
||||
||
|
||||
//
|
||||
((mConditions.isXTMNeutural &&
|
||||
mConditions.isXAMANeutural) &&
|
||||
(
|
||||
@@ -2549,6 +2580,16 @@ bool XAU5XTDHasLongSignal()
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXTMBullish &&
|
||||
mConditions.isXAMABullish &&
|
||||
mConditions.isXTSCurrentMax &&
|
||||
mConditions.isXCHMALCTrendsDown &&
|
||||
mConditions.isXTSCurrentOverFarest &&
|
||||
mConditions.isXTSCurrentOverMediest &&
|
||||
mConditions.isXTDSignalCrossedOverBear)
|
||||
//
|
||||
||
|
||||
//
|
||||
(mConditions.isXCHMAMCPeak &&
|
||||
mConditions.isXCHLHSCMCHHSame &&
|
||||
mConditions.isXCHMASCCrossedOverMax &&
|
||||
|
||||
Reference in New Issue
Block a user