class CXMCStrengthEngine
Основной класс для анализа относительной силы торговых символов.
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «xmcstrengthengine.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Библиотека CXMCStrengthEngine представляет собой заголовочный файл на языке MQL, предназначенный для анализа относительной силы до 6 торговых символов. Основной класс CXMCStrengthEngine вычисляет показатель силы на основе изменения цен закрытия за разные периоды и нормализует его в диапазоне 0–100 для каждого символа.
Класс позволяет определить наиболее сильный и второй по силе символы из заданного набора, а также получить рекомендацию по символу для входа в позицию при выполнении условий по уровню уверенности и минимальному разрыву между лидерами. Доступны методы для получения отдельных значений силы и имён символов.
Библиотека не выполняет торговых операций и не управляет денежными средствами. Все расчёты основаны на ценовых данных и предоставляют пользователю информацию для принятия решений.
Классов: 1 · методов: 8 · конструкторов: 0 · деструкторов: 0 · отдельных функций: 0
class CXMCStrengthEngine
Основной класс для анализа относительной силы торговых символов.
void Init(string &symbols[], int count)
Инициализирует движок, задавая список символов для анализа.
void Calculate(int lookback)
Вычисляет значения силы для всех настроенных символов на основе ценовых данных.
void FindExtreme()
Определяет самый сильный и второй по силе символы из текущего набора.
string GetEntrySymbol(double entryLevel, double confidenceGap)
Возвращает символ для входа в позицию, если его сила превышает заданный уровень и разрыв с вторым лидером достаточен.
double GetStrength(int index)
Возвращает значение силы для символа по его индексу.
string GetStrongestSymbol()
Возвращает имя самого сильного символа.
double GetStrongestValue()
Возвращает значение силы самого сильного символа.
double GetSecondStrongestValue()
Возвращает значение силы второго по силе символа.
#ifndef XMCSTRENGTHENGINE_MQH
#define XMCSTRENGTHENGINE_MQH
class CXMCStrengthEngine
{
private:
string m_symbols[6];
double m_strength[6];
int m_count;
double m_strongestValue;
double m_secondStrongestValue;
string m_strongestSymbol;
public:
void Init(string &symbols[], int count)
{
m_count = MathMin(count, 6);
for(int i = 0; i < 6; i++)
{
if(i < m_count)
m_symbols[i] = symbols[i];
else
m_symbols[i] = "";
m_strength[i] = 0.0;
}
m_strongestValue = 0.0;
m_secondStrongestValue = 0.0;
m_strongestSymbol = "";
}
void Calculate(int lookback)
{
double gamma_values[6];
ArrayInitialize(gamma_values, 0.0);
double max_gamma = -999999.0;
double min_gamma = 999999.0;
int period = MathMax(lookback / 4, 5);
for(int i = 0; i < m_count; i++)
{
if(m_symbols[i] == "")
{
m_strength[i] = 0.0;
continue;
}
if(iBars(m_symbols[i], 0) < period * 2 + 2)
{
m_strength[i] = 0.0;
continue;
}
double p0 = iClose(m_symbols[i], 0, 1);
double p1 = iClose(m_symbols[i], 0, period + 1);
double p2 = iClose(m_symbols[i], 0, period * 2 + 1);
if(p0 == 0.0 || p1 == 0.0 || p2 == 0.0)
{
m_strength[i] = 0.0;
continue;
}
double delta1 = (p0 - p1) / p1 * 100.0;
double delta2 = (p1 - p2) / p2 * 100.0;
double gamma = delta1 - delta2;
gamma_values[i] = gamma;
if(gamma > max_gamma)
max_gamma = gamma;
if(gamma < min_gamma)
min_gamma = gamma;
}
double range = max_gamma - min_gamma;Показано первые 50% кода (символов: 2348)
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.