지그재그 인디케이터로 추출한 바닥 턴어라운드 포인트만 추출하는 방법은 무엇입니까? - 페이지 3

 
jackprobe :
감사합니다. 그것을 시도 할 것입니다 ...


그리고 당신이 같은 것을 넣으면

이것은 코드 내부에 ....

 
ubzen :

여기 내가 생각해낸 것이 있습니다. 나는 [그가 게시할 때 이것을 하고 있었다] 위의 deVries 결과를 확인하지 않았습니다.


안녕하세요, ubzen, 귀하의 코드는 다음과 같습니다.

이 두 줄 코드의 의미가 무엇인지 모르겠습니다. if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift]; if (Toppers[shift]> 0.1 ) Toppers[shift]=토퍼[shift];

이 두 줄의 코드를 삭제해도 거의 변경되지 않는 것을 알았습니다. 그래서 왜 이 두 줄을 추가했는지 모르겠습니다.

 #property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Green
#property indicator_width1 1
#property indicator_color2 Yellow
#property indicator_width2 1

double Bottoms[];
double Toppers[];

int init()
{

   IndicatorBuffers( 2 );

   SetIndexStyle( 0 , DRAW_SECTION );
   SetIndexBuffer ( 0 ,Bottoms);
   SetIndexEmptyValue( 0 , 0.0 );

   SetIndexStyle( 1 , DRAW_SECTION );
   SetIndexBuffer ( 1 ,Toppers);
   SetIndexEmptyValue( 1 , 0.0 );

  IndicatorShortName( "zz show top & bottom" );
   return ( 0 );
}

int deinit()
{
   return ( 0 );
}

int start()
{
   int counted_bars=IndicatorCounted();
   int limit= 0 ;
  limit = Bars -counted_bars;
  
   for ( int shift=limit- 1 ;shift>= 0 ;shift--)
  {
     int ExtDepth= 12 ; int ExtDeviation= 5 ; int ExtBackstep= 3 ;
     int ZigzagBuffer= 0 ; int HighMapBuffer= 1 ; int LowMapBuffer= 2 ;
    
    Bottoms[shift]= iCustom (
         Symbol (), 0 , "ZigZag" ,
        ExtDepth, ExtDeviation, ExtBackstep,
        LowMapBuffer, shift
    );
    
    Toppers[shift]= iCustom (
         Symbol (), 0 , "ZigZag" ,
        ExtDepth, ExtDeviation, ExtBackstep,
        HighMapBuffer, shift
    );
    
     if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift];
     if (Toppers[shift]> 0.1 ) Toppers[shift]=Toppers[shift];
  }
  
   return ( 0 );
}
 
vx0532 :


안녕하세요, ubzen, 귀하의 코드는 다음과 같습니다.

이 두 줄 코드의 의미가 무엇인지 모르겠습니다. if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift]; if (Toppers[shift]> 0.1 ) Toppers[shift]=토퍼[shift];

이 두 줄의 코드를 삭제해도 거의 변경되지 않는 것을 알았습니다. 그래서 왜 이 두 줄을 추가했는지 모르겠습니다.


저점선과 고점선이 있는 지그재그
 


EA에서 아래와 같이 코드를 작성합니다.

하지만 히스토리 데이터에서 테스트하면 "print"가 모두 0으로 표시됩니다. 이유는 무엇입니까?

 for ( int shift= 99 ;shift>= 0 ;shift--)
  {
     int ExtDepth= 12 ; int ExtDeviation= 5 ; int ExtBackstep= 3 ;
     int ZigzagBuffer= 0 ; int HighMapBuffer= 1 ; int LowMapBuffer= 2 ;
    
    Bottoms[shift]= iCustom (
         Symbol (), 0 , "ZigZag" ,
        ExtDepth, ExtDeviation, ExtBackstep,
        LowMapBuffer, shift
    );
    
    Toppers[shift]= iCustom (
         Symbol (), 0 , "ZigZag" ,
        ExtDepth, ExtDeviation, ExtBackstep,
        HighMapBuffer, shift
    );
     if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift];
     if (Toppers[shift]> 0.1 ) Toppers[shift]=Toppers[shift];
 }
 
 shift= 0 ;
 while (shift< 100 )
 {
 Print ( "Bottoms,Toppers:" ,Bottoms[shift], " , " ,Toppers[shift]);
 shift++;
 }
 

내 게시물 1 페이지 뒤로 읽기

데브리스 2013.10.19 12:13 #

https://www.mql5.com/en/forum/144092/page2#854926


 //+------------------------------------------------------------------+
//|                                              ZigZag practise.mq4 |
//|                                Copyright © 2012, Tjipke de Vries |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Tjipke de Vries"
#property link       ""

//---- input parameters  ZigZag
extern int ExtDepth= 12 ;
extern int ExtDeviation= 5 ;
 
deVries :

감사합니다 deVries, 귀하의 게시물을 검토한 후 이 문제를 알게 되었습니다.

따라서 이중 배열과 변수를 사용하여 Indicator의 코드에서 iCustom()의 반환 값을 받을 수 있다는 결론을 얻었습니다. 하지만 변수를 사용하여 EA 코드에서 iCustom()의 반환 값을 받을 수 있습니다.

당신의 설명은 " 그것은 잘못된 버퍼이고 당신은 상단 또는 하단이 될 막대에서 i의 값을 찾아야한다는 것입니다."

내 이해는 EA에서 배열 x[i]를 사용하여 iCustom()을 수신할 때 할당은 괜찮지만 할당 막대가 불확실하다는 것입니다.

그래서 iCustom()은 단순히 값을 반환할 뿐만 아니라 다른 것들을 반환합니다. 예?

하지만 여전히 코드의 중요성을 이해하지 못합니다. " if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift]; if (Toppers[shift]> 0.1 ) Toppers[shift]=토퍼[shift]; "

 
vx0532 :

감사합니다 deVries, 귀하의 게시물을 검토한 후 이 문제를 알게 되었습니다.

따라서 이중 배열과 변수를 사용하여 Indicator의 코드에서 iCustom()의 반환 값을 받을 수 있다는 결론을 얻었습니다. 하지만 변수를 사용하여 EA 코드에서 iCustom()의 반환 값을 받을 수 있습니다.

당신의 설명은 " 그것은 잘못된 버퍼이고 당신은 상단 또는 하단이 될 막대에서 i의 값을 찾아야한다는 것입니다."

내 이해는 EA에서 배열 x[i]를 사용하여 iCustom()을 수신할 때 할당은 괜찮지만 할당 막대가 불확실하다는 것입니다.

그래서 iCustom()은 단순히 값을 반환할 뿐만 아니라 다른 것들을 반환합니다. 예?

하지만 여전히 코드의 중요성을 이해하지 못합니다. " if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift]; if (Toppers[shift]> 0.1 ) Toppers[shift]=토퍼[shift]; "


ZigZag 표시기에서 데이터를 가져오기 위해 여전히 고군분투 중입니다.

왜 내 코드 안에 없는 것을 설명하라고 합니까 ??

코드를 조사하지 않는 이유

 //+------------------------------------------------------------------+
//|                                              ZigZag practise.mq4 |
//|                                Copyright © 2012, Tjipke de Vries |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Tjipke de Vries"
#property link       ""

//---- input parameters  ZigZag
extern int ExtDepth= 12 ;
extern int ExtDeviation= 5 ;

전체 코드는 한 페이지 뒤로 찾을 수 있습니다.... https://www.mql5.com/en/forum/144092/page2#854926

해당 코드의 작업을 이해한다면 EA에서 동일한 방법을 사용하는 것입니다.

 
  1. deVries : 한 페이지 뒤에서 찾을 수 있는 전체 코드....
    한 페이지 뒤로 돌아가지 말고 정확한 게시물에 대한 링크를 게시하십시오. 한 페이지 뒤로 (오른쪽 클릭, 링크 복사) 이름 오른쪽의 # 기호입니다.
  2. vx0532 : 하지만 여전히 코드의 중요성을 이해하지 못합니다. " if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift]; if (Toppers[shift]> 0.1 ) Toppers[shift]=토퍼[shift]; "
    "if( x> 0.1 ) x=x ;"의 중요성은 무엇이라고 생각하십니까? 수단? 아무것도! 수정 된 코드는 나중에 다음과 같이 말합니다.
         if (ZigZag[shift]> 0.1 && Low[shift]==ZigZag[shift]) Bottoms[shift] = ZigZag[shift] ;
         if (ZigZag[shift]> 0.1 && High[shift]==ZigZag[shift]) Toppers[shift]=ZigZag[shift];
    
 
WHRoeder :
  1. deVries : 한 페이지 뒤에서 찾을 수 있는 전체 코드....
    한 페이지 뒤로 돌아가지 말고 정확한 게시물에 대한 링크를 게시하십시오. 한 페이지 뒤로 (오른쪽 클릭, 링크 복사) 이름 오른쪽의 # 기호입니다.
  2. vx0532 : 하지만 여전히 코드의 중요성을 이해하지 못합니다. " if (Bottoms[shift]> 0.1 ) Bottoms[shift]=Bottoms[shift]; if (토퍼[shift]> 0.1 ) Toppers[shift]=토퍼[shift]; "
    "if( x> 0.1 ) x=x ;"의 의미는 무엇이라고 생각하십니까? 수단? 아무것도! 수정 된 코드는 나중에 다음과 같이 말합니다.

완료 https://www.mql5.com/en/forum/144092/page2#854926
 

여러분 모두에게,

ZigZag와 코드에 대한 훌륭한 토론에 감사드립니다. 나는 토론에 새로운 스핀을 추가할 것이다
지그재그로 계산된 높은/낮은 값을 추출할 수 있다면 저에게는 큰 가치가 있을 것입니다.
표시기(지정된 특정 매개변수 세트 포함)와 텍스트 또는 csv 파일에 발생한 시간,
이 같은:

- 요일, 시간, 고가치, 고(Boolean)
- 요일, 시간, 낮은 값, 낮은(Boolean)

의 확률을 식별하기 위해 MS Excel에서 추가 분석을 위해 이 값을 추출하고 싶습니다.
차트에서 기간 및 진폭의 발생. 결국 히스토그램은 다음에서 생성됩니다.
내재 기간을 식별하여 차트에서 값의 "서명"을 나타내는 이 데이터 및
및 고유 스윙 진폭.

어쩌면 여기에서 바퀴를 재발명하려고 하고 있고 내가 원하는 코드가 있습니다.
하다. 그렇지 않다면 그러한 코드를 개발하는 것이 가치가 있을 것입니다. 수동으로 이러한 유형의 분석을 수행하고 있습니다.
매일 수많은 차트와 함께 가치의 본질적인 서명을 안다는 것을 분명히 말할 수 있습니다
방향의 변화를 예측할 가능성을 크게 향상시킵니다. 제 생각에는 이 과정이
쉽게 자동화... 하지만 프로그래밍 경험이 있는 사람들의 도움이 필요합니다. 그만큼
결과는 편리한 표시기 또는 자동 MT4 EA(전문가 고문)일 것입니다.
중요한 전환점에서 거래됩니다.

공동 작업에 관심이 있는 사람을 여기서 찾으면 좋을 것입니다. 그러나 몇 가지 힌트
ZigZag 표시기에서 데이터를 추출하는 방법도 도움이 될 것입니다. 감사합니다!

- 스줄리만