평면 및 추세를 결정하는 방법. - 페이지 11

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

모든 터미널에서. 그러나 일을 보면 몇 주를 볼 필요가 있습니다.

당신이 원하는 것을 정확히 이해했는지 잘 모르겠습니다.

 
저도요.
 
Artem Likhachev :
주어진 시간에 추세나 평평함은 없고, 일정한 양의 고점과 저점의 비율과 서로 간의 관계에서 가져온 시장의 상태만 있을 뿐입니다. 오직 역사만이 우리에게 평면 또는 추세의 정의를 제공합니다.

나는 이것에 동의하지 않습니다. 제가 제안하는 바는 다음과 같습니다. 이 시나리오에 따라 누구든지 이 지표를 약간 조정할 수 있다면:

이 표시기는 위쪽(녹색)과 아래쪽(빨간색)의 2가지 주요 위치만 있으며 흰색은 거의 건너뛰지 않습니다. 따라서 가격이 움직이지 않을 때 색상이 흰색이고 1분 차트에서 시작하여 4시간 차트로 끝나는 평균 움직임이 있도록 표시기를 수정해야 합니다. 색상은 노란색, 강한 움직임이 있으며 색상은 녹색(위쪽)이고 색상은 빨간색(아래쪽)입니다. 일일 차트에서 시작하여 월 차트로 끝나는 것은 일반적인 방향일 뿐입니다. 이 기간에는 한 가지 옵션이 있습니다. 가격이 막대 중간 아래에 있으면 색상은 빨간색, 위쪽은 녹색, 정확히(50x50)는 파란색입니다. 그러면 시장이 어떤 상태인지 판단할 수 있을 것입니다. 인디케이터를 부착하고 있습니다.

파일:
 
추세가 전혀 없고 플랫이 전혀 없습니다. 1개월 또는 1일의 수평선에 추세가 있고 거의 동일한 수평선에 플랫이 있습니다. 참고 - 시간 프레임과 혼동해서는 안 되며 지평선보다 작습니다. [코텔니코프]
 
Алексей Тарабанов :
추세가 전혀 없고 플랫이 전혀 없습니다. 1개월 또는 1일의 수평선에 추세가 있고 거의 동일한 수평선에 플랫이 있습니다. 참고 - 시간 프레임과 혼동해서는 안 되며 지평선보다 작습니다. [코텔니코프]

당신은 아마도 내가 쓴 것을 이해하지 못했을 것입니다. 주의 깊게 읽으십시오. 저는 어떤 지평에 대해 쓴 것이 아니라 실시간에 대해 썼습니다.

 

그러나 다음과 같이 코드에서 수정해야 할 사항은 다음과 같습니다.

이 표시기는 위쪽(녹색)과 아래쪽(빨간색)의 2가지 주요 위치만 있으며 흰색은 거의 건너뛰지 않습니다. 따라서 가격이 움직이지 않을 때 색상이 흰색이고 1분 차트에서 시작하여 4시간 차트로 끝나는 평균 움직임이 있도록 표시기를 수정해야 합니다. 색상은 노란색, 강한 움직임이 있으며 색상은 녹색(위쪽)이고 색상은 빨간색(아래쪽)입니다. 일일 차트에서 시작하여 월 차트로 끝나는 것은 일반적인 방향일 뿐입니다. 이 기간에는 한 가지 옵션이 있습니다. 가격이 막대 중간 아래에 있으면 색상은 빨간색, 위쪽은 녹색, 정확히(50x50)는 파란색입니다. 그러면 시장 현황을 판단하고 구체적인 분석을 할 수 있습니다. 코드를 첨부합니다.

 //+------------------------------------------------------------------+
//|                                           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); }  
 //------------------------------------------------------------------------ 
 

나는 모든 서신을 살펴 보았지만 이해하지 못했습니다. 플랫과 트렌드 아래에서 가격이 움직인다는 것이 얼마나 많은 시간을 받아들입니까?
파동은 또한 앞뒤로 미세 추세입니다.

이 모든 것이 개별적인 것 같습니다. 누군가는 평평하고 범위가 있고 누군가는 추세가 있습니다)

 
Eugene Bufetchikov :

나는 모든 서신을 살펴 보았지만 이해하지 못했습니다. 플랫과 트렌드 아래에서 가격이 움직인다는 것이 얼마나 많은 시간을 받아들입니까?
파동은 또한 앞뒤로 미세 추세입니다.

이 모든 것이 개별적인 것 같습니다. 누군가는 평평하고 범위가 있고 누군가는 추세가 있습니다)

지금은 아무에게도 증명하지 않고 위에서 설명한 대로 지표를 수정해 달라는 것뿐입니다. 그리고 나서 제 의견과 상세한 분석을 사진과 함께 포스팅하겠습니다.

 
Алексей Тарабанов :
추세가 전혀 없고 플랫이 전혀 없습니다. 1개월 또는 1일의 수평선에 추세가 있고 거의 동일한 수평선에 플랫이 있습니다. 참고 - 시간 프레임과 혼동해서는 안 되며 지평선보다 작습니다. [코텔니코프]

흥미로운 이론은 어느 정도 사실이지만 모두가 운동의 정의를 찾고 있습니다 ...

바 블라디미르 :

지금은 아무에게도 증명하지 않고 위에서 설명한 대로 지표를 수정해 달라는 요청일 뿐입니다. 그리고 나서 제 의견과 상세한 분석을 사진과 함께 포스팅하겠습니다.

코드를 제대로 이해하지 못했지만 제 생각에는 색상 변경 수준을 수정하고 평균 값에 대해 더 큰 복도를 제공하고 백분율 계산을 변경하면 됩니다.

 
ElenaVVT :

흥미로운 이론은 어느 정도 사실이지만 모두가 운동의 정의를 찾고 있습니다 ...

코드를 제대로 이해하지 못했지만 제 생각에는 색상 변경 수준을 수정하고 평균 값에 대해 더 큰 복도를 제공하고 백분율 계산을 변경하면 됩니다.

글쎄, 내가 이미 모든 것을 명확하게 설명하지 않았습니까? 모든 것이 멋지게 보일 것입니다! 이 시장에서는 미래를 내다볼 수 없습니다! 실시간만! 소식은 발끝에 와서 돈을 먹습니다!