last works ...

This commit is contained in:
2026-01-07 19:53:22 +03:30
parent 31232dffef
commit 2fe1037ea5
10 changed files with 4945 additions and 2371 deletions
+145 -1
View File
@@ -24,6 +24,140 @@
// Imports ...
#include "../Classes/x-saherelm.x-helper.class.mq5"
// #region Definitions ...
enum ENUM_X121_XKI_BUFFER_NAME
{
X121_XKI_NONE = 0,
X121_XKI_FAST = 1,
X121_XKI_SLOW = 2,
X121_XKI_SUPER_SLOW = 3,
X121_XKI_UPPER = 4,
X121_XKI_LOWER = 5,
X121_XKI_WAVE = 6,
X121_XKI_MA_FAST = 7,
X121_XKI_MA_SLOW = 8,
X121_XKI_MA_SUPER_SLOW = 9,
X121_XKI_MA_CROSS = 10,
X121_XKI_ATR = 11,
};
bool IsXValid(ENUM_X121_XKI_BUFFER_NAME value)
{
return value != X121_XKI_NONE;
}
string ToXString(ENUM_X121_XKI_BUFFER_NAME value)
{
//
string result = NULL;
//
if (IsXValid(value))
{
//
switch (value)
{
//
case X121_XKI_FAST:
result = "FAST";
break;
//
case X121_XKI_SLOW:
result = "SLOW";
break;
//
case X121_XKI_SUPER_SLOW:
result = "SUPER_SLOW";
break;
//
case X121_XKI_UPPER:
result = "UPPER";
break;
//
case X121_XKI_LOWER:
result = "LOWER";
break;
//
case X121_XKI_WAVE:
result = "WAVE";
break;
//
case X121_XKI_MA_FAST:
result = "MA_FAST";
break;
//
case X121_XKI_MA_SLOW:
result = "MA_SLOW";
break;
//
case X121_XKI_MA_SUPER_SLOW:
result = "MA_SUPER_SLOW";
break;
}
}
//
return result;
}
ENUM_X121_XKI_BUFFER_NAME ToXKIBufferName(string value)
{
//
ENUM_X121_XKI_BUFFER_NAME result = X121_XKI_NONE;
//
if (IsXValid(value))
{
//
if (value == ToXString(X121_XKI_FAST))
{
result = X121_XKI_FAST;
}
else if (value == ToXString(X121_XKI_SLOW))
{
result = X121_XKI_SLOW;
}
else if (value == ToXString(X121_XKI_SUPER_SLOW))
{
result = X121_XKI_SUPER_SLOW;
}
else if (value == ToXString(X121_XKI_UPPER))
{
result = X121_XKI_UPPER;
}
else if (value == ToXString(X121_XKI_LOWER))
{
result = X121_XKI_LOWER;
}
else if (value == ToXString(X121_XKI_WAVE))
{
result = X121_XKI_WAVE;
}
else if (value == ToXString(X121_XKI_MA_FAST))
{
result = X121_XKI_MA_FAST;
}
else if (value == ToXString(X121_XKI_MA_SLOW))
{
result = X121_XKI_MA_SLOW;
}
else if (value == ToXString(X121_XKI_MA_SUPER_SLOW))
{
result = X121_XKI_MA_SUPER_SLOW;
}
}
//
return result;
}
// #endregion
// #region Buffers ...
enum ENUM_X121_XKI_BUFFERS
{
@@ -86,6 +220,8 @@ struct X121XKIInputs
int maSuperSlowLength; // MA Super Slow Length
ENUM_MA_METHOD maMethod; // MA Mode
ENUM_APPLIED_PRICE maAppliedTo; // MA Applied To
double rsiBullishConfirmation; // RSI Bullish Confirmation Level
double rsiBearishConfirmation; // RSI Bearish Confirmation Level
int rsiLength; // RSI Length
ENUM_APPLIED_PRICE rsiAppliedTo; // RSI Applied To
int kiWaveSmoothingLength; // RSI KI Wave Smoothing Length
@@ -151,6 +287,8 @@ struct X121XKIInputs
maAppliedTo = PRICE_CLOSE;
rsiLength = 14;
rsiAppliedTo = PRICE_CLOSE;
rsiBullishConfirmation = 55;
rsiBearishConfirmation = 45;
kiWaveSmoothingLength = 14;
kiWaveSmoothingMode = X_MA_MODE_EMA;
rsiMultiplier = 0.5;
@@ -224,7 +362,11 @@ struct X121XKIInputs
atrLength >= 5 &&
//
// RSI ...
rsiLength >= 5
rsiLength >= 5 &&
rsiBullishConfirmation > 0 &&
rsiBullishConfirmation < 100 &&
rsiBearishConfirmation > 0 &&
rsiBearishConfirmation < 100
//
;
@@ -430,6 +572,8 @@ class XCX121XKIHelper : public XCBaseHelper
mInputs.maMethod,
mInputs.maAppliedTo,
mInputs.rsiLength,
mInputs.rsiBullishConfirmation,
mInputs.rsiBearishConfirmation,
mInputs.rsiAppliedTo,
mInputs.kiWaveSmoothingLength,
mInputs.kiWaveSmoothingMode,