last ...
This commit is contained in:
@@ -60,7 +60,7 @@ input bool eaUseFixedTPSLPoints = true; // Use Fixed TP SL in Points
|
||||
input bool eaIgnoreTP = false; // Ignore TP
|
||||
input bool eaIgnoreSL = false; // Ignore SL
|
||||
input double eaTPPoint = 200; // Static TP Point
|
||||
input double eaSLPoint = 100; // Static SL Point
|
||||
input double eaSLPoint = 200; // Static SL Point
|
||||
|
||||
//
|
||||
// Risk Management > Volume Calculation ...
|
||||
@@ -75,22 +75,22 @@ input double eaVolume = 0.2; // Static Volume
|
||||
input group "Trade Management";
|
||||
input bool eaAllowLong = true; // Allow Long Positions
|
||||
input bool eaAllowShort = true; // Allow Short Positions
|
||||
input int eaMaxAllowedLongs = 1; // Max Allowed Long Positions
|
||||
input int eaMaxAllowedShorts = 1; // Max Allowed Short Positions
|
||||
input int eaMaxAllowedLongs = 2; // Max Allowed Long Positions
|
||||
input int eaMaxAllowedShorts = 2; // Max Allowed Short Positions
|
||||
input double eaMaxDrawdownPercentForOpenTrades = 3; // Max Drawdown Percent for Open Trades
|
||||
|
||||
//
|
||||
// Risk Management > Hedging ...
|
||||
input group "Hedging";
|
||||
input bool eaAllowHedging = true; // Allow Hedging Trades
|
||||
input int eaMinTradesForHedge = 2; // Minimum Open Trades for Hedging
|
||||
input double eaHedgeVolumeFactor = 0.01; // Volume Factor for Hedging
|
||||
input double eaMinimumProfitPerVolumeForHedging = 1; // Minimum Required Profit per Volume for Hedging
|
||||
input bool eaAllowHedging = true; // Allow Hedging Trades
|
||||
input int eaMinTradesForHedge = 2; // Minimum Open Trades for Hedging
|
||||
input double eaHedgeVolumeFactor = 0.01; // Volume Factor for Hedging
|
||||
input double eaMinimumProfitPerVolumeForHedging = 0.5; // Minimum Required Profit per Volume for Hedging
|
||||
|
||||
//
|
||||
// Risk Management > Trailling Stop ...
|
||||
input group "Trailling Stop";
|
||||
input bool eaAllowTrailStop = false; // Allow Trail Stop
|
||||
input bool eaAllowTrailStop = true; // Allow Trail Stop
|
||||
input double eaStartTrailInPoint = 50; // Trail Start After Profit (Point)
|
||||
input double eaTrailStepInPoint = 25; // Trail Size in each Step (Point)
|
||||
input bool eaIgnoreTPAfterTrail = true; // Ignore TP after Trail
|
||||
@@ -119,7 +119,7 @@ input bool eATerminalAlerts = false; // Terminal Alerts
|
||||
input group "Reports";
|
||||
input bool eaAlertNewMonths = false; // Alert New Month
|
||||
input bool eaAlertNewWeeks = false; // Alert New Weeks
|
||||
input bool eaAlertNewDays = false; // Alert New Days
|
||||
input bool eaAlertNewDays = true; // Alert New Days
|
||||
input bool eaAlertNewHours = false; // Alert New Hours
|
||||
input bool eaAlertRawSignals = false; // Alert Raw Signals
|
||||
input bool eaAlertStrongSignals = false; // Alert Strong Signals
|
||||
|
||||
@@ -108,39 +108,17 @@ struct XCHCHEInputs
|
||||
// Presentation ...
|
||||
|
||||
//
|
||||
// Current ...
|
||||
bool showCurrentLE1; // Show Current Cycle Long Exit 1
|
||||
bool showCurrentLE2; // Show Current Cycle Long Exit 2
|
||||
bool showCurrentSE1; // Show Current Cycle Short Exit 1
|
||||
bool showCurrentSE2; // Show Current Cycle Short Exit 2
|
||||
bool showLE1; // Show Long Exit 1
|
||||
bool showLE2; // Show Long Exit 2
|
||||
bool showSE1; // Show Short Exit 1
|
||||
bool showSE2; // Show Short Exit 2
|
||||
|
||||
//
|
||||
// Short ...
|
||||
bool showShortLE1; // Show Short Cycle Long Exit 1
|
||||
bool showShortLE2; // Show Short Cycle Long Exit 2
|
||||
bool showShortSE1; // Show Short Cycle Short Exit 1
|
||||
bool showShortSE2; // Show Short Cycle Short Exit 2
|
||||
|
||||
//
|
||||
// Medium ...
|
||||
bool showMediumLE1; // Show Medium Cycle Long Exit 1
|
||||
bool showMediumLE2; // Show Medium Cycle Long Exit 2
|
||||
bool showMediumSE1; // Show Medium Cycle Short Exit 1
|
||||
bool showMediumSE2; // Show Medium Cycle Short Exit 2
|
||||
|
||||
//
|
||||
// Long ...
|
||||
bool showLongLE1; // Show Long Cycle Long Exit 1
|
||||
bool showLongLE2; // Show Long Cycle Long Exit 2
|
||||
bool showLongSE1; // Show Long Cycle Short Exit 1
|
||||
bool showLongSE2; // Show Long Cycle Short Exit 2
|
||||
|
||||
//
|
||||
// Hind ...
|
||||
bool showHindLE1; // Show Hind Cycle Long Exit 1
|
||||
bool showHindLE2; // Show Hind Cycle Long Exit 2
|
||||
bool showHindSE1; // Show Hind Cycle Short Exit 1
|
||||
bool showHindSE2; // Show Hind Cycle Short Exit 2
|
||||
bool showCurrent; // Show Current Cycle
|
||||
bool showShort; // Show Short Cycle
|
||||
bool showMedium; // Show Medium Cycle
|
||||
bool showLong; // Show Long Cycle
|
||||
bool showHind; // Show Hind Cycle
|
||||
|
||||
//
|
||||
// Constructor(s) ...
|
||||
@@ -178,26 +156,17 @@ struct XCHCHEInputs
|
||||
hcPeriod = NULL;
|
||||
|
||||
//
|
||||
showCurrentLE1 = false;
|
||||
showCurrentLE2 = false;
|
||||
showCurrentSE1 = false;
|
||||
showCurrentSE2 = false;
|
||||
showShortLE1 = false;
|
||||
showShortLE2 = false;
|
||||
showShortSE1 = false;
|
||||
showShortSE2 = false;
|
||||
showMediumLE1 = false;
|
||||
showMediumLE2 = false;
|
||||
showMediumSE1 = false;
|
||||
showMediumSE2 = false;
|
||||
showLongLE1 = false;
|
||||
showLongLE2 = false;
|
||||
showLongSE1 = false;
|
||||
showLongSE2 = false;
|
||||
showHindLE1 = false;
|
||||
showHindLE2 = false;
|
||||
showHindSE1 = false;
|
||||
showHindSE2 = false;
|
||||
showLE1 = false;
|
||||
showLE2 = false;
|
||||
showSE1 = false;
|
||||
showSE2 = false;
|
||||
|
||||
//
|
||||
showCurrent = false;
|
||||
showShort = false;
|
||||
showMedium = false;
|
||||
showLong = false;
|
||||
showHind = false;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -225,26 +194,17 @@ struct XCHCHEInputs
|
||||
hcPeriod = NULL;
|
||||
|
||||
//
|
||||
showCurrentLE1 = true;
|
||||
showCurrentLE2 = true;
|
||||
showCurrentSE1 = true;
|
||||
showCurrentSE2 = true;
|
||||
showShortLE1 = true;
|
||||
showShortLE2 = true;
|
||||
showShortSE1 = true;
|
||||
showShortSE2 = true;
|
||||
showMediumLE1 = true;
|
||||
showMediumLE2 = true;
|
||||
showMediumSE1 = true;
|
||||
showMediumSE2 = true;
|
||||
showLongLE1 = true;
|
||||
showLongLE2 = true;
|
||||
showLongSE1 = true;
|
||||
showLongSE2 = true;
|
||||
showHindLE1 = true;
|
||||
showHindLE2 = true;
|
||||
showHindSE1 = true;
|
||||
showHindSE2 = true;
|
||||
showLE1 = true;
|
||||
showLE2 = true;
|
||||
showSE1 = true;
|
||||
showSE2 = true;
|
||||
|
||||
//
|
||||
showCurrent = true;
|
||||
showShort = true;
|
||||
showMedium = true;
|
||||
showLong = true;
|
||||
showHind = true;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -1044,35 +1004,16 @@ public:
|
||||
// Presentation ...
|
||||
"",
|
||||
//
|
||||
// CURRENT ...
|
||||
mInputs.showCurrentLE1,
|
||||
mInputs.showCurrentLE2,
|
||||
mInputs.showCurrentSE1,
|
||||
mInputs.showCurrentSE2,
|
||||
mInputs.showLE1,
|
||||
mInputs.showLE2,
|
||||
mInputs.showSE1,
|
||||
mInputs.showSE2,
|
||||
//
|
||||
// SHORT ...
|
||||
mInputs.showShortLE1,
|
||||
mInputs.showShortLE2,
|
||||
mInputs.showShortSE1,
|
||||
mInputs.showShortSE2,
|
||||
//
|
||||
// MEDIUM ...
|
||||
mInputs.showMediumLE1,
|
||||
mInputs.showMediumLE2,
|
||||
mInputs.showMediumSE1,
|
||||
mInputs.showMediumSE2,
|
||||
//
|
||||
// LONG ...
|
||||
mInputs.showLongLE1,
|
||||
mInputs.showLongLE2,
|
||||
mInputs.showLongSE1,
|
||||
mInputs.showLongSE2,
|
||||
//
|
||||
// HIND ...
|
||||
mInputs.showHindLE1,
|
||||
mInputs.showHindLE2,
|
||||
mInputs.showHindSE1,
|
||||
mInputs.showHindSE2
|
||||
mInputs.showCurrent,
|
||||
mInputs.showShort,
|
||||
mInputs.showMedium,
|
||||
mInputs.showLong,
|
||||
mInputs.showHind
|
||||
//
|
||||
);
|
||||
result = mHandler != INVALID_HANDLE;
|
||||
|
||||
@@ -95,18 +95,20 @@ struct XCHMInputs
|
||||
|
||||
//
|
||||
// Presentation ...
|
||||
bool showFast; // Show Fast
|
||||
bool showSlow; // Show Slow
|
||||
bool showCCFast; // Show Current Cycle Fast
|
||||
bool showCCSlow; // Show Current Cycle Slow
|
||||
bool showSCFast; // Show Short Cycle Fast
|
||||
bool showSCSlow; // Show Short Cycle Slow
|
||||
bool showMCFast; // Show Medium Cycle Fast
|
||||
bool showMCSlow; // Show Medium Cycle Slow
|
||||
bool showLCFast; // Show Long Cycle Fast
|
||||
bool showLCSlow; // Show Long Cycle Slow
|
||||
bool showHCFast; // Show Hind Cycle Fast
|
||||
bool showHCSlow; // Show Hind Cycle Slow
|
||||
|
||||
//
|
||||
bool showFast; // Show Fast
|
||||
bool showSlow; // Show Slow
|
||||
|
||||
//
|
||||
bool showAVG; // Show Average
|
||||
|
||||
//
|
||||
bool showCurrent; // Show Current Cycle
|
||||
bool showShort; // Show Short Cycle
|
||||
bool showMedium; // Show Medium Cycle
|
||||
bool showLong; // Show Long Cycle
|
||||
bool showHind; // Show Hind Cycle
|
||||
|
||||
//
|
||||
// Constructor(s) ...
|
||||
@@ -142,16 +144,16 @@ struct XCHMInputs
|
||||
//
|
||||
showFast = false;
|
||||
showSlow = false;
|
||||
showCCFast = false;
|
||||
showCCSlow = false;
|
||||
showSCFast = false;
|
||||
showSCSlow = false;
|
||||
showMCFast = false;
|
||||
showMCSlow = false;
|
||||
showLCFast = false;
|
||||
showLCSlow = false;
|
||||
showHCFast = false;
|
||||
showHCSlow = false;
|
||||
|
||||
//
|
||||
showAVG = false;
|
||||
|
||||
//
|
||||
showCurrent = false;
|
||||
showShort = false;
|
||||
showMedium = false;
|
||||
showLong = false;
|
||||
showHind = false;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -177,16 +179,16 @@ struct XCHMInputs
|
||||
//
|
||||
showFast = true;
|
||||
showSlow = true;
|
||||
showCCFast = true;
|
||||
showCCSlow = true;
|
||||
showSCFast = true;
|
||||
showSCSlow = true;
|
||||
showMCFast = true;
|
||||
showMCSlow = true;
|
||||
showLCFast = true;
|
||||
showLCSlow = true;
|
||||
showHCFast = true;
|
||||
showHCSlow = true;
|
||||
|
||||
//
|
||||
showAVG = true;
|
||||
|
||||
//
|
||||
showCurrent = true;
|
||||
showShort = true;
|
||||
showMedium = true;
|
||||
showLong = true;
|
||||
showHind = true;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -983,19 +985,17 @@ public:
|
||||
//
|
||||
// Presentation ...
|
||||
"",
|
||||
//
|
||||
mInputs.showFast,
|
||||
mInputs.showSlow,
|
||||
//
|
||||
mInputs.showCCFast,
|
||||
mInputs.showCCSlow,
|
||||
mInputs.showSCFast,
|
||||
mInputs.showSCSlow,
|
||||
mInputs.showMCFast,
|
||||
mInputs.showMCSlow,
|
||||
mInputs.showLCFast,
|
||||
mInputs.showLCSlow,
|
||||
mInputs.showHCFast,
|
||||
mInputs.showHCSlow
|
||||
mInputs.showAVG,
|
||||
//
|
||||
mInputs.showCurrent,
|
||||
mInputs.showShort,
|
||||
mInputs.showMedium,
|
||||
mInputs.showLong,
|
||||
mInputs.showHind
|
||||
//
|
||||
);
|
||||
result = mHandler != INVALID_HANDLE;
|
||||
|
||||
@@ -68,39 +68,17 @@ input ENUM_TIMEFRAMES hcPeriod = NULL; // Time Period
|
||||
input group "Presentation";
|
||||
|
||||
//
|
||||
// Current ...
|
||||
input bool showCurrentLE1 = true; // Show Current Cycle Long Exit 1
|
||||
input bool showCurrentLE2 = true; // Show Current Cycle Long Exit 2
|
||||
input bool showCurrentSE1 = true; // Show Current Cycle Short Exit 1
|
||||
input bool showCurrentSE2 = true; // Show Current Cycle Short Exit 2
|
||||
input bool showLE1 = true; // Show Long Exit 1
|
||||
input bool showLE2 = true; // Show Long Exit 2
|
||||
input bool showSE1 = true; // Show Short Exit 1
|
||||
input bool showSE2 = true; // Show Short Exit 2
|
||||
|
||||
//
|
||||
// Short ...
|
||||
input bool showShortLE1 = true; // Show Short Cycle Long Exit 1
|
||||
input bool showShortLE2 = true; // Show Short Cycle Long Exit 2
|
||||
input bool showShortSE1 = true; // Show Short Cycle Short Exit 1
|
||||
input bool showShortSE2 = true; // Show Short Cycle Short Exit 2
|
||||
|
||||
//
|
||||
// Medium ...
|
||||
input bool showMediumLE1 = true; // Show Medium Cycle Long Exit 1
|
||||
input bool showMediumLE2 = true; // Show Medium Cycle Long Exit 2
|
||||
input bool showMediumSE1 = true; // Show Medium Cycle Short Exit 1
|
||||
input bool showMediumSE2 = true; // Show Medium Cycle Short Exit 2
|
||||
|
||||
//
|
||||
// Long ...
|
||||
input bool showLongLE1 = true; // Show Long Cycle Long Exit 1
|
||||
input bool showLongLE2 = true; // Show Long Cycle Long Exit 2
|
||||
input bool showLongSE1 = true; // Show Long Cycle Short Exit 1
|
||||
input bool showLongSE2 = true; // Show Long Cycle Short Exit 2
|
||||
|
||||
//
|
||||
// Hind ...
|
||||
input bool showHindLE1 = true; // Show Hind Cycle Long Exit 1
|
||||
input bool showHindLE2 = true; // Show Hind Cycle Long Exit 2
|
||||
input bool showHindSE1 = true; // Show Hind Cycle Short Exit 1
|
||||
input bool showHindSE2 = true; // Show Hind Cycle Short Exit 2
|
||||
input bool showCurrent = true; // Show Current Cycle
|
||||
input bool showShort = true; // Show Short Cycle
|
||||
input bool showMedium = true; // Show Medium Cycle
|
||||
input bool showLong = true; // Show Long Cycle
|
||||
input bool showHind = true; // Show Hind Cycle
|
||||
|
||||
//
|
||||
// Buffers ...
|
||||
@@ -732,30 +710,34 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Long Exit 1 ...
|
||||
ENUM_DRAW_TYPE cLE1DrawType = showCurrentLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowCLE1 = showCurrent && showLE1;
|
||||
ENUM_DRAW_TYPE cLE1DrawType = canShowCLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(cLE1BufferIndex, cLE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(cLE1BufferIndex, PLOT_SHOW_DATA, showCurrentLE1);
|
||||
PlotIndexSetInteger(cLE1BufferIndex, PLOT_SHOW_DATA, canShowCLE1);
|
||||
PlotIndexSetInteger(cLE1BufferIndex, PLOT_DRAW_TYPE, cLE1DrawType);
|
||||
|
||||
//
|
||||
// Long Exit 2 ...
|
||||
ENUM_DRAW_TYPE cLE2DrawType = showCurrentLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowCLE2 = showCurrent && showLE2;
|
||||
ENUM_DRAW_TYPE cLE2DrawType = canShowCLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(cLE2BufferIndex, cLE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(cLE2BufferIndex, PLOT_SHOW_DATA, showCurrentLE2);
|
||||
PlotIndexSetInteger(cLE2BufferIndex, PLOT_SHOW_DATA, canShowCLE2);
|
||||
PlotIndexSetInteger(cLE2BufferIndex, PLOT_DRAW_TYPE, cLE2DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 1 ...
|
||||
ENUM_DRAW_TYPE cSE1DrawType = showCurrentSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowCSE1 = showCurrent && showSE1;
|
||||
ENUM_DRAW_TYPE cSE1DrawType = canShowCSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(cSE1BufferIndex, cSE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(cSE1BufferIndex, PLOT_SHOW_DATA, showCurrentSE1);
|
||||
PlotIndexSetInteger(cSE1BufferIndex, PLOT_SHOW_DATA, canShowCSE1);
|
||||
PlotIndexSetInteger(cSE1BufferIndex, PLOT_DRAW_TYPE, cSE1DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 2 ...
|
||||
ENUM_DRAW_TYPE cSE2DrawType = showCurrentSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowCSE2 = showCurrent && showSE2;
|
||||
ENUM_DRAW_TYPE cSE2DrawType = canShowCSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(cSE2BufferIndex, cSE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(cSE2BufferIndex, PLOT_SHOW_DATA, showCurrentSE2);
|
||||
PlotIndexSetInteger(cSE2BufferIndex, PLOT_SHOW_DATA, canShowCSE2);
|
||||
PlotIndexSetInteger(cSE2BufferIndex, PLOT_DRAW_TYPE, cSE2DrawType);
|
||||
|
||||
//
|
||||
@@ -763,30 +745,34 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Long Exit 1 ...
|
||||
ENUM_DRAW_TYPE sLE1DrawType = showCurrentLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowSLE1 = showShort && showLE1;
|
||||
ENUM_DRAW_TYPE sLE1DrawType = canShowSLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(sLE1BufferIndex, sLE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(sLE1BufferIndex, PLOT_SHOW_DATA, showCurrentLE1);
|
||||
PlotIndexSetInteger(sLE1BufferIndex, PLOT_SHOW_DATA, canShowSLE1);
|
||||
PlotIndexSetInteger(sLE1BufferIndex, PLOT_DRAW_TYPE, sLE1DrawType);
|
||||
|
||||
//
|
||||
// Long Exit 2 ...
|
||||
ENUM_DRAW_TYPE sLE2DrawType = showCurrentLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowSLE2 = showShort && showLE2;
|
||||
ENUM_DRAW_TYPE sLE2DrawType = canShowSLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(sLE2BufferIndex, sLE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(sLE2BufferIndex, PLOT_SHOW_DATA, showCurrentLE2);
|
||||
PlotIndexSetInteger(sLE2BufferIndex, PLOT_SHOW_DATA, canShowSLE2);
|
||||
PlotIndexSetInteger(sLE2BufferIndex, PLOT_DRAW_TYPE, sLE2DrawType);
|
||||
|
||||
//
|
||||
bool canShowSSE1 = showShort && showSE1;
|
||||
// Short Exit 1 ...
|
||||
ENUM_DRAW_TYPE sSE1DrawType = showCurrentSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
ENUM_DRAW_TYPE sSE1DrawType = canShowSSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(sSE1BufferIndex, sSE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(sSE1BufferIndex, PLOT_SHOW_DATA, showCurrentSE1);
|
||||
PlotIndexSetInteger(sSE1BufferIndex, PLOT_SHOW_DATA, canShowSSE1);
|
||||
PlotIndexSetInteger(sSE1BufferIndex, PLOT_DRAW_TYPE, sSE1DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 2 ...
|
||||
ENUM_DRAW_TYPE sSE2DrawType = showCurrentSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowSSE2 = showShort && showSE2;
|
||||
ENUM_DRAW_TYPE sSE2DrawType = canShowSSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(sSE2BufferIndex, sSE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(sSE2BufferIndex, PLOT_SHOW_DATA, showCurrentSE2);
|
||||
PlotIndexSetInteger(sSE2BufferIndex, PLOT_SHOW_DATA, canShowSSE2);
|
||||
PlotIndexSetInteger(sSE2BufferIndex, PLOT_DRAW_TYPE, sSE2DrawType);
|
||||
|
||||
//
|
||||
@@ -794,30 +780,34 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Long Exit 1 ...
|
||||
ENUM_DRAW_TYPE mLE1DrawType = showCurrentLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowMLE1 = showMedium && showLE1;
|
||||
ENUM_DRAW_TYPE mLE1DrawType = canShowMLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(mLE1BufferIndex, mLE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(mLE1BufferIndex, PLOT_SHOW_DATA, showCurrentLE1);
|
||||
PlotIndexSetInteger(mLE1BufferIndex, PLOT_SHOW_DATA, canShowMLE1);
|
||||
PlotIndexSetInteger(mLE1BufferIndex, PLOT_DRAW_TYPE, mLE1DrawType);
|
||||
|
||||
//
|
||||
// Long Exit 2 ...
|
||||
ENUM_DRAW_TYPE mLE2DrawType = showCurrentLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowMLE2 = showMedium && showLE2;
|
||||
ENUM_DRAW_TYPE mLE2DrawType = canShowMLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(mLE2BufferIndex, mLE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(mLE2BufferIndex, PLOT_SHOW_DATA, showCurrentLE2);
|
||||
PlotIndexSetInteger(mLE2BufferIndex, PLOT_SHOW_DATA, canShowMLE2);
|
||||
PlotIndexSetInteger(mLE2BufferIndex, PLOT_DRAW_TYPE, mLE2DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 1 ...
|
||||
ENUM_DRAW_TYPE mSE1DrawType = showCurrentSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowMSE1 = showMedium && showSE1;
|
||||
ENUM_DRAW_TYPE mSE1DrawType = canShowMSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(mSE1BufferIndex, mSE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(mSE1BufferIndex, PLOT_SHOW_DATA, showCurrentSE1);
|
||||
PlotIndexSetInteger(mSE1BufferIndex, PLOT_SHOW_DATA, canShowMSE1);
|
||||
PlotIndexSetInteger(mSE1BufferIndex, PLOT_DRAW_TYPE, mSE1DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 2 ...
|
||||
ENUM_DRAW_TYPE mSE2DrawType = showCurrentSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowMSE2 = showMedium && showSE2;
|
||||
ENUM_DRAW_TYPE mSE2DrawType = canShowMSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(mSE2BufferIndex, mSE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(mSE2BufferIndex, PLOT_SHOW_DATA, showCurrentSE2);
|
||||
PlotIndexSetInteger(mSE2BufferIndex, PLOT_SHOW_DATA, canShowMSE2);
|
||||
PlotIndexSetInteger(mSE2BufferIndex, PLOT_DRAW_TYPE, mSE2DrawType);
|
||||
|
||||
//
|
||||
@@ -825,30 +815,34 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Long Exit 1 ...
|
||||
ENUM_DRAW_TYPE lLE1DrawType = showCurrentLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowLLE1 = showLong && showLE1;
|
||||
ENUM_DRAW_TYPE lLE1DrawType = canShowLLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(lLE1BufferIndex, lLE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(lLE1BufferIndex, PLOT_SHOW_DATA, showCurrentLE1);
|
||||
PlotIndexSetInteger(lLE1BufferIndex, PLOT_SHOW_DATA, canShowLLE1);
|
||||
PlotIndexSetInteger(lLE1BufferIndex, PLOT_DRAW_TYPE, lLE1DrawType);
|
||||
|
||||
//
|
||||
// Long Exit 2 ...
|
||||
ENUM_DRAW_TYPE lLE2DrawType = showCurrentLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowLLE2 = showLong && showLE2;
|
||||
ENUM_DRAW_TYPE lLE2DrawType = canShowLLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(lLE2BufferIndex, lLE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(lLE2BufferIndex, PLOT_SHOW_DATA, showCurrentLE2);
|
||||
PlotIndexSetInteger(lLE2BufferIndex, PLOT_SHOW_DATA, canShowLLE2);
|
||||
PlotIndexSetInteger(lLE2BufferIndex, PLOT_DRAW_TYPE, lLE2DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 1 ...
|
||||
ENUM_DRAW_TYPE lSE1DrawType = showCurrentSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowLSE1 = showLong && showSE1;
|
||||
ENUM_DRAW_TYPE lSE1DrawType = canShowLSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(lSE1BufferIndex, lSE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(lSE1BufferIndex, PLOT_SHOW_DATA, showCurrentSE1);
|
||||
PlotIndexSetInteger(lSE1BufferIndex, PLOT_SHOW_DATA, canShowLSE1);
|
||||
PlotIndexSetInteger(lSE1BufferIndex, PLOT_DRAW_TYPE, lSE1DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 2 ...
|
||||
ENUM_DRAW_TYPE lSE2DrawType = showCurrentSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowLSE2 = showLong && showSE2;
|
||||
ENUM_DRAW_TYPE lSE2DrawType = canShowLSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(lSE2BufferIndex, lSE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(lSE2BufferIndex, PLOT_SHOW_DATA, showCurrentSE2);
|
||||
PlotIndexSetInteger(lSE2BufferIndex, PLOT_SHOW_DATA, canShowLSE2);
|
||||
PlotIndexSetInteger(lSE2BufferIndex, PLOT_DRAW_TYPE, lSE2DrawType);
|
||||
|
||||
//
|
||||
@@ -856,30 +850,34 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Long Exit 1 ...
|
||||
ENUM_DRAW_TYPE hLE1DrawType = showCurrentLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowHLE1 = showHind && showLE1;
|
||||
ENUM_DRAW_TYPE hLE1DrawType = canShowHLE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(hLE1BufferIndex, hLE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(hLE1BufferIndex, PLOT_SHOW_DATA, showCurrentLE1);
|
||||
PlotIndexSetInteger(hLE1BufferIndex, PLOT_SHOW_DATA, canShowHLE1);
|
||||
PlotIndexSetInteger(hLE1BufferIndex, PLOT_DRAW_TYPE, hLE1DrawType);
|
||||
|
||||
//
|
||||
// Long Exit 2 ...
|
||||
ENUM_DRAW_TYPE hLE2DrawType = showCurrentLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowHLE2 = showHind && showLE2;
|
||||
ENUM_DRAW_TYPE hLE2DrawType = canShowHLE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(hLE2BufferIndex, hLE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(hLE2BufferIndex, PLOT_SHOW_DATA, showCurrentLE2);
|
||||
PlotIndexSetInteger(hLE2BufferIndex, PLOT_SHOW_DATA, canShowHLE2);
|
||||
PlotIndexSetInteger(hLE2BufferIndex, PLOT_DRAW_TYPE, hLE2DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 1 ...
|
||||
ENUM_DRAW_TYPE hSE1DrawType = showCurrentSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowHSE1 = showHind && showSE1;
|
||||
ENUM_DRAW_TYPE hSE1DrawType = canShowHSE1 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(hSE1BufferIndex, hSE1Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(hSE1BufferIndex, PLOT_SHOW_DATA, showCurrentSE1);
|
||||
PlotIndexSetInteger(hSE1BufferIndex, PLOT_SHOW_DATA, canShowHSE1);
|
||||
PlotIndexSetInteger(hSE1BufferIndex, PLOT_DRAW_TYPE, hSE1DrawType);
|
||||
|
||||
//
|
||||
// Short Exit 2 ...
|
||||
ENUM_DRAW_TYPE hSE2DrawType = showCurrentSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowHSE2 = showHind && showSE2;
|
||||
ENUM_DRAW_TYPE hSE2DrawType = canShowHSE2 ? DRAW_LINE : DRAW_NONE;
|
||||
SetIndexBuffer(hSE2BufferIndex, hSE2Buffer, INDICATOR_DATA);
|
||||
PlotIndexSetInteger(hSE2BufferIndex, PLOT_SHOW_DATA, showCurrentSE2);
|
||||
PlotIndexSetInteger(hSE2BufferIndex, PLOT_SHOW_DATA, canShowHSE2);
|
||||
PlotIndexSetInteger(hSE2BufferIndex, PLOT_DRAW_TYPE, hSE2DrawType);
|
||||
}
|
||||
|
||||
@@ -1029,7 +1027,7 @@ void CalculateCycle(
|
||||
const double &close[],
|
||||
const double &low[],
|
||||
//
|
||||
int _length, // Calculation Length
|
||||
int _length, // Calculation Length
|
||||
double &work[][], // Working Array
|
||||
//
|
||||
double &le1[],
|
||||
|
||||
@@ -63,30 +63,21 @@ input ENUM_TIMEFRAMES hcPeriod = NULL; // Time Period
|
||||
input group "Presentation";
|
||||
|
||||
//
|
||||
// AVG ...
|
||||
// Parts ...
|
||||
input bool showFast = true; // Show Fast
|
||||
input bool showSlow = true; // Show Slow
|
||||
|
||||
//
|
||||
// Current ...
|
||||
input bool showCCFast = true; // Show Current Cycle Fast
|
||||
input bool showCCSlow = true; // Show Current Cycle Slow
|
||||
// AVG ...
|
||||
input bool showAVG = true; // Show Average
|
||||
|
||||
//
|
||||
// Short ...
|
||||
input bool showSCFast = true; // Show Short Cycle Fast
|
||||
input bool showSCSlow = true; // Show Short Cycle Slow
|
||||
//
|
||||
// Medium ...
|
||||
input bool showMCFast = true; // Show Medium Cycle Fast
|
||||
input bool showMCSlow = true; // Show Medium Cycle Slow
|
||||
//
|
||||
// Long ...
|
||||
input bool showLCFast = true; // Show Long Cycle Fast
|
||||
input bool showLCSlow = true; // Show Long Cycle Slow
|
||||
//
|
||||
// Hind ...
|
||||
input bool showHCFast = true; // Show Hind Cycle Fast
|
||||
input bool showHCSlow = true; // Show Hind Cycle Slow
|
||||
// Cycles ...
|
||||
input bool showCurrent = true; // Show Current Cycle
|
||||
input bool showShort = true; // Show Short Cycle
|
||||
input bool showMedium = true; // Show Medium Cycle
|
||||
input bool showLong = true; // Show Long Cycle
|
||||
input bool showHind = true; // Show Hind Cycle
|
||||
|
||||
//
|
||||
// Buffers ...
|
||||
@@ -598,22 +589,24 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Fast ...
|
||||
ENUM_DRAW_TYPE avgFastDrawType = showFast ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowAVGFast = showAVG && showFast;
|
||||
ENUM_DRAW_TYPE avgFastDrawType = canShowAVGFast ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(avgFastBuffer, true);
|
||||
SetIndexBuffer(avgFastBufferIndex, avgFastBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(avgFastBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(avgFastBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(avgFastBufferIndex, PLOT_SHOW_DATA, showFast);
|
||||
PlotIndexSetInteger(avgFastBufferIndex, PLOT_SHOW_DATA, canShowAVGFast);
|
||||
PlotIndexSetInteger(avgFastBufferIndex, PLOT_DRAW_TYPE, avgFastDrawType);
|
||||
|
||||
//
|
||||
// Slow ...
|
||||
ENUM_DRAW_TYPE avgSlowDrawType = showSlow ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowAVGSlow = showAVG && showSlow;
|
||||
ENUM_DRAW_TYPE avgSlowDrawType = canShowAVGSlow ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(avgSlowBuffer, true);
|
||||
SetIndexBuffer(avgSlowBufferIndex, avgSlowBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(avgSlowBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(avgSlowBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(avgSlowBufferIndex, PLOT_SHOW_DATA, showSlow);
|
||||
PlotIndexSetInteger(avgSlowBufferIndex, PLOT_SHOW_DATA, canShowAVGSlow);
|
||||
PlotIndexSetInteger(avgSlowBufferIndex, PLOT_DRAW_TYPE, avgSlowDrawType);
|
||||
|
||||
//
|
||||
@@ -621,22 +614,24 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Fast ...
|
||||
ENUM_DRAW_TYPE cFastDrawType = showCCFast ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowCFast = showCurrent && showFast;
|
||||
ENUM_DRAW_TYPE cFastDrawType = canShowCFast ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(cFastBuffer, true);
|
||||
SetIndexBuffer(cFastBufferIndex, cFastBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(cFastBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(cFastBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(cFastBufferIndex, PLOT_SHOW_DATA, showCCFast);
|
||||
PlotIndexSetInteger(cFastBufferIndex, PLOT_SHOW_DATA, canShowCFast);
|
||||
PlotIndexSetInteger(cFastBufferIndex, PLOT_DRAW_TYPE, cFastDrawType);
|
||||
|
||||
//
|
||||
// Slow ...
|
||||
ENUM_DRAW_TYPE cSlowDrawType = showCCSlow ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowCSlow = showCurrent && showSlow;
|
||||
ENUM_DRAW_TYPE cSlowDrawType = canShowCSlow ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(cSlowBuffer, true);
|
||||
SetIndexBuffer(cSlowBufferIndex, cSlowBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(cSlowBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(cSlowBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(cSlowBufferIndex, PLOT_SHOW_DATA, showCCSlow);
|
||||
PlotIndexSetInteger(cSlowBufferIndex, PLOT_SHOW_DATA, canShowCSlow);
|
||||
PlotIndexSetInteger(cSlowBufferIndex, PLOT_DRAW_TYPE, cSlowDrawType);
|
||||
|
||||
//
|
||||
@@ -644,22 +639,24 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Fast ...
|
||||
ENUM_DRAW_TYPE sFastDrawType = showSCFast ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowSFast = showShort && showFast;
|
||||
ENUM_DRAW_TYPE sFastDrawType = canShowSFast ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(sFastBuffer, true);
|
||||
SetIndexBuffer(sFastBufferIndex, sFastBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(sFastBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(sFastBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(sFastBufferIndex, PLOT_SHOW_DATA, showSCFast);
|
||||
PlotIndexSetInteger(sFastBufferIndex, PLOT_SHOW_DATA, canShowSFast);
|
||||
PlotIndexSetInteger(sFastBufferIndex, PLOT_DRAW_TYPE, sFastDrawType);
|
||||
|
||||
//
|
||||
// Slow ...
|
||||
ENUM_DRAW_TYPE sSlowDrawType = showSCSlow ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowSSlow = showShort && showSlow;
|
||||
ENUM_DRAW_TYPE sSlowDrawType = canShowSSlow ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(sSlowBuffer, true);
|
||||
SetIndexBuffer(sSlowBufferIndex, sSlowBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(sSlowBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(sSlowBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(sSlowBufferIndex, PLOT_SHOW_DATA, showSCSlow);
|
||||
PlotIndexSetInteger(sSlowBufferIndex, PLOT_SHOW_DATA, canShowSSlow);
|
||||
PlotIndexSetInteger(sSlowBufferIndex, PLOT_DRAW_TYPE, sSlowDrawType);
|
||||
|
||||
//
|
||||
@@ -667,22 +664,24 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Fast ...
|
||||
ENUM_DRAW_TYPE mFastDrawType = showMCFast ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowMFast = showMedium && showFast;
|
||||
ENUM_DRAW_TYPE mFastDrawType = canShowMFast ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(mFastBuffer, true);
|
||||
SetIndexBuffer(mFastBufferIndex, mFastBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(mFastBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(mFastBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(mFastBufferIndex, PLOT_SHOW_DATA, showMCFast);
|
||||
PlotIndexSetInteger(mFastBufferIndex, PLOT_SHOW_DATA, canShowMFast);
|
||||
PlotIndexSetInteger(mFastBufferIndex, PLOT_DRAW_TYPE, mFastDrawType);
|
||||
|
||||
//
|
||||
// Slow ...
|
||||
ENUM_DRAW_TYPE mSlowDrawType = showMCSlow ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowMSlow = showMedium && showSlow;
|
||||
ENUM_DRAW_TYPE mSlowDrawType = canShowMSlow ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(mSlowBuffer, true);
|
||||
SetIndexBuffer(mSlowBufferIndex, mSlowBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(mSlowBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(mSlowBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(mSlowBufferIndex, PLOT_SHOW_DATA, showMCSlow);
|
||||
PlotIndexSetInteger(mSlowBufferIndex, PLOT_SHOW_DATA, canShowMSlow);
|
||||
PlotIndexSetInteger(mSlowBufferIndex, PLOT_DRAW_TYPE, mSlowDrawType);
|
||||
|
||||
//
|
||||
@@ -690,22 +689,24 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Fast ...
|
||||
ENUM_DRAW_TYPE lFastDrawType = showLCFast ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowLFast = showLong && showFast;
|
||||
ENUM_DRAW_TYPE lFastDrawType = canShowLFast ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(lFastBuffer, true);
|
||||
SetIndexBuffer(lFastBufferIndex, lFastBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(lFastBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(lFastBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(lFastBufferIndex, PLOT_SHOW_DATA, showLCFast);
|
||||
PlotIndexSetInteger(lFastBufferIndex, PLOT_SHOW_DATA, canShowLFast);
|
||||
PlotIndexSetInteger(lFastBufferIndex, PLOT_DRAW_TYPE, lFastDrawType);
|
||||
|
||||
//
|
||||
// Slow ...
|
||||
ENUM_DRAW_TYPE lSlowDrawType = showLCSlow ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowLSlow = showLong && showSlow;
|
||||
ENUM_DRAW_TYPE lSlowDrawType = canShowLSlow ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(lSlowBuffer, true);
|
||||
SetIndexBuffer(lSlowBufferIndex, lSlowBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(lSlowBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(lSlowBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(lSlowBufferIndex, PLOT_SHOW_DATA, showLCSlow);
|
||||
PlotIndexSetInteger(lSlowBufferIndex, PLOT_SHOW_DATA, canShowLSlow);
|
||||
PlotIndexSetInteger(lSlowBufferIndex, PLOT_DRAW_TYPE, lSlowDrawType);
|
||||
|
||||
//
|
||||
@@ -713,22 +714,24 @@ void DefineBuffers()
|
||||
|
||||
//
|
||||
// Fast ...
|
||||
ENUM_DRAW_TYPE hFastDrawType = showHCFast ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowHFast = showHind && showFast;
|
||||
ENUM_DRAW_TYPE hFastDrawType = canShowHFast ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(hFastBuffer, true);
|
||||
SetIndexBuffer(hFastBufferIndex, hFastBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(hFastBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(hFastBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(hFastBufferIndex, PLOT_SHOW_DATA, showHCFast);
|
||||
PlotIndexSetInteger(hFastBufferIndex, PLOT_SHOW_DATA, canShowHFast);
|
||||
PlotIndexSetInteger(hFastBufferIndex, PLOT_DRAW_TYPE, hFastDrawType);
|
||||
|
||||
//
|
||||
// Slow ...
|
||||
ENUM_DRAW_TYPE hSlowDrawType = showHCSlow ? DRAW_LINE : DRAW_NONE;
|
||||
bool canShowHSlow = showHind && showSlow;
|
||||
ENUM_DRAW_TYPE hSlowDrawType = canShowHSlow ? DRAW_LINE : DRAW_NONE;
|
||||
ArraySetAsSeries(hSlowBuffer, true);
|
||||
SetIndexBuffer(hSlowBufferIndex, hSlowBuffer, INDICATOR_DATA);
|
||||
PlotIndexSetDouble(hSlowBufferIndex, PLOT_EMPTY_VALUE, 0);
|
||||
PlotIndexSetInteger(hSlowBufferIndex, PLOT_DRAW_BEGIN, maxLength);
|
||||
PlotIndexSetInteger(hSlowBufferIndex, PLOT_SHOW_DATA, showHCSlow);
|
||||
PlotIndexSetInteger(hSlowBufferIndex, PLOT_SHOW_DATA, canShowHSlow);
|
||||
PlotIndexSetInteger(hSlowBufferIndex, PLOT_DRAW_TYPE, hSlowDrawType);
|
||||
}
|
||||
|
||||
|
||||
@@ -198,19 +198,58 @@ struct XCHStartegyAMarketsConditionsParser
|
||||
bool isDowJones = _symbolParser.IsDowJones(signal.symbol);
|
||||
|
||||
//
|
||||
bool isEURUSDFiltered = false;
|
||||
bool isGBPUSDFiltered = false;
|
||||
bool isEURGBPFiltered = false;
|
||||
bool isXAUUSDFiltered = false;
|
||||
bool isUSDJPYFiltered = false;
|
||||
bool isEURJPYFiltered = false;
|
||||
bool isUSDCHFFiltered = false;
|
||||
bool isEURCHFFiltered = false;
|
||||
bool isAUDUSDFiltered = false;
|
||||
bool isNZDUSDFiltered = false;
|
||||
bool isUSDCADFiltered = false;
|
||||
bool isEURCADFiltered = false;
|
||||
bool isDowJonesFiltered = false;
|
||||
bool isEURUSDFiltered = _eurusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isGBPUSDFiltered = _gbpusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURGBPFiltered = _eurgbpLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isUSDJPYFiltered = _usdjpyLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURJPYFiltered = _eurjpyLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isUSDCHFFiltered = _usdchfLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURCHFFiltered = _eurchfLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isXAUUSDFiltered = _xauusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isAUDUSDFiltered = _audusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isNZDUSDFiltered = _nzdusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isUSDCADFiltered = _usdcadLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURCADFiltered = _eurcadLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isDowJonesFiltered = _dowjonesLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
|
||||
//
|
||||
if (!force)
|
||||
@@ -218,120 +257,55 @@ struct XCHStartegyAMarketsConditionsParser
|
||||
//
|
||||
if (isEURUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURUSDFiltered;
|
||||
}
|
||||
else if (isGBPUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_gbpusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isGBPUSDFiltered;
|
||||
}
|
||||
else if (isEURGBP)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurgbpLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURGBPFiltered;
|
||||
}
|
||||
else if (isUSDJPY)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_usdjpyLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isUSDJPYFiltered;
|
||||
}
|
||||
else if (isEURJPY)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurjpyLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURJPYFiltered;
|
||||
}
|
||||
else if (isUSDCHF)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_usdchfLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isUSDCHFFiltered;
|
||||
}
|
||||
else if (isEURCHF)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurchfLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURCHFFiltered;
|
||||
}
|
||||
else if (isXAUUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_xauusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isXAUUSDFiltered;
|
||||
}
|
||||
else if (isAUDUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_audusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isAUDUSDFiltered;
|
||||
}
|
||||
else if (isNZDUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_nzdusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isNZDUSDFiltered;
|
||||
}
|
||||
else if (isUSDCAD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_usdcadLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isUSDCADFiltered;
|
||||
}
|
||||
else if (isEURCAD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurcadLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURCADFiltered;
|
||||
}
|
||||
else if (isDowJones)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_dowjonesLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isDowJonesFiltered;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -339,94 +313,55 @@ struct XCHStartegyAMarketsConditionsParser
|
||||
//
|
||||
result =
|
||||
//
|
||||
_eurusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_gbpusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isGBPUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurgbpLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURGBPFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_usdjpyLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isUSDJPYFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurjpyLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURJPYFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_usdchfLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isUSDCHFFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurchfLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURCHFFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_xauusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isXAUUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_audusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isAUDUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_nzdusdLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isNZDUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_usdcadLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isUSDCADFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurcadLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURCADFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_dowjonesLongParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isDowJonesFiltered
|
||||
//
|
||||
;
|
||||
}
|
||||
@@ -462,19 +397,58 @@ struct XCHStartegyAMarketsConditionsParser
|
||||
bool isDowJones = _symbolParser.IsDowJones(signal.symbol);
|
||||
|
||||
//
|
||||
bool isEURUSDFiltered = false;
|
||||
bool isGBPUSDFiltered = false;
|
||||
bool isEURGBPFiltered = false;
|
||||
bool isXAUUSDFiltered = false;
|
||||
bool isUSDJPYFiltered = false;
|
||||
bool isEURJPYFiltered = false;
|
||||
bool isUSDCHFFiltered = false;
|
||||
bool isEURCHFFiltered = false;
|
||||
bool isAUDUSDFiltered = false;
|
||||
bool isNZDUSDFiltered = false;
|
||||
bool isUSDCADFiltered = false;
|
||||
bool isEURCADFiltered = false;
|
||||
bool isDowJonesFiltered = false;
|
||||
bool isEURUSDFiltered = _eurusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isGBPUSDFiltered = _gbpusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURGBPFiltered = _eurgbpShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isUSDJPYFiltered = _usdjpyShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURJPYFiltered = _eurjpyShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isUSDCHFFiltered = _usdchfShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURCHFFiltered = _eurchfShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isXAUUSDFiltered = _xauusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isAUDUSDFiltered = _audusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isNZDUSDFiltered = _nzdusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isUSDCADFiltered = _usdcadShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isEURCADFiltered = _eurcadShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
bool isDowJonesFiltered = _dowjonesShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
|
||||
//
|
||||
if (!force)
|
||||
@@ -482,120 +456,55 @@ struct XCHStartegyAMarketsConditionsParser
|
||||
//
|
||||
if (isEURUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURUSDFiltered;
|
||||
}
|
||||
else if (isGBPUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_gbpusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isGBPUSDFiltered;
|
||||
}
|
||||
else if (isEURGBP)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurgbpShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURGBPFiltered;
|
||||
}
|
||||
else if (isUSDJPY)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_usdjpyShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isUSDJPYFiltered;
|
||||
}
|
||||
else if (isEURJPY)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurjpyShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURJPYFiltered;
|
||||
}
|
||||
else if (isUSDCHF)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_usdchfShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isUSDCHFFiltered;
|
||||
}
|
||||
else if (isEURCHF)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurchfShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURCHFFiltered;
|
||||
}
|
||||
else if (isXAUUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_xauusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isXAUUSDFiltered;
|
||||
}
|
||||
else if (isAUDUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_audusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isAUDUSDFiltered;
|
||||
}
|
||||
else if (isNZDUSD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_nzdusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isNZDUSDFiltered;
|
||||
}
|
||||
else if (isUSDCAD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_usdcadShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isUSDCADFiltered;
|
||||
}
|
||||
else if (isEURCAD)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_eurcadShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isEURCADFiltered;
|
||||
}
|
||||
else if (isDowJones)
|
||||
{
|
||||
//
|
||||
result =
|
||||
_dowjonesShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
);
|
||||
result = isDowJonesFiltered;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -603,94 +512,55 @@ struct XCHStartegyAMarketsConditionsParser
|
||||
//
|
||||
result =
|
||||
//
|
||||
_eurusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_gbpusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isGBPUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurgbpShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURGBPFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_usdjpyShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isUSDJPYFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurjpyShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURJPYFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_usdchfShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isUSDCHFFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurchfShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURCHFFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_xauusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isXAUUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_audusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isAUDUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_nzdusdShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isNZDUSDFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_usdcadShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isUSDCADFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_eurcadShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isEURCADFiltered
|
||||
//
|
||||
||
|
||||
//
|
||||
_dowjonesShortParser.IsFiltered(
|
||||
signal,
|
||||
conditions //
|
||||
)
|
||||
isDowJonesFiltered
|
||||
//
|
||||
;
|
||||
}
|
||||
|
||||
@@ -1527,16 +1527,16 @@ private:
|
||||
//
|
||||
chmInputs.showFast = false;
|
||||
chmInputs.showSlow = false;
|
||||
chmInputs.showCCFast = false;
|
||||
chmInputs.showCCSlow = false;
|
||||
chmInputs.showSCFast = false;
|
||||
chmInputs.showSCSlow = false;
|
||||
chmInputs.showMCFast = false;
|
||||
chmInputs.showMCSlow = false;
|
||||
chmInputs.showLCFast = false;
|
||||
chmInputs.showLCSlow = false;
|
||||
chmInputs.showHCFast = false;
|
||||
chmInputs.showHCSlow = false;
|
||||
|
||||
//
|
||||
chmInputs.showAVG = false;
|
||||
|
||||
//
|
||||
chmInputs.showCurrent = false;
|
||||
chmInputs.showShort = false;
|
||||
chmInputs.showMedium = false;
|
||||
chmInputs.showLong = false;
|
||||
chmInputs.showHind = false;
|
||||
|
||||
//
|
||||
chmHelper = new XSCXCHMHelper();
|
||||
@@ -1659,26 +1659,17 @@ private:
|
||||
chcheInputs.hcPeriod = hcPeriod;
|
||||
|
||||
//
|
||||
chcheInputs.showCurrentLE1 = false;
|
||||
chcheInputs.showCurrentLE2 = false;
|
||||
chcheInputs.showCurrentSE1 = false;
|
||||
chcheInputs.showCurrentSE2 = false;
|
||||
chcheInputs.showShortLE1 = false;
|
||||
chcheInputs.showShortLE2 = false;
|
||||
chcheInputs.showShortSE1 = false;
|
||||
chcheInputs.showShortSE2 = false;
|
||||
chcheInputs.showMediumLE1 = false;
|
||||
chcheInputs.showMediumLE2 = false;
|
||||
chcheInputs.showMediumSE1 = false;
|
||||
chcheInputs.showMediumSE2 = false;
|
||||
chcheInputs.showLongLE1 = false;
|
||||
chcheInputs.showLongLE2 = false;
|
||||
chcheInputs.showLongSE1 = false;
|
||||
chcheInputs.showLongSE2 = false;
|
||||
chcheInputs.showHindLE1 = false;
|
||||
chcheInputs.showHindLE2 = false;
|
||||
chcheInputs.showHindSE1 = false;
|
||||
chcheInputs.showHindSE2 = false;
|
||||
chcheInputs.showLE1 = false;
|
||||
chcheInputs.showLE2 = false;
|
||||
chcheInputs.showSE1 = false;
|
||||
chcheInputs.showSE2 = false;
|
||||
|
||||
//
|
||||
chcheInputs.showCurrent = false;
|
||||
chcheInputs.showShort = false;
|
||||
chcheInputs.showMedium = false;
|
||||
chcheInputs.showLong = false;
|
||||
chcheInputs.showHind = false;
|
||||
|
||||
//
|
||||
chcheHelper = new XSCXCHCHEHelper();
|
||||
|
||||
Reference in New Issue
Block a user