last works on helpers classes ...
This commit is contained in:
@@ -39,7 +39,11 @@ struct XXAMAInputs
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Props ...
|
// Props ...
|
||||||
string tmp;
|
int length; // Period
|
||||||
|
int fastEMA; // Fast EMA Period
|
||||||
|
int slowEMA; // Slow EMA Period
|
||||||
|
int maShift; // Shift
|
||||||
|
ENUM_APPLIED_PRICE appliedTo; // Applied To
|
||||||
|
|
||||||
//
|
//
|
||||||
// Constructor(s) ...
|
// Constructor(s) ...
|
||||||
@@ -57,6 +61,11 @@ struct XXAMAInputs
|
|||||||
void Clean()
|
void Clean()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
length = 0;
|
||||||
|
fastEMA = 0;
|
||||||
|
slowEMA = 0;
|
||||||
|
maShift = 0;
|
||||||
|
appliedTo = PRICE_CLOSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -64,6 +73,11 @@ struct XXAMAInputs
|
|||||||
void Default()
|
void Default()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
length = 18;
|
||||||
|
fastEMA = 2;
|
||||||
|
slowEMA = 30;
|
||||||
|
maShift = 0;
|
||||||
|
appliedTo = PRICE_CLOSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -76,7 +90,10 @@ struct XXAMAInputs
|
|||||||
//
|
//
|
||||||
result =
|
result =
|
||||||
//
|
//
|
||||||
false
|
length > 0 &&
|
||||||
|
fastEMA > 0 &&
|
||||||
|
slowEMA > 0 &&
|
||||||
|
slowEMA > fastEMA
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -92,7 +109,7 @@ struct XXAMAInputs
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
result = MathMax(0, 0);
|
result = MathMax(length, length);
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
@@ -144,21 +161,26 @@ public:
|
|||||||
//
|
//
|
||||||
mInputs = inputs;
|
mInputs = inputs;
|
||||||
|
|
||||||
// //
|
//
|
||||||
// // ArraySetAsSeries(shortExit2Buffer, true);
|
ArraySetAsSeries(mainBuffer, true);
|
||||||
// mHandler = iCustom(
|
mHandler = iCustom(
|
||||||
// mSymbol,
|
mSymbol,
|
||||||
// mPeriod,
|
mPeriod,
|
||||||
// "x-saherelm.x",
|
"x-saherelm.xama",
|
||||||
// //
|
//
|
||||||
// // Inputs ...
|
// Inputs ...
|
||||||
// //
|
mInputs.length, // Period
|
||||||
// );
|
mInputs.fastEMA, // Fast EMA Period
|
||||||
// result = mHandler != INVALID_HANDLE;
|
mInputs.slowEMA, // Slow EMA Period
|
||||||
// if (!result)
|
mInputs.maShift, // Shift
|
||||||
// {
|
mInputs.appliedTo // Applied To
|
||||||
// return result;
|
//
|
||||||
// }
|
);
|
||||||
|
result = mHandler != INVALID_HANDLE;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
@@ -190,30 +212,55 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
// //
|
//
|
||||||
// // Copy Required Long Exits 2 ...
|
double GetMain(
|
||||||
// int CopyLongExit2(
|
int barIndex // Bar Index
|
||||||
// int start, // Start
|
)
|
||||||
// int count, // Number of Items for read
|
{
|
||||||
// double &buffer[], // Dest Buffer
|
//
|
||||||
// bool forceClean = true // Force To Clean buffer
|
if (barIndex < 0)
|
||||||
// )
|
{
|
||||||
// {
|
barIndex = 0;
|
||||||
// //
|
}
|
||||||
// // Update Calculations ...
|
|
||||||
// Calculate();
|
|
||||||
|
|
||||||
// //
|
//
|
||||||
// // Copy Items ...
|
Calculate();
|
||||||
// return Copy(
|
|
||||||
// start,
|
//
|
||||||
// count,
|
int count = ArraySize(mainBuffer);
|
||||||
// longExit2Buffer,
|
if (barIndex >= count)
|
||||||
// buffer,
|
{
|
||||||
// forceClean
|
barIndex = count - 1;
|
||||||
// //
|
}
|
||||||
// );
|
|
||||||
// }
|
//
|
||||||
|
return mainBuffer[barIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Copy Required Main Buffer ...
|
||||||
|
int CopyMainBuffer(
|
||||||
|
int start, // Start
|
||||||
|
int count, // Number of Items for read
|
||||||
|
double &buffer[], // Dest Buffer
|
||||||
|
bool forceClean = true // Force To Clean buffer
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// Update Calculations ...
|
||||||
|
Calculate();
|
||||||
|
|
||||||
|
//
|
||||||
|
// Copy Items ...
|
||||||
|
return Copy(
|
||||||
|
start,
|
||||||
|
count,
|
||||||
|
mainBuffer,
|
||||||
|
buffer,
|
||||||
|
forceClean
|
||||||
|
//
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Protected ...
|
// Protected ...
|
||||||
@@ -227,7 +274,7 @@ private:
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
// double longExit1Buffer[];
|
double mainBuffer[];
|
||||||
|
|
||||||
//
|
//
|
||||||
// Tools ...
|
// Tools ...
|
||||||
@@ -239,16 +286,16 @@ private:
|
|||||||
//
|
//
|
||||||
int totalBars = CountBars();
|
int totalBars = CountBars();
|
||||||
|
|
||||||
// //
|
//
|
||||||
// // Short Exit 2 ...
|
// Main Buffer ...
|
||||||
// CopyBuffer(
|
CopyBuffer(
|
||||||
// mHandler,
|
mHandler,
|
||||||
// X_CHE_SHORT_EXIT_2_LINE,
|
XAMA_MAIN_LINE,
|
||||||
// 0,
|
0,
|
||||||
// totalBars,
|
totalBars,
|
||||||
// shortExit2Buffer
|
mainBuffer
|
||||||
// //
|
//
|
||||||
// );
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,19 +27,25 @@
|
|||||||
//
|
//
|
||||||
// Definitions ...
|
// Definitions ...
|
||||||
|
|
||||||
//
|
|
||||||
enum ENUM_XCC_BUFFERS
|
|
||||||
{
|
|
||||||
XCC_MAIN_LINE = 0
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Input Models ...
|
// Input Models ...
|
||||||
struct XXCCInputs
|
struct XXCCInputs
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Props ...
|
// Props ...
|
||||||
string tmp;
|
|
||||||
|
//
|
||||||
|
// Chart Style ...
|
||||||
|
color upColor; // Up Color
|
||||||
|
color downColor; // Down Color
|
||||||
|
color lineColor; // Line mode and Doji candlestick Color
|
||||||
|
color bearishColor; // Bullish Color
|
||||||
|
color bullishColor; // Bearish Color
|
||||||
|
color volumesColor; // Volumes Color
|
||||||
|
|
||||||
|
//
|
||||||
|
// Presentation ...
|
||||||
|
bool showCandles; // Show Candles
|
||||||
|
|
||||||
//
|
//
|
||||||
// Constructor(s) ...
|
// Constructor(s) ...
|
||||||
@@ -57,6 +63,15 @@ struct XXCCInputs
|
|||||||
void Clean()
|
void Clean()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
upColor = CLR_NONE;
|
||||||
|
downColor = CLR_NONE;
|
||||||
|
lineColor = CLR_NONE;
|
||||||
|
bearishColor = CLR_NONE;
|
||||||
|
bullishColor = CLR_NONE;
|
||||||
|
volumesColor = CLR_NONE;
|
||||||
|
|
||||||
|
//
|
||||||
|
showCandles = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -64,6 +79,14 @@ struct XXCCInputs
|
|||||||
void Default()
|
void Default()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
upColor = clrLime;
|
||||||
|
downColor = clrRed;
|
||||||
|
lineColor = clrLime;
|
||||||
|
bearishColor = clrRed;
|
||||||
|
bullishColor = clrLime;
|
||||||
|
volumesColor = clrGreen;
|
||||||
|
//
|
||||||
|
showCandles = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -76,7 +99,7 @@ struct XXCCInputs
|
|||||||
//
|
//
|
||||||
result =
|
result =
|
||||||
//
|
//
|
||||||
false
|
true
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -144,21 +167,33 @@ public:
|
|||||||
//
|
//
|
||||||
mInputs = inputs;
|
mInputs = inputs;
|
||||||
|
|
||||||
// //
|
//
|
||||||
// // ArraySetAsSeries(shortExit2Buffer, true);
|
mHandler = iCustom(
|
||||||
// mHandler = iCustom(
|
mSymbol,
|
||||||
// mSymbol,
|
mPeriod,
|
||||||
// mPeriod,
|
"x-saherelm.xcc",
|
||||||
// "x-saherelm.x",
|
//
|
||||||
// //
|
// Inputs ...
|
||||||
// // Inputs ...
|
//
|
||||||
// //
|
// Chart Style ...
|
||||||
// );
|
"",
|
||||||
// result = mHandler != INVALID_HANDLE;
|
mInputs.upColor, // Up Color
|
||||||
// if (!result)
|
mInputs.downColor, // Down Color
|
||||||
// {
|
mInputs.lineColor, // Line mode and Doji candlestick Color
|
||||||
// return result;
|
mInputs.bearishColor, // Bullish Color
|
||||||
// }
|
mInputs.bullishColor, // Bearish Color
|
||||||
|
mInputs.volumesColor, // Volumes Color
|
||||||
|
//
|
||||||
|
// Presentation ...
|
||||||
|
"",
|
||||||
|
mInputs.showCandles // Show Candles
|
||||||
|
//
|
||||||
|
);
|
||||||
|
result = mHandler != INVALID_HANDLE;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
@@ -187,34 +222,6 @@ public:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Buffers ...
|
|
||||||
|
|
||||||
// //
|
|
||||||
// // Copy Required Long Exits 2 ...
|
|
||||||
// int CopyLongExit2(
|
|
||||||
// int start, // Start
|
|
||||||
// int count, // Number of Items for read
|
|
||||||
// double &buffer[], // Dest Buffer
|
|
||||||
// bool forceClean = true // Force To Clean buffer
|
|
||||||
// )
|
|
||||||
// {
|
|
||||||
// //
|
|
||||||
// // Update Calculations ...
|
|
||||||
// Calculate();
|
|
||||||
|
|
||||||
// //
|
|
||||||
// // Copy Items ...
|
|
||||||
// return Copy(
|
|
||||||
// start,
|
|
||||||
// count,
|
|
||||||
// longExit2Buffer,
|
|
||||||
// buffer,
|
|
||||||
// forceClean
|
|
||||||
// //
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Protected ...
|
// Protected ...
|
||||||
protected:
|
protected:
|
||||||
@@ -224,32 +231,6 @@ private:
|
|||||||
//
|
//
|
||||||
// Props ...
|
// Props ...
|
||||||
XXCCInputs mInputs; // Inputs ...
|
XXCCInputs mInputs; // Inputs ...
|
||||||
|
|
||||||
//
|
|
||||||
// Buffers ...
|
|
||||||
// double longExit1Buffer[];
|
|
||||||
|
|
||||||
//
|
|
||||||
// Tools ...
|
|
||||||
|
|
||||||
//
|
|
||||||
// Calculate Values Until Now ...
|
|
||||||
void Calculate()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
int totalBars = CountBars();
|
|
||||||
|
|
||||||
// //
|
|
||||||
// // Short Exit 2 ...
|
|
||||||
// CopyBuffer(
|
|
||||||
// mHandler,
|
|
||||||
// X_CHE_SHORT_EXIT_2_LINE,
|
|
||||||
// 0,
|
|
||||||
// totalBars,
|
|
||||||
// shortExit2Buffer
|
|
||||||
// //
|
|
||||||
// );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -30,7 +30,21 @@
|
|||||||
//
|
//
|
||||||
enum ENUM_XCHLH_BUFFERS
|
enum ENUM_XCHLH_BUFFERS
|
||||||
{
|
{
|
||||||
XCHLH_MAIN_LINE = 0
|
//
|
||||||
|
// LC ...
|
||||||
|
XCHLH_LC_HH_LINE = 0,
|
||||||
|
XCHLH_LC_LL_LINE = 1,
|
||||||
|
//
|
||||||
|
// MC ...
|
||||||
|
XCHLH_MC_HH_LINE = 2,
|
||||||
|
XCHLH_MC_LL_LINE = 3,
|
||||||
|
//
|
||||||
|
// SC ...
|
||||||
|
XCHLH_SC_HH_LINE = 4,
|
||||||
|
XCHLH_SC_LL_LINE = 5,
|
||||||
|
//
|
||||||
|
// Hot State ...
|
||||||
|
XCHLH_HOT_STATE_LINE = 6
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -39,7 +53,66 @@ struct XXCHLHInputs
|
|||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Props ...
|
// Props ...
|
||||||
string tmp;
|
|
||||||
|
//
|
||||||
|
// Hot Areas ...
|
||||||
|
bool drawHotAreas; // Draw Hot Areas Symbol
|
||||||
|
uchar hotHHArrowCode; // Hot HH Arrow Code
|
||||||
|
color hotHHArrowColor; // Hot HH Arrow Color
|
||||||
|
uchar hotLLArrowCode; // Hot LL Arrow Code
|
||||||
|
color hotLLArrowColor; // Hot LL Arrow Color
|
||||||
|
|
||||||
|
//
|
||||||
|
// Long Cycle ...
|
||||||
|
// LC Market ...
|
||||||
|
int lcLength; // Length
|
||||||
|
double lcThresholdInPips; // Threshold In Pips
|
||||||
|
ENUM_SERIESMODE lcHHMode; // Highest High Calculation Method
|
||||||
|
ENUM_SERIESMODE lcLLMode; // Lowest Low Calculation Method
|
||||||
|
//
|
||||||
|
// LC Style ...
|
||||||
|
int lcDrawWidth; // Draw Width
|
||||||
|
ENUM_DRAW_TYPE lcDrawType; // Draw Type
|
||||||
|
ENUM_LINE_STYLE lcDrawStyle; // Draw Style
|
||||||
|
color lcHHColor; // Highest High Color
|
||||||
|
color lcLLColor; // Lowest Low Color
|
||||||
|
// LC Drawings ...
|
||||||
|
bool lcDrawHH; // Draw Highest High
|
||||||
|
bool lcDrawLL; // Draw Lowest Low
|
||||||
|
|
||||||
|
//
|
||||||
|
// Medium Cycle ...
|
||||||
|
// MC Market ...
|
||||||
|
int mcLength; // Length
|
||||||
|
double mcThresholdInPips; // Threshold In Pips
|
||||||
|
ENUM_SERIESMODE mcHHMode; // Highest High Calculation Method
|
||||||
|
ENUM_SERIESMODE mcLLMode; // Lowest Low Calculation Method
|
||||||
|
// MC Style ...
|
||||||
|
int mcDrawWidth; // Draw Width
|
||||||
|
ENUM_DRAW_TYPE mcDrawType; // Draw Type
|
||||||
|
ENUM_LINE_STYLE mcDrawStyle; // Draw Style
|
||||||
|
color mcHHColor; // Highest High Color
|
||||||
|
color mcLLColor; // Lowest Low Color
|
||||||
|
// MC Drawings ...
|
||||||
|
bool mcDrawHH; // Draw Highest High
|
||||||
|
bool mcDrawLL; // Draw Lowest Low
|
||||||
|
|
||||||
|
//
|
||||||
|
// Short Cycle ...
|
||||||
|
// SC Market ...
|
||||||
|
int scLength; // Length
|
||||||
|
double scThresholdInPips; // Threshold In Pips
|
||||||
|
ENUM_SERIESMODE scHHMode; // Highest High Calculation Method
|
||||||
|
ENUM_SERIESMODE scLLMode; // Lowest Low Calculation Method
|
||||||
|
// SC Style ...
|
||||||
|
int scDrawWidth; // Draw Width
|
||||||
|
ENUM_DRAW_TYPE scDrawType; // Draw Type
|
||||||
|
ENUM_LINE_STYLE scDrawStyle; // Draw Style
|
||||||
|
color scHHColor; // Highest High Color
|
||||||
|
color scLLColor; // Lowest Low Color
|
||||||
|
// SC Drawings ...
|
||||||
|
bool scDrawHH; // Draw Highest High
|
||||||
|
bool scDrawLL; // Draw Lowest Low
|
||||||
|
|
||||||
//
|
//
|
||||||
// Constructor(s) ...
|
// Constructor(s) ...
|
||||||
@@ -57,6 +130,64 @@ struct XXCHLHInputs
|
|||||||
void Clean()
|
void Clean()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
// Hot Areas ...
|
||||||
|
drawHotAreas = false;
|
||||||
|
hotHHArrowCode = 234;
|
||||||
|
hotHHArrowColor = CLR_NONE;
|
||||||
|
hotLLArrowCode = 233;
|
||||||
|
hotLLArrowColor = CLR_NONE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Long Cycle ...
|
||||||
|
// LC Market ...
|
||||||
|
lcLength = 0;
|
||||||
|
lcThresholdInPips = 0;
|
||||||
|
lcHHMode = MODE_HIGH;
|
||||||
|
lcLLMode = MODE_LOW;
|
||||||
|
//
|
||||||
|
// LC Style ...
|
||||||
|
lcDrawWidth = 1;
|
||||||
|
lcDrawType = DRAW_NONE;
|
||||||
|
lcDrawStyle = STYLE_DOT;
|
||||||
|
lcHHColor = CLR_NONE;
|
||||||
|
lcLLColor = CLR_NONE;
|
||||||
|
// LC Drawings ...
|
||||||
|
lcDrawHH = false;
|
||||||
|
lcDrawLL = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Medium Cycle ...
|
||||||
|
// MC Market ...
|
||||||
|
mcLength = 0;
|
||||||
|
mcThresholdInPips = 0;
|
||||||
|
mcHHMode = MODE_HIGH;
|
||||||
|
mcLLMode = MODE_LOW;
|
||||||
|
// MC Style ...
|
||||||
|
mcDrawWidth = 1;
|
||||||
|
mcDrawType = DRAW_NONE;
|
||||||
|
mcDrawStyle = STYLE_DOT;
|
||||||
|
mcHHColor = CLR_NONE;
|
||||||
|
mcLLColor = CLR_NONE;
|
||||||
|
// MC Drawings ...
|
||||||
|
mcDrawHH = false;
|
||||||
|
mcDrawLL = false;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Short Cycle ...
|
||||||
|
// SC Market ...
|
||||||
|
scLength = 0;
|
||||||
|
scThresholdInPips = 0;
|
||||||
|
scHHMode = MODE_HIGH;
|
||||||
|
scLLMode = MODE_LOW;
|
||||||
|
// SC Style ...
|
||||||
|
scDrawWidth = 1;
|
||||||
|
scDrawType = DRAW_NONE;
|
||||||
|
scDrawStyle = STYLE_DOT;
|
||||||
|
scHHColor = CLR_NONE;
|
||||||
|
scLLColor = CLR_NONE;
|
||||||
|
// SC Drawings ...
|
||||||
|
scDrawHH = false;
|
||||||
|
scDrawLL = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -64,6 +195,64 @@ struct XXCHLHInputs
|
|||||||
void Default()
|
void Default()
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
|
// Hot Areas ...
|
||||||
|
drawHotAreas = false;
|
||||||
|
hotHHArrowCode = 234;
|
||||||
|
hotHHArrowColor = CLR_NONE;
|
||||||
|
hotLLArrowCode = 233;
|
||||||
|
hotLLArrowColor = CLR_NONE;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Long Cycle ...
|
||||||
|
// LC Market ...
|
||||||
|
lcLength = 28;
|
||||||
|
lcThresholdInPips = 0.3;
|
||||||
|
lcHHMode = MODE_HIGH;
|
||||||
|
lcLLMode = MODE_LOW;
|
||||||
|
//
|
||||||
|
// LC Style ...
|
||||||
|
lcDrawWidth = 1;
|
||||||
|
lcDrawType = DRAW_LINE;
|
||||||
|
lcDrawStyle = STYLE_DOT;
|
||||||
|
lcHHColor = clrAqua;
|
||||||
|
lcLLColor = clrFuchsia;
|
||||||
|
// LC Drawings ...
|
||||||
|
lcDrawHH = true;
|
||||||
|
lcDrawLL = true;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Medium Cycle ...
|
||||||
|
// MC Market ...
|
||||||
|
mcLength = 14;
|
||||||
|
mcThresholdInPips = 0.3;
|
||||||
|
mcHHMode = MODE_HIGH;
|
||||||
|
mcLLMode = MODE_LOW;
|
||||||
|
// MC Style ...
|
||||||
|
mcDrawWidth = 1;
|
||||||
|
mcDrawType = DRAW_LINE;
|
||||||
|
mcDrawStyle = STYLE_DOT;
|
||||||
|
mcHHColor = clrLime;
|
||||||
|
mcLLColor = clrRed;
|
||||||
|
// MC Drawings ...
|
||||||
|
mcDrawHH = true;
|
||||||
|
mcDrawLL = true;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Short Cycle ...
|
||||||
|
// SC Market ...
|
||||||
|
scLength = 7;
|
||||||
|
scThresholdInPips = 0.3;
|
||||||
|
scHHMode = MODE_HIGH;
|
||||||
|
scLLMode = MODE_LOW;
|
||||||
|
// SC Style ...
|
||||||
|
scDrawWidth = 1;
|
||||||
|
scDrawType = DRAW_LINE;
|
||||||
|
scDrawStyle = STYLE_DOT;
|
||||||
|
scHHColor = clrLightBlue;
|
||||||
|
scLLColor = clrLightSalmon;
|
||||||
|
// SC Drawings ...
|
||||||
|
scDrawHH = true;
|
||||||
|
scDrawLL = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -76,7 +265,24 @@ struct XXCHLHInputs
|
|||||||
//
|
//
|
||||||
result =
|
result =
|
||||||
//
|
//
|
||||||
false
|
// LC ...
|
||||||
|
(lcLength >= 4 &&
|
||||||
|
lcLength > mcLength &&
|
||||||
|
lcLength > scLength)
|
||||||
|
//
|
||||||
|
&&
|
||||||
|
//
|
||||||
|
// MC ...
|
||||||
|
(mcLength >= 4 &&
|
||||||
|
mcLength > scLength &&
|
||||||
|
mcLength < lcLength)
|
||||||
|
//
|
||||||
|
&&
|
||||||
|
//
|
||||||
|
// SC ...
|
||||||
|
(scLength >= 4 &&
|
||||||
|
scLength < mcLength &&
|
||||||
|
scLength < lcLength)
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -92,7 +298,8 @@ struct XXCHLHInputs
|
|||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
result = MathMax(0, 0);
|
result = MathMax(lcLength, mcLength);
|
||||||
|
result = MathMax(result, scLength);
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
@@ -144,21 +351,110 @@ public:
|
|||||||
//
|
//
|
||||||
mInputs = inputs;
|
mInputs = inputs;
|
||||||
|
|
||||||
// //
|
//
|
||||||
// // ArraySetAsSeries(shortExit2Buffer, true);
|
ArraySetAsSeries(scHHBuffer, true);
|
||||||
// mHandler = iCustom(
|
ArraySetAsSeries(scLLBuffer, true);
|
||||||
// mSymbol,
|
ArraySetAsSeries(mcHHBuffer, true);
|
||||||
// mPeriod,
|
ArraySetAsSeries(mcLLBuffer, true);
|
||||||
// "x-saherelm.x",
|
ArraySetAsSeries(lcHHBuffer, true);
|
||||||
// //
|
ArraySetAsSeries(lcLLBuffer, true);
|
||||||
// // Inputs ...
|
ArraySetAsSeries(hotStateBuffer, true);
|
||||||
// //
|
|
||||||
// );
|
//
|
||||||
// result = mHandler != INVALID_HANDLE;
|
mHandler = iCustom(
|
||||||
// if (!result)
|
mSymbol,
|
||||||
// {
|
mPeriod,
|
||||||
// return result;
|
"x-saherelm.xchlh",
|
||||||
// }
|
//
|
||||||
|
// Inputs ...
|
||||||
|
//
|
||||||
|
// Hot Areas ...
|
||||||
|
"",
|
||||||
|
//
|
||||||
|
mInputs.drawHotAreas, // Draw Hot Areas Symbol
|
||||||
|
mInputs.hotHHArrowCode, // Hot HH Arrow Code
|
||||||
|
mInputs.hotHHArrowColor, // Hot HH Arrow Color
|
||||||
|
mInputs.hotLLArrowCode, // Hot LL Arrow Code
|
||||||
|
mInputs.hotLLArrowColor, // Hot LL Arrow Color
|
||||||
|
//
|
||||||
|
// Long Cycle ...
|
||||||
|
"",
|
||||||
|
// LC Market ...
|
||||||
|
"",
|
||||||
|
//
|
||||||
|
mInputs.lcLength, // Length
|
||||||
|
mInputs.lcThresholdInPips, // Threshold In Pips
|
||||||
|
mInputs.lcHHMode, // Highest High Calculation Method
|
||||||
|
mInputs.lcLLMode, // Lowest Low Calculation Method
|
||||||
|
//
|
||||||
|
// LC Style ...
|
||||||
|
"",
|
||||||
|
//
|
||||||
|
mInputs.lcDrawWidth, // Draw Width
|
||||||
|
mInputs.lcDrawType, // Draw Type
|
||||||
|
mInputs.lcDrawStyle, // Draw Style
|
||||||
|
mInputs.lcHHColor, // Highest High Color
|
||||||
|
mInputs.lcLLColor, // Lowest Low Color
|
||||||
|
//
|
||||||
|
// LC Drawings ...
|
||||||
|
"",
|
||||||
|
mInputs.lcDrawHH, // Draw Highest High
|
||||||
|
mInputs.lcDrawLL, // Draw Lowest Low
|
||||||
|
//
|
||||||
|
// Medium Cycle ...
|
||||||
|
"",
|
||||||
|
// MC Market ...
|
||||||
|
"",
|
||||||
|
//
|
||||||
|
mInputs.mcLength, // Length
|
||||||
|
mInputs.mcThresholdInPips, // Threshold In Pips
|
||||||
|
mInputs.mcHHMode, // Highest High Calculation Method
|
||||||
|
mInputs.mcLLMode, // Lowest Low Calculation Method
|
||||||
|
//
|
||||||
|
// MC Style ...
|
||||||
|
"",
|
||||||
|
//
|
||||||
|
mInputs.mcDrawWidth, // Draw Width
|
||||||
|
mInputs.mcDrawType, // Draw Type
|
||||||
|
mInputs.mcDrawStyle, // Draw Style
|
||||||
|
mInputs.mcHHColor, // Highest High Color
|
||||||
|
mInputs.mcLLColor, // Lowest Low Color
|
||||||
|
//
|
||||||
|
// MC Drawings ...
|
||||||
|
"",
|
||||||
|
mInputs.mcDrawHH, // Draw Highest High
|
||||||
|
mInputs.mcDrawLL, // Draw Lowest Low
|
||||||
|
//
|
||||||
|
// Short Cycle ...
|
||||||
|
"",
|
||||||
|
// SC Market ...
|
||||||
|
"",
|
||||||
|
//
|
||||||
|
mInputs.scLength, // Length
|
||||||
|
mInputs.scThresholdInPips, // Threshold In Pips
|
||||||
|
mInputs.scHHMode, // Highest High Calculation Method
|
||||||
|
mInputs.scLLMode, // Lowest Low Calculation Method
|
||||||
|
//
|
||||||
|
// SC Style ...
|
||||||
|
"",
|
||||||
|
//
|
||||||
|
mInputs.scDrawWidth, // Draw Width
|
||||||
|
mInputs.scDrawType, // Draw Type
|
||||||
|
mInputs.scDrawStyle, // Draw Style
|
||||||
|
mInputs.scHHColor, // Highest High Color
|
||||||
|
mInputs.scLLColor, // Lowest Low Color
|
||||||
|
//
|
||||||
|
// SC Drawings ...
|
||||||
|
"",
|
||||||
|
mInputs.scDrawHH, // Draw Highest High
|
||||||
|
mInputs.scDrawLL // Draw Lowest Low
|
||||||
|
//
|
||||||
|
);
|
||||||
|
result = mHandler != INVALID_HANDLE;
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
@@ -190,6 +486,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
@@ -227,7 +548,13 @@ private:
|
|||||||
|
|
||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
// double longExit1Buffer[];
|
double scHHBuffer[];
|
||||||
|
double scLLBuffer[];
|
||||||
|
double mcHHBuffer[];
|
||||||
|
double mcLLBuffer[];
|
||||||
|
double lcHHBuffer[];
|
||||||
|
double lcLLBuffer[];
|
||||||
|
double hotStateBuffer[];
|
||||||
|
|
||||||
//
|
//
|
||||||
// Tools ...
|
// Tools ...
|
||||||
@@ -239,16 +566,91 @@ private:
|
|||||||
//
|
//
|
||||||
int totalBars = CountBars();
|
int totalBars = CountBars();
|
||||||
|
|
||||||
// //
|
//
|
||||||
// // Short Exit 2 ...
|
// Short Cycle ...
|
||||||
// CopyBuffer(
|
|
||||||
// mHandler,
|
//
|
||||||
// X_CHE_SHORT_EXIT_2_LINE,
|
// HH ...
|
||||||
// 0,
|
CopyBuffer(
|
||||||
// totalBars,
|
mHandler,
|
||||||
// shortExit2Buffer
|
XCHLH_SC_HH_LINE,
|
||||||
// //
|
0,
|
||||||
// );
|
totalBars,
|
||||||
|
scHHBuffer
|
||||||
|
//
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// LL ...
|
||||||
|
CopyBuffer(
|
||||||
|
mHandler,
|
||||||
|
XCHLH_SC_LL_LINE,
|
||||||
|
0,
|
||||||
|
totalBars,
|
||||||
|
scLLBuffer
|
||||||
|
//
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Medium Cycle ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// HH ...
|
||||||
|
CopyBuffer(
|
||||||
|
mHandler,
|
||||||
|
XCHLH_MC_HH_LINE,
|
||||||
|
0,
|
||||||
|
totalBars,
|
||||||
|
mcHHBuffer
|
||||||
|
//
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// LL ...
|
||||||
|
CopyBuffer(
|
||||||
|
mHandler,
|
||||||
|
XCHLH_MC_LL_LINE,
|
||||||
|
0,
|
||||||
|
totalBars,
|
||||||
|
mcLLBuffer
|
||||||
|
//
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Long Cycle ...
|
||||||
|
|
||||||
|
//
|
||||||
|
// HH ...
|
||||||
|
CopyBuffer(
|
||||||
|
mHandler,
|
||||||
|
XCHLH_LC_HH_LINE,
|
||||||
|
0,
|
||||||
|
totalBars,
|
||||||
|
lcHHBuffer
|
||||||
|
//
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// LL ...
|
||||||
|
CopyBuffer(
|
||||||
|
mHandler,
|
||||||
|
XCHLH_LC_LL_LINE,
|
||||||
|
0,
|
||||||
|
totalBars,
|
||||||
|
lcLLBuffer
|
||||||
|
//
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Hot State ...
|
||||||
|
CopyBuffer(
|
||||||
|
mHandler,
|
||||||
|
XCHLH_HOT_STATE_LINE,
|
||||||
|
0,
|
||||||
|
totalBars,
|
||||||
|
hotStateBuffer
|
||||||
|
//
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -190,6 +190,31 @@ public:
|
|||||||
//
|
//
|
||||||
// Buffers ...
|
// Buffers ...
|
||||||
|
|
||||||
|
// //
|
||||||
|
// double GetMain(
|
||||||
|
// int barIndex // Bar Index
|
||||||
|
// )
|
||||||
|
// {
|
||||||
|
// //
|
||||||
|
// if (barIndex < 0)
|
||||||
|
// {
|
||||||
|
// barIndex = 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// Calculate();
|
||||||
|
|
||||||
|
// //
|
||||||
|
// int count = ArraySize(mainBuffer);
|
||||||
|
// if (barIndex >= count)
|
||||||
|
// {
|
||||||
|
// barIndex = count - 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //
|
||||||
|
// return mainBuffer[barIndex];
|
||||||
|
// }
|
||||||
|
|
||||||
// //
|
// //
|
||||||
// // Copy Required Long Exits 2 ...
|
// // Copy Required Long Exits 2 ...
|
||||||
// int CopyLongExit2(
|
// int CopyLongExit2(
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ enum ENUM_X_XCHLH_HOT_STATES
|
|||||||
//
|
//
|
||||||
// START Inputs ...
|
// START Inputs ...
|
||||||
//
|
//
|
||||||
|
|
||||||
//
|
//
|
||||||
// Common ...
|
// Common ...
|
||||||
input group "Hot Areas";
|
input group "Hot Areas";
|
||||||
|
|||||||
Reference in New Issue
Block a user