2 разворот 1 бар.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «2 разворот 1 бар.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для MetaTrader 4 рассчитывает скользящую среднюю треугольного типа с полосами отклонения и отображает результат в отдельном окне графика. В зависимости от соотношения цены и рассчитанных уровней индикатор выводит стрелки вверх и вниз, а также маркер разворота в центре. Поддерживается интерполяция расчётных значений между барами выбранного таймфрейма и отображение на текущем или старшем графике. Индикатор способен отправлять визуальные, звуковые и email-уведомления при прорыве ценой верхней или нижней границы полос.
Настройки программы
| Настройка | Описание |
|---|---|
| TimeFrame | Таймфрейм — Строковое обозначение таймфрейма для расчёта индикатора (например, «1», «M15», «H1»). |
| HalfLength | Половина длины — Целочисленный параметр, определяющий период усреднения, используемый при расчёте центральной линии. |
| Price | Применяемая цена — Тип цены (например, Close, Open, High, Low), используемый для расчётов. |
| BandsDeviations | Отклонения полос — Множитель отклонения, определяющий ширину верхней и нижней границ полос относительно центральной линии. |
| Repaints | Перерисовка — Переключатель, включающий или отключающий перерисовку расчётных значений при обновлении данных. |
| Interpolate | Интерполяция — Переключатель, включающий или отключающий заполнение пробелов между барами при отображении на старшем таймфрейме. |
| alertsOn | Уведомления включены — Общий переключатель для активации или деактивации системы уведомлений индикатора. |
| alertsOnCurrent | Уведомления на текущем баре — Переключатель, определяющий, проверять ли условия уведомления на текущем незавершённом баре. |
| alertsOnHighLow | Уведомления по High/Low — Переключатель, определяющий, использовать ли максимум и минимум бара для триггера уведомлений вместо цены закрытия. |
| SetArrows | Настройка стрелок — Строковый параметр, связанный с конфигурацией отображения стрелочных маркеров. |
| CodeUp | Код стрелки вверх — Числовой код символа стрелки, отображаемой при определённом условии направления. |
| CodeDn | Код стрелки вниз — Числовой код символа стрелки, отображаемой при противоположном условии направления. |
| Size | Размер стрелок — Целочисленный размер отображаемых стрелочных маркеров на графике. |
| Gap | Зазор — Числовой параметр, влияющий на величину смещения стрелок от уровня цены. |
| alertsMessage | Сообщения — Переключатель для вывода уведомлений в виде диалоговых окон на график. |
| alertsSound | Звуковые уведомления — Переключатель для воспроизведения звукового сигнала при срабатывании условия. |
| alertsEmail | Email-уведомления — Переключатель для отправки email-сообщения при срабатывании условия уведомления. |
Поиск по коду файла
#property description "edited by ReVeR27"
#property description "no repaint"
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_color1 clrNONE
#property indicator_color2 clrYellow
#property indicator_color3 clrYellow
#property indicator_color6 Red
#property indicator_color7 Green
#property indicator_color8 Orange
#property indicator_style1 STYLE_DOT
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_width6 3
#property indicator_width7 3
#property indicator_width8 3
extern string TimeFrame = "1";
extern int HalfLength = 20;
extern ENUM_APPLIED_PRICE Price = PRICE_CLOSE;
extern double BandsDeviations = 3.0;
extern bool Repaints = true;
extern bool Interpolate = true;
extern bool alertsOn = false;
extern bool alertsOnCurrent = false;
extern bool alertsOnHighLow = false;
extern string SetArrows = "Set_arrows";
extern int CodeUp = 233;
extern int CodeDn = 234;
extern int Size = 3;
extern double Gap = 1.5;
extern bool alertsMessage = false;
extern bool alertsSound = false;
extern bool alertsEmail = false;
double tmBuffer[];
double upBuffer[];
double dnBuffer[];
double wuBuffer[];
double wdBuffer[];
double upArrow[];
double dnArrow[];
double midArrow[];
string IndicatorFileName;
bool calculatingTma = false;
bool returningBars = false;
int timeFrame;
int init()
{
// код доступен только после оплаты
}
int deinit() { return(0); }
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=MathMin(Bars-1,Bars-counted_bars+HalfLength);
if (returningBars) { tmBuffer[0] = limit; return(0); }
if (calculatingTma) { calculateTma(limit); return(0); }
if (timeFrame > Period()) limit = MathMax(limit,MathMin(Bars-1,iCustom(NULL,timeFrame,IndicatorFileName,"returnBars",0,0)*timeFrame/Period()));
if(limit<Bars-20) limit=1;
for(i = limit; i >= 0; i--)
{
int shift1 = iBarShift(NULL,timeFrame,Time[i]);
datetime time1 = iTime (NULL,timeFrame,shift1);
tmBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,0,shift1);
upBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,1,shift1);
dnBuffer[i] = iCustom(NULL,timeFrame,IndicatorFileName,"calculateTma",HalfLength,Price,BandsDeviations,2,shift1);
upArrow[i] = EMPTY_VALUE;
dnArrow[i] = EMPTY_VALUE;
if ((Open[i]>tmBuffer[i] && Close[i]<tmBuffer[i]) || (Open[i]<tmBuffer[i] && Close[i]>tmBuffer[i])) midArrow[i] = tmBuffer[i];
if (
Open[i]>tmBuffer[i]
&& Close[i]> upBuffer[i]
) dnArrow[i] = High[i]+iATR(NULL,0,20,i)/Gap/2;
if (
Open[i] < tmBuffer[i]
&& Close[i]<dnBuffer[i]
) upArrow[i] = Low[i]-iATR(NULL,0,20,i)/Gap/2;
if (timeFrame <= Period() || shift1==iBarShift(NULL,timeFrame,Time[iПоказано первые 50% кода (символов: 6393)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.