adaptive T3 rainbow
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «adaptive t3 rainbow.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
«adaptive T3 rainbow» — это пользовательский индикатор для MetaTrader 4, отображающий 8 линий скользящих средних T3 в виде радуги с градиентом оранжевых цветов. Индикатор рассчитывает значения на основе ценовых данных текущего или выбранного таймфрейма.
Каждая из 8 линий имеет собственный адаптивный период, который корректируется в зависимости от отношения базового периода к среднему стандартному отклонению цены, что позволяет реагировать на изменение волатильности рынка. Поддерживается работа на различных таймфреймах с передачей расчётных данных между ними через специальный режим.
Индикатор предоставляет настраиваемые параметры T3, включая периоды, коэффициенты адаптации и тип цены расчёта. Доступна интерполяция значений между барами при работе на отличном от текущего таймфрейме для более гладкого отображения.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Временной период, на котором рассчитывается индикатор. Специальные значения "calculateValue" и "returnBars" используются для передачи данных между таймфреймами. |
| T3Price | Цена T3 — Тип цены, используемый для расчёта индикатора (например, PRICE_CLOSE). |
| Interpolate | Интерполяция — Включает или отключает интерполяцию значений между барами при работе на отличном от текущего таймфрейме. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 C'255,128,0'
#property indicator_color2 C'255,144,0'
#property indicator_color3 C'255,160,0'
#property indicator_color4 C'255,176,0'
#property indicator_color5 C'255,192,0'
#property indicator_color6 C'255,208,0'
#property indicator_color7 C'255,224,0'
#property indicator_color8 C'255,240,0'
extern string TimeFrame = "Current time frame";
extern string T3Periods = "14;17;20;23;26;29;32;35";
extern string T3Hots = "0.7;0.7;0.7;0.7;0.7;0.7;0.7;0.7";
extern string T3AdaptPeriods = "25;25;25;25;25;25;25;25";
extern string T3Originals = "T;T;T;T;T;T;T;T";
extern int T3Price = PRICE_CLOSE;
extern bool Interpolate = true;
double Buffer0[];
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
string indicatorFileName;
bool returnBars;
bool calculateValue;
int timeFrame;
int size;
bool originals[];
double aperiods[];
double periods[];
double hots[];
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);
if (returnBars) { Buffer0[0] = MathMin(limit+1,Bars-1); return(0); }
if (calculateValue || timeFrame == Period())
{
for(int i=limit; i >= 0; i--)
{
for (int k=0; k<size; k++)
{
double dev = iStdDev(NULL,0,aperiods[k],0,MODE_SMA,T3Price,i);
double avg = iSma(dev,aperiods[k],i,k);
if (dev!=0)
double period = periods[k]*avg/dev;
else period = periods[k];
if (period<3) period = 3;
switch(k)
{
case 0: Buffer0[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
case 1: Buffer1[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
case 2: Buffer2[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
case 3: Buffer3[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
case 4: Buffer4[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
case 5: Buffer5[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
case 6: Buffer6[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
case 7: Buffer7[i] = iT3(iMA(NULL,0,1,0,MODE_SMA,T3Price,i),period,hots[k],originals[k],i,k); break;
}
}
}
return(0);
}
limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,indicatorFileName,"returnBars",0,0)*tПоказано первые 50% кода (символов: 9223)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.