← К каталогу
Исходный код · ID 3065

cfb

cfb.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

cfb — это пользовательский индикатор для MetaTrader 5, отображающий аналитический расчёт в отдельном окне. Индикатор использует скользящие средние ценовых данных и их производные для формирования единственного буфера, отрисовываемого красным цветом. Индикатор поддерживает специальный режим внутреннего расчёта, активируемый текстовым параметром.

В обычном режиме работы индикатор применяет настраиваемое сглаживание к результату, включая возможность адаптивной подстройки периода сглаживания. Параметры позволяют задать глубину расчёта, тип цены, количество обрабатываемых баров и характеристики сглаживания. Результат отрисовывается с задержкой, определяемой настройкой глубины.

Индикатор написан автором mladen и использует стандартные функции MetaTrader для работы с ценовыми данными и расчёта скользящих средних. Он не включает торговую логику и предназначен исключительно для аналитического отображения.

Настройки программы

НастройкаОписание
_ Текстовый параметр для выбора режима работы индикатора. Значение "CalculateCFB" активирует специальный режим внутреннего расчёта.
Depth Глубина расчёта индикатора. Внутренне корректируется в диапазоне от 8 до 20 и определяет количество используемых циклов.
Price Тип цены, используемый для расчёта. По умолчанию установлена взвешенная цена (PRICE_WEIGHTED).
BarsToCount Количество баров, используемых для расчёта индикатора. При значении более 100 ограничивает диапазон отображения.
Smooth Период сглаживания, применяемый при промежуточных вычислениях.
SmoothResultPeriod Период финального сглаживания результирующего значения индикатора.
SmoothSpeed Скорость сглаживания, влияющая на опережающее поведение усреднения. Значение по умолчанию 3.0.
SmoothAdaptive Переключатель адаптивного сглаживания результата. При активации период сглаживания подстраивается автоматически в зависимости от отношения сигнала к шуму.
Получить полный код

Поиск по коду файла

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1  Red
#property indicator_minimum 0

extern string _                  = "Parameters";
extern int    Depth              = 3;
extern int    Price              = PRICE_WEIGHTED;
extern int    BarsToCount        = 1000;
extern int    Smooth             = 8;
extern int    SmoothResultPeriod = 5;
extern double SmoothSpeed        = 3.0;
extern bool   SmoothAdaptive     = true;

double buffer1[];
double storec[][5];
double stored[][35];
string IndicatorFileName;
bool   CalculatingCFB=false;
int    Depths[] = {2,3,4,6,8,12,16,24,32,48,64,96,128,192};

int init()
{
      // код доступен только после оплаты
   }
int deinit() { return(0); }

int start()
{
      // код доступен только после оплаты
   }
   double avg;
   int counted_bars=IndicatorCounted();
   int i,k,r,limit;

   if(counted_bars < 0) return(-1);
   if(counted_bars > 0) counted_bars--;
           limit = Bars-counted_bars;
           if (BarsToCount>100)
                  limit = MathMin(limit,BarsToCount+192);

      if (CalculatingCFB)
      {
         if (ArrayRange(storec,0) != Bars) ArrayResize(storec,Bars);
            for(i=limit, r=Bars-i-1; i>=0; i--, r++) buffer1[i] = calculateCFB(i,r,Depth);
         return(0);
      }
      if (ArrayRange(stored,0) != Bars) ArrayResize(stored,Bars);

   if (BarsToCount>100) SetIndexDrawBegin(0,Bars-BarsToCount);
   for(i=limit, r=Bars-i-1; i>=0; i--, r++)
   {
      double suma     = 0;
      double sumb     = 0;
      double cfb      = 0;
      double evenCoef = 1;
      double oddCoef  = 1;

         for (k=Depth-1; k>=0; k--)
         {
            stored[r][k]    = iCustom(NULL,0,IndicatorFileName,"CalculateCFB",Depths[k],Price,BarsToCount,0,i);
            stored[r][k+14] = stored[r-1][k+14] + (stored[r][k]-stored[r-Smooth][k])/Smooth;

               if ((k%2)==0)
                     { avg = oddCoef  * stored[r][k+14]; oddCoef  = oddCoef  * (1 - avg); }
               else  { avg = evenCoef * stored[r][k+14]; evenCoef = evenCoef * (1 - avg);

Показано первые 50% кода (символов: 3625)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
362,50₽ ≈ $4.43