resolve all Critical Guard Attacks on Errante ...

This commit is contained in:
2024-01-31 17:09:02 +03:30
parent 8377d42754
commit 7a61225897
6 changed files with 309 additions and 0 deletions
@@ -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 &&
+62
View File
@@ -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 &&