Schaff Trend Cycle
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «adaptive super smoother schaff trend cycle.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.