shi channels.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «shi channels.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный исходный код представляет собой пользовательский индикатор для MetaTrader 5, отображаемый в окне графика. Индикатор рассчитывает и рисует на графике три наклонные линии тренда, а также может отмечать стрелкой точку на текущем или предыдущем баре. Линии строятся по найденным экстремумам цены за заданное число баров.
Индикатор использует один буфер для отрисовки стрелки. Линии тренда создаются как графические объекты и удаляются при каждом пересчёте. Настройки позволяют ограничить количество анализируемых баров и задать собственный период поиска экстремумов.
Код написан на языке MQL5, однако использует устаревшие функции init, deinit и start, а также функцию Period() без параметров, что характерно для более старых версий языка. Индикатор не выполняет торговых операций и не содержит советников.
Настройки программы
| Настройка | Описание |
|---|---|
| AllBars | Задаёт максимальное количество баров, анализируемых индикатором. Если значение равно 0 или превышает доступное число баров, используется вся доступная история. Влияет на длину отображаемых линий тренда. |
| BarsForFract | Задаёт количество баров для поиска экстремумов. Если значение больше 0, используется как есть; иначе выбирается автоматически в зависимости от текущего таймфрейма. Влияет на чувствительность определения точек разворота. |
Поиск по коду файла
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
double ExtMapBuffer1[];
extern int AllBars=240;
extern int BarsForFract=0;
int CurrentBar=0;
double Step=0;
int B1=-1,B2=-1;
int UpDown=0;
double P1=0,P2=0,PP=0;
int i=0,AB=300,BFF=0;
int ishift=0;
double iprice=0;
datetime T1,T2;
int init()
{
// код доступен только после оплаты
}
int deinit()
{
return(0);
}
void DelObj()
{
ObjectDelete("TL1");
ObjectDelete("TL2");
ObjectDelete("MIDL");
}
int start()
{
// код доступен только после оплаты
}
int counted_bars=IndicatorCounted();
if ((AllBars==0) || (Bars<AllBars)) AB=Bars; else AB=AllBars; //AB-?????????? ????????????? ?????
if (BarsForFract>0)
BFF=BarsForFract;
else
{
switch (Period())
{
case 1: BFF=12; break;
case 5: BFF=48; break;
case 15: BFF=24; break;
case 30: BFF=24; break;
case 60: BFF=12; break;
case 240: BFF=15; break;
case 1440: BFF=10; break;
case 10080: BFF=6; break;
default: DelObj(); return(-1); break;
}
}
CurrentBar=2; //??????? ? ???????? ????, ????? ??????? "??????????
B1=-1; B2=-1; UpDown=0;
while(((B1==-1) || (B2==-1)) && (CurrentBar<AB))
{
if((UpDown<1) && (CurrentBar==Lowest(Symbol(),Period(),MODE_LOW,BFF*2+1,CurrentBar-BFF)))
{
if(UpDown==0) { UpDown=-1; B1=CurrentBar; P1=Low[B1]; }
else { B2=CurrentBar; P2=Low[B2];}
}
if((UpDown>-1) && (CurrentBar==Highest(Symbol(),Period(),MODE_HIGH,BFF*2+1,CurrentBar-BFF)))
{
if(UpDown==0) { UpDown=Показано первые 50% кода (символов: 2709)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.