class CMBFX
Класс CMBFX — основной контейнер индикатора MBFX, хранящий массивы рассчитанных значений и предоставляющий методы доступа к результатам.
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «cmbfx.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
CMBFX — это библиотека MQL для платформы MetaTrader, реализующая пользовательский осциллятор MBFX. Класс CMBFX выполняет расчёт индикаторных значений на основе ценовых данных (максимум, минимум, закрытие) и предоставляет методы для получения сигналов бычьего и медвежьего направления.
Библиотека содержит три массива значений: зелёный (бычий), красный (медвежий) и жёлтый (промежуточный). Метод Refresh рассчитывает эти значения для указанного символа, а пользовательские методы позволяют проверять наличие сигнала и получать его числовое значение.
Параметры настройки включают период Len (по умолчанию 7) и фильтр Filter (по умолчанию 0.0), которые влияют на чувствительность и пороговые условия индикатора.
| Настройка | Описание |
|---|---|
| __mbfx | Разделитель настроек MBFX — Текстовый разделитель-заголовок для настроек MBFX. |
| Len | Период — Целочисленный параметр периода, задающий длину расчётного интервала индикатора. |
| Filter | Фильтр — Пороговый параметр фильтра, определяющий минимальное изменение значения между барами для формирования зелёного или красного сигнала. |
Классов: 1 · методов: 4 · конструкторов: 1 · деструкторов: 0 · отдельных функций: 0
class CMBFX
Класс CMBFX — основной контейнер индикатора MBFX, хранящий массивы рассчитанных значений и предоставляющий методы доступа к результатам.
CMBFX()
Конструктор класса CMBFX — инициализирует внутренние массивы (зелёный, красный, жёлтый) заданного размера.
bool IsGreen(int bar)
IsGreen(int bar) — проверяет, имеет ли указанный бар значение зелёного (бычьего) сигнала.
double GreenValue(int bar)
GreenValue(int bar) — возвращает числовое значение зелёного (бычьего) сигнала для указанного бара.
double RedValue(int bar)
RedValue(int bar) — возвращает числовое значение красного (медвежьего) сигнала для указанного бара.
void Refresh(string symbol)
Refresh(string symbol) — пересчитывает все значения индикатора MBFX для указанного торгового символа на основе ценовых данных.
#property strict
extern string __mbfx = " ------- MBFX settings ------------";
extern int Len = 7;
extern double Filter = 0.0;
class CMBFX
{
private:
double _mbfxYellow[];
double _mbfxGreen[];
double _mbfxRed[];
public:
CMBFX()
{
ArrayResize(_mbfxGreen , 500+5, 0);
ArrayResize(_mbfxRed , 500+5, 0);
ArrayResize(_mbfxYellow, 500+5, 0);
}
bool IsGreen(int bar)
{
if (bar <0 || bar >= 500) return false;
return (_mbfxGreen[bar] != EMPTY_VALUE);
}
double GreenValue(int bar)
{
if (bar <0 || bar >= 500) return EMPTY_VALUE;
return _mbfxGreen[bar];
}
double RedValue(int bar)
{
if (bar <0 || bar >= 500) return EMPTY_VALUE;
return _mbfxRed[bar];
}
void Refresh(string symbol)
{
ArrayInitialize(_mbfxYellow, 0);
ArrayInitialize(_mbfxGreen, 0);
ArrayInitialize(_mbfxRed, 0);
double ld_0=0;
double ld_8=0;
double ld_16=0;
double ld_24=0;
double ld_32=0;
double ld_40=0;
double ld_48=0;
double ld_56=0;
double ld_64=0;
double ld_72=0;
double ld_80=0;
double ld_88=0;
double ld_96=0;
double ld_104=0;
double ld_112=0;
double ld_120=0;
double ld_128=0;
double ld_136=0;
double ld_144=0;
double ld_152=0;
double ld_160=0;
double ld_168=0;
double ld_176=0;
double ld_184=0;
double ld_192=0;
double ld_200=0;
double ld_208=0;
int barLimit = 500 - Len - 1;
for (int bar = barLimit; bar >= 0; bar--)
{
if (ld_8 == 0.0)
{
ld_8 = 1.0;
ld_16 = 0.0;
if (Len - 1 >= 5) ld_0 = Len - 1.0;
else ld_0 = 5.0;
ld_80 = 100.0 * ((iHigh(symbol, 0, bar) + iLow(symbol, 0, bar) + iClose(symbol, 0, bar)) / 3.0);
ld_96 = 3.0 / (Len + 2.0);
ld_104 = 1.0 - ld_96;
}
else
{
if (ld_0 <= ld_8) ld_8Показано первые 50% кода (символов: 2568)
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.