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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.