Продолжаю тему простейших индикаторов

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Firetrade2013 Chirikov
331
Firetrade2013 Chirikov  
Продолжаю тему простейших индикаторов , встречал ли кто нибудь на просторах интернета индикатор нумерации свечей к примеру 1-2-3 направленных в одну сторону может и 1-2-3-4-5-6 короче сам замысел в том,чтоб направленные свечи нумеровались по закрытию свечи как на картинке
Файлы:
Vladimir Karputov
Модератор
194491
Vladimir Karputov  
Firetrade2013 Chirikov:
Продолжаю тему простейших индикаторов , встречал ли кто нибудь на просторах интернета индикатор нумерации свечей к примеру 1-2-3 направленных в одну сторону может и 1-2-3-4-5-6 короче сам замысел в том,чтоб направленные свечи нумеровались по закрытию свечи как на картинке

Есть индикатор с выводом размеров баров: Size of candles 2 (text)


Технология та же: вывод текста над баром. Если нумеровать нужно серии - значит нужно будет подрихтовать индикатор.

Firetrade2013 Chirikov
331
Firetrade2013 Chirikov  

Нет нет не размер свечи а именно нумерация ... да ещё и в одну сторонуЮ

Вот нашёл но опять не то https://www.mql5.com/ru/code/18312

BarsStreet
BarsStreet
  • голосов: 13
  • 2017.05.29
  • Maksim Neimerik
  • www.mql5.com
Данный индикатор отслеживает непрерывную последовательность баров одного направления от 3 до 12 баров.Реализована возможность отключения ненужных сигналов.Индикатор выдает алерты с возможностью их включать/выключать. Данный индикатор отлично подходит для торговли бинарными опционами.
Vitaly Muzichenko
14113
Vitaly Muzichenko  
Firetrade2013 Chirikov:

Нет нет не размер свечи а именно нумерация ... да ещё и в одну сторонуЮ

Вот нашёл но опять не то https://www.mql5.com/ru/code/18312

А чем не подходит, Я так-же хотел предложить этот индикатор.

Vladimir Karputov
Модератор
194491
Vladimir Karputov  

Вообще то нумеровать графическими объектами (как в моём индикаторе) - это довольно затратный и непродуктивный способ, но от него никуда не деться, если нужно нарисовать цифру более "9". А вот если делать то, что хочет топик стартер через шрифт Wingdings

wingdings

то можно реализовать нумерацию через отрисовку индикаторного буфера (стиль рисования DRAW_ARROW) - только одно маааааленькое ограничение: нельзя поставить цифру более "9".

Firetrade2013 Chirikov
331
Firetrade2013 Chirikov  
Vitaly Muzichenko:

А чем не подходит, Я так-же хотел предложить этот индикатор

Vitaly Muzichenko:

А чем не подходит, Я так-же хотел предложить этот индикатор.


Уважаемый мне нужна метка последовательная на каждой свече...простая цыфра без стрелок и т п

Firetrade2013 Chirikov
331
Firetrade2013 Chirikov  

Есть индикатор Aliev FX Volumes (e3) мне нравиться как там реализовано тиковый обьём ..как бы его поправить для нумерации...есть идеи??? я так и не нашёл нужный мне индикатор.Выкладываю Aliev FX Volumes (e3)

Вот код

//+------------------------------------------------------------------+

//|                                                 Fine volumes.mq4 |

//|                                                         eevviill |

//|                                        itisallillusion@gmail.com |

//+------------------------------------------------------------------+

#property copyright "Aliev"

#property link      "businessystems.ru "


#property indicator_separate_window

#property indicator_minimum 0

#property indicator_buffers 6


#property indicator_width1 2

#property indicator_width2 2

#property indicator_width3 2

#property indicator_width4 4

#property indicator_width5 4


#property indicator_color1 SkyBlue

#property indicator_color2 Maroon

#property indicator_color3 Yellow

#property indicator_color4 Blue

#property indicator_color5 Red




extern int BarsToCount = 400;


extern string pus1 = "";

extern string p_s = "Points settings";

extern bool use_points = true;

extern int distance_point = 80;

extern color color_point_u = Lime;

extern color color_point_d = Red;

extern color color_point_s = Yellow;

extern int size_point = 6;


extern string pus2 = "";

extern string s_w = "Way";

extern bool use_show_same_way = true;

extern bool use_show_daily_way = true;


extern string pus3 = "";

extern string al = "Alerts";

extern bool use_alerts = false;

extern string up_alert = "Up";

extern string down_alert = "Down";





double up[];

double down[];

double mid[];

double up2[];

double down2[];

double none[];


static int prevtime = 0;


///////////////////////////////////////

int init()

  {

SetIndexStyle(0,DRAW_HISTOGRAM);  

SetIndexBuffer(0,up);

SetIndexStyle(1,DRAW_HISTOGRAM);  

SetIndexBuffer(1,down);

SetIndexStyle(2,DRAW_HISTOGRAM);  

SetIndexBuffer(2,mid);

SetIndexStyle(3,DRAW_HISTOGRAM);  

SetIndexBuffer(3,up2);

SetIndexStyle(4,DRAW_HISTOGRAM);  

SetIndexBuffer(4,down2);

SetIndexStyle(5,DRAW_NONE);  

SetIndexBuffer(5,none);



IndicatorShortName("Aliev FX Volumes");



   return(0);

  }


///////////////////////////////////////

int deinit()

  {

  string name_de;

  

  for(int c=BarsToCount;c>=0;c--)

  {

  name_de="Vol_"+DoubleToStr(c,0);

  if(ObjectFind(name_de)!=-1) ObjectDelete(name_de);

  }

  

  

  

  return(0);

  }

  

  

  

  



//////////////////////////////////////////

int start()

  {

  ////////////

   up[0]=EMPTY_VALUE;

  down[0]=EMPTY_VALUE;

  mid[0]=EMPTY_VALUE;

if(Close[0]>Open[0]) up[0]=Volume[0];

if(Close[0]<Open[0]) down[0]=Volume[0];

if(Close[0]==Open[0]) mid[0]=Volume[0];


////////////////

  if(use_points)

  Ob_cre(0);


  if(!use_points)

  Ob_del(0);

////////

  if(use_show_daily_way)

  Ob_cre2();

  

  if(!use_show_daily_way)

  Ob_del2();

  


  ////////////

  if (Time[0] == prevtime) return(0);

   prevtime = Time[0];

  

  ///////////////////////////

  for(int c=BarsToCount;c>=1;c--)

  {

  ////////////

  if(use_points)

Ob_cre(c);


  if(!use_points)

  Ob_del(c);

  

 

  

  ////////////

  up[c]=EMPTY_VALUE;

  down[c]=EMPTY_VALUE;

  mid[c]=EMPTY_VALUE;

  up2[c]=EMPTY_VALUE;

  down2[c]=EMPTY_VALUE;





/////////////////  

if(Close[c]>Open[c]) up[c]=Volume[c];

if(Close[c]<Open[c]) down[c]=Volume[c];

if(Close[c]==Open[c]) mid[c]=Volume[c];

none[c]=Volume[c]+Volume[c]/6;



//////////////

if(use_show_same_way)

{


if(Close[c]>Open[c] && Close[c+1]>Open[c+1]) 

{

up2[c]=Volume[c]; up2[c+1]=Volume[c+1];

up[c]=EMPTY_VALUE; up[c+1]=EMPTY_VALUE;

}


if(Close[c]<Open[c] && Close[c+1]<Open[c+1]) 

{

down2[c]=Volume[c]; down2[c+1]=Volume[c+1]; 

down[c]=EMPTY_VALUE; down[c+1]=EMPTY_VALUE; 

}


}



if(use_alerts)

{

if(up2[1]!=EMPTY_VALUE && up2[4]==EMPTY_VALUE) Alert(up_alert);

if(down2[1]!=EMPTY_VALUE && down2[4]==EMPTY_VALUE) Alert(down_alert);

}




  }

   return(0);

  }

  

  

  //func

//+------------------------------------------------------------------+///////////////////////////////

void Ob_cre(int num_of_bar)

{

string name="Vol_"+DoubleToStr(num_of_bar,0);


color col_po;

if(Close[num_of_bar]>Open[num_of_bar]) col_po=color_point_u;

if(Close[num_of_bar]<Open[num_of_bar]) col_po=color_point_d;

if(Close[num_of_bar]==Open[num_of_bar]) col_po=color_point_s;


if(ObjectFind(name)==-1)

{

ObjectCreate(name,OBJ_TEXT,0,0,0);

}

ObjectSet(name,OBJPROP_TIME1,Time[num_of_bar]);

ObjectSet(name,OBJPROP_PRICE1,High[num_of_bar]+distance_point*Point);

//ObjectSet(name,OBJPROP_ANGLE,90);

ObjectSetText(name,DoubleToStr(Volume[num_of_bar],0),size_point,"Arrial",col_po);



}


/////////////////////////////////////////

void Ob_cre2()

{

int Num_of_win = WindowFind("Aliev FX Volumes");


if(ObjectFind("D_w")==-1)

{

ObjectCreate("D_w",OBJ_LABEL,Num_of_win,0,0);

ObjectSet("D_w",OBJPROP_CORNER,1);

ObjectSet("D_w",OBJPROP_XDISTANCE,20);

ObjectSet("D_w",OBJPROP_YDISTANCE,20);

ObjectSetText("D_w","Daily volume",10,"Arrial",White);

}



if(ObjectFind("D_w_v")==-1)

{

ObjectCreate("D_w_v",OBJ_LABEL,Num_of_win,0,0);

ObjectSet("D_w_v",OBJPROP_CORNER,1);

ObjectSet("D_w_v",OBJPROP_XDISTANCE,20);

ObjectSet("D_w_v",OBJPROP_YDISTANCE,45);

}

color vol_col;

if(iClose(Symbol(),PERIOD_D1,0)>iOpen(Symbol(),PERIOD_D1,0)) vol_col=Lime;

if(iClose(Symbol(),PERIOD_D1,0)<iOpen(Symbol(),PERIOD_D1,0)) vol_col=OrangeRed;


ObjectSetText("D_w_v",DoubleToStr(iVolume(Symbol(),PERIOD_D1,0),0),12,"Arrial",vol_col);



}


/////////////////////////////////////////////////////////////////

void Ob_del(int num_of_bar)

{

string name="Vol_"+DoubleToStr(num_of_bar,0);


if(ObjectFind(name)!=-1)

{

ObjectDelete(name);

}



}


/////////////////////////////////////////

void Ob_del2()

{

if(ObjectFind("D_w")!=-1)

ObjectDelete("D_w");



if(ObjectFind("D_w_v")!=-1)

ObjectDelete("D_w_v");




}

Firetrade2013 Chirikov
331
Firetrade2013 Chirikov  
Vitaly Muzichenko:

А чем не подходит, Я так-же хотел предложить этот индикатор.


Данный индикатор отслеживает непрерывную последовательность баров одного направления от 3 до 12 баров

А мне как бы метка нужна на каждом чтобы читать  постоянно...

Я же объяснял идею 123 и смена  тренда, 1-2 в одну сторону,1 -2 в другую, 12345 тренд после него 1-2 откат  сигнал на заход ...ну как то так

Vitaly Muzichenko
14113
Vitaly Muzichenko  
Firetrade2013 Chirikov:

Данный индикатор отслеживает непрерывную последовательность баров одного направления от 3 до 12 баров

А мне как бы метка нужна на каждом чтобы читать  постоянно...

Я же объяснял идею 123 и смена  тренда, 1-2 в одну сторону,1 -2 в другую, 12345 тренд после него 1-2 откат  сигнал на заход ...ну как то так

Ну как-то теперь понятно)

Просто когда пишете, то расставляйте запятые, а то теряется смысл всего написанного

Vitaly Muzichenko
14113
Vitaly Muzichenko  
Firetrade2013 Chirikov:

Данный индикатор отслеживает непрерывную последовательность баров одного направления от 3 до 12 баров

А мне как бы метка нужна на каждом чтобы читать  постоянно...

Я же объяснял идею 123 и смена  тренда, 1-2 в одну сторону,1 -2 в другую, 12345 тренд после него 1-2 откат  сигнал на заход ...ну как то так

Оно?

Файлы:
_.mq4 8 kb
Vitaly Muzichenko
14113
Vitaly Muzichenko  

И без подокна


Файлы:
__.mq4 7 kb
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий