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

Рейтинг 1513



РЕКОМЕНДУЮ



Исчезающие фракталы.

Если кто достаточно наблюдателен, он мог заметить, что штатный фрактальник Вильямса рисует, я наблюдаю это частенько.

Порылся в сети — инфы мизер. Собственно мысля такова: запилить индикатор или советник исчезающих фракталов. Открытие в сторону таковых.

Если индюком, то установка точки на месте потерявшегося со всяческого рода оповещениями.

Точки желательно разного цвета. Один цвет для верхнего, второй для нижнего.
  • +8
  • Просмотров: 3964
  • 28 июня 2016, 14:16
  • Anatoly74
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

комментарий был удален 2016-06-28 15:07:42 Anatoly74

комментарий был удален 2016-06-28 15:07:40 Anatoly74

комментарий был удален 2016-06-28 15:07:37 Anatoly74

комментарий был удален 2016-06-28 15:07:35 Anatoly74

комментарий был удален 2016-06-28 15:07:31 Anatoly74

+
0
Желательно писать по сути.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 15:08
+
0
Для ненаблюдательных скрин из тестера:

avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 17:36
+
0
Это нормально. Анализируются для фрактала 2 свечи справа и две свечи слева. На левом скрине, когда происходил анализ, текущая свеча еще не закрылась, и её high был ниже предполагаемого фрактала, поэтому фрактал и обозначился. А потом high её подрос, стал выше предполагаемого фрактала и пометка о фрактале исчезла.
Проще переписать сам индикатор фрактала. Запретить ему анализировать для фрактала с 0-й (с текущей) по 2-ю свечу включительно.
avatar

  23  Oxy Сообщений: 3268 - ..ιllιlι.lι.ιllι.ιlι..

  • 28 июня 2016, 17:45
+
0
Это нормально.

Не соглашусь. Есть фрактальники, которые не рисуют.
Запретить ему

Запретить это проще всего…
А почему бы на этом не поиграться?
P. S.
А потом high её подрос, стал выше предполагаемого фрактала и пометка о фрактале исчезла.

Вот в место и момент исчезновения и требуется тыкать точечку.
Редактирован: 28 июня 2016, 17:55
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 17:50
+
0
А почему бы на этом не поиграться?
все зависит от преследуемой цели
avatar

  23  Oxy Сообщений: 3268 - ..ιllιlι.lι.ιllι.ιlι..

  • 28 июня 2016, 17:54
+
+1
все зависит от преследуемой цели

Цель одна — хоЦЦа победы безусловной.

Сегодня долбил только по этой фигне, принципиально:


Редактирован: 28 июня 2016, 18:08
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 18:06
+
0
Открытие сразу после исчезновения фрактала? А закрытие по какому принципу?
avatar

  23  Oxy Сообщений: 3268 - ..ιllιlι.lι.ιllι.ιlι..

  • 28 июня 2016, 20:26
+
0
А закрытие по какому принципу?
По обратному пропавшему:) . Шутка юмора конечно…

Лучше таки в виде индикатора, поскольку и открытие не обязательно сразу же по исчезновению. Таки нужно оценивать ситуёвину в целом.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 20:35
+
0
Попроси Андрея сделать советника. Зачем индикатор надо, там нечего оценивать, надо действовать :) 
avatar

  14  beton2011 Сообщений: 885

  • 28 июня 2016, 21:35
+
0
там нечего оценивать, надо действовать
ЧЁт напомнило(ПРОСТО напомнило, БЕЗО всяких намёков):
Есть такой бородатый анекдот:

Экспериментатор подвешивал к потолку банан и впускал в комнату обезьяну. Та прыгала, прыгала, а достать не могла.

Тогда экспериментатор говорил ей: «Думай, Чичи!» — в ответ обезьяна подтаскивала табурет и снимала банан.

Потом ученый подвесил к потолку бутылку водки и пригласил Васю. Вася начал прыгать, но достать не смог.

Экспериментатор и ему говорит: «Думай, Вася, думай!» — а Вася отвечает: «Что тут думать? Прыгать надо!».

Если же без шуток — то мне ничего не стоило(вернее стоило бы чего-ниТь, конечно) заказать сова или индюка на стороне, да и сейчас ничего не мешает. Но, почему-то, я разместил свою мыслЮ тут.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 21:58
+
0
Если советник ставить отложку на фрактал.
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 28 июня 2016, 17:52
+
0
А смысл? Нужен детектор исчезнувшего фрактала. Фрактал пропал — сигнал.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 18:07
+
0
На любом движении такое будет, это называется трендом. На этом не сыграть, исчезнувший фрактал будет поздно давать сигнал, плюс к этому, надо добавить ложные сигналы. Короче, ничего не получится.
avatar

  14  beton2011 Сообщений: 885

  • 28 июня 2016, 18:23
+
0
Сдаюсь, можно забить.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 18:28
+
0
Пробовать конечно можно. Здесь вроде нет таких советников.
avatar

  14  beton2011 Сообщений: 885

  • 28 июня 2016, 18:43
+
0
Спасибо. Готов возобновиться. ТрЫндЕЦ депА располагает:


P. S. Располагает также и количество интересантов.
Редактирован: 28 июня 2016, 20:05
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 20:00
+
0
Количество кого располагает?:) 
avatar

  15  Kashtan Сообщений: 696 - Игорь

  • 28 июня 2016, 20:45
+
0
Кого оно заинтересовало — того и располагает...:) 
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 28 июня 2016, 20:51
+
0
Если же без шуток — то мне ничего не стоило(вернее стоило бы чего-ниТь, конечно) заказать сова или индюка на стороне, да и сейчас ничего не мешает. Но, почему-то, я разместил свою мыслЮ тут.


Если есть четкое ТЗ, рассмотрю.
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 07:27
+
0
четкое ТЗ

Индикатор. Устанавливает метки(точки разным цветом для верхнего и нижнего) только вместо и в месте пропавших фракталов штатного индикатора. Если такое конечно получится.

Пока всё. Хочу посмотреть по истории. Если устроит — в дальнейшем привязать сигналы. Спасибо.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 08:08
+
0
Пока сделал такой вариант. Мне нужен код оригинального индикатора фракталов, а его я что то не нашел.




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

#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_color2 Blue
#property indicator_width2 2
//---- buffers
double up[];
double dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,217);
   SetIndexBuffer(0,up);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,218);
   SetIndexBuffer(1,dn);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutArrow(string name,double price,int code,color clr)
  {
   ObjectCreate(0,name,OBJ_ARROW,0,Time[2],price);
//--- установим код стрелки
   ObjectSetInteger(0,name,OBJPROP_ARROWCODE,code);
//--- установим цвет стрелки
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим размер стрелки
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   int limit=rates_total-prev_calculated;

   for(int i=2;i<555;i++)
     {
      up[i]=iFractals(NULL,0,MODE_UPPER,i);
      dn[i]=iFractals(NULL,0,MODE_LOWER,i);
     }

   double upf=iFractals(NULL,0,MODE_UPPER,2);
   double dnf=iFractals(NULL,0,MODE_LOWER,2);
   if(upf!=0) PutArrow("UP"+(string)Time[0],High[2],108,Blue);
   if(dnf!=0) PutArrow("DN"+(string)Time[0],Low[2],108,Red);

   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 08:58
+
0
Спасибо. Код попробую найти.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 09:06
+
0
www.mql5.com/ru/code/7982 тут вроде код штатного.

По этому варианту. Историю не отображает:



Значки штатного фрактала не нужны(либо параметр на отключение). Нужны только точки и только в местах пропадания фрактала, желательно с отображением истории. Точка ровно на том месте, где пропал, без смещения.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 09:22
+
0
Если знаешь просто напиши как считает фракталы. 2 хая ниже среднего по бокам или как там в оригинале?
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 09:22
+
0
Если знаешь просто напиши как считает фракталы. 2 хая ниже среднего по бокам или как там в оригинале?

Как-то вот:
Техническое определение фрактала вверх — это серия из минимум пяти последовательных баров, в которой перед самым высоким максимумом и за ним находятся по два бара с более низкими максимумами.

Блин, люди пишут, что кодобазе у самих Метаквотов открытый код кривее штатного, всё как обычно у них. Второй коммент по ссылке.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 09:30
+
0
Я сейчас думаю над тем как удалять лишние кружочки.
Этот вариант удаляет самый последний в истории а другой по времени и ни один не дает пока нужной картины:


   if(High[3]>High[2] && High[3]>High[1]) ObjectDelete(0,ObjectName(ObjectsTotal()-1));
   if(Low[3]<Low[2] && Low[3]<Low[1]) ObjectDelete(0,ObjectName(ObjectsTotal()-1));



   if(High[3]>High[2] && High[3]>High[1]) ObjectDelete(0,"UP"+(string)Time[3]);
   if(Low[3]<Low[2] && Low[3]<Low[1]) ObjectDelete(0,"DN"+(string)Time[3]);
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 09:36
+
0
Я сейчас думаю над тем как удалять лишние кружочки.

Тут сперва надо отыскать полный аналог встроенного, раз с открытым кодом глючный, а потом уже пытаться чего мастерить. Не?
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 09:41
+
0
Тут сперва надо отыскать полный аналог встроенного, раз с открытым кодом глючный, а потом уже пытаться чего мастерить. Не?

Я просто беру сигнал с встроенного и по формуле пытаюсь удалять лишние кружочки.
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 09:45
+
0
Понятно, тогда может и оно получится.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 09:49
+
0
Пока не придумал правильный алгоритм, как будет программно сделать уже проще.
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 09:52
+
0
Последний вариант ближе к ТЗ. Что можно было быстро сделать сделал.



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

#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_width1 2
#property indicator_color2 Blue
#property indicator_width2 2
//---- buffers
double up[];
double dn[];

datetime t=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,217);
   SetIndexBuffer(0,up);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,218);
   SetIndexBuffer(1,dn);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutArrow(string name,double price,int code,color clr)
  {
   ObjectCreate(0,name,OBJ_ARROW,0,Time[2],price);
//--- установим код стрелки
   ObjectSetInteger(0,name,OBJPROP_ARROWCODE,code);
//--- установим цвет стрелки
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим размер стрелки
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void del()
  {
   if(ObjectName(ObjectsTotal()-1)=="UP"+(string)Time[3] || ObjectName(ObjectsTotal()-1)=="DN"+(string)Time[3])
      ObjectDelete(0,ObjectName(ObjectsTotal()-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[])
  {
//---
   int limit=rates_total-prev_calculated;

   for(int i=2;i<555;i++)
     {
      up[i]=iFractals(NULL,0,MODE_UPPER,i);
      dn[i]=iFractals(NULL,0,MODE_LOWER,i);
     }

   double upf=iFractals(NULL,0,MODE_UPPER,2);
   double dnf=iFractals(NULL,0,MODE_LOWER,2);
   if(upf!=0) PutArrow("UP"+(string)Time[0],High[2],108,Blue);
   if(dnf!=0) PutArrow("DN"+(string)Time[0],Low[2],108,Red);

   if(t!=Time[0])
     {
      if(High[3]>High[2] && High[3]>High[1] && High[3]>High[4] && High[3]>High[5]) ObjectDelete(0,ObjectName(ObjectsTotal()-1));
      if(Low[3]<Low[2] && Low[3]<Low[1] && Low[3]<Low[4] && Low[3]<Low[5]) ObjectDelete(0,ObjectName(ObjectsTotal()-1));
      t=Time[0];
     }

   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 10:20
+
0
Андрей, извини, что прокомментирую. Заглянула в твой код.
Имея буфер DRAW_ARROW лишнее создавать отдельно объект OBJ_ARROW, так как буфер сам создаст этот объект.
Зачем обращаться к iFractals, если потом сам по логике ищешь? И у iFractals чуть-чуть логика другая.
avatar

  23  Oxy Сообщений: 3268 - ..ιllιlι.lι.ιllι.ιlι..

  • 29 июня 2016, 22:02
+
0
Я просто беру сигнал с встроенного и по формуле пытаюсь удалять лишние кружочки.

Смотри, а если так: кинуть штатный фрактал, при его появлении туда сразу же ставится точка размером меньше фрактала и того же цвета, что и фрактал, при пропадании фрактала меняет цвет(да можно и без смены цвета, лишь бы не пропадала). Пусть без истории, можно будет погонять в тестере и определиться стоит ли оно того.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 10:32
+
0
Без пропадания самый первый вариант. Что самое интересное первые 4-5 раз нормально срабатывает а потом косячит.
Редактирован: 29 июня 2016, 10:36
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 10:34
+
0
Да, последний вариант тоже глючит.

P. S. Ладно, не мучайся. И без этого есть что поторговать. Тут просто любопытно было может ли из этого чего выйти. Так то лет несколько уже руки не доходили.
Редактирован: 29 июня 2016, 10:51
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 10:44
+
0
А давай ка спросим на форуме, мы люди не гордые, вроде бы все правильно написал :) 
Совсем ведь немного осталось доделать.
forum.mql4.com/ru/73047
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 29 июня 2016, 14:53
+
0
Могу только приветствовать инициативу, но, при этом, саму идею наверное уже можно списывать по причине её широкого расхождения… Но ничего, у мНУ их ещё есть… Вагон с тележкой…
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 14:59
+
0
саму идею наверное уже можно списывать по причине её широкого расхождения
Анатолий, так в том то и дело, что конкретизированной идеи от вас и нет.
Только:
Лучше таки в виде индикатора, поскольку и открытие не обязательно сразу же по исчезновению. Таки нужно оценивать ситуёвину в целом.
А про закрытие вообще нет информации.
А интересовалась я с целью: озвучат стратегию — напишу индикатор, поюзаем.
avatar

  23  Oxy Сообщений: 3268 - ..ιllιlι.lι.ιllι.ιlι..

  • 29 июня 2016, 17:35
+
0
Анатолий, так в том то и дело, что конкретизированной идеи от вас и нет.

Давай уже окончательно на «ты» — вроде уже определялись.

Идеи быть и не может, поскольку, как я писал уже выше, наблюдаю данный эффект уже несколько лет с разной частотой на разных тф, намётки есть, а отследить это и выносить идею мешает нежелание тратить на это время при отслеживании в тестере.

Соответственно возникла идея об индикаторе, требования изложены выше. Если получится в индивидуальном порядке, то через некоторое время «гоняния» могу вынести вердикт о пригодности и высказать соображения также в индивидуальном порядке.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 29 июня 2016, 18:04
+
0
Андрей, на сколько я поняла, на форуме mql4 спрашивать менее эффективно, чем на форуме mql5, но по языку mql4.
avatar

  23  Oxy Сообщений: 3268 - ..ιllιlι.lι.ιllι.ιlι..

  • 29 июня 2016, 17:32
+
0
Имея буфер DRAW_ARROW лишнее создавать отдельно объект OBJ_ARROW, так как буфер сам создаст этот объект.
Зачем обращаться к iFractals, если потом сам по логике ищешь? И у iFractals чуть-чуть логика другая.

Наоборот помощь нужна, свежий взгляд со стороны.
У меня в коде буферы для вывода фракталов на экран. Точки отрисовываются объектами и затем удаляются, когда фрактал сформированный.
Я заметил глюк бывает когда 2 объекта рядом вылезают, один удаляется а другой остается, но это опять нужно сидеть и репу чесать как его убрать и неизвестно сколько это времени займет.
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 30 июня 2016, 08:12
+
0
Значки штатного фрактала не нужны(либо параметр на отключение). Нужны только точки и только в местах пропадания фрактала, желательно с отображением истории. Точка ровно на том месте, где пропал, без смещения.

Доделал все таки, но раз Анатолий просил не светить лишний раз, не буду <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; 

На форуме реально помогли! *good* 



Редактирован: 30 июня 2016, 23:32
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 30 июня 2016, 23:30
+
0
Да ладно, что значит просил не светить? Секретного тут нет ничего, получилось — выкладывай. Спасибо за настойчивость.
avatar

  20  Anatoly74 Автор Сообщений: 3710 - Анатолий

  • 1 июля 2016, 04:56
+
0
avatar

  29  AM2 Сообщений: 10387 - Андрей

  • 1 июля 2016, 06:33

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