refactor classes constructor and deconstructors ...
This commit is contained in:
@@ -57,7 +57,7 @@ class XCAccount : public XCBase
|
|||||||
public:
|
public:
|
||||||
//
|
//
|
||||||
// Constructor ...
|
// Constructor ...
|
||||||
void XCAccount()
|
XCAccount()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
mAccountInfo = new CAccountInfo();
|
mAccountInfo = new CAccountInfo();
|
||||||
@@ -65,7 +65,7 @@ class XCAccount : public XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructor ...
|
// Deconstructor ...
|
||||||
void ~XCAccount()
|
~XCAccount()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -376,7 +376,7 @@ class XCAccount : public XCBase
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve Specified Message for Report Balance ...
|
* Retrieve Specified Message for Report Balance ...
|
||||||
*
|
*
|
||||||
* @return ( string )
|
* @return ( string )
|
||||||
*/
|
*/
|
||||||
string GetBalanceReportMessage()
|
string GetBalanceReportMessage()
|
||||||
|
|||||||
@@ -74,13 +74,13 @@ class XCBarAnalyser : public XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Constructor(s) ...
|
// Constructor(s) ...
|
||||||
void XCBarAnalyser()
|
XCBarAnalyser()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructor ...
|
// Deconstructor ...
|
||||||
void ~XCBarAnalyser()
|
~XCBarAnalyser()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -761,13 +761,13 @@ class XCSignalObject : public XCBaseObject
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Constructor ...
|
// Constructor ...
|
||||||
void XCSignalObject()
|
XCSignalObject()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructor ...
|
// Deconstructor ...
|
||||||
void ~XCSignalObject()
|
~XCSignalObject()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2150,7 +2150,8 @@ class XCPositionObject : public XCBaseObject
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Change Risk Style if Risk Freed Position ...
|
// Change Risk Style if Risk Freed Position ...
|
||||||
if (isRiskFreed) {
|
if (isRiskFreed)
|
||||||
|
{
|
||||||
//
|
//
|
||||||
riskStyle.fill = true;
|
riskStyle.fill = true;
|
||||||
riskStyle.clr = rewardStyle.clr;
|
riskStyle.clr = rewardStyle.clr;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class XCBaseHelper : public XCBase
|
|||||||
public:
|
public:
|
||||||
//
|
//
|
||||||
// Constructor ...
|
// Constructor ...
|
||||||
void XCBaseHelper(
|
XCBaseHelper(
|
||||||
string symbol, // Trading Symbol
|
string symbol, // Trading Symbol
|
||||||
ENUM_TIMEFRAMES period // Trading Time Frame
|
ENUM_TIMEFRAMES period // Trading Time Frame
|
||||||
)
|
)
|
||||||
@@ -50,7 +50,7 @@ class XCBaseHelper : public XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructor ...
|
// Deconstructor ...
|
||||||
void ~XCBaseHelper()
|
~XCBaseHelper()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
IndicatorRelease(mHandler);
|
IndicatorRelease(mHandler);
|
||||||
|
|||||||
@@ -46,11 +46,11 @@ class XCHttp : public XCBase
|
|||||||
public:
|
public:
|
||||||
//
|
//
|
||||||
// Constructor ...
|
// Constructor ...
|
||||||
void XCHttp()
|
XCHttp()
|
||||||
{
|
{
|
||||||
XCHttp("", 10000);
|
XCHttp("", 10000);
|
||||||
}
|
}
|
||||||
void XCHttp(
|
XCHttp(
|
||||||
string path, // Base Folder to Store Data
|
string path, // Base Folder to Store Data
|
||||||
int timeout // base timeout for Requests
|
int timeout // base timeout for Requests
|
||||||
)
|
)
|
||||||
@@ -62,7 +62,7 @@ class XCHttp : public XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructor ...
|
// Deconstructor ...
|
||||||
void ~XCHttp()
|
~XCHttp()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class XCPOIDrawer : public XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Constructor ...
|
// Constructor ...
|
||||||
void XCPOIDrawer()
|
XCPOIDrawer()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Default();
|
Default();
|
||||||
@@ -59,7 +59,7 @@ class XCPOIDrawer : public XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructor ...
|
// Deconstructor ...
|
||||||
void ~XCPOIDrawer()
|
~XCPOIDrawer()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
boxBullishStyle.Clean();
|
boxBullishStyle.Clean();
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class XCRMPanel : public XCAppDialog
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Constructor(s) ...
|
// Constructor(s) ...
|
||||||
void XCRMPanel()
|
XCRMPanel()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
Default();
|
Default();
|
||||||
@@ -57,7 +57,7 @@ class XCRMPanel : public XCAppDialog
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Deconstructor ...
|
// Deconstructor ...
|
||||||
void ~XCRMPanel()
|
~XCRMPanel()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
HandleRemoveObjects();
|
HandleRemoveObjects();
|
||||||
|
|||||||
@@ -528,7 +528,7 @@ class XCTrade : public XCBase
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Constructors ...
|
// Constructors ...
|
||||||
void XCTrade(
|
XCTrade(
|
||||||
int slippage, // Specify Slippage
|
int slippage, // Specify Slippage
|
||||||
ulong magicNumber, // Specify Magic Number
|
ulong magicNumber, // Specify Magic Number
|
||||||
double maxAllowedSpread = 0, // Max Allowed Spred for Opening Trades
|
double maxAllowedSpread = 0, // Max Allowed Spred for Opening Trades
|
||||||
|
|||||||
@@ -312,12 +312,12 @@ struct X121X3MAConditions
|
|||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
//
|
//
|
||||||
Clean(fastBuffer);
|
XClean(fastBuffer);
|
||||||
Clean(mediumBuffer);
|
XClean(mediumBuffer);
|
||||||
Clean(slowBuffer);
|
XClean(slowBuffer);
|
||||||
Clean(fastStateBuffer);
|
XClean(fastStateBuffer);
|
||||||
Clean(mediumStateBuffer);
|
XClean(mediumStateBuffer);
|
||||||
Clean(slowStateBuffer);
|
XClean(slowStateBuffer);
|
||||||
|
|
||||||
//
|
//
|
||||||
ArraySetAsSeries(fastBuffer, true);
|
ArraySetAsSeries(fastBuffer, true);
|
||||||
|
|||||||
@@ -274,6 +274,108 @@ class XCX121XKIHelperParser : XCBase
|
|||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CountKIFastTouches(
|
||||||
|
int barIndex = 0,
|
||||||
|
int loopback = 5,
|
||||||
|
ENUM_X_DIRECTION forDir = X_DIRECTION_NONE,
|
||||||
|
ENUM_X_BOUNDARY_PRICE priceType = X_BOUNDARY_PRICE_HIGH_LOW //
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
int result = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Normalize ...
|
||||||
|
loopback = NormalizeInt(loopback, 1);
|
||||||
|
barIndex = NormalizeBarIndex(barIndex);
|
||||||
|
|
||||||
|
//
|
||||||
|
if (!IsValid())
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
XOHCL iBar;
|
||||||
|
bool has = false;
|
||||||
|
double iValue = 0;
|
||||||
|
double affectedValue = 0;
|
||||||
|
double iConfirnValue = 0;
|
||||||
|
bool isBullish = !HasDirection(forDir) || IsXBullish(forDir);
|
||||||
|
bool isBearish = !HasDirection(forDir) || IsXBearish(forDir);
|
||||||
|
ENUM_X_PRICE bullishTouchUpperPriceType = priceType == X_BOUNDARY_PRICE_HIGH_LOW
|
||||||
|
? X_PRICE_HIGH
|
||||||
|
: X_PRICE_UP;
|
||||||
|
ENUM_X_PRICE bullishTouchLowerPriceType = priceType == X_BOUNDARY_PRICE_HIGH_LOW
|
||||||
|
? X_PRICE_LOW
|
||||||
|
: X_PRICE_DOWN;
|
||||||
|
ENUM_X_PRICE bearishTouchUpperPriceType = priceType == X_BOUNDARY_PRICE_HIGH_LOW
|
||||||
|
? X_PRICE_HIGH
|
||||||
|
: X_PRICE_UP;
|
||||||
|
ENUM_X_PRICE bearishTouchLowerPriceType = priceType == X_BOUNDARY_PRICE_HIGH_LOW
|
||||||
|
? X_PRICE_LOW
|
||||||
|
: X_PRICE_DOWN;
|
||||||
|
for (int i = barIndex; i < barIndex + loopback; i++)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
has = iBar.Init(symbol, period, i);
|
||||||
|
if (!has)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
affectedValue = helper.GetKIFast(i);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bullish Touches ...
|
||||||
|
if (isBullish)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iValue = iBar.GetPrice(bullishTouchLowerPriceType);
|
||||||
|
iConfirnValue = iBar.GetPrice(bullishTouchUpperPriceType);
|
||||||
|
has =
|
||||||
|
NotEmptyZero(iValue) &&
|
||||||
|
NotEmptyZero(affectedValue) &&
|
||||||
|
NotEmptyZero(iConfirnValue) &&
|
||||||
|
iValue <= affectedValue &&
|
||||||
|
iConfirnValue >= affectedValue;
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
result++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Bearish Touches ...
|
||||||
|
if (isBearish)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
iValue = iBar.GetPrice(bearishTouchUpperPriceType);
|
||||||
|
iConfirnValue = iBar.GetPrice(bearishTouchLowerPriceType);
|
||||||
|
has =
|
||||||
|
NotEmptyZero(iValue) &&
|
||||||
|
NotEmptyZero(affectedValue) &&
|
||||||
|
NotEmptyZero(iConfirnValue) &&
|
||||||
|
iValue >= affectedValue &&
|
||||||
|
iConfirnValue <= affectedValue;
|
||||||
|
if (has)
|
||||||
|
{
|
||||||
|
result++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
iBar.Clean();
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
// #region KI Slow ...
|
// #region KI Slow ...
|
||||||
|
|||||||
@@ -989,6 +989,8 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
XBoxZone swingLow;
|
||||||
|
XBoxZone swingHigh;
|
||||||
ENUM_X_DIRECTION patternsDir[];
|
ENUM_X_DIRECTION patternsDir[];
|
||||||
ENUM_X_BAR_PATTERN patterns[];
|
ENUM_X_BAR_PATTERN patterns[];
|
||||||
poiDetector.FillStrategy1Patterns(
|
poiDetector.FillStrategy1Patterns(
|
||||||
@@ -997,34 +999,7 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
|||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
isBullish = poiDetector.HasRecentPatternRejected(
|
// Reading Swings ...
|
||||||
zone,
|
|
||||||
patterns,
|
|
||||||
patternsDir,
|
|
||||||
barIndex,
|
|
||||||
3, // Loopback ..
|
|
||||||
iBar.period,
|
|
||||||
X_DIRECTION_BULLISH //
|
|
||||||
);
|
|
||||||
if (!isBullish)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
isBearish = poiDetector.HasRecentPatternRejected(
|
|
||||||
zone,
|
|
||||||
patterns,
|
|
||||||
patternsDir,
|
|
||||||
barIndex,
|
|
||||||
3, // Loopback ..
|
|
||||||
iBar.period,
|
|
||||||
X_DIRECTION_BEARISH //
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// #region Swings/OrderFlow ...
|
|
||||||
//
|
|
||||||
// Swings ...
|
|
||||||
XBoxZone swingLow;
|
|
||||||
XBoxZone swingHigh;
|
|
||||||
poiDetector.DetectRecentSwings(
|
poiDetector.DetectRecentSwings(
|
||||||
swingHigh,
|
swingHigh,
|
||||||
swingLow,
|
swingLow,
|
||||||
@@ -1032,16 +1007,64 @@ class XCX121XKIStrategy1Signaller : public XCX121XKIBaseSignaller
|
|||||||
);
|
);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Order Flow ...
|
// Reading Order Flow ...
|
||||||
|
|
||||||
//
|
//
|
||||||
|
// Bullish Order Flow ...
|
||||||
XBoxZone bullishOrderFlow[];
|
XBoxZone bullishOrderFlow[];
|
||||||
|
int bullishOrderFlowRejectdIDX = -1;
|
||||||
poiDetector.HasOrderFlow(bullishOrderFlow, barIndex, 4, X_DIRECTION_BULLISH, 15);
|
poiDetector.HasOrderFlow(bullishOrderFlow, barIndex, 4, X_DIRECTION_BULLISH, 15);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
// Bearish Order Flow ...
|
||||||
XBoxZone bearishOrderFlow[];
|
XBoxZone bearishOrderFlow[];
|
||||||
|
int bearishOrderFlowRejectdIDX = -1;
|
||||||
poiDetector.HasOrderFlow(bearishOrderFlow, barIndex, 4, X_DIRECTION_BEARISH, 15);
|
poiDetector.HasOrderFlow(bearishOrderFlow, barIndex, 4, X_DIRECTION_BEARISH, 15);
|
||||||
// #endregion
|
|
||||||
|
//
|
||||||
|
// Base Conditions ...
|
||||||
|
|
||||||
|
//
|
||||||
|
isBullish =
|
||||||
|
IsTFBullishPattern(barIndex, PERIOD_M1) &&
|
||||||
|
IsTFBullishPattern(barIndex, PERIOD_M5) &&
|
||||||
|
IsTFBullishPattern(barIndex, iBar.period) &&
|
||||||
|
HasRejected(
|
||||||
|
bullishOrderFlowRejectdIDX,
|
||||||
|
iBar,
|
||||||
|
bullishOrderFlow //
|
||||||
|
) &&
|
||||||
|
poiDetector.HasRecentPatternRejected(
|
||||||
|
zone,
|
||||||
|
patterns,
|
||||||
|
patternsDir,
|
||||||
|
barIndex,
|
||||||
|
3, // Loopback ..
|
||||||
|
iBar.period,
|
||||||
|
X_DIRECTION_BULLISH //
|
||||||
|
);
|
||||||
|
if (!isBullish)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
isBearish =
|
||||||
|
IsTFBearishPattern(barIndex, PERIOD_M1) &&
|
||||||
|
IsTFBearishPattern(barIndex, PERIOD_M5) &&
|
||||||
|
IsTFBearishPattern(barIndex, iBar.period) &&
|
||||||
|
HasRejected(
|
||||||
|
bearishOrderFlowRejectdIDX,
|
||||||
|
iBar,
|
||||||
|
bearishOrderFlow //
|
||||||
|
) &&
|
||||||
|
poiDetector.HasRecentPatternRejected(
|
||||||
|
zone,
|
||||||
|
patterns,
|
||||||
|
patternsDir,
|
||||||
|
barIndex,
|
||||||
|
3, // Loopback ..
|
||||||
|
iBar.period,
|
||||||
|
X_DIRECTION_BEARISH //
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Validate Conditions ...
|
// Validate Conditions ...
|
||||||
|
|||||||
@@ -1267,7 +1267,7 @@ class XCX121XKIPOIDetector : public XCMarketPatternDetector
|
|||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
// #region Zone Detectors ...
|
// #region Zone Detectors ...
|
||||||
|
|||||||
Reference in New Issue
Block a user