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

Schaff Trend Cycle

adaptive super smoother schaff trend cycle.mq5

Похожие материалы по тегам

pro +.pineTradingView · 2 общих теговofada_gold_trader_v230.mq5MQL5 / MetaTrader 5 · 2 общих теговmulti strategy algo combined by enigma mode.pineTradingView · 2 общих теговmacd-osma-on-chart-mtf-v2.mq5MQL5 / MetaTrader 5 · 2 общих теговmelona ob strategy 6th update (by 3dots).pineTradingView · 2 общих теговlondon breakout 1.00@lifeindreamsworld.mq4MQL4 / MetaTrader 4 · 2 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор «Schaff Trend Cycle» отображает аналитическую линию в отдельном окне графика MetaTrader 5. Он рассчитывает значение трендового цикла на основе ценовых данных и адаптивного коэффициента сглаживания, а также рисует дополнительные точки-метки для визуализации разворотов линии.

В качестве исходных данных используется выбранная цена (по умолчанию — Close). Два вспомогательных буфера (stcUA и stcUB) служат для построения точечных маркеров на графике, а основной буфер stc содержит расчётную линию индикатора.

Индикатор содержит пять настраиваемых параметров: период Шаффа, быстрые и медленные периоды скользящих средних, тип цены и адаптивный период. Все параметры доступны в окне настроек графика и могут быть изменены пользователем.

Индикатор не содержит внешних библиотечных функций и не выполняет торговых операций; его назначение ограничивается расчётом и отображением технического показателя.

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

НастройкаОписание
STCPeriod Период Шаффа — основной параметр, определяющий длину цикла расчёта трендового индикатора.
FastMAPeriod Период быстрой скользящей средней, применяемой в расчёте трендового цикла.
SlowMAPeriod Период медленной скользящей средней, применяемой в расчёте трендового цикла.
Price Тип цены, используемой для расчёта индикатора (например, Close, Open, High, Low и другие доступные типы цен).
AdaptPeriod Адаптивный период, используемый для расчёта коэффициента сглаживания на основе стандартного отклонения цены.
Получить полный код

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

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_label1  "STC"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_width1  2
#property indicator_label2  "STC"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrGreen
#property indicator_width2  2
#property indicator_label3  "STC"
#property indicator_type3   DRAW_LINE
#property indicator_color3  clrGreen
#property indicator_width3  2
#property strict

input int                STCPeriod       = 10;               // Schaff period
input int                FastMAPeriod    = 23;               // Fast ema period
input int                SlowMAPeriod    = 50;               // Slow ema period
input ENUM_APPLIED_PRICE Price           = PRICE_CLOSE;      // Price to use
input int                AdaptPeriod     = 25;               // Adapt period

double stc[],stcUA[],stcUB[],macd[],fastK[],fastD[],fastKK[],trend[];

int OnInit()
{
      // код доступен только после оплаты
   }
void OnDeinit(const int reason) { }

int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
      // код доступен только после оплаты
   }
   int counted_bars=prev_calculated;
      if(counted_bars < 0) return(-1);
      if(counted_bars>0) counted_bars--;
         int limit = fmin(rates_total-counted_bars,rates_total-1);

   if (trend[limit]==1) CleanPoint(limit,stcUA,stcUB);
   for(int i = limit; i >= 0; i--)
   {
      double price = iMA(NULL,0,1,0,MODE_SMA,Price,i);
      double dev   = iStdDev(NULL,0,AdaptPeriod,0,MODE_SMA,Price,i);
      double avg   = iSma(dev,AdaptPeriod,i,rates_total);
      double coeff = 1;
         if (dev!=0) coeff = avg/dev;

      macd[i] =    iSsm(price,coeff*FastMAPeriod,i,rates_total,0)-iSsm(price,coeff*SlowMAPeriod,i,rates_total,1);

      double loMacd   = macd[ArrayMinimum(macd,STCPeriod,i)];
      double hiMacd   = macd[ArrayMaximum(macd,STCPeriod,i)]-loMacd;
             fastK[i] = (hiMacd > 0) ? 100*((macd[i]-loMacd)/hiMacd) : (i<rates_total-1) ? fastK[i+1] : 0;
             fastD[i] = (i<rates_total-1) ? fastD[i+1]+0.5*(fastK[i]-fastD[i+1]) : fastK[i];

      double loStoch   = fastD[ArrayMinimum(fastD,STCPeriod,i)];
      double hiStoch   = fastD[ArrayMaximum(fastD,STCPeriod,i)]-loStoch;
             fastKK[i] = (hiStoch > 0) ? 100*((fastD[i]-loStoch)/hiStoch) : (i<rates_total-1) ? fastKK[

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

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

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

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

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

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

Стоимость полного кода
485,70₽ ≈ $5.94