← К каталогу
Исходный код · ID 2454

ElliotsTarget

elliots target.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный файл представляет собой пользовательский индикатор для MetaTrader 5, предназначенный для отображения на графике ценовых формаций, связанных с волновой разметкой Эллиота. Индикатор анализирует последние ценовые экстремумы, используя встроенный индикатор фракталов, и при выполнении определённых условий строит графические объекты: линии тренда и прямоугольную зону предполагаемой цели. Все построения выполняются в окне графика.

Входные параметры before и after задают количество баров соответственно до и после проверяемого фрактала, которые учитываются при поиске значимых экстремумов. Эти параметры позволяют настраивать чувствительность индикатора к рыночным шумам.

Индикатор не содержит торговых функций и не выполняет автоматических сделок. Его назначение — визуальная помощь в разметке волн и определении потенциальных целевых уровней на основе соотношений длин волн. Все вычисления производятся на основе исторических данных, обновление происходит при появлении нового бара или изменении значимых экстремумов.

Настройки программы

НастройкаОписание
??????? ?????? ?? ???????? (before) Бары до фрактала — Количество баров до проверяемого фрактала, которые должны подтвердить его значимость (отсутствие более высокого максимума или более низкого минимума в этом диапазоне).
??????? ?????? ????? ???????? (after) Бары после фрактала — Количество баров после проверяемого фрактала, которые должны подтвердить его значимость (отсутствие более высокого максимума или более низкого минимума в этом диапазоне).
Получить полный код

Поиск по коду файла

#property indicator_chart_window

extern int before = 7;     //??????? ?????? ?? ???????? 
extern int after  = 2;     //??????? ?????? ????? ???????? 
double Buffer[];
datetime TimeOld,TimeOld?o???2;

int init()
{
      // код доступен только после оплаты
   }

int deinit()
{
   ObjectDelete("W1 ");
   ObjectDelete("W2 ");
   ObjectDelete("W3 ");
   ObjectDelete("W3 _");
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   double fr,PricednBar1,PriceupBar1,Price?????2;
   string Name;
   datetime TimednBar1,TimeupBar1,Time?o???2;
   int Bar0,j;
   for (int i=after; i<500; i++)
   {
      if (PricednBar1!=0 && PriceupBar1!=0) break;
      if (PricednBar1==0)
      {
         fr = Fractal(MODE_LOWER,i);
         if (fr!=0) 
         {
            TimednBar1=Time[i];PricednBar1=fr;
            if (Bar0==0) 
            {
               Bar0=i;
               for (j=0; j<Bar0; j++)
               {
                  if (Price?????2<High[j]) {Price?????2=High[j];Time?o???2=Time[j];} //??????? ????????
               }
            }
         }
      }
      if (PriceupBar1==0)
      {
         fr = Fractal(MODE_UPPER,i);
         if (fr!=0) 
         {
            TimeupBar1=Time[i];PriceupBar1=fr;
            if (Bar0==0) 
            {
               Bar0=i;
               for (j=0; j<Bar0; j++)
               {
                  if (Price?????2>Low[j] || Price?????2==0) {Price?????2=Low[j];Time?o???2=Time[j];} //??????? ???????
               }
            }
         }
      }
   }

   double Price0,Price1;
   datetime Time0,Time1;
   if (TimeupBar1>TimednBar1) 
   {
      Time0 = TimeupBar1; 
      Time1 = TimednBar1; 
      Price0 = PriceupBar1; 
      Price1 = PricednBar1;
   } 
   else                       
   {
      Time0 = TimednBar1; 
      Time1 = TimeupBar1; 
      Price0 = PricednBar1; 
      Price1 = PriceupBar1;
   }
   if ((Time0!=TimeOld)||(Time?o???2!=TimeOld?o???2))
   {
      TimeOld=Time0;
      TimeOld?o???2 = Time?o???2;

      datetime TimeEnd1 = Time?o???2+MathAbs(TimeupBar1-TimednBar1)*0.38;
      datetime TimeEnd2 = Time?o???2+MathAbs(TimeupBar1-TimednBar1)*0.62;

      double Wawes1 = MathAbs(Price0-Price1);

      if (Wawes1*0.38<MathAbs(Price?????2-Price0) && Wawes1*0.62>MathAbs(Price?????2-Price0))
      {
         double PriceEnd1,PriceEnd2;

         if (TimeupBar1>TimednBar1)
         {
            PriceEnd1 = Price?????2+Wawes1*1.00;
            PriceEnd2 = Price?????2+Wawes1*1.62;
         }
         else
         {
            PriceEnd1 = Price?????2-Wawes1*1.0;
            PriceEnd2 = Price?????2-Wawes1*1.62;
         }

         Name = "W1 ";
         ObjectDelete(Name);
         ObjectCreate(Name, OBJ_TREND,

Показано первые 50% кода (символов: 3656)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
365,60₽ ≈ $4.47