수직선. - 페이지 2

 
Alexey Viktorov :

당신이 필요로하는 것을 결정합니다 ...

혼합이 필요한 경우 지그재그의 두 수직 섹션 사이의 연결을 때때로 제거하면 유색 지그재그를 사용하고 조건에 따라 장소에 색상 부재를 지정하는 것이 좋습니다.

그리고 일반적으로 그래픽 구성 에 대한 문서의 전체 섹션을 읽는 것은 나쁘지 않습니다. 무엇을 할 수 있는지에 대한 최소한의 아이디어가 있을 것입니다 ...

" 시간과 가격의 두 지점 사이에 선을 긋는 지표를 만들기 시작했습니다 ...

다 좋은데 때로는 포인트의 시간이 하나의 촛불이 될 수 있습니다..."

내 잼은 설명에서 세그먼트가 아닌 단어 줄을 사용했다는 것입니다. 바로 사진을 넣었어야 했다.

감사합니다. 컬러 지그재그로 시도해 보겠습니다. 경사 세그먼트에 대해 추가 버퍼를 만드는 것보다 쉬울 것 같습니다.
 
Alexey Viktorov :

혼합이 필요한 경우 지그재그의 두 수직 섹션 사이의 연결을 때때로 제거하면 유색 지그재그를 사용하고 조건에 따라 장소에 색상 부재를 지정하는 것이 좋습니다.

뭐, 색이 있는 지그재그에 무색을 삽입할 수 없다는 건 아니다. 어렵지 않다면(5분 이상 걸리지 않을 것 같아요) 이 예에서 색상이 없는 것을 지정할 수 있나요? 어떤 줄이 사라져야 하는지에 대한 그림을 첨부했습니다.


 #property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots    1
//--- plot ZigZag
#property indicator_label1    "ZigZag"
#property indicator_type1    DRAW_COLOR_ZIGZAG
#property indicator_color1    clrRed , clrYellow
#property indicator_style1    STYLE_SOLID
#property indicator_width1    10
//--- input параметры
//--- indicator buffers
double          ZigZagBuffer1[];
double          ZigZagBuffer2[];

int             color_sections;
double          Color_ZigzagColors[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- связывание массивов и индикаторных буферов
   SetIndexBuffer ( 0 ,ZigZagBuffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,ZigZagBuffer2, INDICATOR_DATA );
   SetIndexBuffer ( 2 ,Color_ZigzagColors, INDICATOR_COLOR_INDEX );
   color_sections= 0 ; 

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| 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=prev_calculated;
   if (prev_calculated== 0 )limit=rates_total- 1 ;

   for ( int i2=limit;i2<rates_total;i2++) // recalculate on new bar
     {
       for ( int i= 0 ;i<rates_total;i++)
        {
         if (i==rates_total- 3 || i==rates_total- 12 ||  i==rates_total- 18 ) // Test VLines and TLines! 
           {
            ZigZagBuffer1[i]=high[i];
            Color_ZigzagColors[i]=color_sections;
           }
         else
           {
            ZigZagBuffer1[i]= EMPTY_VALUE ;
           }

         if (i==rates_total- 7 || i==rates_total- 12 || i==rates_total- 20 ) // Test VLines and TLines!   
           {
            ZigZagBuffer2[i]=low[i];
            Color_ZigzagColors[i]=color_sections;
           }
         else
           {
            ZigZagBuffer2[i]= EMPTY_VALUE ;
           }

        }
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Nauris Zukas :

뭐, 색이 있는 지그재그에 무색을 삽입할 수 없다는 건 아니다. 어렵지 않다면(5분 이상 걸리지 않을 것 같습니다), 이 예에서 색상이 없는 것을 지정할 수 있습니까? 어떤 줄이 사라져야 하는지에 대한 그림을 첨부했습니다.


하나.

 #property indicator_color1    clrRed , clrNone

2.

Color_ZigzagColors[i]= 0 ;

색상은 빨간색이 될 것입니다.

Color_ZigzagColors[i]= 1 ;

색상이 누락됩니다.

변수

 int             color_sections;
꽤 중복.
 
Alexey Viktorov :

하나.

2.

색상은 빨간색이 될 것입니다.

색상이 누락됩니다.

변수

꽤 중복.

고맙긴 한데 함수 수준에서는 적용이 안되는데 이 줄이 사라지게 하려면 함수에서 무엇을 추가하거나 제거해야 하나요? 여기에 clrNone을 주입하는 방법은 무엇입니까?

         if (i==rates_total- 3 || i==rates_total- 12 ||  i==rates_total- 18 ) // Test VLines and TLines! 
           {
            ZigZagBuffer1[i]=high[i];
            Color_ZigzagColors[i]= 0 ;
           }
         else
           {
            ZigZagBuffer1[i]= EMPTY_VALUE ;
           }

         if (i==rates_total- 7 || i==rates_total- 12 || i==rates_total- 20 ) // Test VLines and TLines!   
           {
            ZigZagBuffer2[i]=low[i];
            Color_ZigzagColors[i]= 0 ;
           }
         else
           {
            ZigZagBuffer2[i]= EMPTY_VALUE ;
           }
           
 
Nauris Zukas :

고맙긴 한데 함수 수준에서는 적용이 안되는데 이 줄이 사라지게 하려면 함수에서 무엇을 추가하거나 제거해야 하나요? 여기에 clrNone을 주입하는 방법은 무엇입니까?

한 곳에서 0 다른 곳에서 1

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

수직선.

알렉세이 빅토 로프 , 2018.10.12 17:29

Color_ZigzagColors[i]= 0 ;

색상은 빨간색이 될 것입니다.

Color_ZigzagColors[i]= 1 ;

색상이 누락됩니다.

그리고 두 가지 경우의 코드에서 동일합니다.

Color_ZigzagColors[i]= 0 ;


 
Alexey Viktorov :

한 곳에서 0 다른 곳에서 1

그리고 두 가지 경우의 코드에서 동일합니다.


다음은 발생합니다(더 명확하게 하기 위해 clrYellow 대신 clrNone을 배치했습니다). 연결선이 사라진 곳(파란색 십자 표시)과 가운데 세로선(빨간색 원)도 사라집니다. 따라서 기능 수준에서 이미 뭔가 잘못되었다고 생각합니다.


 
Nauris Zukas :

다음은 발생합니다(더 명확하게 하기 위해 clrYellow 대신 clrNone을 넣었습니다). 연결선이 사라진 곳(파란색 십자 표시)과 가운데 세로선(빨간색 원)도 사라집니다. 따라서 기능 수준에서 이미 뭔가 잘못되었다고 생각합니다.


코드와 도면을 손으로가 아니라 지시자가 그린 선으로 제공하십시오. 지그재그의 수직 단면을 그리는 기능은 최근에 등장했습니다. Rashid Umarov가 그 토론에 참여했으며 그러한 변경은 그의 제안에 따라 이루어졌습니다. 이 옵션이 확인되면 Rashid를 초대합니다.

 
Alexey Viktorov :

코드와 도면을 손으로가 아니라 지시자가 그린 선으로 제공하십시오. 지그재그의 수직 단면을 그리는 기능은 최근에 등장했습니다. Rashid Umarov가 그 토론에 참여했으며 그러한 변경은 그의 제안에 따라 이루어졌습니다. 이 옵션이 확인되면 Rashid를 초대합니다.


파일:
 
Nauris Zukas :


흥미롭게도 그런 두꺼운 선은 손으로 그린 선처럼 보입니다 ...

@라시드 우마로프

주제 중 하나에서 수직선 DRAW_ZIGZAG를 그리는 것이 불가능하다는 토론에 참여했습니다. 이전 게시물의 예. 이런 논의 끝에 변화가 생기고 그런 기회가 생겼다. 이제 DRAW_COLOR_ZIGZAG의 또 다른 문제가 나타났습니다. 각 세그먼트에 대해 색상을 순차적으로 설정하는 것은 단순히 불가능합니다. 이 그래픽 디스플레이 부족을 수정할 기회가 있을까요?

 
Alexey Viktorov :

흥미롭게도 그런 두꺼운 선으로 인해 손으로 그린 선처럼 보입니다 ...

@라시드 우마로프

주제 중 하나에서 수직선 DRAW_ZIGZAG를 그리는 것이 불가능하다는 토론에 참여했습니다. 이전 게시물의 예. 이런 논의 끝에 변화가 생기고 그런 기회가 생겼다. 이제 DRAW_COLOR_ZIGZAG의 또 다른 문제가 나타났습니다. 각 세그먼트에 대해 색상을 순차적으로 설정하는 것은 단순히 불가능합니다. 이 그래픽 디스플레이 부족을 수정할 기회가 있을까요?

그렇게 하면 곧 되지 않습니다. 우선 순위가 아닌 작업은 어디까지나 백 번째 자리에 있을 것입니다.