Группа "Стол заказов MQL"

Рейтинг 2081



РЕКОМЕНДУЮ



Сделайте пожалуйста индикатор по времени.

Здравствуйте Андрей сожмите сделать индикатор по зигзагу.
Смысл таков, берем от зигзага последнию вершину, и цену этой вершины умножаем на нее же, возводим в квадрат и делим результат на 12.5. И от результата берем последние 2 цифры.
Это количество баров или расстояние которое надо отложить от вершин зигзага и отметить эти места вертикальной линией.
И когда цена подходит к линии на расстоянии 1 бара нужен звуковой алерт с обозначением пары где был сигнал.
Screenshot_1.png (88 Kb)

  • +1
  • Просмотров: 1231
  • 5 января 2021, 15:16
  • sergey7807mir
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
вход по тренду
Следующая запись в группе  
Нужен скрипт
05 января 2021
06 января 2021

Комментарии (13)

+
0
На скриншоте все нарисовал )))
avatar

  6  sergey7807mir Автор Сообщений: 28

  • 5 января 2021, 15:18
+
0
эть… умножаем на два как на скрине или возводим в квадрат — эт как бы разные вещи.
avatar

  4  alexzh16 Сообщений: 59

  • 5 января 2021, 16:13
+
0
на 11-е
avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 5 января 2021, 15:21
+
0
Ну может Вы и правы ))) Я не математик, но надо умножать то бишь на 2 )))
2*2=4.
avatar

  6  sergey7807mir Автор Сообщений: 28

  • 5 января 2021, 17:32
+
0
Смысл таков, берем от зигзага последнию вершину, и цену этой вершины умножаем на нее же,


в формуле на скрине нет этого действия, почему?

возводим в квадрат


квадрат или умножение?

И от результата берем последние 2 цифры.


а на скрине берете первые 2 цифры?

определитесь пожалуйста с формулой расчета
avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 7 января 2021, 16:18
+
0
Итак по порядку:
1) Цена первого зигзага = 0.87730
2) Эту цену надо умножить на себя же, 0.87730 * 0.87730 = 0,76965529
3) Делим результат 0,76965529 / 24 = 0,0/32/0689704166667
4) Берем первые 2 числа это 32
4) И от зигзага (0.87730) от которой мы делали расчет, надо в будущее отложить 32 бара и нарисовать вертикальную линию как на скрине.
Потом взять цену зигзага 2 и повторить действие, цену зигзага 3 повторить расчет.
Извиняюсь за неточности спасибо что поправили )))

avatar

  6  sergey7807mir Автор Сообщений: 28

  • 7 января 2021, 20:24
+
0
3) Делим результат 0,76965529 / 24 = 0,0/32/0689704166667
4) Берем первые 2 числа это 32


а как для машины вытащить это число? есть соображения?
avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 8 января 2021, 00:40
+
0
Конкретно в этом случае можно попробовать так:
3) Делим результат 0,76965529 / 24 = 0,0/32/0689704166667
и считать как
int Result = 0,76965529 / 24*1000 = 0,0/32/0689704166667*1000=32,…
или double result = NormalizeDouble(Result, 0)
Как то так.
Но это частный случай!
avatar

  16  ssg Сообщений: 817

  • 8 января 2021, 05:50
+
0
Результат который должен получится он всегда больше 9:
Можно просто результат умножать перебором пока не получится число больше 9
С начало умножим на 10 получим
0,320689704166667 меньше 9 не подходит
умножим на 100 получим
3,20689704166667 меньше 9 не подходит
умножим на 1000 получим
32,0689704166667
больше 9 подходит!!!
и если ее записать переменную int и будет 32

avatar

  6  sergey7807mir Автор Сообщений: 28

  • 8 января 2021, 09:33
+
0
По моему опыту это перемножение доходило до 10000 что бы получить нужное число

avatar

  6  sergey7807mir Автор Сообщений: 28

  • 8 января 2021, 09:36
+
0
пока попробую число перевести в строку и извлекать с указанной позиции 2 символа
avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 8 января 2021, 10:37
+
0
построения сделал. сигнал чуть позже будет:




//+------------------------------------------------------------------+
//|                                                          ZZ5.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int Depth=12;
input int Dev=5;
input int Back=3;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double ZZPrice(int n=0)
  {
   double zz=0;
   int k=0;

   for(int i=0; i<1111; i++)
     {
      zz=iCustom(NULL,0,"ZigZag",Depth,Dev,Back,0,i);
      if(zz!=0)
        {
         k++;
         if(k>n)
            return(zz);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int ZZBar(int n=0)
  {
   double zz=0;
   int k=0,i=0;

   for(i=0; i<1111; i++)
     {
      zz=iCustom(NULL,0,"ZigZag",Depth,Dev,Back,0,i);
      if(zz!=0)
        {
         k++;
         if(k>n)
            return(i);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Вертикальная линия                                               |
//+------------------------------------------------------------------+
void PutVLine(string name,datetime t,color clr)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_VLINE,0,t,Bid);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---

   for(int i=1; i<=5; i++)
     {
      double zz=ZZPrice(1);

      int v=NormalizeDouble((zz*zz)/24,3)*1000;

      PutVLine("v"+i,time[ZZBar(i)]+v*PeriodSeconds(),Red);
      
   Comment("\n ZZ: ",zz,
           "\n V: ",v);      
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15869 - Андрей

  • 8 января 2021, 11:42
+
0
СПАСИБО ВАМ ОГРОМНОЕ!!! УПРОСТИЛИ ВЫ МНЕ РАБОТЫ В РАЗЫ!!! С ПРОШЕДШИМИ ПРАЗДНИКАМИ ВАС!!! ВСЕГО ВАМ ХОРОШЕГО !!!*hi* 
avatar

  6  sergey7807mir Автор Сообщений: 28

  • 8 января 2021, 11:52

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари