apply some fix on implementing new structure ...

This commit is contained in:
2024-08-05 05:46:03 +03:30
parent 35d1eab8fb
commit fe218ac7d2
11 changed files with 564 additions and 272876 deletions
+144 -2
View File
@@ -3945,6 +3945,54 @@ public:
return result; return result;
} }
//
// Conditions only save for Loss Signals ...
// this means the profit must be Lower than Zero ...
// ans also message Contains SL ...
bool SaveConditions(XTradeData &item)
{
//
bool result = false;
//
// Validate Item ...
result =
//
item.profit < 0 &&
Contains("SL", item.message)
//
;
if (!result)
{
return result;
}
//
string content = item.signal.conditions;
result = IsValid(content);
if (!result)
{
return result;
}
//
int mHandler = GetConditionsFileHandlerForWrite(item);
result = mHandler != INVALID_HANDLE;
if (!result)
{
return result;
}
//
FileSeek(mHandler, 0, SEEK_END);
FileWrite(mHandler, content);
FileFlush(mHandler);
FileClose(mHandler);
//
return result;
}
// //
// Protected ... // Protected ...
protected: protected:
@@ -4010,6 +4058,37 @@ private:
return result; return result;
} }
//
string GetConditionsFilePath(XTradeData &item)
{
//
bool isLong = IsLong(item.type);
//
string fileName =
isLong
? "Longs"
: "Shorts";
//
return GetConditionsFilePath(fileName);
}
string GetConditionsFilePath(string fileName)
{
//
string result = "";
//
result =
//
mPath + "\\" + "Conditions" + "\\" + fileName + ".x121.log"
//
;
//
return result;
}
// //
int GetFileHandlerForRead(XTradeData &item) int GetFileHandlerForRead(XTradeData &item)
{ {
@@ -4097,6 +4176,50 @@ private:
// //
return result; return result;
} }
//
int GetConditionsFileHandlerForRead(XTradeData &item)
{
//
int result = INVALID_HANDLE;
//
string filePath = GetConditionsFilePath(item);
if (!IsValid(filePath))
{
return result;
}
//
result = FileOpen(
filePath,
FILE_READ | FILE_TXT //
);
//
return result;
}
int GetConditionsFileHandlerForWrite(XTradeData &item)
{
//
int result = INVALID_HANDLE;
//
string filePath = GetConditionsFilePath(item);
if (!IsValid(filePath))
{
return result;
}
//
result = FileOpen(
filePath,
FILE_READ | FILE_WRITE | FILE_TXT //
);
//
return result;
}
}; };
// //
@@ -4153,6 +4276,18 @@ public:
mSaveTrades = value; mSaveTrades = value;
} }
//
bool SaveConditions()
{
return mSaveConditions;
}
//
void SaveConditions(bool value)
{
mSaveConditions = value;
}
// //
int MaxSameTimeTrades() int MaxSameTimeTrades()
{ {
@@ -5661,8 +5796,9 @@ protected:
// Props ... // Props ...
// //
bool mSaveSignals; // Save Signals bool mSaveSignals; // Save Signals
bool mSaveTrades; // Save Trades bool mSaveTrades; // Save Trades
bool mSaveConditions; // Save SL Conditions
// //
bool mAllowLong; // Allow Long/Buy Trade Type bool mAllowLong; // Allow Long/Buy Trade Type
@@ -5890,6 +6026,12 @@ private:
mCollector.Save(mData[index]); mCollector.Save(mData[index]);
} }
//
if (mSaveConditions)
{
mCollector.SaveConditions(mData[index]);
}
// //
// Remove Item From List ... // Remove Item From List ...
ArrayRemove( ArrayRemove(
View File
+2 -1
View File
@@ -57,7 +57,7 @@ input double eaR2R = 1.5; // Risk to Reward Ratio for Dynamic TP S
input bool eaUseFixedTPSLPoints = true; // Use Fixed TP SL in Points input bool eaUseFixedTPSLPoints = true; // Use Fixed TP SL in Points
input bool eaIgnoreTP = false; // Ignore TP input bool eaIgnoreTP = false; // Ignore TP
input bool eaIgnoreSL = false; // Ignore SL input bool eaIgnoreSL = false; // Ignore SL
input double eaTPPoint = 150; // Static TP Point input double eaTPPoint = 200; // Static TP Point
input double eaSLPoint = 500; // Static SL Point input double eaSLPoint = 500; // Static SL Point
// //
@@ -343,6 +343,7 @@ bool InitialEA()
eaTradeHandler = new XSCXTradeHandler(eaTrader); eaTradeHandler = new XSCXTradeHandler(eaTrader);
eaTradeHandler.SaveTrades(true); eaTradeHandler.SaveTrades(true);
eaTradeHandler.SaveSignals(true); eaTradeHandler.SaveSignals(true);
eaTradeHandler.SaveConditions(true);
// //
// Configure Alerts ... // Configure Alerts ...
+5
View File
@@ -3409,6 +3409,7 @@ struct XTradeData
datetime endTime; // End Time datetime endTime; // End Time
// //
XSignal signal; // Signal Object
int pushers; // Signal Pushers int pushers; // Signal Pushers
string conditions; // Signal Conditions string conditions; // Signal Conditions
@@ -3438,6 +3439,7 @@ struct XTradeData
} }
// //
signal = _signal;
time = _signal.time; time = _signal.time;
entry = _signal.entry; entry = _signal.entry;
symbol = _signal.symbol; symbol = _signal.symbol;
@@ -3547,6 +3549,9 @@ struct XTradeData
commission = 0; commission = 0;
maxDrawdown = 0; maxDrawdown = 0;
//
signal.Clean();
// //
ResetTrail(); ResetTrail();
ResetRecovery(); ResetRecovery();
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+378 -354
View File
@@ -40,6 +40,9 @@ struct XCHStartegyConditionsParser
// //
// Parsers ... // Parsers ...
//
XSymbolParser _symbolParser;
// //
XCHStartegyEURUSDLongConditionsParser _eurusdLongParser; XCHStartegyEURUSDLongConditionsParser _eurusdLongParser;
XCHStartegyEURUSDShortConditionsParser _eurusdShortParser; XCHStartegyEURUSDShortConditionsParser _eurusdShortParser;
@@ -63,19 +66,14 @@ struct XCHStartegyConditionsParser
// //
// Generate Signal Parser Structured Conditions ... // Generate Signal Parser Structured Conditions ...
string result = string result =
"---------------" + "\n" + "(" +
"Scores:" + "\n" + "\n" +
"---------------" + "\n" +
"Bullish: " + ToString(bullishScore) + "\n" +
"Bearish: " + ToString(bearishScore) + "\n" +
"---------------" + "\n"
"(" + "\n" +
"// ---------------" + "\n" + "// ---------------" + "\n" +
"// Scores:" + "\n" + "// Scores:" + "\n" +
"// ---------------" + "\n" + "// ---------------" + "\n" +
"// Bullish: " + ToString(bullishScore) + "\n" + "// Bullish: " + ToString(bullishScore) + "\n" +
"// Bearish: " + ToString(bearishScore) + "\n" + "// Bearish: " + ToString(bearishScore) + "\n" +
"// ---------------" + "\n" "// ---------------" + "\n" +
"// Time: " + ToString(TimeCurrent()) + "\n" + "// Time: " + ToString(TimeCurrent()) + "\n" +
"// ---------------" + "\n" + "// ---------------" + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -160,86 +158,86 @@ struct XCHStartegyConditionsParser
(conditions.pvConditions.isHCSwitchedToBearish ? "conditions.pvConditions.isHCSwitchedToBearish &&" + "\n" : "") + (conditions.pvConditions.isHCSwitchedToBearish ? "conditions.pvConditions.isHCSwitchedToBearish &&" + "\n" : "") +
(conditions.pvConditions.isHCHHSwitchedToBearish ? "conditions.pvConditions.isHCHHSwitchedToBearish &&" + "\n" : "") + (conditions.pvConditions.isHCHHSwitchedToBearish ? "conditions.pvConditions.isHCHHSwitchedToBearish &&" + "\n" : "") +
(conditions.pvConditions.isHCLLSwitchedToBeraish ? "conditions.pvConditions.isHCLLSwitchedToBeraish &&" + "\n" : "") + (conditions.pvConditions.isHCLLSwitchedToBeraish ? "conditions.pvConditions.isHCLLSwitchedToBeraish &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
// // //
// False(s) ... // // False(s) ...
(!conditions.pvConditions.isNewPeak ? "!conditions.pvConditions.isNewPeak &&" + "\n" : "") + // (!conditions.pvConditions.isNewPeak ? "!conditions.pvConditions.isNewPeak &&" + "\n" : "") +
(!conditions.pvConditions.isNewPeakOverLast ? "!conditions.pvConditions.isNewPeakOverLast &&" + "\n" : "") + // (!conditions.pvConditions.isNewPeakOverLast ? "!conditions.pvConditions.isNewPeakOverLast &&" + "\n" : "") +
(!conditions.pvConditions.isNewPeakUnderLast ? "!conditions.pvConditions.isNewPeakUnderLast &&" + "\n" : "") + // (!conditions.pvConditions.isNewPeakUnderLast ? "!conditions.pvConditions.isNewPeakUnderLast &&" + "\n" : "") +
(!conditions.pvConditions.isNewVale ? "!conditions.pvConditions.isNewVale &&" + "\n" : "") + // (!conditions.pvConditions.isNewVale ? "!conditions.pvConditions.isNewVale &&" + "\n" : "") +
(!conditions.pvConditions.isNewValeOverLast ? "!conditions.pvConditions.isNewValeOverLast &&" + "\n" : "") + // (!conditions.pvConditions.isNewValeOverLast ? "!conditions.pvConditions.isNewValeOverLast &&" + "\n" : "") +
(!conditions.pvConditions.isNewValeUnderLast ? "!conditions.pvConditions.isNewValeUnderLast &&" + "\n" : "") + // (!conditions.pvConditions.isNewValeUnderLast ? "!conditions.pvConditions.isNewValeUnderLast &&" + "\n" : "") +
(!conditions.pvConditions.isFiboIncreased ? "!conditions.pvConditions.isFiboIncreased &&" + "\n" : "") + // (!conditions.pvConditions.isFiboIncreased ? "!conditions.pvConditions.isFiboIncreased &&" + "\n" : "") +
(!conditions.pvConditions.isFiboDecreased ? "!conditions.pvConditions.isFiboDecreased &&" + "\n" : "") + // (!conditions.pvConditions.isFiboDecreased ? "!conditions.pvConditions.isFiboDecreased &&" + "\n" : "") +
(!conditions.pvConditions.isFiboSectionChanged ? "!conditions.pvConditions.isFiboSectionChanged &&" + "\n" : "") + // (!conditions.pvConditions.isFiboSectionChanged ? "!conditions.pvConditions.isFiboSectionChanged &&" + "\n" : "") +
(!conditions.pvConditions.isCloseOverFib1 ? "!conditions.pvConditions.isCloseOverFib1 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseOverFib1 ? "!conditions.pvConditions.isCloseOverFib1 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseOverFib2 ? "!conditions.pvConditions.isCloseOverFib2 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseOverFib2 ? "!conditions.pvConditions.isCloseOverFib2 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseOverFib3 ? "!conditions.pvConditions.isCloseOverFib3 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseOverFib3 ? "!conditions.pvConditions.isCloseOverFib3 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseOverFib4 ? "!conditions.pvConditions.isCloseOverFib4 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseOverFib4 ? "!conditions.pvConditions.isCloseOverFib4 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseOverFib5 ? "!conditions.pvConditions.isCloseOverFib5 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseOverFib5 ? "!conditions.pvConditions.isCloseOverFib5 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseUnderFib1 ? "!conditions.pvConditions.isCloseUnderFib1 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseUnderFib1 ? "!conditions.pvConditions.isCloseUnderFib1 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseUnderFib2 ? "!conditions.pvConditions.isCloseUnderFib2 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseUnderFib2 ? "!conditions.pvConditions.isCloseUnderFib2 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseUnderFib3 ? "!conditions.pvConditions.isCloseUnderFib3 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseUnderFib3 ? "!conditions.pvConditions.isCloseUnderFib3 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseUnderFib4 ? "!conditions.pvConditions.isCloseUnderFib4 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseUnderFib4 ? "!conditions.pvConditions.isCloseUnderFib4 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseUnderFib5 ? "!conditions.pvConditions.isCloseUnderFib5 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseUnderFib5 ? "!conditions.pvConditions.isCloseUnderFib5 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedOverFib1 ? "!conditions.pvConditions.isCloseCrossedOverFib1 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedOverFib1 ? "!conditions.pvConditions.isCloseCrossedOverFib1 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedOverFib2 ? "!conditions.pvConditions.isCloseCrossedOverFib2 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedOverFib2 ? "!conditions.pvConditions.isCloseCrossedOverFib2 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedOverFib3 ? "!conditions.pvConditions.isCloseCrossedOverFib3 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedOverFib3 ? "!conditions.pvConditions.isCloseCrossedOverFib3 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedOverFib4 ? "!conditions.pvConditions.isCloseCrossedOverFib4 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedOverFib4 ? "!conditions.pvConditions.isCloseCrossedOverFib4 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedOverFib5 ? "!conditions.pvConditions.isCloseCrossedOverFib5 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedOverFib5 ? "!conditions.pvConditions.isCloseCrossedOverFib5 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedUnderFib1 ? "!conditions.pvConditions.isCloseCrossedUnderFib1 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedUnderFib1 ? "!conditions.pvConditions.isCloseCrossedUnderFib1 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedUnderFib2 ? "!conditions.pvConditions.isCloseCrossedUnderFib2 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedUnderFib2 ? "!conditions.pvConditions.isCloseCrossedUnderFib2 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedUnderFib3 ? "!conditions.pvConditions.isCloseCrossedUnderFib3 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedUnderFib3 ? "!conditions.pvConditions.isCloseCrossedUnderFib3 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedUnderFib4 ? "!conditions.pvConditions.isCloseCrossedUnderFib4 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedUnderFib4 ? "!conditions.pvConditions.isCloseCrossedUnderFib4 &&" + "\n" : "") +
(!conditions.pvConditions.isCloseCrossedUnderFib5 ? "!conditions.pvConditions.isCloseCrossedUnderFib5 &&" + "\n" : "") + // (!conditions.pvConditions.isCloseCrossedUnderFib5 ? "!conditions.pvConditions.isCloseCrossedUnderFib5 &&" + "\n" : "") +
(!conditions.pvConditions.isSCBullish ? "!conditions.pvConditions.isSCBullish &&" + "\n" : "") + // (!conditions.pvConditions.isSCBullish ? "!conditions.pvConditions.isSCBullish &&" + "\n" : "") +
(!conditions.pvConditions.isSCHHBullish ? "!conditions.pvConditions.isSCHHBullish &&" + "\n" : "") + // (!conditions.pvConditions.isSCHHBullish ? "!conditions.pvConditions.isSCHHBullish &&" + "\n" : "") +
(!conditions.pvConditions.isSCLLBullish ? "!conditions.pvConditions.isSCLLBullish &&" + "\n" : "") + // (!conditions.pvConditions.isSCLLBullish ? "!conditions.pvConditions.isSCLLBullish &&" + "\n" : "") +
(!conditions.pvConditions.isSCSwitchedToBullish ? "!conditions.pvConditions.isSCSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isSCSwitchedToBullish ? "!conditions.pvConditions.isSCSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isSCHHSwitchedToBullish ? "!conditions.pvConditions.isSCHHSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isSCHHSwitchedToBullish ? "!conditions.pvConditions.isSCHHSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isSCLLSwitchedToBullish ? "!conditions.pvConditions.isSCLLSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isSCLLSwitchedToBullish ? "!conditions.pvConditions.isSCLLSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isSCBearish ? "!conditions.pvConditions.isSCBearish &&" + "\n" : "") + // (!conditions.pvConditions.isSCBearish ? "!conditions.pvConditions.isSCBearish &&" + "\n" : "") +
(!conditions.pvConditions.isSCHHBearish ? "!conditions.pvConditions.isSCHHBearish &&" + "\n" : "") + // (!conditions.pvConditions.isSCHHBearish ? "!conditions.pvConditions.isSCHHBearish &&" + "\n" : "") +
(!conditions.pvConditions.isSCLLBearish ? "!conditions.pvConditions.isSCLLBearish &&" + "\n" : "") + // (!conditions.pvConditions.isSCLLBearish ? "!conditions.pvConditions.isSCLLBearish &&" + "\n" : "") +
(!conditions.pvConditions.isSCSwitchedToBearish ? "!conditions.pvConditions.isSCSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isSCSwitchedToBearish ? "!conditions.pvConditions.isSCSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isSCHHSwitchedToBearish ? "!conditions.pvConditions.isSCHHSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isSCHHSwitchedToBearish ? "!conditions.pvConditions.isSCHHSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isSCLLSwitchedToBeraish ? "!conditions.pvConditions.isSCLLSwitchedToBeraish &&" + "\n" : "") + // (!conditions.pvConditions.isSCLLSwitchedToBeraish ? "!conditions.pvConditions.isSCLLSwitchedToBeraish &&" + "\n" : "") +
(!conditions.pvConditions.isMCBullish ? "!conditions.pvConditions.isMCBullish &&" + "\n" : "") + // (!conditions.pvConditions.isMCBullish ? "!conditions.pvConditions.isMCBullish &&" + "\n" : "") +
(!conditions.pvConditions.isMCHHBullish ? "!conditions.pvConditions.isMCHHBullish &&" + "\n" : "") + // (!conditions.pvConditions.isMCHHBullish ? "!conditions.pvConditions.isMCHHBullish &&" + "\n" : "") +
(!conditions.pvConditions.isMCLLBullish ? "!conditions.pvConditions.isMCLLBullish &&" + "\n" : "") + // (!conditions.pvConditions.isMCLLBullish ? "!conditions.pvConditions.isMCLLBullish &&" + "\n" : "") +
(!conditions.pvConditions.isMCSwitchedToBullish ? "!conditions.pvConditions.isMCSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isMCSwitchedToBullish ? "!conditions.pvConditions.isMCSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isMCHHSwitchedToBullish ? "!conditions.pvConditions.isMCHHSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isMCHHSwitchedToBullish ? "!conditions.pvConditions.isMCHHSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isMCLLSwitchedToBullish ? "!conditions.pvConditions.isMCLLSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isMCLLSwitchedToBullish ? "!conditions.pvConditions.isMCLLSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isMCBearish ? "!conditions.pvConditions.isMCBearish &&" + "\n" : "") + // (!conditions.pvConditions.isMCBearish ? "!conditions.pvConditions.isMCBearish &&" + "\n" : "") +
(!conditions.pvConditions.isMCHHBearish ? "!conditions.pvConditions.isMCHHBearish &&" + "\n" : "") + // (!conditions.pvConditions.isMCHHBearish ? "!conditions.pvConditions.isMCHHBearish &&" + "\n" : "") +
(!conditions.pvConditions.isMCLLBearish ? "!conditions.pvConditions.isMCLLBearish &&" + "\n" : "") + // (!conditions.pvConditions.isMCLLBearish ? "!conditions.pvConditions.isMCLLBearish &&" + "\n" : "") +
(!conditions.pvConditions.isMCSwitchedToBearish ? "!conditions.pvConditions.isMCSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isMCSwitchedToBearish ? "!conditions.pvConditions.isMCSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isMCHHSwitchedToBearish ? "!conditions.pvConditions.isMCHHSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isMCHHSwitchedToBearish ? "!conditions.pvConditions.isMCHHSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isMCLLSwitchedToBeraish ? "!conditions.pvConditions.isMCLLSwitchedToBeraish &&" + "\n" : "") + // (!conditions.pvConditions.isMCLLSwitchedToBeraish ? "!conditions.pvConditions.isMCLLSwitchedToBeraish &&" + "\n" : "") +
(!conditions.pvConditions.isLCBullish ? "!conditions.pvConditions.isLCBullish &&" + "\n" : "") + // (!conditions.pvConditions.isLCBullish ? "!conditions.pvConditions.isLCBullish &&" + "\n" : "") +
(!conditions.pvConditions.isLCHHBullish ? "!conditions.pvConditions.isLCHHBullish &&" + "\n" : "") + // (!conditions.pvConditions.isLCHHBullish ? "!conditions.pvConditions.isLCHHBullish &&" + "\n" : "") +
(!conditions.pvConditions.isLCLLBullish ? "!conditions.pvConditions.isLCLLBullish &&" + "\n" : "") + // (!conditions.pvConditions.isLCLLBullish ? "!conditions.pvConditions.isLCLLBullish &&" + "\n" : "") +
(!conditions.pvConditions.isLCSwitchedToBullish ? "!conditions.pvConditions.isLCSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isLCSwitchedToBullish ? "!conditions.pvConditions.isLCSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isLCHHSwitchedToBullish ? "!conditions.pvConditions.isLCHHSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isLCHHSwitchedToBullish ? "!conditions.pvConditions.isLCHHSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isLCLLSwitchedToBullish ? "!conditions.pvConditions.isLCLLSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isLCLLSwitchedToBullish ? "!conditions.pvConditions.isLCLLSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isLCBearish ? "!conditions.pvConditions.isLCBearish &&" + "\n" : "") + // (!conditions.pvConditions.isLCBearish ? "!conditions.pvConditions.isLCBearish &&" + "\n" : "") +
(!conditions.pvConditions.isLCHHBearish ? "!conditions.pvConditions.isLCHHBearish &&" + "\n" : "") + // (!conditions.pvConditions.isLCHHBearish ? "!conditions.pvConditions.isLCHHBearish &&" + "\n" : "") +
(!conditions.pvConditions.isLCLLBearish ? "!conditions.pvConditions.isLCLLBearish &&" + "\n" : "") + // (!conditions.pvConditions.isLCLLBearish ? "!conditions.pvConditions.isLCLLBearish &&" + "\n" : "") +
(!conditions.pvConditions.isLCSwitchedToBearish ? "!conditions.pvConditions.isLCSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isLCSwitchedToBearish ? "!conditions.pvConditions.isLCSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isLCHHSwitchedToBearish ? "!conditions.pvConditions.isLCHHSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isLCHHSwitchedToBearish ? "!conditions.pvConditions.isLCHHSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isLCLLSwitchedToBeraish ? "!conditions.pvConditions.isLCLLSwitchedToBeraish &&" + "\n" : "") + // (!conditions.pvConditions.isLCLLSwitchedToBeraish ? "!conditions.pvConditions.isLCLLSwitchedToBeraish &&" + "\n" : "") +
(!conditions.pvConditions.isHCBullish ? "!conditions.pvConditions.isHCBullish &&" + "\n" : "") + // (!conditions.pvConditions.isHCBullish ? "!conditions.pvConditions.isHCBullish &&" + "\n" : "") +
(!conditions.pvConditions.isHCHHBullish ? "!conditions.pvConditions.isHCHHBullish &&" + "\n" : "") + // (!conditions.pvConditions.isHCHHBullish ? "!conditions.pvConditions.isHCHHBullish &&" + "\n" : "") +
(!conditions.pvConditions.isHCLLBullish ? "!conditions.pvConditions.isHCLLBullish &&" + "\n" : "") + // (!conditions.pvConditions.isHCLLBullish ? "!conditions.pvConditions.isHCLLBullish &&" + "\n" : "") +
(!conditions.pvConditions.isHCSwitchedToBullish ? "!conditions.pvConditions.isHCSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isHCSwitchedToBullish ? "!conditions.pvConditions.isHCSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isHCHHSwitchedToBullish ? "!conditions.pvConditions.isHCHHSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isHCHHSwitchedToBullish ? "!conditions.pvConditions.isHCHHSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isHCLLSwitchedToBullish ? "!conditions.pvConditions.isHCLLSwitchedToBullish &&" + "\n" : "") + // (!conditions.pvConditions.isHCLLSwitchedToBullish ? "!conditions.pvConditions.isHCLLSwitchedToBullish &&" + "\n" : "") +
(!conditions.pvConditions.isHCBearish ? "!conditions.pvConditions.isHCBearish &&" + "\n" : "") + // (!conditions.pvConditions.isHCBearish ? "!conditions.pvConditions.isHCBearish &&" + "\n" : "") +
(!conditions.pvConditions.isHCHHBearish ? "!conditions.pvConditions.isHCHHBearish &&" + "\n" : "") + // (!conditions.pvConditions.isHCHHBearish ? "!conditions.pvConditions.isHCHHBearish &&" + "\n" : "") +
(!conditions.pvConditions.isHCLLBearish ? "!conditions.pvConditions.isHCLLBearish &&" + "\n" : "") + // (!conditions.pvConditions.isHCLLBearish ? "!conditions.pvConditions.isHCLLBearish &&" + "\n" : "") +
(!conditions.pvConditions.isHCSwitchedToBearish ? "!conditions.pvConditions.isHCSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isHCSwitchedToBearish ? "!conditions.pvConditions.isHCSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isHCHHSwitchedToBearish ? "!conditions.pvConditions.isHCHHSwitchedToBearish &&" + "\n" : "") + // (!conditions.pvConditions.isHCHHSwitchedToBearish ? "!conditions.pvConditions.isHCHHSwitchedToBearish &&" + "\n" : "") +
(!conditions.pvConditions.isHCLLSwitchedToBeraish ? "!conditions.pvConditions.isHCLLSwitchedToBeraish &&" + "\n" : "") + // (!conditions.pvConditions.isHCLLSwitchedToBeraish ? "!conditions.pvConditions.isHCLLSwitchedToBeraish &&" + "\n" : "") +
"//" + "\n" + "//" + "\n" +
"// XCHM ..." + "\n" + "// XCHM ..." + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -287,51 +285,51 @@ struct XCHStartegyConditionsParser
(conditions.chmConditions.isHFastCrossedUnderSlow ? "conditions.chmConditions.isHFastCrossedUnderSlow &&" + "\n" : "") + (conditions.chmConditions.isHFastCrossedUnderSlow ? "conditions.chmConditions.isHFastCrossedUnderSlow &&" + "\n" : "") +
(conditions.chmConditions.isClosedOverHFast ? "conditions.chmConditions.isClosedOverHFast &&" + "\n" : "") + (conditions.chmConditions.isClosedOverHFast ? "conditions.chmConditions.isClosedOverHFast &&" + "\n" : "") +
(conditions.chmConditions.isClosedUnderHFast ? "conditions.chmConditions.isClosedUnderHFast &&" + "\n" : "") + (conditions.chmConditions.isClosedUnderHFast ? "conditions.chmConditions.isClosedUnderHFast &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
(!conditions.chmConditions.hasBullishPower ? "!conditions.chmConditions.hasBullishPower &&" + "\n" : "") + // (!conditions.chmConditions.hasBullishPower ? "!conditions.chmConditions.hasBullishPower &&" + "\n" : "") +
(!conditions.chmConditions.hasBearishPower ? "!conditions.chmConditions.hasBearishPower &&" + "\n" : "") + // (!conditions.chmConditions.hasBearishPower ? "!conditions.chmConditions.hasBearishPower &&" + "\n" : "") +
(!conditions.chmConditions.isBullishPowerUp ? "!conditions.chmConditions.isBullishPowerUp &&" + "\n" : "") + // (!conditions.chmConditions.isBullishPowerUp ? "!conditions.chmConditions.isBullishPowerUp &&" + "\n" : "") +
(!conditions.chmConditions.isBearishPowerUp ? "!conditions.chmConditions.isBearishPowerUp &&" + "\n" : "") + // (!conditions.chmConditions.isBearishPowerUp ? "!conditions.chmConditions.isBearishPowerUp &&" + "\n" : "") +
(!conditions.chmConditions.isBullishPowerIncreasing ? "!conditions.chmConditions.isBullishPowerIncreasing &&" + "\n" : "") + // (!conditions.chmConditions.isBullishPowerIncreasing ? "!conditions.chmConditions.isBullishPowerIncreasing &&" + "\n" : "") +
(!conditions.chmConditions.isBullishPowerDecreasing ? "!conditions.chmConditions.isBullishPowerDecreasing &&" + "\n" : "") + // (!conditions.chmConditions.isBullishPowerDecreasing ? "!conditions.chmConditions.isBullishPowerDecreasing &&" + "\n" : "") +
(!conditions.chmConditions.isBearishPowerIncreasing ? "!conditions.chmConditions.isBearishPowerIncreasing &&" + "\n" : "") + // (!conditions.chmConditions.isBearishPowerIncreasing ? "!conditions.chmConditions.isBearishPowerIncreasing &&" + "\n" : "") +
(!conditions.chmConditions.isBearishPowerDecreasing ? "!conditions.chmConditions.isBearishPowerDecreasing &&" + "\n" : "") + // (!conditions.chmConditions.isBearishPowerDecreasing ? "!conditions.chmConditions.isBearishPowerDecreasing &&" + "\n" : "") +
(!conditions.chmConditions.isFastOverSlow ? "!conditions.chmConditions.isFastOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isFastOverSlow ? "!conditions.chmConditions.isFastOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isFastUnderSlow ? "!conditions.chmConditions.isFastUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isFastUnderSlow ? "!conditions.chmConditions.isFastUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isFastCrossedOverSlow ? "!conditions.chmConditions.isFastCrossedOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isFastCrossedOverSlow ? "!conditions.chmConditions.isFastCrossedOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isFastCrossedUnderSlow ? "!conditions.chmConditions.isFastCrossedUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isFastCrossedUnderSlow ? "!conditions.chmConditions.isFastCrossedUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isClosedOverFast ? "!conditions.chmConditions.isClosedOverFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedOverFast ? "!conditions.chmConditions.isClosedOverFast &&" + "\n" : "") +
(!conditions.chmConditions.isClosedUnderFast ? "!conditions.chmConditions.isClosedUnderFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedUnderFast ? "!conditions.chmConditions.isClosedUnderFast &&" + "\n" : "") +
(!conditions.chmConditions.isCFastOverSlow ? "!conditions.chmConditions.isCFastOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isCFastOverSlow ? "!conditions.chmConditions.isCFastOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isCFastUnderSlow ? "!conditions.chmConditions.isCFastUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isCFastUnderSlow ? "!conditions.chmConditions.isCFastUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isCFastCrossedOverSlow ? "!conditions.chmConditions.isCFastCrossedOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isCFastCrossedOverSlow ? "!conditions.chmConditions.isCFastCrossedOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isCFastCrossedUnderSlow ? "!conditions.chmConditions.isCFastCrossedUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isCFastCrossedUnderSlow ? "!conditions.chmConditions.isCFastCrossedUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isClosedOverCFast ? "!conditions.chmConditions.isClosedOverCFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedOverCFast ? "!conditions.chmConditions.isClosedOverCFast &&" + "\n" : "") +
(!conditions.chmConditions.isClosedUnderCFast ? "!conditions.chmConditions.isClosedUnderCFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedUnderCFast ? "!conditions.chmConditions.isClosedUnderCFast &&" + "\n" : "") +
(!conditions.chmConditions.isSFastOverSlow ? "!conditions.chmConditions.isSFastOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isSFastOverSlow ? "!conditions.chmConditions.isSFastOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isSFastUnderSlow ? "!conditions.chmConditions.isSFastUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isSFastUnderSlow ? "!conditions.chmConditions.isSFastUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isSFastCrossedOverSlow ? "!conditions.chmConditions.isSFastCrossedOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isSFastCrossedOverSlow ? "!conditions.chmConditions.isSFastCrossedOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isSFastCrossedUnderSlow ? "!conditions.chmConditions.isSFastCrossedUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isSFastCrossedUnderSlow ? "!conditions.chmConditions.isSFastCrossedUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isClosedOverSFast ? "!conditions.chmConditions.isClosedOverSFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedOverSFast ? "!conditions.chmConditions.isClosedOverSFast &&" + "\n" : "") +
(!conditions.chmConditions.isClosedUnderSFast ? "!conditions.chmConditions.isClosedUnderSFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedUnderSFast ? "!conditions.chmConditions.isClosedUnderSFast &&" + "\n" : "") +
(!conditions.chmConditions.isMFastOverSlow ? "!conditions.chmConditions.isMFastOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isMFastOverSlow ? "!conditions.chmConditions.isMFastOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isMFastUnderSlow ? "!conditions.chmConditions.isMFastUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isMFastUnderSlow ? "!conditions.chmConditions.isMFastUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isMFastCrossedOverSlow ? "!conditions.chmConditions.isMFastCrossedOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isMFastCrossedOverSlow ? "!conditions.chmConditions.isMFastCrossedOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isMFastCrossedUnderSlow ? "!conditions.chmConditions.isMFastCrossedUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isMFastCrossedUnderSlow ? "!conditions.chmConditions.isMFastCrossedUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isClosedOverMFast ? "!conditions.chmConditions.isClosedOverMFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedOverMFast ? "!conditions.chmConditions.isClosedOverMFast &&" + "\n" : "") +
(!conditions.chmConditions.isClosedUnderMFast ? "!conditions.chmConditions.isClosedUnderMFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedUnderMFast ? "!conditions.chmConditions.isClosedUnderMFast &&" + "\n" : "") +
(!conditions.chmConditions.isLFastOverSlow ? "!conditions.chmConditions.isLFastOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isLFastOverSlow ? "!conditions.chmConditions.isLFastOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isLFastUnderSlow ? "!conditions.chmConditions.isLFastUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isLFastUnderSlow ? "!conditions.chmConditions.isLFastUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isLFastCrossedOverSlow ? "!conditions.chmConditions.isLFastCrossedOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isLFastCrossedOverSlow ? "!conditions.chmConditions.isLFastCrossedOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isLFastCrossedUnderSlow ? "!conditions.chmConditions.isLFastCrossedUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isLFastCrossedUnderSlow ? "!conditions.chmConditions.isLFastCrossedUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isClosedOverLFast ? "!conditions.chmConditions.isClosedOverLFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedOverLFast ? "!conditions.chmConditions.isClosedOverLFast &&" + "\n" : "") +
(!conditions.chmConditions.isClosedUnderLFast ? "!conditions.chmConditions.isClosedUnderLFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedUnderLFast ? "!conditions.chmConditions.isClosedUnderLFast &&" + "\n" : "") +
(!conditions.chmConditions.isHFastOverSlow ? "!conditions.chmConditions.isHFastOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isHFastOverSlow ? "!conditions.chmConditions.isHFastOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isHFastUnderSlow ? "!conditions.chmConditions.isHFastUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isHFastUnderSlow ? "!conditions.chmConditions.isHFastUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isHFastCrossedOverSlow ? "!conditions.chmConditions.isHFastCrossedOverSlow &&" + "\n" : "") + // (!conditions.chmConditions.isHFastCrossedOverSlow ? "!conditions.chmConditions.isHFastCrossedOverSlow &&" + "\n" : "") +
(!conditions.chmConditions.isHFastCrossedUnderSlow ? "!conditions.chmConditions.isHFastCrossedUnderSlow &&" + "\n" : "") + // (!conditions.chmConditions.isHFastCrossedUnderSlow ? "!conditions.chmConditions.isHFastCrossedUnderSlow &&" + "\n" : "") +
(!conditions.chmConditions.isClosedOverHFast ? "!conditions.chmConditions.isClosedOverHFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedOverHFast ? "!conditions.chmConditions.isClosedOverHFast &&" + "\n" : "") +
(!conditions.chmConditions.isClosedUnderHFast ? "!conditions.chmConditions.isClosedUnderHFast &&" + "\n" : "") + // (!conditions.chmConditions.isClosedUnderHFast ? "!conditions.chmConditions.isClosedUnderHFast &&" + "\n" : "") +
"//" + "\n" + "//" + "\n" +
"// XCHHK ..." + "\n" + "// XCHHK ..." + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -373,45 +371,45 @@ struct XCHStartegyConditionsParser
(conditions.chhkConditions.isHSwitchedToBearish ? "conditions.chhkConditions.isHSwitchedToBearish &&" + "\n" : "") + (conditions.chhkConditions.isHSwitchedToBearish ? "conditions.chhkConditions.isHSwitchedToBearish &&" + "\n" : "") +
(conditions.chhkConditions.isCloseOverHHigh ? "conditions.chhkConditions.isCloseOverHHigh &&" + "\n" : "") + (conditions.chhkConditions.isCloseOverHHigh ? "conditions.chhkConditions.isCloseOverHHigh &&" + "\n" : "") +
(conditions.chhkConditions.isCloseUnderHLow ? "conditions.chhkConditions.isCloseUnderHLow &&" + "\n" : "") + (conditions.chhkConditions.isCloseUnderHLow ? "conditions.chhkConditions.isCloseUnderHLow &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
(!conditions.chhkConditions.hasBullishPower ? "!conditions.chhkConditions.hasBullishPower && " + "\n" : "") + // (!conditions.chhkConditions.hasBullishPower ? "!conditions.chhkConditions.hasBullishPower && " + "\n" : "") +
(!conditions.chhkConditions.hasBearishPower ? "!conditions.chhkConditions.hasBearishPower && " + "\n" : "") + // (!conditions.chhkConditions.hasBearishPower ? "!conditions.chhkConditions.hasBearishPower && " + "\n" : "") +
(!conditions.chhkConditions.isBullishPowerUp ? "!conditions.chhkConditions.isBullishPowerUp && " + "\n" : "") + // (!conditions.chhkConditions.isBullishPowerUp ? "!conditions.chhkConditions.isBullishPowerUp && " + "\n" : "") +
(!conditions.chhkConditions.isBearishPowerUp ? "!conditions.chhkConditions.isBearishPowerUp && " + "\n" : "") + // (!conditions.chhkConditions.isBearishPowerUp ? "!conditions.chhkConditions.isBearishPowerUp && " + "\n" : "") +
(!conditions.chhkConditions.isBullishPowerIncreasing ? "!conditions.chhkConditions.isBullishPowerIncreasing && " + "\n" : "") + // (!conditions.chhkConditions.isBullishPowerIncreasing ? "!conditions.chhkConditions.isBullishPowerIncreasing && " + "\n" : "") +
(!conditions.chhkConditions.isBullishPowerDecreasing ? "!conditions.chhkConditions.isBullishPowerDecreasing && " + "\n" : "") + // (!conditions.chhkConditions.isBullishPowerDecreasing ? "!conditions.chhkConditions.isBullishPowerDecreasing && " + "\n" : "") +
(!conditions.chhkConditions.isBearishPowerIncreasing ? "!conditions.chhkConditions.isBearishPowerIncreasing && " + "\n" : "") + // (!conditions.chhkConditions.isBearishPowerIncreasing ? "!conditions.chhkConditions.isBearishPowerIncreasing && " + "\n" : "") +
(!conditions.chhkConditions.isBearishPowerDecreasing ? "!conditions.chhkConditions.isBearishPowerDecreasing && " + "\n" : "") + // (!conditions.chhkConditions.isBearishPowerDecreasing ? "!conditions.chhkConditions.isBearishPowerDecreasing && " + "\n" : "") +
(!conditions.chhkConditions.isCBullish ? "!conditions.chhkConditions.isCBullish && " + "\n" : "") + // (!conditions.chhkConditions.isCBullish ? "!conditions.chhkConditions.isCBullish && " + "\n" : "") +
(!conditions.chhkConditions.isCSwitchedToBullish ? "!conditions.chhkConditions.isCSwitchedToBullish && " + "\n" : "") + // (!conditions.chhkConditions.isCSwitchedToBullish ? "!conditions.chhkConditions.isCSwitchedToBullish && " + "\n" : "") +
(!conditions.chhkConditions.isCBearish ? "!conditions.chhkConditions.isCBearish && " + "\n" : "") + // (!conditions.chhkConditions.isCBearish ? "!conditions.chhkConditions.isCBearish && " + "\n" : "") +
(!conditions.chhkConditions.isCSwitchedToBearish ? "!conditions.chhkConditions.isCSwitchedToBearish && " + "\n" : "") + // (!conditions.chhkConditions.isCSwitchedToBearish ? "!conditions.chhkConditions.isCSwitchedToBearish && " + "\n" : "") +
(!conditions.chhkConditions.isCloseOverCHigh ? "!conditions.chhkConditions.isCloseOverCHigh && " + "\n" : "") + // (!conditions.chhkConditions.isCloseOverCHigh ? "!conditions.chhkConditions.isCloseOverCHigh && " + "\n" : "") +
(!conditions.chhkConditions.isCloseUnderCLow ? "!conditions.chhkConditions.isCloseUnderCLow && " + "\n" : "") + // (!conditions.chhkConditions.isCloseUnderCLow ? "!conditions.chhkConditions.isCloseUnderCLow && " + "\n" : "") +
(!conditions.chhkConditions.isSBullish ? "!conditions.chhkConditions.isSBullish && " + "\n" : "") + // (!conditions.chhkConditions.isSBullish ? "!conditions.chhkConditions.isSBullish && " + "\n" : "") +
(!conditions.chhkConditions.isSSwitchedToBullish ? "!conditions.chhkConditions.isSSwitchedToBullish && " + "\n" : "") + // (!conditions.chhkConditions.isSSwitchedToBullish ? "!conditions.chhkConditions.isSSwitchedToBullish && " + "\n" : "") +
(!conditions.chhkConditions.isSBearish ? "!conditions.chhkConditions.isSBearish && " + "\n" : "") + // (!conditions.chhkConditions.isSBearish ? "!conditions.chhkConditions.isSBearish && " + "\n" : "") +
(!conditions.chhkConditions.isSSwitchedToBearish ? "!conditions.chhkConditions.isSSwitchedToBearish && " + "\n" : "") + // (!conditions.chhkConditions.isSSwitchedToBearish ? "!conditions.chhkConditions.isSSwitchedToBearish && " + "\n" : "") +
(!conditions.chhkConditions.isCloseOverSHigh ? "!conditions.chhkConditions.isCloseOverSHigh && " + "\n" : "") + // (!conditions.chhkConditions.isCloseOverSHigh ? "!conditions.chhkConditions.isCloseOverSHigh && " + "\n" : "") +
(!conditions.chhkConditions.isCloseUnderSLow ? "!conditions.chhkConditions.isCloseUnderSLow && " + "\n" : "") + // (!conditions.chhkConditions.isCloseUnderSLow ? "!conditions.chhkConditions.isCloseUnderSLow && " + "\n" : "") +
(!conditions.chhkConditions.isMBullish ? "!conditions.chhkConditions.isMBullish && " + "\n" : "") + // (!conditions.chhkConditions.isMBullish ? "!conditions.chhkConditions.isMBullish && " + "\n" : "") +
(!conditions.chhkConditions.isMSwitchedToBullish ? "!conditions.chhkConditions.isMSwitchedToBullish && " + "\n" : "") + // (!conditions.chhkConditions.isMSwitchedToBullish ? "!conditions.chhkConditions.isMSwitchedToBullish && " + "\n" : "") +
(!conditions.chhkConditions.isMBearish ? "!conditions.chhkConditions.isMBearish && " + "\n" : "") + // (!conditions.chhkConditions.isMBearish ? "!conditions.chhkConditions.isMBearish && " + "\n" : "") +
(!conditions.chhkConditions.isMSwitchedToBearish ? "!conditions.chhkConditions.isMSwitchedToBearish && " + "\n" : "") + // (!conditions.chhkConditions.isMSwitchedToBearish ? "!conditions.chhkConditions.isMSwitchedToBearish && " + "\n" : "") +
(!conditions.chhkConditions.isCloseOverMHigh ? "!conditions.chhkConditions.isCloseOverMHigh && " + "\n" : "") + // (!conditions.chhkConditions.isCloseOverMHigh ? "!conditions.chhkConditions.isCloseOverMHigh && " + "\n" : "") +
(!conditions.chhkConditions.isCloseUnderMLow ? "!conditions.chhkConditions.isCloseUnderMLow && " + "\n" : "") + // (!conditions.chhkConditions.isCloseUnderMLow ? "!conditions.chhkConditions.isCloseUnderMLow && " + "\n" : "") +
(!conditions.chhkConditions.isLBullish ? "!conditions.chhkConditions.isLBullish && " + "\n" : "") + // (!conditions.chhkConditions.isLBullish ? "!conditions.chhkConditions.isLBullish && " + "\n" : "") +
(!conditions.chhkConditions.isLSwitchedToBullish ? "!conditions.chhkConditions.isLSwitchedToBullish && " + "\n" : "") + // (!conditions.chhkConditions.isLSwitchedToBullish ? "!conditions.chhkConditions.isLSwitchedToBullish && " + "\n" : "") +
(!conditions.chhkConditions.isLBearish ? "!conditions.chhkConditions.isLBearish && " + "\n" : "") + // (!conditions.chhkConditions.isLBearish ? "!conditions.chhkConditions.isLBearish && " + "\n" : "") +
(!conditions.chhkConditions.isLSwitchedToBearish ? "!conditions.chhkConditions.isLSwitchedToBearish && " + "\n" : "") + // (!conditions.chhkConditions.isLSwitchedToBearish ? "!conditions.chhkConditions.isLSwitchedToBearish && " + "\n" : "") +
(!conditions.chhkConditions.isCloseOverLHigh ? "!conditions.chhkConditions.isCloseOverLHigh && " + "\n" : "") + // (!conditions.chhkConditions.isCloseOverLHigh ? "!conditions.chhkConditions.isCloseOverLHigh && " + "\n" : "") +
(!conditions.chhkConditions.isCloseUnderLLow ? "!conditions.chhkConditions.isCloseUnderLLow && " + "\n" : "") + // (!conditions.chhkConditions.isCloseUnderLLow ? "!conditions.chhkConditions.isCloseUnderLLow && " + "\n" : "") +
(!conditions.chhkConditions.isHBullish ? "!conditions.chhkConditions.isHBullish && " + "\n" : "") + // (!conditions.chhkConditions.isHBullish ? "!conditions.chhkConditions.isHBullish && " + "\n" : "") +
(!conditions.chhkConditions.isHSwitchedToBullish ? "!conditions.chhkConditions.isHSwitchedToBullish && " + "\n" : "") + // (!conditions.chhkConditions.isHSwitchedToBullish ? "!conditions.chhkConditions.isHSwitchedToBullish && " + "\n" : "") +
(!conditions.chhkConditions.isHBearish ? "!conditions.chhkConditions.isHBearish && " + "\n" : "") + // (!conditions.chhkConditions.isHBearish ? "!conditions.chhkConditions.isHBearish && " + "\n" : "") +
(!conditions.chhkConditions.isHSwitchedToBearish ? "!conditions.chhkConditions.isHSwitchedToBearish && " + "\n" : "") + // (!conditions.chhkConditions.isHSwitchedToBearish ? "!conditions.chhkConditions.isHSwitchedToBearish && " + "\n" : "") +
(!conditions.chhkConditions.isCloseOverHHigh ? "!conditions.chhkConditions.isCloseOverHHigh && " + "\n" : "") + // (!conditions.chhkConditions.isCloseOverHHigh ? "!conditions.chhkConditions.isCloseOverHHigh && " + "\n" : "") +
(!conditions.chhkConditions.isCloseUnderHLow ? "!conditions.chhkConditions.isCloseUnderHLow && " + "\n" : "") + // (!conditions.chhkConditions.isCloseUnderHLow ? "!conditions.chhkConditions.isCloseUnderHLow && " + "\n" : "") +
"//" + "\n" + "//" + "\n" +
"// XCHTD ..." + "\n" + "// XCHTD ..." + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -443,35 +441,35 @@ struct XCHStartegyConditionsParser
(conditions.chtdConditions.isHBearish ? "conditions.chtdConditions.isHBearish &&" + "\n" : "") + (conditions.chtdConditions.isHBearish ? "conditions.chtdConditions.isHBearish &&" + "\n" : "") +
(conditions.chtdConditions.isHSwitchedToBullish ? "conditions.chtdConditions.isHSwitchedToBullish &&" + "\n" : "") + (conditions.chtdConditions.isHSwitchedToBullish ? "conditions.chtdConditions.isHSwitchedToBullish &&" + "\n" : "") +
(conditions.chtdConditions.isHSwitchedToBearish ? "conditions.chtdConditions.isHSwitchedToBearish &&" + "\n" : "") + (conditions.chtdConditions.isHSwitchedToBearish ? "conditions.chtdConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
(!conditions.chtdConditions.hasBullishPower ? "!conditions.chtdConditions.hasBullishPower &&" + "\n" : "") + // (!conditions.chtdConditions.hasBullishPower ? "!conditions.chtdConditions.hasBullishPower &&" + "\n" : "") +
(!conditions.chtdConditions.hasBearishPower ? "!conditions.chtdConditions.hasBearishPower &&" + "\n" : "") + // (!conditions.chtdConditions.hasBearishPower ? "!conditions.chtdConditions.hasBearishPower &&" + "\n" : "") +
(!conditions.chtdConditions.isBullishPowerUp ? "!conditions.chtdConditions.isBullishPowerUp &&" + "\n" : "") + // (!conditions.chtdConditions.isBullishPowerUp ? "!conditions.chtdConditions.isBullishPowerUp &&" + "\n" : "") +
(!conditions.chtdConditions.isBearishPowerUp ? "!conditions.chtdConditions.isBearishPowerUp &&" + "\n" : "") + // (!conditions.chtdConditions.isBearishPowerUp ? "!conditions.chtdConditions.isBearishPowerUp &&" + "\n" : "") +
(!conditions.chtdConditions.isBullishPowerIncreasing ? "!conditions.chtdConditions.isBullishPowerIncreasing &&" + "\n" : "") + // (!conditions.chtdConditions.isBullishPowerIncreasing ? "!conditions.chtdConditions.isBullishPowerIncreasing &&" + "\n" : "") +
(!conditions.chtdConditions.isBullishPowerDecreasing ? "!conditions.chtdConditions.isBullishPowerDecreasing &&" + "\n" : "") + // (!conditions.chtdConditions.isBullishPowerDecreasing ? "!conditions.chtdConditions.isBullishPowerDecreasing &&" + "\n" : "") +
(!conditions.chtdConditions.isBearishPowerIncreasing ? "!conditions.chtdConditions.isBearishPowerIncreasing &&" + "\n" : "") + // (!conditions.chtdConditions.isBearishPowerIncreasing ? "!conditions.chtdConditions.isBearishPowerIncreasing &&" + "\n" : "") +
(!conditions.chtdConditions.isBearishPowerDecreasing ? "!conditions.chtdConditions.isBearishPowerDecreasing &&" + "\n" : "") + // (!conditions.chtdConditions.isBearishPowerDecreasing ? "!conditions.chtdConditions.isBearishPowerDecreasing &&" + "\n" : "") +
(!conditions.chtdConditions.isCBullish ? "!conditions.chtdConditions.isCBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isCBullish ? "!conditions.chtdConditions.isCBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isCBearish ? "!conditions.chtdConditions.isCBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isCBearish ? "!conditions.chtdConditions.isCBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isCSwitchedToBullish ? "!conditions.chtdConditions.isCSwitchedToBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isCSwitchedToBullish ? "!conditions.chtdConditions.isCSwitchedToBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isCSwitchedToBearish ? "!conditions.chtdConditions.isCSwitchedToBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isCSwitchedToBearish ? "!conditions.chtdConditions.isCSwitchedToBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isSBullish ? "!conditions.chtdConditions.isSBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isSBullish ? "!conditions.chtdConditions.isSBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isSBearish ? "!conditions.chtdConditions.isSBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isSBearish ? "!conditions.chtdConditions.isSBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isSSwitchedToBullish ? "!conditions.chtdConditions.isSSwitchedToBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isSSwitchedToBullish ? "!conditions.chtdConditions.isSSwitchedToBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isSSwitchedToBearish ? "!conditions.chtdConditions.isSSwitchedToBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isSSwitchedToBearish ? "!conditions.chtdConditions.isSSwitchedToBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isMBullish ? "!conditions.chtdConditions.isMBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isMBullish ? "!conditions.chtdConditions.isMBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isMBearish ? "!conditions.chtdConditions.isMBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isMBearish ? "!conditions.chtdConditions.isMBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isMSwitchedToBullish ? "!conditions.chtdConditions.isMSwitchedToBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isMSwitchedToBullish ? "!conditions.chtdConditions.isMSwitchedToBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isMSwitchedToBearish ? "!conditions.chtdConditions.isMSwitchedToBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isMSwitchedToBearish ? "!conditions.chtdConditions.isMSwitchedToBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isLBullish ? "!conditions.chtdConditions.isLBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isLBullish ? "!conditions.chtdConditions.isLBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isLBearish ? "!conditions.chtdConditions.isLBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isLBearish ? "!conditions.chtdConditions.isLBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isLSwitchedToBullish ? "!conditions.chtdConditions.isLSwitchedToBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isLSwitchedToBullish ? "!conditions.chtdConditions.isLSwitchedToBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isLSwitchedToBearish ? "!conditions.chtdConditions.isLSwitchedToBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isLSwitchedToBearish ? "!conditions.chtdConditions.isLSwitchedToBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isHBullish ? "!conditions.chtdConditions.isHBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isHBullish ? "!conditions.chtdConditions.isHBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isHBearish ? "!conditions.chtdConditions.isHBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isHBearish ? "!conditions.chtdConditions.isHBearish &&" + "\n" : "") +
(!conditions.chtdConditions.isHSwitchedToBullish ? "!conditions.chtdConditions.isHSwitchedToBullish &&" + "\n" : "") + // (!conditions.chtdConditions.isHSwitchedToBullish ? "!conditions.chtdConditions.isHSwitchedToBullish &&" + "\n" : "") +
(!conditions.chtdConditions.isHSwitchedToBearish ? "!conditions.chtdConditions.isHSwitchedToBearish &&" + "\n" : "") + // (!conditions.chtdConditions.isHSwitchedToBearish ? "!conditions.chtdConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + "//" + "\n" +
"// XCHCHE ..." + "\n" + "// XCHCHE ..." + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -523,55 +521,55 @@ struct XCHStartegyConditionsParser
(conditions.chcheConditions.isHSwitchedToBearish ? "conditions.chcheConditions.isHSwitchedToBearish &&" + "\n" : "") + (conditions.chcheConditions.isHSwitchedToBearish ? "conditions.chcheConditions.isHSwitchedToBearish &&" + "\n" : "") +
(conditions.chcheConditions.isHStrongSwitchedToBullish ? "conditions.chcheConditions.isHStrongSwitchedToBullish &&" + "\n" : "") + (conditions.chcheConditions.isHStrongSwitchedToBullish ? "conditions.chcheConditions.isHStrongSwitchedToBullish &&" + "\n" : "") +
(conditions.chcheConditions.isHStrongSwitchedToBearish ? "conditions.chcheConditions.isHStrongSwitchedToBearish &&" + "\n" : "") + (conditions.chcheConditions.isHStrongSwitchedToBearish ? "conditions.chcheConditions.isHStrongSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
(!conditions.chcheConditions.hasBullishPower ? "!conditions.chcheConditions.hasBullishPower &&" + "\n" : "") + // (!conditions.chcheConditions.hasBullishPower ? "!conditions.chcheConditions.hasBullishPower &&" + "\n" : "") +
(!conditions.chcheConditions.hasBearishPower ? "!conditions.chcheConditions.hasBearishPower &&" + "\n" : "") + // (!conditions.chcheConditions.hasBearishPower ? "!conditions.chcheConditions.hasBearishPower &&" + "\n" : "") +
(!conditions.chcheConditions.isBullishPowerUp ? "!conditions.chcheConditions.isBullishPowerUp &&" + "\n" : "") + // (!conditions.chcheConditions.isBullishPowerUp ? "!conditions.chcheConditions.isBullishPowerUp &&" + "\n" : "") +
(!conditions.chcheConditions.isBearishPowerUp ? "!conditions.chcheConditions.isBearishPowerUp &&" + "\n" : "") + // (!conditions.chcheConditions.isBearishPowerUp ? "!conditions.chcheConditions.isBearishPowerUp &&" + "\n" : "") +
(!conditions.chcheConditions.isBullishPowerIncreasing ? "!conditions.chcheConditions.isBullishPowerIncreasing &&" + "\n" : "") + // (!conditions.chcheConditions.isBullishPowerIncreasing ? "!conditions.chcheConditions.isBullishPowerIncreasing &&" + "\n" : "") +
(!conditions.chcheConditions.isBullishPowerDecreasing ? "!conditions.chcheConditions.isBullishPowerDecreasing &&" + "\n" : "") + // (!conditions.chcheConditions.isBullishPowerDecreasing ? "!conditions.chcheConditions.isBullishPowerDecreasing &&" + "\n" : "") +
(!conditions.chcheConditions.isBearishPowerIncreasing ? "!conditions.chcheConditions.isBearishPowerIncreasing &&" + "\n" : "") + // (!conditions.chcheConditions.isBearishPowerIncreasing ? "!conditions.chcheConditions.isBearishPowerIncreasing &&" + "\n" : "") +
(!conditions.chcheConditions.isBearishPowerDecreasing ? "!conditions.chcheConditions.isBearishPowerDecreasing &&" + "\n" : "") + // (!conditions.chcheConditions.isBearishPowerDecreasing ? "!conditions.chcheConditions.isBearishPowerDecreasing &&" + "\n" : "") +
(!conditions.chcheConditions.isCBullish ? "!conditions.chcheConditions.isCBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isCBullish ? "!conditions.chcheConditions.isCBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isCBearish ? "!conditions.chcheConditions.isCBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isCBearish ? "!conditions.chcheConditions.isCBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isCStrongBullish ? "!conditions.chcheConditions.isCStrongBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isCStrongBullish ? "!conditions.chcheConditions.isCStrongBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isCStrongBearish ? "!conditions.chcheConditions.isCStrongBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isCStrongBearish ? "!conditions.chcheConditions.isCStrongBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isCSwitchedToBullish ? "!conditions.chcheConditions.isCSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isCSwitchedToBullish ? "!conditions.chcheConditions.isCSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isCSwitchedToBearish ? "!conditions.chcheConditions.isCSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isCSwitchedToBearish ? "!conditions.chcheConditions.isCSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isCStrongSwitchedToBullish ? "!conditions.chcheConditions.isCStrongSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isCStrongSwitchedToBullish ? "!conditions.chcheConditions.isCStrongSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isCStrongSwitchedToBearish ? "!conditions.chcheConditions.isCStrongSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isCStrongSwitchedToBearish ? "!conditions.chcheConditions.isCStrongSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isSBullish ? "!conditions.chcheConditions.isSBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isSBullish ? "!conditions.chcheConditions.isSBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isSBearish ? "!conditions.chcheConditions.isSBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isSBearish ? "!conditions.chcheConditions.isSBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isSStrongBullish ? "!conditions.chcheConditions.isSStrongBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isSStrongBullish ? "!conditions.chcheConditions.isSStrongBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isSStrongBearish ? "!conditions.chcheConditions.isSStrongBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isSStrongBearish ? "!conditions.chcheConditions.isSStrongBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isSSwitchedToBullish ? "!conditions.chcheConditions.isSSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isSSwitchedToBullish ? "!conditions.chcheConditions.isSSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isSSwitchedToBearish ? "!conditions.chcheConditions.isSSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isSSwitchedToBearish ? "!conditions.chcheConditions.isSSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isSStrongSwitchedToBullish ? "!conditions.chcheConditions.isSStrongSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isSStrongSwitchedToBullish ? "!conditions.chcheConditions.isSStrongSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isSStrongSwitchedToBearish ? "!conditions.chcheConditions.isSStrongSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isSStrongSwitchedToBearish ? "!conditions.chcheConditions.isSStrongSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isMBullish ? "!conditions.chcheConditions.isMBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isMBullish ? "!conditions.chcheConditions.isMBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isMBearish ? "!conditions.chcheConditions.isMBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isMBearish ? "!conditions.chcheConditions.isMBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isMStrongBullish ? "!conditions.chcheConditions.isMStrongBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isMStrongBullish ? "!conditions.chcheConditions.isMStrongBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isMStrongBearish ? "!conditions.chcheConditions.isMStrongBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isMStrongBearish ? "!conditions.chcheConditions.isMStrongBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isMSwitchedToBullish ? "!conditions.chcheConditions.isMSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isMSwitchedToBullish ? "!conditions.chcheConditions.isMSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isMSwitchedToBearish ? "!conditions.chcheConditions.isMSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isMSwitchedToBearish ? "!conditions.chcheConditions.isMSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isMStrongSwitchedToBullish ? "!conditions.chcheConditions.isMStrongSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isMStrongSwitchedToBullish ? "!conditions.chcheConditions.isMStrongSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isMStrongSwitchedToBearish ? "!conditions.chcheConditions.isMStrongSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isMStrongSwitchedToBearish ? "!conditions.chcheConditions.isMStrongSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isLBullish ? "!conditions.chcheConditions.isLBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isLBullish ? "!conditions.chcheConditions.isLBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isLBearish ? "!conditions.chcheConditions.isLBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isLBearish ? "!conditions.chcheConditions.isLBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isLStrongBullish ? "!conditions.chcheConditions.isLStrongBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isLStrongBullish ? "!conditions.chcheConditions.isLStrongBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isLStrongBearish ? "!conditions.chcheConditions.isLStrongBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isLStrongBearish ? "!conditions.chcheConditions.isLStrongBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isLSwitchedToBullish ? "!conditions.chcheConditions.isLSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isLSwitchedToBullish ? "!conditions.chcheConditions.isLSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isLSwitchedToBearish ? "!conditions.chcheConditions.isLSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isLSwitchedToBearish ? "!conditions.chcheConditions.isLSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isLStrongSwitchedToBullish ? "!conditions.chcheConditions.isLStrongSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isLStrongSwitchedToBullish ? "!conditions.chcheConditions.isLStrongSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isLStrongSwitchedToBearish ? "!conditions.chcheConditions.isLStrongSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isLStrongSwitchedToBearish ? "!conditions.chcheConditions.isLStrongSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isHBullish ? "!conditions.chcheConditions.isHBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isHBullish ? "!conditions.chcheConditions.isHBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isHBearish ? "!conditions.chcheConditions.isHBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isHBearish ? "!conditions.chcheConditions.isHBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isHStrongBullish ? "!conditions.chcheConditions.isHStrongBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isHStrongBullish ? "!conditions.chcheConditions.isHStrongBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isHStrongBearish ? "!conditions.chcheConditions.isHStrongBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isHStrongBearish ? "!conditions.chcheConditions.isHStrongBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isHSwitchedToBullish ? "!conditions.chcheConditions.isHSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isHSwitchedToBullish ? "!conditions.chcheConditions.isHSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isHSwitchedToBearish ? "!conditions.chcheConditions.isHSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isHSwitchedToBearish ? "!conditions.chcheConditions.isHSwitchedToBearish &&" + "\n" : "") +
(!conditions.chcheConditions.isHStrongSwitchedToBullish ? "!conditions.chcheConditions.isHStrongSwitchedToBullish &&" + "\n" : "") + // (!conditions.chcheConditions.isHStrongSwitchedToBullish ? "!conditions.chcheConditions.isHStrongSwitchedToBullish &&" + "\n" : "") +
(!conditions.chcheConditions.isHStrongSwitchedToBearish ? "!conditions.chcheConditions.isHStrongSwitchedToBearish &&" + "\n" : "") + // (!conditions.chcheConditions.isHStrongSwitchedToBearish ? "!conditions.chcheConditions.isHStrongSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + "//" + "\n" +
"// XCHSTR ..." + "\n" + "// XCHSTR ..." + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -603,35 +601,35 @@ struct XCHStartegyConditionsParser
(conditions.chstrConditions.isHBearish ? "conditions.chstrConditions.isHBearish &&" + "\n" : "") + (conditions.chstrConditions.isHBearish ? "conditions.chstrConditions.isHBearish &&" + "\n" : "") +
(conditions.chstrConditions.isHSwitchedToBullish ? "conditions.chstrConditions.isHSwitchedToBullish &&" + "\n" : "") + (conditions.chstrConditions.isHSwitchedToBullish ? "conditions.chstrConditions.isHSwitchedToBullish &&" + "\n" : "") +
(conditions.chstrConditions.isHSwitchedToBearish ? "conditions.chstrConditions.isHSwitchedToBearish &&" + "\n" : "") + (conditions.chstrConditions.isHSwitchedToBearish ? "conditions.chstrConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
(!conditions.chstrConditions.hasBullishPower ? "!conditions.chstrConditions.hasBullishPower &&" + "\n" : "") + // (!conditions.chstrConditions.hasBullishPower ? "!conditions.chstrConditions.hasBullishPower &&" + "\n" : "") +
(!conditions.chstrConditions.hasBearishPower ? "!conditions.chstrConditions.hasBearishPower &&" + "\n" : "") + // (!conditions.chstrConditions.hasBearishPower ? "!conditions.chstrConditions.hasBearishPower &&" + "\n" : "") +
(!conditions.chstrConditions.isBullishPowerUp ? "!conditions.chstrConditions.isBullishPowerUp &&" + "\n" : "") + // (!conditions.chstrConditions.isBullishPowerUp ? "!conditions.chstrConditions.isBullishPowerUp &&" + "\n" : "") +
(!conditions.chstrConditions.isBearishPowerUp ? "!conditions.chstrConditions.isBearishPowerUp &&" + "\n" : "") + // (!conditions.chstrConditions.isBearishPowerUp ? "!conditions.chstrConditions.isBearishPowerUp &&" + "\n" : "") +
(!conditions.chstrConditions.isBullishPowerIncreasing ? "!conditions.chstrConditions.isBullishPowerIncreasing &&" + "\n" : "") + // (!conditions.chstrConditions.isBullishPowerIncreasing ? "!conditions.chstrConditions.isBullishPowerIncreasing &&" + "\n" : "") +
(!conditions.chstrConditions.isBullishPowerDecreasing ? "!conditions.chstrConditions.isBullishPowerDecreasing &&" + "\n" : "") + // (!conditions.chstrConditions.isBullishPowerDecreasing ? "!conditions.chstrConditions.isBullishPowerDecreasing &&" + "\n" : "") +
(!conditions.chstrConditions.isBearishPowerIncreasing ? "!conditions.chstrConditions.isBearishPowerIncreasing &&" + "\n" : "") + // (!conditions.chstrConditions.isBearishPowerIncreasing ? "!conditions.chstrConditions.isBearishPowerIncreasing &&" + "\n" : "") +
(!conditions.chstrConditions.isBearishPowerDecreasing ? "!conditions.chstrConditions.isBearishPowerDecreasing &&" + "\n" : "") + // (!conditions.chstrConditions.isBearishPowerDecreasing ? "!conditions.chstrConditions.isBearishPowerDecreasing &&" + "\n" : "") +
(!conditions.chstrConditions.isCBullish ? "!conditions.chstrConditions.isCBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isCBullish ? "!conditions.chstrConditions.isCBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isCBearish ? "!conditions.chstrConditions.isCBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isCBearish ? "!conditions.chstrConditions.isCBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isCSwitchedToBullish ? "!conditions.chstrConditions.isCSwitchedToBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isCSwitchedToBullish ? "!conditions.chstrConditions.isCSwitchedToBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isCSwitchedToBearish ? "!conditions.chstrConditions.isCSwitchedToBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isCSwitchedToBearish ? "!conditions.chstrConditions.isCSwitchedToBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isSBullish ? "!conditions.chstrConditions.isSBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isSBullish ? "!conditions.chstrConditions.isSBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isSBearish ? "!conditions.chstrConditions.isSBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isSBearish ? "!conditions.chstrConditions.isSBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isSSwitchedToBullish ? "!conditions.chstrConditions.isSSwitchedToBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isSSwitchedToBullish ? "!conditions.chstrConditions.isSSwitchedToBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isSSwitchedToBearish ? "!conditions.chstrConditions.isSSwitchedToBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isSSwitchedToBearish ? "!conditions.chstrConditions.isSSwitchedToBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isMBullish ? "!conditions.chstrConditions.isMBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isMBullish ? "!conditions.chstrConditions.isMBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isMBearish ? "!conditions.chstrConditions.isMBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isMBearish ? "!conditions.chstrConditions.isMBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isMSwitchedToBullish ? "!conditions.chstrConditions.isMSwitchedToBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isMSwitchedToBullish ? "!conditions.chstrConditions.isMSwitchedToBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isMSwitchedToBearish ? "!conditions.chstrConditions.isMSwitchedToBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isMSwitchedToBearish ? "!conditions.chstrConditions.isMSwitchedToBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isLBullish ? "!conditions.chstrConditions.isLBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isLBullish ? "!conditions.chstrConditions.isLBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isLBearish ? "!conditions.chstrConditions.isLBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isLBearish ? "!conditions.chstrConditions.isLBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isLSwitchedToBullish ? "!conditions.chstrConditions.isLSwitchedToBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isLSwitchedToBullish ? "!conditions.chstrConditions.isLSwitchedToBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isLSwitchedToBearish ? "!conditions.chstrConditions.isLSwitchedToBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isLSwitchedToBearish ? "!conditions.chstrConditions.isLSwitchedToBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isHBullish ? "!conditions.chstrConditions.isHBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isHBullish ? "!conditions.chstrConditions.isHBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isHBearish ? "!conditions.chstrConditions.isHBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isHBearish ? "!conditions.chstrConditions.isHBearish &&" + "\n" : "") +
(!conditions.chstrConditions.isHSwitchedToBullish ? "!conditions.chstrConditions.isHSwitchedToBullish &&" + "\n" : "") + // (!conditions.chstrConditions.isHSwitchedToBullish ? "!conditions.chstrConditions.isHSwitchedToBullish &&" + "\n" : "") +
(!conditions.chstrConditions.isHSwitchedToBearish ? "!conditions.chstrConditions.isHSwitchedToBearish &&" + "\n" : "") + // (!conditions.chstrConditions.isHSwitchedToBearish ? "!conditions.chstrConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + "//" + "\n" +
"// XCHVLM ..." + "\n" + "// XCHVLM ..." + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -663,35 +661,35 @@ struct XCHStartegyConditionsParser
(conditions.chvlmConditions.isHBearish ? "conditions.chvlmConditions.isHBearish &&" + "\n" : "") + (conditions.chvlmConditions.isHBearish ? "conditions.chvlmConditions.isHBearish &&" + "\n" : "") +
(conditions.chvlmConditions.isHSwitchedToBullish ? "conditions.chvlmConditions.isHSwitchedToBullish &&" + "\n" : "") + (conditions.chvlmConditions.isHSwitchedToBullish ? "conditions.chvlmConditions.isHSwitchedToBullish &&" + "\n" : "") +
(conditions.chvlmConditions.isHSwitchedToBearish ? "conditions.chvlmConditions.isHSwitchedToBearish &&" + "\n" : "") + (conditions.chvlmConditions.isHSwitchedToBearish ? "conditions.chvlmConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
(!conditions.chvlmConditions.hasBullishPower ? "!conditions.chvlmConditions.hasBullishPower &&" + "\n" : "") + // (!conditions.chvlmConditions.hasBullishPower ? "!conditions.chvlmConditions.hasBullishPower &&" + "\n" : "") +
(!conditions.chvlmConditions.hasBearishPower ? "!conditions.chvlmConditions.hasBearishPower &&" + "\n" : "") + // (!conditions.chvlmConditions.hasBearishPower ? "!conditions.chvlmConditions.hasBearishPower &&" + "\n" : "") +
(!conditions.chvlmConditions.isBullishPowerUp ? "!conditions.chvlmConditions.isBullishPowerUp &&" + "\n" : "") + // (!conditions.chvlmConditions.isBullishPowerUp ? "!conditions.chvlmConditions.isBullishPowerUp &&" + "\n" : "") +
(!conditions.chvlmConditions.isBearishPowerUp ? "!conditions.chvlmConditions.isBearishPowerUp &&" + "\n" : "") + // (!conditions.chvlmConditions.isBearishPowerUp ? "!conditions.chvlmConditions.isBearishPowerUp &&" + "\n" : "") +
(!conditions.chvlmConditions.isBullishPowerIncreasing ? "!conditions.chvlmConditions.isBullishPowerIncreasing &&" + "\n" : "") + // (!conditions.chvlmConditions.isBullishPowerIncreasing ? "!conditions.chvlmConditions.isBullishPowerIncreasing &&" + "\n" : "") +
(!conditions.chvlmConditions.isBullishPowerDecreasing ? "!conditions.chvlmConditions.isBullishPowerDecreasing &&" + "\n" : "") + // (!conditions.chvlmConditions.isBullishPowerDecreasing ? "!conditions.chvlmConditions.isBullishPowerDecreasing &&" + "\n" : "") +
(!conditions.chvlmConditions.isBearishPowerIncreasing ? "!conditions.chvlmConditions.isBearishPowerIncreasing &&" + "\n" : "") + // (!conditions.chvlmConditions.isBearishPowerIncreasing ? "!conditions.chvlmConditions.isBearishPowerIncreasing &&" + "\n" : "") +
(!conditions.chvlmConditions.isBearishPowerDecreasing ? "!conditions.chvlmConditions.isBearishPowerDecreasing &&" + "\n" : "") + // (!conditions.chvlmConditions.isBearishPowerDecreasing ? "!conditions.chvlmConditions.isBearishPowerDecreasing &&" + "\n" : "") +
(!conditions.chvlmConditions.isCBullish ? "!conditions.chvlmConditions.isCBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isCBullish ? "!conditions.chvlmConditions.isCBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isCBearish ? "!conditions.chvlmConditions.isCBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isCBearish ? "!conditions.chvlmConditions.isCBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isCSwitchedToBullish ? "!conditions.chvlmConditions.isCSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isCSwitchedToBullish ? "!conditions.chvlmConditions.isCSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isCSwitchedToBearish ? "!conditions.chvlmConditions.isCSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isCSwitchedToBearish ? "!conditions.chvlmConditions.isCSwitchedToBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isSBullish ? "!conditions.chvlmConditions.isSBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isSBullish ? "!conditions.chvlmConditions.isSBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isSBearish ? "!conditions.chvlmConditions.isSBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isSBearish ? "!conditions.chvlmConditions.isSBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isSSwitchedToBullish ? "!conditions.chvlmConditions.isSSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isSSwitchedToBullish ? "!conditions.chvlmConditions.isSSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isSSwitchedToBearish ? "!conditions.chvlmConditions.isSSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isSSwitchedToBearish ? "!conditions.chvlmConditions.isSSwitchedToBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isMBullish ? "!conditions.chvlmConditions.isMBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isMBullish ? "!conditions.chvlmConditions.isMBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isMBearish ? "!conditions.chvlmConditions.isMBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isMBearish ? "!conditions.chvlmConditions.isMBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isMSwitchedToBullish ? "!conditions.chvlmConditions.isMSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isMSwitchedToBullish ? "!conditions.chvlmConditions.isMSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isMSwitchedToBearish ? "!conditions.chvlmConditions.isMSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isMSwitchedToBearish ? "!conditions.chvlmConditions.isMSwitchedToBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isLBullish ? "!conditions.chvlmConditions.isLBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isLBullish ? "!conditions.chvlmConditions.isLBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isLBearish ? "!conditions.chvlmConditions.isLBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isLBearish ? "!conditions.chvlmConditions.isLBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isLSwitchedToBullish ? "!conditions.chvlmConditions.isLSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isLSwitchedToBullish ? "!conditions.chvlmConditions.isLSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isLSwitchedToBearish ? "!conditions.chvlmConditions.isLSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isLSwitchedToBearish ? "!conditions.chvlmConditions.isLSwitchedToBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isHBullish ? "!conditions.chvlmConditions.isHBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isHBullish ? "!conditions.chvlmConditions.isHBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isHBearish ? "!conditions.chvlmConditions.isHBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isHBearish ? "!conditions.chvlmConditions.isHBearish &&" + "\n" : "") +
(!conditions.chvlmConditions.isHSwitchedToBullish ? "!conditions.chvlmConditions.isHSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvlmConditions.isHSwitchedToBullish ? "!conditions.chvlmConditions.isHSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvlmConditions.isHSwitchedToBearish ? "!conditions.chvlmConditions.isHSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvlmConditions.isHSwitchedToBearish ? "!conditions.chvlmConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + "//" + "\n" +
"// XCHVWAP ..." + "\n" + "// XCHVWAP ..." + "\n" +
"//" + "\n" + "//" + "\n" +
@@ -719,37 +717,37 @@ struct XCHStartegyConditionsParser
(conditions.chvwapConditions.isHBearish ? "conditions.chvwapConditions.isHBearish &&" + "\n" : "") + (conditions.chvwapConditions.isHBearish ? "conditions.chvwapConditions.isHBearish &&" + "\n" : "") +
(conditions.chvwapConditions.isHSwitchedToBullish ? "conditions.chvwapConditions.isHSwitchedToBullish &&" + "\n" : "") + (conditions.chvwapConditions.isHSwitchedToBullish ? "conditions.chvwapConditions.isHSwitchedToBullish &&" + "\n" : "") +
(conditions.chvwapConditions.isHSwitchedToBearish ? "conditions.chvwapConditions.isHSwitchedToBearish &&" + "\n" : "") + (conditions.chvwapConditions.isHSwitchedToBearish ? "conditions.chvwapConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + // "//" + "\n" +
(!conditions.chvwapConditions.hasBullishPower ? "!conditions.chvwapConditions.hasBullishPower &&" + "\n" : "") + // (!conditions.chvwapConditions.hasBullishPower ? "!conditions.chvwapConditions.hasBullishPower &&" + "\n" : "") +
(!conditions.chvwapConditions.hasBearishPower ? "!conditions.chvwapConditions.hasBearishPower &&" + "\n" : "") + // (!conditions.chvwapConditions.hasBearishPower ? "!conditions.chvwapConditions.hasBearishPower &&" + "\n" : "") +
(!conditions.chvwapConditions.isBullishPowerUp ? "!conditions.chvwapConditions.isBullishPowerUp &&" + "\n" : "") + // (!conditions.chvwapConditions.isBullishPowerUp ? "!conditions.chvwapConditions.isBullishPowerUp &&" + "\n" : "") +
(!conditions.chvwapConditions.isBearishPowerUp ? "!conditions.chvwapConditions.isBearishPowerUp &&" + "\n" : "") + // (!conditions.chvwapConditions.isBearishPowerUp ? "!conditions.chvwapConditions.isBearishPowerUp &&" + "\n" : "") +
(!conditions.chvwapConditions.isBullishPowerIncreasing ? "!conditions.chvwapConditions.isBullishPowerIncreasing &&" + "\n" : "") + // (!conditions.chvwapConditions.isBullishPowerIncreasing ? "!conditions.chvwapConditions.isBullishPowerIncreasing &&" + "\n" : "") +
(!conditions.chvwapConditions.isBullishPowerDecreasing ? "!conditions.chvwapConditions.isBullishPowerDecreasing &&" + "\n" : "") + // (!conditions.chvwapConditions.isBullishPowerDecreasing ? "!conditions.chvwapConditions.isBullishPowerDecreasing &&" + "\n" : "") +
(!conditions.chvwapConditions.isBearishPowerIncreasing ? "!conditions.chvwapConditions.isBearishPowerIncreasing &&" + "\n" : "") + // (!conditions.chvwapConditions.isBearishPowerIncreasing ? "!conditions.chvwapConditions.isBearishPowerIncreasing &&" + "\n" : "") +
(!conditions.chvwapConditions.isBearishPowerDecreasing ? "!conditions.chvwapConditions.isBearishPowerDecreasing &&" + "\n" : "") + // (!conditions.chvwapConditions.isBearishPowerDecreasing ? "!conditions.chvwapConditions.isBearishPowerDecreasing &&" + "\n" : "") +
(!conditions.chvwapConditions.isSBullish ? "!conditions.chvwapConditions.isSBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isSBullish ? "!conditions.chvwapConditions.isSBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isSBearish ? "!conditions.chvwapConditions.isSBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isSBearish ? "!conditions.chvwapConditions.isSBearish &&" + "\n" : "") +
(!conditions.chvwapConditions.isSSwitchedToBullish ? "!conditions.chvwapConditions.isSSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isSSwitchedToBullish ? "!conditions.chvwapConditions.isSSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isSSwitchedToBearish ? "!conditions.chvwapConditions.isSSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isSSwitchedToBearish ? "!conditions.chvwapConditions.isSSwitchedToBearish &&" + "\n" : "") +
(!conditions.chvwapConditions.isMBullish ? "!conditions.chvwapConditions.isMBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isMBullish ? "!conditions.chvwapConditions.isMBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isMBearish ? "!conditions.chvwapConditions.isMBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isMBearish ? "!conditions.chvwapConditions.isMBearish &&" + "\n" : "") +
(!conditions.chvwapConditions.isMSwitchedToBullish ? "!conditions.chvwapConditions.isMSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isMSwitchedToBullish ? "!conditions.chvwapConditions.isMSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isMSwitchedToBearish ? "!conditions.chvwapConditions.isMSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isMSwitchedToBearish ? "!conditions.chvwapConditions.isMSwitchedToBearish &&" + "\n" : "") +
(!conditions.chvwapConditions.isLBullish ? "!conditions.chvwapConditions.isLBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isLBullish ? "!conditions.chvwapConditions.isLBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isLBearish ? "!conditions.chvwapConditions.isLBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isLBearish ? "!conditions.chvwapConditions.isLBearish &&" + "\n" : "") +
(!conditions.chvwapConditions.isLSwitchedToBullish ? "!conditions.chvwapConditions.isLSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isLSwitchedToBullish ? "!conditions.chvwapConditions.isLSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isLSwitchedToBearish ? "!conditions.chvwapConditions.isLSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isLSwitchedToBearish ? "!conditions.chvwapConditions.isLSwitchedToBearish &&" + "\n" : "") +
(!conditions.chvwapConditions.isHBullish ? "!conditions.chvwapConditions.isHBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isHBullish ? "!conditions.chvwapConditions.isHBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isHBearish ? "!conditions.chvwapConditions.isHBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isHBearish ? "!conditions.chvwapConditions.isHBearish &&" + "\n" : "") +
(!conditions.chvwapConditions.isHSwitchedToBullish ? "!conditions.chvwapConditions.isHSwitchedToBullish &&" + "\n" : "") + // (!conditions.chvwapConditions.isHSwitchedToBullish ? "!conditions.chvwapConditions.isHSwitchedToBullish &&" + "\n" : "") +
(!conditions.chvwapConditions.isHSwitchedToBearish ? "!conditions.chvwapConditions.isHSwitchedToBearish &&" + "\n" : "") + // (!conditions.chvwapConditions.isHSwitchedToBearish ? "!conditions.chvwapConditions.isHSwitchedToBearish &&" + "\n" : "") +
"//" + "\n" + "//" + "\n" +
")" + "\n" ")" + "\n"
"//" + "\n" + "//" +
"\n" +
"||" + "\n" + "||" + "\n" +
"//" "//";
;
// //
return result; return result;
@@ -780,8 +778,14 @@ struct XCHStartegyConditionsParser
result = result =
// //
isLong isLong
? IsLongFiltered(conditions) ? IsLongFiltered(
: IsShortFiltered(conditions) signal,
conditions //
)
: IsShortFiltered(
signal,
conditions //
)
// //
; ;
@@ -791,21 +795,31 @@ struct XCHStartegyConditionsParser
// //
// Filter Long Signals ... // Filter Long Signals ...
bool IsLongFiltered(XCHStrategyConditions &conditions) bool IsLongFiltered(
XSignal &signal,
XCHStrategyConditions &conditions //
)
{ {
// //
bool result = false; bool result = false;
// //
result = bool isEURUSD = _symbolParser.IsEURUSD(signal.symbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(signal.symbol);
//
if (isEURUSD)
{
// //
_eurusdLongParser.IsFiltered(conditions) result =
_eurusdLongParser.IsFiltered(conditions);
}
else if (isGBPUSD)
{
// //
|| result =
// _gbpusdLongParser.IsFiltered(conditions);
_gbpusdLongParser.IsFiltered(conditions) }
//
;
// //
return result; return result;
@@ -813,21 +827,31 @@ struct XCHStartegyConditionsParser
// //
// Filter Short Signals ... // Filter Short Signals ...
bool IsShortFiltered(XCHStrategyConditions &conditions) bool IsShortFiltered(
XSignal &signal,
XCHStrategyConditions &conditions //
)
{ {
// //
bool result = false; bool result = false;
// //
result = bool isEURUSD = _symbolParser.IsEURUSD(signal.symbol);
bool isGBPUSD = _symbolParser.IsGBPUSD(signal.symbol);
//
if (isEURUSD)
{
// //
_eurusdShortParser.IsFiltered(conditions) result =
_eurusdShortParser.IsFiltered(conditions);
}
else if (isGBPUSD)
{
// //
|| result =
// _gbpusdShortParser.IsFiltered(conditions);
_gbpusdShortParser.IsFiltered(conditions) }
//
;
// //
return result; return result;
+28 -2
View File
@@ -891,6 +891,24 @@ public:
int pushers = 0; int pushers = 0;
string signallers[]; string signallers[];
//
bool notHaveBearishPower = (!chmConditions.hasBearishPower &&
!chhkConditions.hasBearishPower &&
!chtdConditions.hasBearishPower &&
!chcheConditions.hasBearishPower &&
!chstrConditions.hasBearishPower &&
!chvlmConditions.hasBearishPower &&
!chvwapConditions.hasBearishPower);
//
bool notHaveBullishPower = (!chmConditions.hasBullishPower &&
!chhkConditions.hasBullishPower &&
!chtdConditions.hasBullishPower &&
!chcheConditions.hasBullishPower &&
!chstrConditions.hasBullishPower &&
!chvlmConditions.hasBullishPower &&
!chvwapConditions.hasBullishPower);
// //
// XCHM ... // XCHM ...
if (mEnableXCHM) if (mEnableXCHM)
@@ -905,6 +923,7 @@ public:
cBar.IsBullish() && cBar.IsBullish() &&
hasBullishPattern && hasBullishPattern &&
hasBullishPressure && hasBullishPressure &&
notHaveBearishPower &&
cBar.low > chmMinBullishFast && cBar.low > chmMinBullishFast &&
chmConditions.isBullishPowerUp && chmConditions.isBullishPowerUp &&
chcheConditions.isCStrongBullish chcheConditions.isCStrongBullish
@@ -942,6 +961,7 @@ public:
cBar.IsBearish() && cBar.IsBearish() &&
hasBearishPattern && hasBearishPattern &&
hasBearishPressure && hasBearishPressure &&
notHaveBullishPower &&
cBar.high < chmMaxBearishFast && cBar.high < chmMaxBearishFast &&
chmConditions.isBearishPowerUp && chmConditions.isBearishPowerUp &&
chcheConditions.isCStrongBearish chcheConditions.isCStrongBearish
@@ -984,6 +1004,7 @@ public:
cBar.IsBullish() && cBar.IsBullish() &&
hasBullishPattern && hasBullishPattern &&
hasBullishPressure && hasBullishPressure &&
notHaveBearishPower &&
cBar.low > chhkMinBullishHigh && cBar.low > chhkMinBullishHigh &&
chhkConditions.isBullishPowerUp && chhkConditions.isBullishPowerUp &&
chcheConditions.isCStrongBullish chcheConditions.isCStrongBullish
@@ -1021,6 +1042,7 @@ public:
cBar.IsBearish() && cBar.IsBearish() &&
hasBearishPattern && hasBearishPattern &&
hasBearishPressure && hasBearishPressure &&
notHaveBullishPower &&
cBar.high < chhkMaxBearishLow && cBar.high < chhkMaxBearishLow &&
chhkConditions.isBearishPowerUp && chhkConditions.isBearishPowerUp &&
chcheConditions.isCStrongBearish chcheConditions.isCStrongBearish
@@ -1063,6 +1085,7 @@ public:
cBar.IsBullish() && cBar.IsBullish() &&
hasBullishPattern && hasBullishPattern &&
hasBullishPressure && hasBullishPressure &&
notHaveBearishPower &&
cBar.low > chstrMinBullish && cBar.low > chstrMinBullish &&
chstrConditions.isBullishPowerUp && chstrConditions.isBullishPowerUp &&
chcheConditions.isCStrongBullish chcheConditions.isCStrongBullish
@@ -1100,6 +1123,7 @@ public:
cBar.IsBearish() && cBar.IsBearish() &&
hasBearishPattern && hasBearishPattern &&
hasBearishPressure && hasBearishPressure &&
notHaveBullishPower &&
cBar.high < chstrMaxBearish && cBar.high < chstrMaxBearish &&
chstrConditions.isBearishPowerUp && chstrConditions.isBearishPowerUp &&
chcheConditions.isCStrongBearish chcheConditions.isCStrongBearish
@@ -1141,9 +1165,10 @@ public:
hasBullishPower && hasBullishPower &&
HasCHCHECLast() && HasCHCHECLast() &&
cBar.IsBullish() && cBar.IsBullish() &&
chcheMinCBullish > 0 &&
hasBullishPattern && hasBullishPattern &&
hasBullishPressure && hasBullishPressure &&
notHaveBearishPower &&
chcheMinCBullish > 0 &&
chcheConditions.hasBullishPower && chcheConditions.hasBullishPower &&
chcheConditions.isCStrongBullish && chcheConditions.isCStrongBullish &&
chcheMinCBullish > GetMaxCHCHECLast() chcheMinCBullish > GetMaxCHCHECLast()
@@ -1180,9 +1205,10 @@ public:
hasBearishPower && hasBearishPower &&
HasCHCHECLast() && HasCHCHECLast() &&
cBar.IsBearish() && cBar.IsBearish() &&
chcheMaxCBearish > 0 &&
hasBearishPattern && hasBearishPattern &&
hasBearishPressure && hasBearishPressure &&
notHaveBullishPower &&
chcheMaxCBearish > 0 &&
chcheConditions.hasBearishPower && chcheConditions.hasBearishPower &&
chcheConditions.isCStrongBearish && chcheConditions.isCStrongBearish &&
chcheMaxCBearish > GetMaxCHCHECLast() chcheMaxCBearish > GetMaxCHCHECLast()