cardon

 
Уровень 10

  Торгую в компаниях:


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

Рейтинг 2086



РЕКОМЕНДУЮ




Лучшее от cardon



дороботка сова Комментариев 68
2016-11-24 13:25:33Рейтинг 0

советник на 1 МА Комментариев 13
2016-07-29 13:57:46Рейтинг 0

просто индюк Комментариев 22
2016-09-17 11:18:53Рейтинг 0

доработка сова Комментариев 2
2017-01-09 19:57:28Рейтинг 0

сова просто сова Комментариев 19
2016-10-06 16:43:18Рейтинг 0

индикатор vol.

Доброго времени суток 0/

мт4 пятизнак

1. Нужен индикатор волатильности в графическом виде из топика zakaz.opentraders.ru/36136.html как я понял это какой то стандартный, но не могу догнать какой, видно я совсем тупой :) 

2. посложнее:
сделать на нем мультивалютный индикатор из 5 пар, которые можно сменить и убрать не нужные и можно выбрать — какой ТФ. будем отслеживать.
выглядеть будет примерно так:

eurusd ТФ vol число
gbpusd ТФ vol число
usdcad ТФ vol число
audusd ТФ vol число
nzdusd ТФ vol число

чтоб можно было сделать так:

eurusd M1 vol число
eurusd M5 vol число
eurusd M15 vol число
eurusd M30 vol число
eurusd H1 vol число

Выбор угла — верхний левый, верхний правый

вот скрин из советника что нужно от него:


PS. писал в черновике, а он оказался тут( поэтому дописываю на ходу.
  • +1
  • Просмотров: 6862
  • 2 января 2017, 21:44
  • cardon
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
У меня там волатильность на текущей свече была, но можно сделать и с выбором ТФ.
avatar

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

  • 2 января 2017, 21:57
+
0
просто я тф меняю и Vol разное везде, вот я и подумал что от тф зависит.
если vol на текущей свече поменять на ТФ, то значения сильно поменяются?
можно ли добавить выбор — текущая свеча vol на выбраном ТФ и просто vol по ТФ? или это одно и тоже?)))
avatar

  10  cardon Автор Сообщений: 376

  • 2 января 2017, 22:19
+
0
Сделал вариант. Посмотрите:




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

input string Symbol1 = "EURUSD";
input string Symbol2 = "GBPUSD";
input string Symbol3 = "USDCAD";
input string Symbol4 = "AUDUSD";
input string Symbol5 = "NZDUSD";
input int    Corner  = 0;
input ENUM_TIMEFRAMES TimeFrame=PERIOD_H1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll(0,OBJ_LABEL);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string Vol(string symb)
  {
   string vol=(string)NormalizeDouble((iHigh(symb,TimeFrame,0)-iLow(symb,TimeFrame,0))/MarketInfo(symb,MODE_POINT),0);
   return(vol);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string text,string name,int x,int y)
  {
   ObjectDelete(0,name);
//--- создадим текстовую метку
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,Corner);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,11);
//--- установим цвет
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
  }
//+------------------------------------------------------------------+
//| 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 X=180,Y=30;
   if(Corner==0 || Corner==2) X-=160;
   
   PutLabel(Symbol1+" M"+(string)TimeFrame+" "+Vol(Symbol1),Symbol1,X,Y);Y+=20;
   PutLabel(Symbol2+" M"+(string)TimeFrame+" "+Vol(Symbol2),Symbol2,X,Y);Y+=20;
   PutLabel(Symbol3+" M"+(string)TimeFrame+" "+Vol(Symbol3),Symbol3,X,Y);Y+=20;
   PutLabel(Symbol4+" M"+(string)TimeFrame+" "+Vol(Symbol4),Symbol4,X,Y);Y+=20;
   PutLabel(Symbol5+" M"+(string)TimeFrame+" "+Vol(Symbol5),Symbol5,X,Y);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

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

  • 3 января 2017, 07:31
+
0
получился интересный вариант))
мы имеем значение сколько пп прошла свеча за вы выставленный период времени, если выставить д1, получим сколько прошли пары за целый день.) несомненно в копилку, на прогон, ему нужно еще что то, но торопится не буду, так как мне нужен мой заказ)

В том советнике vol считается по телу свечи, ниже скрин:


нужно:
1. считать по телам.
2. выбор тф для каждого символа.
3. окрашивать значение в цвет тела свечи.
4. выбор цвета статичных данных.

пример повторюсь:

eurusd M1 vol число
eurusd M5 vol число
eurusd M15 vol число
eurusd M30 vol число
eurusd H1 vol число
avatar

  10  cardon Автор Сообщений: 376

  • 3 января 2017, 11:01
+
0
Уточните что должно быть на графике? Это?

eurusd ТФ vol число
gbpusd ТФ vol число
usdcad ТФ vol число
audusd ТФ vol число
nzdusd ТФ vol число

Или это?

eurusd M1 vol число
eurusd M5 vol число
eurusd M15 vol число
eurusd M30 vol число
eurusd H1 vol число
avatar

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

  • 3 января 2017, 11:10
+
0
3. окрашивать значение в цвет тела свечи.
4. выбор цвета статичных данных.

Этого не было в первоначальном ТЗ.
avatar

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

  • 3 января 2017, 11:12
+
0
ему нужно еще что то

Кому нужно? :D 
avatar

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

  • 3 января 2017, 11:14
+
0
индюку)):) 
avatar

  10  cardon Автор Сообщений: 376

  • 3 января 2017, 12:04
+
0
Этого не было в первоначальном ТЗ.

это окончательное ТЗ.
я же писал что не пойму как рассчитывается волатильность там, «3 строчка в начальном ТЗ.»
не было потому что я не понимал как рассчитывается Vol.
Теперь понял что по телам, соответственно сразу прилетело про цвет тел.
avatar

  10  cardon Автор Сообщений: 376

  • 3 января 2017, 12:12
+
0
Так и не указали что должно быть на графике?
avatar

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

  • 3 января 2017, 12:39
+
0
Так и не указали что должно быть на графике?

то что сейчас есть + выбор ТФ для каждого символа, чтоб можно было построить разный ТФ. на одной паре вида:

eurusd M15 vol число
eurusd M30 vol число
eurusd H1 vol число
eurusd H4 vol число
eurusd D1 vol число

тф можно выбирать для каждого значения

число считать по телу свечи и окрашивать в цвет тела свечи

выбор цвета статичного значения — черный/белый
avatar

  10  cardon Автор Сообщений: 376

  • 3 января 2017, 13:07
+
0
avatar

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

  • 3 января 2017, 16:40
+
0
*wall*  или я не так объяснил или меня не так поняли.
выше постом индикатор — это улучшение первого индикатора, который случайно получился))

а мне надо:

Vol по телу свечи, а выше постом по самой свече.
отслеживать одну пару на разных ТФ, а на нем не возможно, он перестает работать если вбить более одной одинаковой пары.
например отслеживание eurusd на разных тф

eurusd M15 vol число
eurusd M30 vol число
eurusd H1 vol число
eurusd H4 vol число
eurusd D1 vol число

где число меняет цвет от состояния цвета свечи.

ниже срин для пояснения

на первом скрине Vol по телу и свеча красная, значит значение красным цветом
второй скрин это выше постом индикатор, по которому видно что у него vol по целой свече
нужно что считало как на первом скрине + цвет значения vol от цвета свечи.


не надо торопится, в теории должен получится не плохой индикатор тренда.
Редактирован: 3 января 2017, 19:29
avatar

  10  cardon Автор Сообщений: 376

  • 3 января 2017, 19:26
+
0
Сделал по телу свечи и можно теперь для одной пары:




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

input string Symbol1="EURUSD";
input ENUM_TIMEFRAMES Symbol1TF=PERIOD_M1;
input string Symbol2="GBPUSD";
input ENUM_TIMEFRAMES Symbol2TF=PERIOD_M5;
input string Symbol3="USDCAD";
input ENUM_TIMEFRAMES Symbol3TF=PERIOD_M15;
input string Symbol4="AUDUSD";
input ENUM_TIMEFRAMES Symbol4TF=PERIOD_M30;
input string Symbol5="NZDUSD";
input ENUM_TIMEFRAMES Symbol5TF=PERIOD_H1;
input int    Corner=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll(0,OBJ_LABEL);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string Vol(string symb,ENUM_TIMEFRAMES tf)
  {
   string vol=(string)NormalizeDouble(MathAbs((iOpen(symb,tf,0)-iClose(symb,tf,0)))/MarketInfo(symb,MODE_POINT),0);
   return(vol);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string text,string name,int x,int y)
  {
   ObjectDelete(0,name);
//--- создадим текстовую метку
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,Corner);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,11);
//--- установим цвет
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
  }
//+------------------------------------------------------------------+
//| 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 X=180,Y=30;
   if(Corner==0 || Corner==2) X-=160;

   PutLabel(Symbol1+" M"+(string)Symbol1TF+" "+Vol(Symbol1,Symbol1TF),Symbol1+(string)Symbol1TF,X,Y);Y+=20;
   PutLabel(Symbol2+" M"+(string)Symbol2TF+" "+Vol(Symbol2,Symbol2TF),Symbol2+(string)Symbol2TF,X,Y);Y+=20;
   PutLabel(Symbol3+" M"+(string)Symbol3TF+" "+Vol(Symbol3,Symbol3TF),Symbol3+(string)Symbol3TF,X,Y);Y+=20;
   PutLabel(Symbol4+" M"+(string)Symbol4TF+" "+Vol(Symbol4,Symbol3TF),Symbol4+(string)Symbol4TF,X,Y);Y+=20;
   PutLabel(Symbol5+" M"+(string)Symbol5TF+" "+Vol(Symbol5,Symbol4TF),Symbol5+(string)Symbol5TF,X,Y);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


Редактирован: 3 января 2017, 21:20
avatar

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

  • 3 января 2017, 20:14
+
0
доброе утро.
индикатор не верно считает, он то берет с предыдущего символа значение, то я не пойму от куда.
ниже скрины неверного счета

на этом скрине ТФ н4 видно визуально что индюк показывает тело свечи 30 пп. хотя там 136 пп. а 136 показывает на d1.


тут показывает d1 190 пп. хотя там 310 пп.


м30 видно невооруженным глазом что тело свечи не как не 12пп а 182 пп.


если выстаивать значения м1 м5 м15 м30 н1 н4 и м15 м30 н1 н4 d1 месяц значения разные, где то ошибка (( ( 
avatar

  10  cardon Автор Сообщений: 376

  • 4 января 2017, 11:42
+
0
Обращайтесь к платному.
avatar

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

  • 4 января 2017, 12:49
+
0
то-есть ошибку нельзя исправить? он же берет значение с предыдущего значения, а не с текущего

вы так пишите потому что я надоел уже, но ошибка же не с моей стороны ( 

можно тогда на следующий месяц, под другой настрой написать это тз?
avatar

  10  cardon Автор Сообщений: 376

  • 4 января 2017, 13:16
+
0
Если выполнение затягивается или у меня что то не получается, к платному.
avatar

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

  • 4 января 2017, 13:24
+
0
Если выполнение затягивается или у меня что то не получается, к платному.

наследующий месяц можно создать темку? мож настрой другой будет
avatar

  10  cardon Автор Сообщений: 376

  • 4 января 2017, 13:25
+
+1
На другой нет, я и так уже с ним намучился.
avatar

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

  • 4 января 2017, 13:27
+
+1
В коде надо проверять, есть ли данные свечей других таймфреймов, и если нет, то чтобы подгрузились. Если графики других таймфреймов не открыты, то в терминал они не грузятся и коду не от куда брать информацию (выдает неправильно).
avatar

  27  Oxy Сообщений: 3418 - ..ιllιlι.lι.ιllι.ιlι..

  • 4 января 2017, 16:14
+
0
Если графики других таймфреймов не открыты, то в терминал они не грузятся и коду не от куда брать информацию (выдает неправильно).


посмотрите скрины, открыты те ТФ которые считаем и там данные не верные, а точнее с н1 данные показывает на н4, а с н4 показывает на д1 с д1 показывает на недельке.
avatar

  10  cardon Автор Сообщений: 376

  • 4 января 2017, 18:04
+
0
… Описала только основной нюанс для программирования для разных таймфреймов… (их несколько)… Сам код не смотрела.
P.S. Возможно, poker, прав, что комментарий получился слишком напыщенным, поэтому и переписала его.
Редактирован: 4 января 2017, 19:14
avatar

  27  Oxy Сообщений: 3418 - ..ιllιlι.lι.ιllι.ιlι..

  • 4 января 2017, 18:40
+
0
:P  дилаваяяяяяяяяя… и умная:D 
и как результаты у твоей совы?
avatar

  22  poker Сообщений: 801

  • 4 января 2017, 18:50
+
+1
avatar

  27  Oxy Сообщений: 3418 - ..ιllιlι.lι.ιllι.ιlι..

  • 4 января 2017, 19:07
+
0
хорошая сапелка *shock* 
avatar

  22  poker Сообщений: 801

  • 4 января 2017, 19:11
+
0
если кто был заинтересован в этом индикаторе, то вот докрутили www.opentraders.ru/downloads/1447
avatar

  10  cardon Автор Сообщений: 376

  • 6 января 2017, 18:54
+
0
ссылка битая, я хоть посмотрю в чем ошибка была?
avatar

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

  • 6 января 2017, 19:27
+
0
ссылка на модерации просто, скинул в личку
avatar

  10  cardon Автор Сообщений: 376

  • 7 января 2017, 08:53
+
0
Я переделывал какую то версию на свечу по H-L. Считает правильно только на Н1. При других ТФ выводит инфу с Н1.
avatar

  8  poruchik Сообщений: 139

  • 7 января 2017, 19:54

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