last ...
This commit is contained in:
@@ -26,6 +26,693 @@
|
||||
|
||||
//
|
||||
// Definitions ...
|
||||
string XTLSHammerToken = "XHammer";
|
||||
string XTLSSupportToken = "XSupport";
|
||||
string XTLSSwingLowToken = "XSwingLow";
|
||||
string XTLSSwingHighToken = "XSwingHigh";
|
||||
string XTLSResistanceToken = "XResistance";
|
||||
string XTLSBullishFVGToken = "XBullishFVG";
|
||||
string XTLSBearishFVGToken = "XBearishFVG";
|
||||
string XTLSMorningStarToken = "XMorningStar";
|
||||
string XTLSEveningStarToken = "XEveningStar";
|
||||
string XTLSShootingStarToken = "XShootingStar";
|
||||
string XTLSBullishTrendToken = "XBullishTrend";
|
||||
string XTLSBearishTrendToken = "XBearishTrend";
|
||||
string XTLSBullishEngulfingToken = "XBullishEngulfing";
|
||||
string XTLSBearishEngulfingToken = "XBearishEngulfing";
|
||||
string XTLSBullishOrderBlockToken = "XBullishOrderBlock";
|
||||
string XTLSBearishOrderBlockToken = "XBearishOrderBlock";
|
||||
|
||||
//
|
||||
// Helper Tools ...
|
||||
|
||||
//
|
||||
bool IsSupportBreaked(
|
||||
XOHCL &bar, // Support Bar
|
||||
bool _verifyPressure = true, // Verify Candlestick Patterns for Prove Pressure
|
||||
bool checkShootingStar = true, // Check Shooting Star Pattern for Pressure Verifications
|
||||
bool checkEveningStar = true, // Check Evening Star Pattern for Pressure Verifications
|
||||
bool checkBearishEngulfingStar = true, // Check Bearish Engulfing Pattern for Pressure Verifications
|
||||
double _threshold = 0, // Upper and Lower threshold of Pivot
|
||||
double _breakVerificationPoint = 15, // Price Distance for Verify Pivot Break
|
||||
int _loopback = 3 // Verification Loopback
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
if (_breakVerificationPoint < 0)
|
||||
{
|
||||
_breakVerificationPoint = 15;
|
||||
}
|
||||
|
||||
//
|
||||
result = bar.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
double points = GetPoints(bar.symbol);
|
||||
|
||||
//
|
||||
double threshold = 0;
|
||||
if (_threshold > 0)
|
||||
{
|
||||
threshold = _threshold * points;
|
||||
}
|
||||
|
||||
//
|
||||
double price = GetBid(bar.symbol);
|
||||
|
||||
//
|
||||
// Check Price is Below of Support High ...
|
||||
result = price < bar.high + threshold;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Break Verification ...
|
||||
if (_breakVerificationPoint > 0)
|
||||
{
|
||||
//
|
||||
result = (bar.high + threshold) - price >= _breakVerificationPoint * points;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (_verifyPressure && _loopback > 0)
|
||||
{
|
||||
//
|
||||
// Verify Pressure by Candlestick Patterns ...
|
||||
// We need last 3 Candle ...
|
||||
|
||||
//
|
||||
for (int i = 0; i < _loopback; i++)
|
||||
{
|
||||
//
|
||||
XOHCL iBar;
|
||||
result = iBar.Init(
|
||||
bar.symbol,
|
||||
bar.period,
|
||||
i //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Shooting Star ...
|
||||
bool isShootingStar = !checkShootingStar
|
||||
? false
|
||||
: iBar.IsShootingStar();
|
||||
if (isShootingStar)
|
||||
{
|
||||
//
|
||||
DrawShootingStar(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Evening Star ...
|
||||
bool isEveningStar = !checkEveningStar
|
||||
? false
|
||||
: iBar.IsEveningStar();
|
||||
if (isEveningStar)
|
||||
{
|
||||
//
|
||||
DrawEveningStar(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// BearishEngulfing ...
|
||||
bool isBearishEngulfing = !checkBearishEngulfingStar
|
||||
? false
|
||||
: iBar.IsBearishEngulfing();
|
||||
if (isBearishEngulfing)
|
||||
{
|
||||
//
|
||||
DrawBearishEngulfing(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isShootingStar
|
||||
//
|
||||
||
|
||||
//
|
||||
isEveningStar
|
||||
//
|
||||
||
|
||||
//
|
||||
isBearishEngulfing
|
||||
//
|
||||
;
|
||||
if (result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool IsSupportRejected(
|
||||
XOHCL &bar, // Support Bar
|
||||
bool _verifyPressure = true, // Verify Candlestick Patterns for Prove Pressure
|
||||
bool checkHammer = true, // Check Hammer Pattern for Pressure Verifications
|
||||
bool checkMorningStar = true, // Check Morning Star Pattern for Pressure Verifications
|
||||
bool checkBullishEngulfing = true, // Check Bullish Engulfing Pattern for Pressure Verifications
|
||||
double _threshold = 0, // Upper and Lower threshold of Pivot
|
||||
double _breakVerificationPoint = 15, // Price Distance for Verify Pivot Break
|
||||
int _loopback = 3 // Verification Loopback
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
if (_breakVerificationPoint < 0)
|
||||
{
|
||||
_breakVerificationPoint = 15;
|
||||
}
|
||||
|
||||
//
|
||||
result = bar.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
double points = GetPoints(bar.symbol);
|
||||
|
||||
//
|
||||
double threshold = 0;
|
||||
if (_threshold > 0)
|
||||
{
|
||||
threshold = _threshold * points;
|
||||
}
|
||||
|
||||
//
|
||||
double price = GetBid(bar.symbol);
|
||||
|
||||
//
|
||||
XOHCL cBar;
|
||||
result = cBar.Init(
|
||||
bar.symbol,
|
||||
bar.period,
|
||||
0 //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
double ll2 = cBar.FindLowest(
|
||||
2,
|
||||
MODE_LOW //
|
||||
);
|
||||
|
||||
//
|
||||
// Check Price is Below of Support High ...
|
||||
result =
|
||||
//
|
||||
price > bar.high + threshold &&
|
||||
(
|
||||
//
|
||||
ll2 < bar.high
|
||||
//
|
||||
||
|
||||
//
|
||||
ll2 < bar.high - threshold
|
||||
//
|
||||
||
|
||||
//
|
||||
(threshold > 0 && MathAbs(ll2 - price) > 0 && MathAbs(ll2 - price) <= threshold)
|
||||
//
|
||||
)
|
||||
//
|
||||
;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Break Verification ...
|
||||
if (_breakVerificationPoint > 0)
|
||||
{
|
||||
//
|
||||
result = MathAbs((bar.high + threshold) - price) >= _breakVerificationPoint * points;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (_verifyPressure && _loopback > 0)
|
||||
{
|
||||
//
|
||||
// Verify Pressure by Candlestick Patterns ...
|
||||
// We need last 3 Candle ...
|
||||
|
||||
//
|
||||
for (int i = 0; i < _loopback; i++)
|
||||
{
|
||||
//
|
||||
XOHCL iBar;
|
||||
result = iBar.Init(
|
||||
bar.symbol,
|
||||
bar.period,
|
||||
i //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Hammer ...
|
||||
bool isHammer = !checkHammer
|
||||
? false
|
||||
: iBar.IsHammer();
|
||||
if (isHammer)
|
||||
{
|
||||
//
|
||||
DrawHammer(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Morning Star ...
|
||||
bool isMorningStar = !checkMorningStar
|
||||
? false
|
||||
: iBar.IsMorningStar();
|
||||
if (isMorningStar)
|
||||
{
|
||||
//
|
||||
DrawMorningStar(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// BullishEngulfing ...
|
||||
bool isBullishEngulfing = !checkBullishEngulfing
|
||||
? false
|
||||
: iBar.IsBullishEngulfing();
|
||||
if (isBullishEngulfing)
|
||||
{
|
||||
//
|
||||
DrawBullishEngulfing(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isHammer
|
||||
//
|
||||
||
|
||||
//
|
||||
isMorningStar
|
||||
//
|
||||
||
|
||||
//
|
||||
isBullishEngulfing
|
||||
//
|
||||
;
|
||||
if (result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool IsResistanceBreaked(
|
||||
XOHCL &bar, // Resistance Bar
|
||||
bool _verifyPressure = true, // Verify Candlestick Patterns for Prove Pressure
|
||||
bool checkHammer = true, // Check Hammer Pattern for Pressure Verifications
|
||||
bool checkMorningStar = true, // Check Morning Star Pattern for Pressure Verifications
|
||||
bool checkBullishEngulfing = true, // Check Bullish Engulfing Pattern for Pressure Verifications
|
||||
double _threshold = 0, // Upper and Lower threshold of Pivot
|
||||
double _breakVerificationPoint = 15, // Price Distance for Verify Pivot Break
|
||||
int _loopback = 3 // Verification Loopback
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
if (_breakVerificationPoint < 0)
|
||||
{
|
||||
_breakVerificationPoint = 15;
|
||||
}
|
||||
|
||||
//
|
||||
result = bar.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
double points = GetPoints(bar.symbol);
|
||||
|
||||
//
|
||||
double threshold = 0;
|
||||
if (_threshold > 0)
|
||||
{
|
||||
threshold = _threshold * points;
|
||||
}
|
||||
|
||||
//
|
||||
double price = GetBid(bar.symbol);
|
||||
|
||||
//
|
||||
// Check Price is Below of Support High ...
|
||||
result = price > bar.low - threshold;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Break Verification ...
|
||||
if (_breakVerificationPoint > 0)
|
||||
{
|
||||
//
|
||||
result = price - (bar.low - threshold) >= _breakVerificationPoint * points;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (_verifyPressure && _loopback > 0)
|
||||
{
|
||||
//
|
||||
// Verify Pressure by Candlestick Patterns ...
|
||||
// We need last 3 Candle ...
|
||||
|
||||
//
|
||||
for (int i = 0; i < _loopback; i++)
|
||||
{
|
||||
//
|
||||
XOHCL iBar;
|
||||
result = iBar.Init(
|
||||
bar.symbol,
|
||||
bar.period,
|
||||
i //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Hammer ...
|
||||
bool isHammer = !checkHammer
|
||||
? false
|
||||
: iBar.IsHammer();
|
||||
if (isHammer)
|
||||
{
|
||||
//
|
||||
DrawHammer(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Morning Star ...
|
||||
bool isMorningStar = !checkMorningStar
|
||||
? false
|
||||
: iBar.IsMorningStar();
|
||||
if (isMorningStar)
|
||||
{
|
||||
//
|
||||
DrawMorningStar(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// BullishEngulfing ...
|
||||
bool isBullishEngulfing = !checkBullishEngulfing
|
||||
? false
|
||||
: iBar.IsBullishEngulfing();
|
||||
if (isBullishEngulfing)
|
||||
{
|
||||
//
|
||||
DrawBullishEngulfing(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isHammer
|
||||
//
|
||||
||
|
||||
//
|
||||
isMorningStar
|
||||
//
|
||||
||
|
||||
//
|
||||
isBullishEngulfing
|
||||
//
|
||||
;
|
||||
if (result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
bool IsResistanceRejected(
|
||||
XOHCL &bar, // Resistance Bar
|
||||
bool _verifyPressure = true, // Verify Candlestick Patterns for Prove Pressure
|
||||
bool checkShootingStar = true, // Check Shooting Star Pattern for Pressure Verifications
|
||||
bool checkEveningStar = true, // Check Evening Star Pattern for Pressure Verifications
|
||||
bool checkBearishEngulfingStar = true, // Check Bearish Engulfing Pattern for Pressure Verifications
|
||||
double _threshold = 0, // Upper and Lower threshold of Pivot
|
||||
double _breakVerificationPoint = 15, // Price Distance for Verify Pivot Break
|
||||
int _loopback = 3 // Verification Loopback
|
||||
)
|
||||
{
|
||||
//
|
||||
bool result = false;
|
||||
|
||||
//
|
||||
if (_breakVerificationPoint < 0)
|
||||
{
|
||||
_breakVerificationPoint = 15;
|
||||
}
|
||||
|
||||
//
|
||||
result = bar.IsValid();
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
double points = GetPoints(bar.symbol);
|
||||
|
||||
//
|
||||
double threshold = 0;
|
||||
if (_threshold > 0)
|
||||
{
|
||||
threshold = _threshold * points;
|
||||
}
|
||||
|
||||
//
|
||||
double price = GetBid(bar.symbol);
|
||||
|
||||
//
|
||||
XOHCL cBar;
|
||||
result = cBar.Init(
|
||||
bar.symbol,
|
||||
bar.period,
|
||||
0 //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
double hh2 = cBar.FindHighest(
|
||||
2,
|
||||
MODE_HIGH //
|
||||
);
|
||||
|
||||
//
|
||||
// Check Price is Below of Support High ...
|
||||
result =
|
||||
//
|
||||
price < bar.low - threshold &&
|
||||
(
|
||||
//
|
||||
hh2 > bar.low
|
||||
//
|
||||
||
|
||||
//
|
||||
hh2 > bar.low - threshold
|
||||
//
|
||||
||
|
||||
//
|
||||
(threshold > 0 && MathAbs(hh2 - price) > 0 && MathAbs(hh2 - price) <= threshold))
|
||||
//
|
||||
;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Check Break Verification ...
|
||||
if (_breakVerificationPoint > 0)
|
||||
{
|
||||
//
|
||||
result = MathAbs((bar.low - threshold) - price) >= _breakVerificationPoint * points;
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (_verifyPressure && _loopback > 0)
|
||||
{
|
||||
//
|
||||
// Verify Pressure by Candlestick Patterns ...
|
||||
// We need last 3 Candle ...
|
||||
|
||||
//
|
||||
for (int i = 0; i < _loopback; i++)
|
||||
{
|
||||
//
|
||||
XOHCL iBar;
|
||||
result = iBar.Init(
|
||||
bar.symbol,
|
||||
bar.period,
|
||||
i //
|
||||
);
|
||||
if (!result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Shooting Star ...
|
||||
bool isShootingStar = !checkShootingStar
|
||||
? false
|
||||
: iBar.IsShootingStar();
|
||||
if (isShootingStar)
|
||||
{
|
||||
//
|
||||
DrawShootingStar(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Evening Star ...
|
||||
bool isEveningStar = !checkEveningStar
|
||||
? false
|
||||
: iBar.IsEveningStar();
|
||||
if (isEveningStar)
|
||||
{
|
||||
//
|
||||
DrawEveningStar(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// BearishEngulfing ...
|
||||
bool isBearishEngulfing = !checkBearishEngulfingStar
|
||||
? false
|
||||
: iBar.IsBearishEngulfing();
|
||||
if (isBearishEngulfing)
|
||||
{
|
||||
//
|
||||
DrawBearishEngulfing(
|
||||
iBar,
|
||||
ChartID() //
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
result =
|
||||
//
|
||||
isShootingStar
|
||||
//
|
||||
||
|
||||
//
|
||||
isEveningStar
|
||||
//
|
||||
||
|
||||
//
|
||||
isBearishEngulfing
|
||||
//
|
||||
;
|
||||
if (result)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return result;
|
||||
}
|
||||
|
||||
//
|
||||
// Drawing Tools ...
|
||||
@@ -36,7 +723,7 @@
|
||||
//
|
||||
string GetHammerTag(XOHCL &bar)
|
||||
{
|
||||
return "Hammer-" + GetBarTimeTag(bar);
|
||||
return XTLSHammerToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -84,7 +771,7 @@ void RemoveHammer(XOHCL &bar)
|
||||
//
|
||||
string GetShootingStarTag(XOHCL &bar)
|
||||
{
|
||||
return "ShootingStar-" + GetBarTimeTag(bar);
|
||||
return XTLSShootingStarToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -132,7 +819,7 @@ void RemoveShootingStar(XOHCL &bar)
|
||||
//
|
||||
string GetBullishEngulfingTag(XOHCL &bar)
|
||||
{
|
||||
return "BullishEngulfing-" + GetBarTimeTag(bar);
|
||||
return XTLSBullishEngulfingToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -190,7 +877,7 @@ void RemoveBullishEngulfing(XOHCL &bar)
|
||||
//
|
||||
string GetBearishEngulfingTag(XOHCL &bar)
|
||||
{
|
||||
return "BearishEngulfing-" + GetBarTimeTag(bar);
|
||||
return XTLSBearishEngulfingToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -248,7 +935,7 @@ void RemoveBearishEngulfing(XOHCL &bar)
|
||||
//
|
||||
string GetMorningStarTag(XOHCL &bar)
|
||||
{
|
||||
return "MorningStar-" + GetBarTimeTag(bar);
|
||||
return XTLSMorningStarToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -296,7 +983,7 @@ void RemoveMorningStar(XOHCL &bar)
|
||||
//
|
||||
string GetEveningStarTag(XOHCL &bar)
|
||||
{
|
||||
return "EveningStar-" + GetBarTimeTag(bar);
|
||||
return XTLSEveningStarToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -344,7 +1031,7 @@ void RemoveEveningStar(XOHCL &bar)
|
||||
//
|
||||
string GetSwingHighTag(XOHCL &bar)
|
||||
{
|
||||
return "SwingHigh-" + GetBarTimeTag(bar);
|
||||
return XTLSSwingHighToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -392,7 +1079,7 @@ void RemoveSwingHigh(XOHCL &bar)
|
||||
//
|
||||
string GetSwingLowTag(XOHCL &bar)
|
||||
{
|
||||
return "SwingLow-" + GetBarTimeTag(bar);
|
||||
return XTLSSwingLowToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -440,7 +1127,7 @@ void RemoveSwingLow(XOHCL &bar)
|
||||
//
|
||||
string GetBullishFVGTag(XOHCL &bar)
|
||||
{
|
||||
return "BullishFVG-" + GetBarTimeTag(bar);
|
||||
return XTLSBullishFVGToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -508,7 +1195,7 @@ void RemoveBullishFVG(XOHCL &bar)
|
||||
//
|
||||
string GetBearishFVGTag(XOHCL &bar)
|
||||
{
|
||||
return "BearishFVG-" + GetBarTimeTag(bar);
|
||||
return XTLSBearishFVGToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -576,7 +1263,7 @@ void RemoveBearishFVG(XOHCL &bar)
|
||||
//
|
||||
string GetBullishOrderBlockTag(XOHCL &bar)
|
||||
{
|
||||
return "BullishOrderBlock-" + GetBarTimeTag(bar);
|
||||
return XTLSBullishOrderBlockToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -613,7 +1300,8 @@ bool DrawBullishOrderBlock(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -634,7 +1322,8 @@ bool DrawBullishOrderBlock(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -654,7 +1343,7 @@ void RemoveBullishOrderBlock(XOHCL &bar)
|
||||
//
|
||||
string GetBearishOrderBlockTag(XOHCL &bar)
|
||||
{
|
||||
return "BearishOrderBlock-" + GetBarTimeTag(bar);
|
||||
return XTLSBearishOrderBlockToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -691,7 +1380,8 @@ bool DrawBearishOrderBlock(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -712,7 +1402,8 @@ bool DrawBearishOrderBlock(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -732,7 +1423,7 @@ void RemoveBearishOrderBlock(XOHCL &bar)
|
||||
//
|
||||
string GetSupportTag(XOHCL &bar)
|
||||
{
|
||||
return "Support-" + GetBarTimeTag(bar);
|
||||
return XTLSSupportToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -839,7 +1530,7 @@ void RemoveSupport(XOHCL &bar)
|
||||
//
|
||||
string GetResistanceTag(XOHCL &bar)
|
||||
{
|
||||
return "Resistance-" + GetBarTimeTag(bar);
|
||||
return XTLSResistanceToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -946,7 +1637,7 @@ void RemoveResistance(XOHCL &bar)
|
||||
//
|
||||
string GetBullishTrendTag(XOHCL &bar)
|
||||
{
|
||||
return "BullishTrend-" + GetBarTimeTag(bar);
|
||||
return XTLSBullishTrendToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -960,9 +1651,9 @@ bool DrawBullishTrend(
|
||||
color clr = clrAqua,
|
||||
ENUM_LINE_STYLE style = STYLE_DOT,
|
||||
uint width = 1,
|
||||
uchar swingHighArrow = 202,
|
||||
uchar swingHighArrow = 108,
|
||||
color swingHighColor = clrAqua,
|
||||
uchar swingLowArrow = 202,
|
||||
uchar swingLowArrow = 108,
|
||||
color swingLowColor = clrMagenta //
|
||||
)
|
||||
{
|
||||
@@ -997,7 +1688,8 @@ bool DrawBullishTrend(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1022,7 +1714,8 @@ bool DrawBullishTrend(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1098,7 +1791,7 @@ void RemoveBullishTrend(XOHCL &bar)
|
||||
//
|
||||
string GetBearishTrendTag(XOHCL &bar)
|
||||
{
|
||||
return "BearishTrend-" + GetBarTimeTag(bar);
|
||||
return XTLSBearishTrendToken + "-" + GetBarTimeTag(bar);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1112,9 +1805,9 @@ bool DrawBearishTrend(
|
||||
color clr = clrMagenta,
|
||||
ENUM_LINE_STYLE style = STYLE_DOT,
|
||||
uint width = 1,
|
||||
uchar swingHighArrow = 202,
|
||||
uchar swingHighArrow = 108,
|
||||
color swingHighColor = clrMagenta,
|
||||
uchar swingLowArrow = 202,
|
||||
uchar swingLowArrow = 108,
|
||||
color swingLowColor = clrAqua //
|
||||
)
|
||||
{
|
||||
@@ -1149,7 +1842,8 @@ bool DrawBearishTrend(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1174,7 +1868,8 @@ bool DrawBearishTrend(
|
||||
false,
|
||||
ray //
|
||||
);
|
||||
if (!result) {
|
||||
if (!result)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1244,6 +1939,28 @@ void RemoveBearishTrend(XOHCL &bar)
|
||||
RemoveDraws(GetBearishTrendTag(bar));
|
||||
}
|
||||
|
||||
//
|
||||
void RemoveAllToolsDraws()
|
||||
{
|
||||
//
|
||||
RemoveDraws(XTLSHammerToken);
|
||||
RemoveDraws(XTLSSupportToken);
|
||||
RemoveDraws(XTLSSwingLowToken);
|
||||
RemoveDraws(XTLSSwingHighToken);
|
||||
RemoveDraws(XTLSBullishFVGToken);
|
||||
RemoveDraws(XTLSBearishFVGToken);
|
||||
RemoveDraws(XTLSResistanceToken);
|
||||
RemoveDraws(XTLSMorningStarToken);
|
||||
RemoveDraws(XTLSEveningStarToken);
|
||||
RemoveDraws(XTLSShootingStarToken);
|
||||
RemoveDraws(XTLSBullishTrendToken);
|
||||
RemoveDraws(XTLSBearishTrendToken);
|
||||
RemoveDraws(XTLSBullishEngulfingToken);
|
||||
RemoveDraws(XTLSBearishEngulfingToken);
|
||||
RemoveDraws(XTLSBullishOrderBlockToken);
|
||||
RemoveDraws(XTLSBearishOrderBlockToken);
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user