Schaff Trend Cycle
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «!!!_schaff_trend_cycle_nrp_histo_mtf_+_arrows_+_alerts.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает аналитический осциллятор на основе модифицированной стохастической модели сглаживания тренда Шафф (Schaff Trend Cycle), используя данные MACD и двух проходов сглаживания. Отображает направление тренда в виде гистограмм в отдельном окне графика с настраиваемыми цветами для восходящих и нисходящих фаз.
Поддерживает анализ на мультитаймфрейме — расчёт может выполняться на выбранном или пользовательском таймфрейме, отличном от таймфрейма текущего графика. При смене масштаба графика ширина столбцов гистограммы подстраивается автоматически или задаётся вручную.
Индикатор может размещать стрелки на графике при смене направления тренда с настраиваемыми цветами, размерами и отступами. Также предусмотрены уведомления нескольких типов: всплывающие сообщения, звуковые сигналы, электронная почта и push-уведомления, с возможностью ограничения срабатывания на текущем баре.
Настройки программы
| Настройка | Описание |
|---|---|
| Timeframe to use (inpTimeFrame) | Таймфрейм расчёта — Выбранный таймфрейм для расчёта индикатора |
| Custom timeframe (inpTimeFrameCustom) | Пользовательский таймфрейм — Значение пользовательского таймфрейма в минутах |
| Objects unique ID (inpObjID) | Идентификатор объектов — Уникальный идентификатор объектов на графике |
| Schaff period (STCPeriod) | Период Шафф — Период сглаживания для расчёта индикатора Шафф |
| Fast ema period (FastMAPeriod) | Период быстрой EMA — Период быстрой экспоненциальной скользящей средней для расчёта MACD |
| Slow ema period (SlowMAPeriod) | Период медленной EMA — Период медленной экспоненциальной скользящей средней для расчёта MACD |
| Histogram bars width (HistoWidth) | Ширина столбцов гистограммы — Ширина столбцов гистограммы в пикселях при ручном режиме |
| Automatically adjust histo width (AutoHisto) | Автоматическая подстройка ширины гистограммы — Автоматическая подстройка ширины столбцов гистограммы в зависимости от масштаба графика |
| Schaff sloping up histogram color (UpHistoColor) | Цвет гистограммы восходящего тренда — Цвет гистограммы при восходящем направлении тренда |
| Schaff sloping down histogram color (DnHistoColor) | Цвет гистограммы нисходящего тренда — Цвет гистограммы при нисходящем направлении тренда |
| . Arrows settings (__arr__01) | Настройки стрелок — Группа настроек стрелок |
| Show arrows (arrowsVisible) | Отображать стрелки — Отображение стрелок на графике |
| Arrows last bar (in mtf mode)? (inpArrowsOnLast) | Стрелки на последнем баре (MTF) — Отображение стрелок на последнем баре при мультитаймфреймном режиме |
| Arrow gap up (arrowsDisplaceUp) | Отступ стрелки вверх — Отступ стрелки вверх от цены бара |
| Arrow gap down (arrowsDisplaceDn) | Отступ стрелки вниз — Отступ стрелки вниз от цены бара |
| Arrows up color (arrowsUpColor) | Цвет стрелки восходящего тренда — Цвет стрелки восходящего тренда |
| Arrows down color (arrowsDnColor) | Цвет стрелки нисходящего тренда — Цвет стрелки нисходящего тренда |
| Arrows up code (arrowsUpCode) | Код стрелки восходящего тренда — Код стрелки восходящего тренда |
| Arrows down code (arrowsDnCode) | Код стрелки нисходящего тренда — Код стрелки нисходящего тренда |
| Arrows up size (arrowsUpSize) | Размер стрелки восходящего тренда — Размер стрелки восходящего тренда |
| Arrows down size (arrowsDnSize) | Размер стрелки нисходящего тренда — Размер стрелки нисходящего тренда |
| .Alerts settings (__alr__00) | Настройки уведомлений — Группа настроек уведомлений |
| Alerts on? (inpAlertsOn) | Уведомления включены — Включение или отключение всех уведомлений |
| Alerts open bar? (inpAlertsOnCurrent) | Уведомления на текущем баре — Ограничение уведомлений текущим открытым баром |
| Alerts message? (inpAlertsMessage) | Всплывающее сообщение — Отправка всплывающего сообщения |
| Alerts sound? (inpAlertsSound) | Звуковое уведомление — Воспроизведение звукового сигнала при срабатывании |
| Alerts email? (inpAlertsEmail) | Уведомление по электронной почте — Отправка уведомления по электронной почте |
| Alerts notification? (inpAlertsPush) | Push-уведомление — Отправка push-уведомления |
Поиск по коду файла
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_minimum 0
#property indicator_maximum 1
#property strict
enum enTimeFrames
{
tf_cu = 0, // Current time frame
tf_m1 = PERIOD_M1, // 1 minute
tf_m5 = PERIOD_M5, // 5 minutes
tf_m15 = PERIOD_M15, // 15 minutes
tf_m30 = PERIOD_M30, // 30 minutes
tf_h1 = PERIOD_H1, // 1 hour
tf_h4 = PERIOD_H4, // 4 hours
tf_d1 = PERIOD_D1, // Daily
tf_w1 = PERIOD_W1, // Weekly
tf_mn1 = PERIOD_MN1, // Monthly
tf_n1 = -1, // First higher time frame
tf_n2 = -2, // Second higher time frame
tf_n3 = -3, // Third higher time frame
tf_cus = 12345678 // Custom time frame
};
input enTimeFrames inpTimeFrame = tf_cu; // Timeframe to use
input int inpTimeFrameCustom = 0; // Custom timeframe
input string inpObjID = "stc o1"; // Objects unique ID
extern int STCPeriod = 10; // Schaff period
extern int FastMAPeriod = 23; // Fast ema period
extern int SlowMAPeriod = 50; // Slow ema period
extern int HistoWidth = 3; // Histogram bars width
input bool AutoHisto = true; // Automatically adjust histo width
extern color UpHistoColor = clrLimeGreen; // Schaff sloping up histogram color
extern color DnHistoColor = clrRed; // Schaff sloping down histogram color
input string __arr__01 = ""; //. Arrows settings
input bool arrowsVisible = false; // Show arrows
input bool inpArrowsOnLast = false; // Arrows last bar (in mtf mode)?
input double arrowsDisplaceUp = 0.5; // Arrow gap up
input double arrowsDisplaceDn = 0.5; // Arrow gap down
input color arrowsUpColor = clrBlue; // Arrows up color
input color arrowsDnColor = clrRed; // Arrows down color
input int arrowsUpCode = 233; // Arrows up code
input int arrowsDnCode = 234; // Arrows down code
input int arrowsUpSize = 2; // Arrows up size
input int arrowsDnSize = 2; // Arrows down size
input string __alr__00 = ""; //.Alerts settings
input bool inpAlertsOn = false; // Alerts on?
input bool inpAlertsOnCurrent = true; // Alerts open bar?
input bool inpAlertsMessage = true; // Alerts message?
input bool inpAlertsSound = false; // Alerts sound?
input bool inpAlertsEmail = false; // Alerts email?
input bool inpAlertsPush = false; // Alerts notification?
double stcBuffer[];
double stcBufferUA[];
double stcBufferUB[];
double macdBuffer[];
double fastKBuffer[];
double fastDBuffer[];
double fastKKBuffer[];
double trend[],count[];
struct sGlobalStruct
{
string indiFileName;
int indiTimeFrame;
int tfcustom;
int wBar;
int width;
};
sGlobalStruct glo;
#define _mtfCall(_buff,_ind) iCustom(_Symbol,glo.indiTimeFrame,glo.indiFileName,tf_cu,0,inpObjID,STCPeriod,FastMAPeriod,SlowMAPeriod,HistoWidth,AutoHisto,UpHistoColor,DnHistoColor,"",arrowsVisible,inpArrowsOnLast,arrowsDisplaceUp,arrowsDisplaceDn,arrowsUpColor,arrowsDnColor,arrowsUpCode,arrowsDnCode,arrowsUpSize,arrowsDnSize,__alr__00,inpAlertsOn,inpAlertsOnCurrent,inpAlertsMessage,inpAlertsSound,inpAlertsEmail,inpAlertsPush,_buff,_ind)
int OnInit()
{
// код доступен только после оплаты
}
if (AutoHisto)
{
int scale = int(ChartGetInteger(0,CHART_SCALE));
switch(scale)
{
case 0: glo.width = 1; break;
case 1: glo.width = 1; break;
case 2: glo.width = 3; break;
case 3: glo.width = 4; break;
case 4: glo.width = 8; break;
case 5: glo.width = 16; break;
}
}
else { glo.width = HistoWidth; }
IndicatorBuffers(9);
SetIndexBuffer(0,stcBufferUA); SetIndexStyle(0, DRAW_HISTOGRAM,EMPTY,glo.width,UpHistoColor);
SetIndexBuffer(1,stcBufferUB); SetIndexStyle(1, DRAW_HISTOGRAM,EMPTY,glo.width,DnHistoColor);
SetIndexBuffer(2,stcBuffer);
SetIndexBuffer(3,macdBuffer);
SetIndexBuffer(4,fastKBuffer);
SetIndexBuffer(5,fastDBuffer);
SetIndexBuffer(6,fastKKBuffer);
SetIndexBuffer(7,trend);
SetIndexBuffer(8,count);
glo.indiFileName = WindowExpertName();
if (inpTimeFrameCustom==0) glo.tfcustom =(enTimeFrames)timeFrameValue(inpTimeFrameCustom);
glo.indiTimeFrame = (inpTimeПоказано первые 50% кода (символов: 7458)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.