Add Support for atr in x121 indicator ...

This commit is contained in:
2024-12-30 16:58:15 +03:30
parent 1868587608
commit 0bfed000db
3 changed files with 870 additions and 487 deletions
+21 -11
View File
@@ -13390,6 +13390,15 @@ ENUM_X_DIRECTION Opposit(ENUM_X_DIRECTION value)
//
// Moving Average ...
enum ENUM_X_MA_METHOD
{
X_MA_MODE_NONE, // None
X_MA_MODE_SMA, // SMA
X_MA_MODE_EMA, // EMA
X_MA_MODE_LWMA, // LWMA
X_MA_MODE_SMMA, // SMMA
};
/**
* Calculate Sspecified Buffer's Moving Averages ...
*
@@ -13397,7 +13406,7 @@ ENUM_X_DIRECTION Opposit(ENUM_X_DIRECTION value)
* @param prev_calculated: Integer, Previous Calculate Items ...
* @param begin: Integer, Bar Index ...
* @param period: Integer, Moving Average Length ...
* @param price: Double Array, Specified Array for Calculating Moving Averages ...
* @param source: Double Array, Specified Array for Calculating Moving Averages ...
* @param buffer: Double Array, Specified Array to Apply Calculated Moving Average on it ...
* @param method: ENUM_MA_METHOD member Specified Moving Average Calculation Method ...
*
@@ -13408,9 +13417,9 @@ int iMAOnBuffer(
const int _prev_calculated,
const int _begin,
const int _period,
const double &_price[],
const double &_source[],
double &_buffer[],
ENUM_MA_METHOD _method = MODE_SMA //
ENUM_X_MA_METHOD _method = X_MA_MODE_SMA //
)
{
//
@@ -13421,6 +13430,7 @@ int iMAOnBuffer(
_period < 0 ||
_rates_total <= 0 ||
_prev_calculated < 0 ||
_method == X_MA_MODE_NONE ||
_prev_calculated > _rates_total)
{
return result;
@@ -13430,49 +13440,49 @@ int iMAOnBuffer(
switch (_method)
{
//
case MODE_SMA:
case X_MA_MODE_SMA:
result = SimpleMAOnBuffer(
_rates_total,
_prev_calculated,
_begin,
_period,
_price,
_source,
_buffer //
);
break;
//
case MODE_EMA:
case X_MA_MODE_EMA:
result = ExponentialMAOnBuffer(
_rates_total,
_prev_calculated,
_begin,
_period,
_price,
_source,
_buffer //
);
break;
//
case MODE_LWMA:
case X_MA_MODE_LWMA:
result = LinearWeightedMAOnBuffer(
_rates_total,
_prev_calculated,
_begin,
_period,
_price,
_source,
_buffer //
);
break;
//
case MODE_SMMA:
case X_MA_MODE_SMMA:
result = SmoothedMAOnBuffer(
_rates_total,
_prev_calculated,
_begin,
_period,
_price,
_source,
_buffer //
);
break;