Metodi per identificare un piatto e una tendenza. - pagina 11

 
Алексей Тарабанов:

In qualsiasi terminale. Ma, se state guardando i giorni, dovete guardare le settimane.

Non sono sicuro di aver capito esattamente cosa intendevi.

 
Anch'io.
 
Artem Likhachev:
Non c'è un trend o un flat al momento, c'è solo la condizione di mercato presa dal rapporto di top e bottom in una certa quantità e dal rapporto tra loro. Solo la storia ci dà la definizione di piatto o di tendenza.

Non sono d'accordo con te su questo. Quindi ecco un suggerimento: se qualcuno può modificare un po' questo indicatore, ecco lo scenario:

Questo indicatore ha solo 2 posizioni di base - su (verde) e giù (rosso) e raramente c'è il bianco. Quindi è necessario regolare l'indicatore in modo che quando il prezzo è senza movimento, il colore bianco e sta iniziando il grafico a 1 minuto, e finisce a 4 ore, è il movimento medio - il colore giallo, è un forte movimento del colore verde (su) e il colore rosso (giù). Dal grafico giornaliero a quello mensile, la direzione è semplicemente la stessa. Ma possiamo usare la seguente opzione per questi timeframes: se il prezzo è sotto la barra centrale - colore rosso, sopra - verde, anche (50x50) - blu. Allora sarà possibile giudicare qual è lo stato del mercato. L'indicatore è allegato.

File:
 
Non c'è nessuna tendenza e nessun piatto. C'è una tendenza su un orizzonte di 1 mese o 1 giorno e un flat su circa lo stesso orizzonte. Nota - gli orizzonti, da non confondere con i timeframes - possono essere qualsiasi, ma più piccoli dell'orizzonte. [Kotelnikov.]
 
Алексей Тарабанов:
Non c'è nessuna tendenza e nessun piatto. C'è una tendenza su un orizzonte di 1 mese, o 1 giorno, e un flat sullo stesso orizzonte. Nota - gli orizzonti, da non confondere con i timeframes - possono essere qualsiasi, ma più piccoli dell'orizzonte. [Kotelnikov].

Probabilmente non hai ancora capito quello che ho scritto, leggilo attentamente, non ho scritto di nessun orizzonte, ho scritto del tempo reale.

 

Tuttavia, cosa deve essere modificato nel codice per avere quanto segue:

Ci sono solo 2 posizioni principali in questo indicatore - su (verde) e giù (rosso) e raramente c'è il bianco. Quindi è necessario regolare l'indicatore in modo che quando il prezzo è senza movimento, il colore bianco e sta iniziando il grafico a 1 minuto, e finisce a 4 ore, è il movimento medio - il colore giallo, è un forte movimento del colore verde (su) e il colore rosso (giù). Dal grafico giornaliero a quello mensile, la direzione è semplicemente la stessa. Ma possiamo usare la seguente opzione per questi timeframes: se il prezzo è sotto la barra centrale - colore rosso, sopra - verde, anche (50x50) - blu. Allora sarà possibile giudicare qual è lo stato del mercato, fare un'analisi specifica.

//+------------------------------------------------------------------+
//|                                           All against all.v4 mg4 |                   
//|                                                  vorese          |
//|                                              vorese@yandex.ru    |
//+------------------------------------------------------------------+
#property indicator_chart_window
extern string symbol="EUR";// любая валюта
extern string note="Period_(0,M1,M5,M15,M30,H1,H4,D1,W1,MN)";
extern string period_="0";//M1,M5,M15,M30,H1,H4,D1,W1,MN . Если 0- период текущего графика.
extern int X_DISTANCE=0; // располож. по горизонтали
extern int Y_DISTANCE=0; // располож. по вертикали
extern color border_color=Black; // цвет рамки 
extern color text_color=Black; // цвет верхней строки 
extern color CurrCol_up=Aqua; // цвет обозн.валюты и % растущего бара 
extern color CurrCol_down=Gold; // цвет обозн.валюты и % падающего бара
extern bool colorRB_RG=false;  //цвет гистограммы. true- красный синий.false- красный зеленый.
extern bool invertColGist=true;//инверт. цвета гистограммы
extern bool brightness_gradation=false;//градации яркости
//========используемые вал.пары =======================================
// можно удалять и добавлять любые валютные пары , в любой последовательности .
// В  currency_pair[] и в  count_curr должно быть указано 
// кол-во имеющихся в массиве валютных пар. 
string currency_pair[6]= {"EURUSD","GBPUSD","EURGBP","GBPCHF","EURCHF","USDCHF"};
int count_curr=6; // количество вал.пар 
//=====================================================================
string mas_pair[7]; 
int mas_flags [7]; 
string mas_currency[7]; 
int total; 
//---------------------------------------------------------------------   
int line_x[5]={3,13,23,67,80};// координаты горизонт.линий
int TF;
color color_currency,col_00;
//=====================================================================
int init()
  {
//--------------валютные пары------------------------------------------ 
    for(int i=0;i<count_curr;i++)
     { 
            if(StringSubstr(currency_pair[i],0,3)==symbol) 
                { mas_pair[total]=currency_pair[i];
                    mas_flags[total]=(-1);
                      mas_currency[total]=StringSubstr(currency_pair[i],3,0);
                        total+=1;    }
           if(StringSubstr(currency_pair[i],3,0)==symbol) 
                { mas_pair[total]=currency_pair[i];
                    mas_flags[total]=1;
                      mas_currency[total]=StringSubstr(currency_pair[i],0,3); 
                        total+=1;    }    
                                         }
 //--------------- период --------------------------------------------
      if(period_=="M1")TF=1;
   else {
      if(period_=="M5")TF=5;
   else {
     if(period_=="M15")TF=15;
   else {
     if(period_=="M30")TF=30;
   else {
     if(period_=="H1")TF=60;
   else {
     if(period_=="H4")TF=240;
   else {
     if(period_=="D1")TF=1440;
   else {
     if(period_=="W1")TF=10080;
   else {
     if(period_=="MN")TF=43200;
   else {
     if(period_=="0")TF=0;
   else {  Alert("Ошибка установки периода:  "+period_);
                     }}}}}}}}}}
 //-------------------------------------------------------------------  
   // создать горизонт. линии
  for(int x=0;x<5;x++)  {
  if(x!=3)col_00=border_color;
  else
       col_00=text_color;
   ObjectCreate(symbol+"line-x"+x+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"line-x"+x+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"line-x"+x+period_, OBJPROP_XDISTANCE,X_DISTANCE+7);
   ObjectSet(symbol+"line-x"+x+period_, OBJPROP_YDISTANCE, Y_DISTANCE+line_x[x]);
   ObjectSetText(symbol+"line-x"+x+period_,"_________________",7,"Verdana",col_00); 
                     }
 //---------------------------------------------------------------------
   // создать вертикал. линии
   int c,y,r;
      for(c=0;c<2;c++) {
        if(c==1)r=103;
      for( y=0;y<4;y++)  {
   ObjectCreate(y+symbol+"line-y"+c+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(y+symbol+"line-y"+c+period_, OBJPROP_CORNER, 3);
   ObjectSet(y+symbol+"line-y"+c+period_, OBJPROP_XDISTANCE,X_DISTANCE+1+r);
   ObjectSet(y+symbol+"line-y"+c+period_, OBJPROP_YDISTANCE, Y_DISTANCE+3+y*19);
   ObjectSetText(y+symbol+"line-y"+c+period_,"|",16,"Verdana",border_color); }
                     } 
  //--------------------------------------------------------------------- 
  // текст                     
   ObjectCreate(symbol+"text"+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"text"+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"text"+period_, OBJPROP_XDISTANCE,X_DISTANCE+38);
   ObjectSet(symbol+"text"+period_, OBJPROP_YDISTANCE, Y_DISTANCE+68); 
   ObjectSetText(symbol+"text"+period_,symbol+"_"+period_,7,"Verdana",text_color);                                                          
   return(0);
  }                               
//=======================================================================
int deinit()
  { 
    int n,m;
      for( n=0;n<7;n++)  // удалить все об'екты 
     {  
       ObjectDelete(symbol+"perc"+n+period_);
       ObjectDelete(symbol+"curr"+n+period_);
       if(n<5) ObjectDelete(symbol+"line-x"+n+period_);  
  //------       
      for( m=0;m<=20;m++)
     {
       ObjectDelete(m+symbol+"gist"+n+period_);
       if(m<2 && n<4) ObjectDelete(n+symbol+"line-y"+m+period_);
                               } } 
       ObjectDelete(symbol+"text"+period_);                        
   return(0);
  }
//======================================================================
int start()
  {
  int i,w,z;
  double percent,bid,open,high,low; 
  int flag,count;  
  for( z=0;z<total;z++)  
    { 
      for( w=0;w<=20;w++) {
       ObjectDelete(w+symbol+"gist"+z+period_); //удалить гистограмму перед обновлением
                              }  
   percent=0; 
   flag=0;
   count=0;           
//---------------------------------------------------------------------
     // обновить данные
    RefreshRates();
    bid=MarketInfo(mas_pair[z], MODE_BID );
    open=iOpen(mas_pair[z],TF,0);
    high=iHigh(mas_pair[z],TF,0);
    low=iLow(mas_pair[z],TF,0);   
//---------------------------------------------------------------------  
    // расчет процентов
   if(bid>open && high!=open && bid>0)   
       { percent=(bid-open)/(high-open)*100; // проц.растущего бара
         flag=1;
         count=NormalizeDouble(percent/5,0); }
       else {
         if(bid<open && low!=open && bid>0)
       { percent=(open-bid)/(open-low)*100; // проц.падающего бара
         flag=(-1);  
         count=NormalizeDouble(percent/5,0); } }
//-------------------------------------------------------------------- 
         // при переключении ТФ//
    if(percent>100)percent=100; 
    if(count>20)count=20; 
 //-------------------------------------------------------------------     
         // инверт.цвета гистограммы
   if(invertColGist) flag=flag*mas_flags[z]*(-1);  
      else
         flag=flag*mas_flags[z];   
//-------------------------------------------------------------------- 
     //-- цвет валюты и процентов
  if(flag==1)color_currency=CurrCol_up;
    else {
    if(flag==(-1))color_currency=CurrCol_down;
    else {
          color_currency=text_color;  }}
//--------------------------------------------------------------------
 if(bid>0)  {           //если вал. пара есть в терминале
  // проценты     
   ObjectCreate(symbol+"perc"+z+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"perc"+z+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"perc"+z+period_, OBJPROP_XDISTANCE,X_DISTANCE+94-z*14);
   ObjectSet(symbol+"perc"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+15);
   ObjectSetText(symbol+"perc"+z+period_,DoubleToStr(percent,0),5,"Verdana",color_currency); 
                   }
//-------------------------------------------------------------------- 
  // валюта   
   ObjectCreate(symbol+"curr"+z+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"curr"+z+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"curr"+z+period_, OBJPROP_XDISTANCE,X_DISTANCE+94-z*14);
   ObjectSet(symbol+"curr"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+5);
   ObjectSetText(symbol+"curr"+z+period_,mas_currency[z],4,"Verdana",color_currency);        
//--------------------------------------------------------------------- 
  // гистограмма 
     for( i=0;i<=count;i++) {  
   ObjectCreate(i+symbol+"gist"+z+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(i+symbol+"gist"+z+period_, OBJPROP_CORNER, 3);
   ObjectSet(i+symbol+"gist"+z+period_, OBJPROP_XDISTANCE,X_DISTANCE+91-z*14);
   ObjectSet(i+symbol+"gist"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+3+i*2);
   ObjectSetText(i+symbol+"gist"+z+period_,"-",30,"Verdana",f_Color(i,flag));  
                       } }  
//---------------------------------------------------------------------                     
   return(0);
  }
//=====================================================================

//============ цвет синий красный зеленый==============================      
color f_Color (int num,int flag) 
{   color col_R,col_B,col,col_G;
if(!brightness_gradation ) {
 if(flag==1 && colorRB_RG)col=Blue;
     else {
      if(flag==1 && !colorRB_RG)col=Lime;
       else {
        if(flag==(-1)) col=Red; 
         else {
           col=text_color;  }}}  }
     else {      
  switch(num) 
  { case 0: col_B=C'0,0,255';col_R=C'255,0,0';col_G=C'0,90,0';break; 
    case 1: col_B=C'0,10,255';col_R=C'255,10,0';col_G=C'0,100,0';break; 
    case 2: col_B=C'0,20,255';col_R=C'255,20,0';col_G=C'0,110,0';break; 
    case 3: col_B=C'0,30,255';col_R=C'255,30,0';col_G=C'0,120,0';break; 
    case 4: col_B=C'0,40,255';col_R=C'255,40,0';col_G=C'0,130,0';break; 
    case 5: col_B=C'0,50,255';col_R=C'255,50,0';col_G=C'0,140,0';break; 
    case 6: col_B=C'0,60,255';col_R=C'255,60,0';col_G=C'0,150,0';break; 
    case 7: col_B=C'0,70,255';col_R=C'255,70,0';col_G=C'0,155,0';break; 
    case 8: col_B=C'0,80,255';col_R=C'255,80,0';col_G=C'0,160,0';break; 
    case 9: col_B=C'0,90,255';col_R=C'255,90,0';col_G=C'0,165,0';break; 
    case 10: col_B=C'0,100,255';col_R=C'255,100,0';col_G=C'0,170,0';break; 
    case 11: col_B=C'0,110,255';col_R=C'255,110,0';col_G=C'0,175,0';break; 
    case 12: col_B=C'0,120,255';col_R=C'255,120,0';col_G=C'0,180,0';break; 
    case 13: col_B=C'0,130,255';col_R=C'255,130,0';col_G=C'0,185,0';break; 
    case 14: col_B=C'0,140,255';col_R=C'255,140,0';col_G=C'0,190,0';break; 
    case 15: col_B=C'0,150,255';col_R=C'255,150,0';col_G=C'0,195,0';break; 
    case 16: col_B=C'0,160,255';col_R=C'255,160,0';col_G=C'0,200,0';break; 
    case 17: col_B=C'0,170,255';col_R=C'255,170,0';col_G=C'0,205,0';break; 
    case 18: col_B=C'0,180,255';col_R=C'255,180,0';col_G=C'0,210,0';break; 
    case 19: col_B=C'0,190,255';col_R=C'255,190,0';col_G=C'0,215,0';break; 
    case 20: col_B=C'0,200,255';col_R=C'255,200,0';col_G=C'0,220,0';break; 
   
    } 
    if(flag==1 && colorRB_RG)col=col_B;
     else {
      if(flag==1 && !colorRB_RG)col=col_G;
       else {
        if(flag==(-1)) col=col_R; 
         else {
           col=text_color;  }}}  }
  return(col); }  
 //------------------------------------------------------------------------ 
 

Non ho capito quale quantità di tempo ci vuole per un flat e un trend per significare che il prezzo si sta muovendo?
un'onda è anche un micro-trend avanti e indietro.

Sembra essere tutto individuale. alcuni commercianti avranno un piatto e una tendenza, mentre altri avranno delle tendenze)

 
Eugene Bufetchikov:

Non ho capito quale quantità di tempo ci vuole per un flat e un trend per significare che il prezzo si sta muovendo?
un'onda è anche un micro-trend avanti e indietro.

Sembra essere tutto individuale. alcune persone avranno un piatto e una tendenza, mentre altri avranno delle tendenze)

Al momento non sto dimostrando niente a nessuno, sto solo chiedendo di modificare l'indicatore come ho descritto sopra. E poi dopo posterò la mia opinione e un'analisi dettagliata con immagini.

 
Алексей Тарабанов:
Non c'è nessuna tendenza e non c'è nessun piatto. C'è un trend su un orizzonte di 1 mese o 1 giorno e un flat sullo stesso orizzonte. Nota - esattamente sull'orizzonte, da non confondere con i timeframe - possono essere qualsiasi, ma più piccoli dell'orizzonte. [Kotelnikov]

Teoria interessante, corretta in una certa misura, ma tutti cercano la definizione di movimento...

bar Vladimir:

Al momento non sto dimostrando niente a nessuno, sto solo chiedendo di modificare l'indicatore come ho descritto sopra. E dopo di che posterò la mia opinione e la mia analisi dettagliata con immagini.

Non capisco bene il codice, ma secondo me, dovrei solo modificare i livelli di cambio colore, dare un corridoio più ampio per il valore medio, cambiare il calcolo della percentuale

 
ElenaVVT:

Teoria interessante, in qualche misura corretta, ma tutti cercano la definizione di movimento...

Non capisco bene il codice, ma penso che tu debba solo modificare i livelli di cambiamento di colore, dare un corridoio più grande per il valore medio, cambiare il calcolo della percentuale

Non ho già spiegato tutto chiaramente? Tutto sembrerà a posto! Non si può guardare al futuro in questo mercato! Solo in tempo reale! Le notizie vanno solo sulle fermate, facendo il tempo ai vostri soldi!

Motivazione: