zigzag mt4 source code @fundedmillionairess.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «zigzag mt4 source code @fundedmillionairess.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный код представляет собой пользовательский индикатор для платформы MetaTrader 4, предназначенный для построения линий Зигзаг на графике цены. Индикатор определяет локальные максимумы и минимумы на основе заданных параметров и отображает их в виде соединённых линий, а также маркеров сигналов на покупку и продажу. Для расчёта используются три основных буфера экстремумов и два дополнительных буфера для отрисовки торговых сигналов.
Настройки программы
| Настройка | Описание |
|---|---|
| Depth (InpDepth) | Глубина — Задаёт количество баров, в пределах которых ищутся экстремумы (минимумы и максимумы) цены. |
| Deviation (InpDeviation) | Отклонение — Определяет допустимое отклонение цены в пунктах для фильтрации незначительных колебаний при поиске экстремумов. |
| Backstep (InpBackstep) | Шаг назад — Задаёт количество баров назад, в которых происходит очистка предыдущих кандидатов в экстремумы при обнаружении нового. |
Поиск по коду файла
#property strict
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 clrGoldenrod
#property indicator_color2 clrDodgerBlue
#property indicator_color3 Red
#property indicator_width1 1
#property indicator_width2 2
#property indicator_width3 3
input int InpDepth = 12; // Depth
input int InpDeviation = 5; // Deviation
input int InpBackstep = 3; // Backstep
double ExtZigzagBuffer[];
double ExtHighBuffer[];
double ExtLowBuffer[];
double BuyBuffer[];
double SellBuffer[];
int ExtLevel=3; // recounting's depth of extremums
int OnInit()
{
// код доступен только после оплаты
}
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 i, limit, counterZ, whatlookfor = 0;
int back, pos, lasthighpos = 0, lastlowpos = 0;
double extremum;
double curlow = 0.0, curhigh = 0.0, lasthigh = 0.0, lastlow = 0.0;
if(rates_total < InpDepth || InpBackstep >= InpDepth)
return(0);
if(prev_calculated == 0)
limit = InitializeAll();
else
{
i = counterZ = 0;
while(counterZ < ExtLevel && i < 100)
{
if(ExtZigzagBuffer[i] != 0.0)
counterZ ++;
i ++;
}
if(counterZ == 0)
limit = InitializeAll();
else
{
limit = i - 1;
if(ExtLowBuffer[i] != 0.0)
{
curlow = ExtLowBuffer[i];
whatlookfor = 1;
}
else
{
curhigh = ExtHighBuffer[i];
whatlookfor = -1;
}
for(i = limit - 1; i >= 0; i --)
{
ExtZigzagBuffer[i] = 0.0;
ExtLowBuffer[i] = 0.0;
ExtHighBuffer[i] = 0.0;
}
}
}
for(i = limit; i >= 0; i --)
{
extremum = low[iLowest(NULL, 0, MODE_LOW, InpDepth, i)];
if(extremum == lastlow)
extremum = 0.0;
else
{
lastlow = extremum;
if(low[i] - extremum > InpDeviation * Point)
extremum = 0.0;
else
{
for(back = 1; back <= InpBackstep; back ++)
{
pos = i + back;
if(ExtLowBuffer[pos] != 0 && ExtLowBuffer[pos] > extremum)
ExtLowBuffer[pos] = 0.0;
}
}
}
if(low[i] == extremum)
ExtLowBuffer[i] =Показано первые 50% кода (символов: 3993)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.