This commit is contained in:
2025-10-24 08:20:27 +03:30
parent 4ba253b2de
commit 645c179b12
5 changed files with 268 additions and 437 deletions
+67 -108
View File
@@ -1503,6 +1503,73 @@ class XCPOIDrawer : public XCBase
XClean(tmps); XClean(tmps);
} }
void DrawTrendLine(
string name,
double fromPrice,
datetime fromTime,
double toPrice,
datetime toTime,
XPOIDrawConfig &config,
color clr = CLR_NONE //
)
{
//
// Validate ...
bool has =
IsXValid(name) &&
IsXValid(toTime) &&
IsXValid(fromTime) &&
NotEmptyZero(toPrice) &&
NotEmptyZero(fromPrice) &&
fromTime < toTime;
if (!has)
{
return;
}
//
ENUM_X_DIRECTION trendDir =
fromPrice > toPrice
? X_DIRECTION_BEARISH
: fromPrice < toPrice
? X_DIRECTION_BULLISH
: X_DIRECTION_NONE;
color clrTrend =
(clr != CLR_NONE)
? clr
: IsXBullish(trendDir)
? config.bullishColor
: config.bearishColor;
//
CChartObjectTrend *object;
has = DrawTrendLine(
fromPrice,
fromTime,
toPrice,
toTime,
object,
name,
config.trendRayRight,
config.trendRayLeft //
);
if (has)
{
//
// Apply Style ...
object.Color(clr);
object.Width(config.trendWidth);
object.Style(config.trendStyle);
//
// Save Object ...
drawnObjects.Add(object);
}
//
ZeroMemory(object);
}
/** /**
* Draw Specified Pattern info ... * Draw Specified Pattern info ...
* *
@@ -2452,114 +2519,6 @@ class XCPOIDrawer : public XCBase
} }
} }
//
// Quarters ...
has = config.drawQuarterZones &&
analysis.IsQuarterReady();
if (has)
{
//
// Draw Majors ...
has = config.drawQuarterMajors;
if (has)
{
//
// Support ...
has = analysis.HasMajorSupport();
if (has)
{
//
analysis.majorSupport.to = cTime;
DrawZone(
analysis.majorSupport,
config.quarterMajorsDrawConfig //
);
}
//
// Resistance ...
has = analysis.HasMajorResistance();
if (has)
{
//
analysis.majorResistance.to = cTime;
DrawZone(
analysis.majorResistance,
config.quarterMajorsDrawConfig //
);
}
}
//
// Draw Minors ...
if (config.drawQuarterMinors)
{
//
// Support ...
has = analysis.HasMinorSupport();
if (has)
{
//
analysis.minorSupport.to = cTime;
DrawZone(
analysis.minorSupport,
config.quarterMinorsDrawConfig //
);
}
//
// Resistance ...
has = analysis.HasMinorResistance();
if (has)
{
//
analysis.minorResistance.to = cTime;
DrawZone(
analysis.minorResistance,
config.quarterMinorsDrawConfig //
);
}
}
//
// Draw Quarter ...
if (config.drawQuarter &&
analysis.quarter > 0)
{
//
double quarter = analysis.quarter;
//
datetime quarterFrom = MathMin(analysis.majorResistance.from,
analysis.majorSupport.from);
datetime quarterTo = cTime;
string quarterName = "XQuarter_" + ToXString(quarter) + "_" + ToXString(TimeToSeconds(quarterFrom));
//
CChartObjectTrend *iObj;
has = DrawTrendLine(
quarter,
quarterFrom,
quarter,
quarterTo,
iObj,
quarterName,
false, // Ray Right ...
false // Ray Left ...
);
if (has)
{
//
iObj.Width(config.quarterWidth);
iObj.Color(config.quarterColor);
iObj.Style(config.quarterStyle);
//
drawnObjects.Add(iObj);
}
}
}
// //
// Cleanup Resources ... // Cleanup Resources ...
patternBar.Clean(); patternBar.Clean();
@@ -1312,15 +1312,6 @@ struct XPatternAnalysis
ENUM_X_BAR_PATTERN patterns[]; // All Bars Exists Patterns ... ENUM_X_BAR_PATTERN patterns[]; // All Bars Exists Patterns ...
ENUM_X_DIRECTION patternsDir[]; // Each Exists Patterns Directions ... ENUM_X_DIRECTION patternsDir[]; // Each Exists Patterns Directions ...
//
// Quarter Analysis ...
double quarter; // Premium Discount Verifier ...
XBoxZone majorSupport; // Major Support Zone ...
XBoxZone minorSupport; // Minor Support Zone ...
XBoxZone majorResistance; // Major Resistance Zone ...
XBoxZone minorResistance; // Minor Resistance Zone ...
ENUM_X_DETECTOR_ZONE_ACTION quarterActions[]; // Specified Quarter Actions based on Time ...
// //
// Constructor ... // Constructor ...
XPatternAnalysis() XPatternAnalysis()
@@ -1347,14 +1338,6 @@ struct XPatternAnalysis
resistance.Clean(); resistance.Clean();
XClean(patternsDir); XClean(patternsDir);
//
quarter = 0;
XClean(quarterActions);
majorSupport.Clean();
minorSupport.Clean();
majorResistance.Clean();
minorResistance.Clean();
// //
ZeroMemory(this); ZeroMemory(this);
} }
@@ -1377,120 +1360,6 @@ struct XPatternAnalysis
return result; return result;
} }
//
// Quarter Actions ...
/**
* Check Has Major Support or not ...
*
* @return ( bool )
*/
bool HasMajorSupport()
{
return IsValid() &&
majorSupport.IsValid();
}
/**
* Check Has Minor Support or not ...
*
* @return ( bool )
*/
bool HasMinorSupport()
{
return IsValid() &&
IsQuarterReady() &&
minorSupport.IsValid();
}
/**
* Check Has Major Resistance or not ...
*
* @return ( bool )
*/
bool HasMajorResistance()
{
return IsValid() &&
majorResistance.IsValid();
}
/**
* Check Has Minor Resistance or not ...
*
* @return ( bool )
*/
bool HasMinorResistance()
{
return IsValid() &&
IsQuarterReady() &&
minorResistance.IsValid();
}
/**
* Check Zones Quarter Initialized ...
*
* @return ( bool )
*/
bool IsQuarterReady()
{
//
return IsValid() &&
HasMajorSupport() &&
HasMajorResistance() &&
quarter > 0;
}
/**
* Check Has Quarter Actions ...
*
* @return ( bool )
*/
bool HasQuarterActions()
{
return HasChild(quarterActions);
}
/**
* Check Contains Specified Quarter Actions or not ...
*
* @param value: ENUM_X_DETECTOR_ZONE_ACTION, Specified Action ...
*
* @return ( bool )
*/
bool HasQuarterAction(ENUM_X_DETECTOR_ZONE_ACTION value)
{
//
bool result = false;
//
result = IsXValid(value) &&
HasQuarterActions() &&
Contains(value, quarterActions);
//
return result;
}
/**
* Check Minor Support Retested or not ...
*
* @return ( bool )
*/
bool IsMinorSupportRetested()
{
return HasQuarterAction(X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_RETESTED);
}
/**
* Check Minor Resistance Retested or not ...
*
* @return ( bool )
*/
bool IsMinorResistanceRetested()
{
return HasQuarterAction(X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_RETESTED);
}
// //
// Pattern Actions ... // Pattern Actions ...
@@ -2884,18 +2753,6 @@ struct XPatternAnalysisDrawConfig
// //
// Props ... // Props ...
//
// Quarters ...
bool drawQuarterZones; // Draw Quarters ...
bool drawQuarterMajors; // Draw Quarter Majors ...
bool drawQuarterMinors; // Draw Quarter Minors ...
bool drawQuarter; // Draw Quarter Trend Line ...
//
int quarterWidth;
color quarterColor;
ENUM_LINE_STYLE quarterStyle;
// //
// Patterns ... // Patterns ...
@@ -2906,8 +2763,6 @@ struct XPatternAnalysisDrawConfig
// //
XPOIDrawConfig drawConfig; XPOIDrawConfig drawConfig;
XPOIDrawConfig quarterMajorsDrawConfig;
XPOIDrawConfig quarterMinorsDrawConfig;
// //
// Constructor ... // Constructor ...
@@ -2932,10 +2787,6 @@ struct XPatternAnalysisDrawConfig
XClean(allowedDraws); XClean(allowedDraws);
XClean(allowedDrawZones); XClean(allowedDrawZones);
XClean(allowedDrawPivots); XClean(allowedDrawPivots);
//
quarterMajorsDrawConfig.Clean();
quarterMinorsDrawConfig.Clean();
} }
/** /**
@@ -2946,19 +2797,10 @@ struct XPatternAnalysisDrawConfig
// //
// Drawing Configs ... // Drawing Configs ...
drawConfig.Default(); drawConfig.Default();
quarterMajorsDrawConfig.Default();
quarterMinorsDrawConfig.Default();
ConfigureQuarterDraws();
// //
Full(); Full();
//
drawQuarter = true;
drawQuarterZones = true;
drawQuarterMajors = true;
drawQuarterMinors = true;
// //
// Remove Unused From Zones ... // Remove Unused From Zones ...
Remove(X_BAR_PATTERN_PINNED, allowedDrawZones); Remove(X_BAR_PATTERN_PINNED, allowedDrawZones);
@@ -2983,12 +2825,6 @@ struct XPatternAnalysisDrawConfig
XClean(allowedDraws); XClean(allowedDraws);
XClean(allowedDrawZones); XClean(allowedDrawZones);
XClean(allowedDrawPivots); XClean(allowedDrawPivots);
//
drawQuarter = false;
drawQuarterZones = false;
drawQuarterMajors = false;
drawQuarterMinors = false;
} }
/** /**
@@ -2996,12 +2832,6 @@ struct XPatternAnalysisDrawConfig
*/ */
void Full() void Full()
{ {
//
drawQuarter = true;
drawQuarterZones = true;
drawQuarterMajors = true;
drawQuarterMinors = true;
// //
GetAllBarPatters(allowedDraws); GetAllBarPatters(allowedDraws);
GetAllBarPatters(allowedDrawZones); GetAllBarPatters(allowedDrawZones);
@@ -3074,43 +2904,6 @@ struct XPatternAnalysisDrawConfig
// //
return result; return result;
} }
//
// Drawer Configs ...
/**
* PreConfigure Default Drawer Configs of Quarters ...
*/
void ConfigureQuarterDraws()
{
//
// Quarter ...
quarterWidth = 2;
quarterStyle = STYLE_DOT;
quarterColor = clrYellow;
//
// Majors ...
//
quarterMajorsDrawConfig.Default();
quarterMajorsDrawConfig = drawConfig;
//
quarterMajorsDrawConfig.zonesWidth = 3;
quarterMajorsDrawConfig.bearishColor = clrRed;
quarterMajorsDrawConfig.bullishColor = clrLime;
//
// Minors ...
//
quarterMinorsDrawConfig.Default();
quarterMinorsDrawConfig = drawConfig;
//
quarterMinorsDrawConfig.zonesStyle = STYLE_DASH;
}
}; };
// //
+24 -115
View File
@@ -307,121 +307,6 @@ int GetAllBarPatters(ENUM_X_BAR_PATTERN &dest[])
return ArraySize(dest); return ArraySize(dest);
} }
/**
* Quarter Zones Actions ...
**/
enum ENUM_X_DETECTOR_ZONE_ACTION
{
X_DETECTOR_ZONE_ACTION_NONE = 0,
//
// Support ...
X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_DETECTED = 1,
X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_BREAKED = 2,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_DETECTED = 3,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_REFINED = 4,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_BREAKED = 5,
X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_RETESTED = 6,
//
// Resistance ...
X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_DETECTED = 7,
X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_BREAKED = 8,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_DETECTED = 9,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_REFINED = 10,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_BREAKED = 11,
X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_RETESTED = 12,
};
/**
* Validate an ENUM member ...
*
* @param value: ENUM_X_DETECTOR_ZONE_ACTION ...
*
* @return ( bool )
*/
bool IsXValid(ENUM_X_DETECTOR_ZONE_ACTION value)
{
return value != X_DETECTOR_ZONE_ACTION_NONE;
}
/**
* Converts a Pattern ENUM to String Representation ...
*
* @param value: ENUM_X_DETECTOR_ZONE_ACTION, member ...
*
* @return ( string )
*/
string ToXString(ENUM_X_DETECTOR_ZONE_ACTION value)
{
//
string result = NULL;
//
if (!IsXValid(value))
{
return result;
}
//
switch (value)
{
//
case X_DETECTOR_ZONE_ACTION_NONE:
result = "NONE";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_DETECTED:
result = "MAJOR_SUPPORT_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_SUPPORT_BREAKED:
result = "MAJOR_SUPPORT_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_DETECTED:
result = "MINOR_SUPPORT_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_REFINED:
result = "MINOR_SUPPORT_REFINED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_BREAKED:
result = "MINOR_SUPPORT_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_SUPPORT_RETESTED:
result = "MINOR_SUPPORT_RETESTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_DETECTED:
result = "MAJOR_RESISTANCE_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MAJOR_RESISTANCE_BREAKED:
result = "MAJOR_RESISTANCE_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_DETECTED:
result = "MINOR_RESISTANCE_DETECTED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_REFINED:
result = "MINOR_RESISTANCE_REFINED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_BREAKED:
result = "MINOR_RESISTANCE_BREAKED";
break;
//
case X_DETECTOR_ZONE_ACTION_MINOR_RESISTANCE_RETESTED:
result = "MINOR_RESISTANCE_RETESTED";
break;
}
//
return result;
}
// //
// Structures ... // Structures ...
@@ -1718,6 +1603,9 @@ struct XDirectionShift
} }
}; };
/**
* Configure Draws ...
**/
struct XPOIDrawConfig struct XPOIDrawConfig
{ {
// //
@@ -1726,6 +1614,7 @@ struct XPOIDrawConfig
// //
color bullishColor; color bullishColor;
color bearishColor; color bearishColor;
color neuturalColor;
// //
int arrowsWidth; int arrowsWidth;
@@ -1741,6 +1630,12 @@ struct XPOIDrawConfig
bool ignoreZonesAt; bool ignoreZonesAt;
ENUM_LINE_STYLE zonesStyle; ENUM_LINE_STYLE zonesStyle;
//
int trendWidth;
bool trendRayLeft;
bool trendRayRight;
ENUM_LINE_STYLE trendStyle;
// //
// Constructor ... // Constructor ...
XPOIDrawConfig() XPOIDrawConfig()
@@ -1759,6 +1654,7 @@ struct XPOIDrawConfig
// //
bullishColor = CLR_NONE; bullishColor = CLR_NONE;
bearishColor = CLR_NONE; bearishColor = CLR_NONE;
neuturalColor = CLR_NONE;
// //
arrowsWidth = 0; arrowsWidth = 0;
@@ -1773,6 +1669,12 @@ struct XPOIDrawConfig
zonesFill = false; zonesFill = false;
ignoreZonesAt = true; ignoreZonesAt = true;
zonesStyle = STYLE_SOLID; zonesStyle = STYLE_SOLID;
//
trendWidth = 0;
trendRayLeft = false;
trendRayRight = false;
trendStyle = STYLE_DOT;
} }
/** /**
@@ -1783,6 +1685,7 @@ struct XPOIDrawConfig
// //
bullishColor = clrAqua; bullishColor = clrAqua;
bearishColor = clrMagenta; bearishColor = clrMagenta;
neuturalColor = clrGray;
// //
arrowsWidth = 1; arrowsWidth = 1;
@@ -1797,6 +1700,12 @@ struct XPOIDrawConfig
zonesFill = true; zonesFill = true;
ignoreZonesAt = true; ignoreZonesAt = true;
zonesStyle = STYLE_SOLID; zonesStyle = STYLE_SOLID;
//
trendWidth = 2;
trendRayLeft = false;
trendRayRight = true;
trendStyle = STYLE_DOT;
} }
// //
@@ -1693,12 +1693,19 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
return result; return result;
} }
//
// Validation Flags ...
bool validateBarInsideZone = true;
bool validateByBarPatterns = true;
bool validateByBarInsideATRBand = true;
// //
// Define Requirements ... // Define Requirements ...
// //
XOHCL pBar; XOHCL pBar;
XOHCL p2Bar; XOHCL p2Bar;
XOHCL p3Bar;
bool isBullish = false; bool isBullish = false;
bool isBearish = false; bool isBearish = false;
@@ -1707,11 +1714,14 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
result = bar.GetPreviousBar(pBar); result = bar.GetPreviousBar(pBar);
result = result && result = result &&
pBar.GetPreviousBar(p2Bar); pBar.GetPreviousBar(p2Bar);
result = result &&
p2Bar.GetPreviousBar(p3Bar);
if (!result) if (!result)
{ {
// //
pBar.Clean(); pBar.Clean();
p2Bar.Clean(); p2Bar.Clean();
p3Bar.Clean();
// //
return result; return result;
@@ -1720,11 +1730,20 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
// //
// Do ... // Do ...
//
// Retrieve pBar Patterns ...
XPatternAnalysis pBarPatterns;
poiDetector.AnalyseBarPatterns(
pBar,
pBarPatterns,
structureConfig.barsAnalysisConfig //
);
// //
// Detecting OrderFlow ... // Detecting OrderFlow ...
XBoxZone orderFlow[]; XBoxZone orderFlow[];
bool hasOrderFlow = poiDetector.HasOrderFlow( bool hasOrderFlow = poiDetector.HasOrderFlow(
pBar, p3Bar,
dir, dir,
orderFlow, orderFlow,
structureConfig.orderFlowValidation, structureConfig.orderFlowValidation,
@@ -1736,6 +1755,9 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
structureConfig.loopback // structureConfig.loopback //
); );
//
double atrBandMiddle = EMPTY_VALUE;
// //
isBullish = hasOrderFlow && isBullish = hasOrderFlow &&
IsXBullish(dir); IsXBullish(dir);
@@ -1745,11 +1767,157 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
IsXBearish(dir); IsXBearish(dir);
// //
result = isBullish || // Summarize Result ...
isBearish; result = isBullish || isBearish;
if (result) {
// //
// Force Price of p2Bar is Inside Order Flow ...
if (result && validateBarInsideZone)
{
//
double orderFlowUpper = 0;
double orderFlowLower = 0;
//
int idx = GetHighest(orderFlow);
if (IsValidIndex(idx))
{
orderFlowUpper = orderFlow[idx].upper;
}
idx = GetLowest(orderFlow);
if (IsValidIndex(idx))
{
orderFlowLower = orderFlow[idx].lower;
}
//
result = NotEmptyZero(orderFlowUpper) &&
NotEmptyZero(orderFlowLower) &&
orderFlowUpper > orderFlowLower &&
(isBullish
? p2Bar.low < orderFlowUpper
: p2Bar.high > orderFlowLower);
}
//
// Force PBar Has Pattern ...
if (result && validateByBarPatterns)
{
//
// Analyse Bar Patterns ...
result = pBarPatterns.IsValid();
//
// Bullish ...
bool isPBarHasBullishPatterns =
// (bar.close > pBar.low ||
// bar.open > pBar.low) &&
(
//
pBarPatterns.IsPinned(X_DIRECTION_BULLISH) ||
pBarPatterns.IsEngulfed(X_DIRECTION_BULLISH) ||
pBarPatterns.IsMomentum(X_DIRECTION_BULLISH) ||
pBarPatterns.IsPiercing(X_DIRECTION_BULLISH) ||
pBarPatterns.IsSignalKey(X_DIRECTION_BULLISH)
//
);
//
// Bearish ...
bool isPBarHasBearishPatterns =
// (bar.close < pBar.high ||
// bar.open < pBar.high) &&
(
//
pBarPatterns.IsPinned(X_DIRECTION_BEARISH) ||
pBarPatterns.IsEngulfed(X_DIRECTION_BEARISH) ||
pBarPatterns.IsMomentum(X_DIRECTION_BEARISH) ||
pBarPatterns.IsPiercing(X_DIRECTION_BEARISH) ||
pBarPatterns.IsSignalKey(X_DIRECTION_BEARISH)
//
);
//
isBullish =
isBullish &&
isPBarHasBullishPatterns &&
!isPBarHasBearishPatterns;
//
isBearish =
isBearish &&
isPBarHasBearishPatterns &&
!isPBarHasBullishPatterns;
//
// Summarize Result ...
result = isBullish || isBearish;
}
//
// Force P2Bar Place Checking based on ATR Band ...
if (result && validateByBarInsideATRBand)
{
//
double atrBandUpper = fimaHelper.GetATRBandUpper(p2Bar.Index());
double atrBandLower = fimaHelper.GetATRBandLower(p2Bar.Index());
//
atrBandMiddle = atrBandLower + ((atrBandUpper - atrBandLower) / 2);
//
isBullish =
isBullish &&
NotEmptyZero(atrBandMiddle) &&
p2Bar.low < atrBandMiddle;
//
isBearish =
isBearish &&
NotEmptyZero(atrBandMiddle) &&
p2Bar.high > atrBandMiddle;
//
// Summarize Result ...
result = isBullish || isBearish;
}
//
if (result)
{
//
UpdateToTime(orderFlow, bar.time);
poiDrawer.DrawZones(orderFlow, structureDrawConfig.drawConfig); poiDrawer.DrawZones(orderFlow, structureDrawConfig.drawConfig);
poiDrawer.DrawPatternAnalysis(pBarPatterns, structureDrawConfig.barAnalysisDrawConfig);
//
// Draw ATR Band Middle ...
if (NotEmptyZero(atrBandMiddle))
{
//
XPOIDrawConfig iConfig = structureDrawConfig.drawConfig;
iConfig.trendRayLeft = false;
iConfig.trendRayRight = false;
//
datetime to = bar.time;
datetime from = p2Bar.BeforeOn();
string trendName = "ATRBandMiddle_" + ToXString(TimeToSeconds(p2Bar.time));
poiDrawer.DrawTrendLine(
trendName,
atrBandMiddle,
from,
atrBandMiddle,
to,
iConfig,
clrYellow //
);
//
iConfig.Clean();
}
//
Print("OrderFlow ..."); Print("OrderFlow ...");
} }
@@ -1823,6 +1991,9 @@ class XCXFIMAStrategy1Signaller : public XCXFIMABaseSignaller
} }
pBar.Clean(); pBar.Clean();
p2Bar.Clean(); p2Bar.Clean();
p3Bar.Clean();
XClean(orderFlow);
pBarPatterns.Clean();
// //
return result; return result;
+2 -3
View File
@@ -334,7 +334,7 @@ struct XFIMAMarketStructureConfig
// Tools ... // Tools ...
/** /**
* This function fulfills the will of the developer * This function fulfills the will of the developer
*/ */
void Clean() void Clean()
{ {
@@ -468,7 +468,7 @@ struct XFIMAMarketStructureDrawerConfig
// Tools ... // Tools ...
/** /**
* This function fulfills the will of the developer * This function fulfills the will of the developer
*/ */
void Clean() void Clean()
{ {
@@ -574,7 +574,6 @@ struct XFIMAMarketStructureDrawerConfig
{ {
// //
barAnalysisDrawConfig.drawConfig = drawConfig; barAnalysisDrawConfig.drawConfig = drawConfig;
barAnalysisDrawConfig.ConfigureQuarterDraws();
pivotAnalysisDrawConfig.drawConfig = drawConfig; pivotAnalysisDrawConfig.drawConfig = drawConfig;
} }