지표 질문 - 페이지 5

 
아 마지막 질문 하나

EA에서 사용될 수 있는 지표를 구축할 때 앞으로 또는 뒤로 계산하는 것이 더 일반적입니까?

하나가 다른 것보다 더 많은 문제를 일으키나요? 아니면 선호도와 디자인의 문제입니까?

조언 부탁드립니다

감사해요

 
때때로 이 기사를 살펴보십시오. https://www.mql5.com/en/articles/1456 약간 어려울 수 있지만 조금씩 계속 읽으십시오. 일단 이해하면 다음에 대해 배우게 될 것입니다. 지표, EA 및 차이점.
 
Agent86 :
아 마지막 질문 하나

EA에서 사용될 수 있는 지표를 구축할 때 앞으로 또는 뒤로 계산하는 것이 더 일반적입니까?

하나가 다른 것보다 더 많은 문제를 일으키나요? 아니면 선호도와 디자인의 문제입니까?

일반적으로 내가 본 많은 지표는 i++를 세는데, 내 겸손한 생각으로는 이것은 잘못된 것입니다. . . 차트는 왼쪽에서 오른쪽으로 구성되며 왼쪽은 오래된 양초가 오른쪽에 새 양초입니다. 표시기가 차트의 이전 막대를 처리할 때(따라서 가장 최신 막대 처리를 시작할 수 있음) 라이브 데이터에서 작동하는 방식을 나타내는 방식으로 수행해야 하지 않습니까?

테크니컬 인디케이터 는 제 것이 아니므로 부득이하게 알게 되었지만 경험이 적습니다. 경험이 많은 분들의 다른 답변도 환영합니다.

 

일반적으로 실제 거래 중에 우려하는 한 과거에 멀리 떨어진 전체 막대 가격 세트는 매우 관련이 없습니다. 주어진 프레임에서 소수의 최근 것들만 가능합니다.

이와 관련하여 iCustom을 호출 하고 버퍼 등을 읽는 대신 EA가 직접 사용할 수 있는 일부 함수 또는 라이브러리에 표시기의 논리가 충분하다면 '전송'합니다. 이것은 문제가 될 수 있습니다. 잊지 마세요.

그래서 저에게 좋은 지표는 제가 그렇게 할 수 있게 해주는 지표입니다.

 
나는 각각에 대해 약간의 실험을 할 것이라고 생각하지만 0에서 앞으로 증가하는 것을 선호하지만 표준 지표는 어떻게 증가합니까?

EA에서 유용한 것을 위해 iFractals를 사용하고 싶다면 신호가 자연스럽게 발생하는 것처럼 보입니다. 이전 iFractal로 시간을 되돌리려면 i++ 이전 iFractal로 이동합니다.

그러나 사람들의 EA를 보면 차트에 지표가 나타납니다. 그들이 추가한 iCustom 표시기 및 표시기를 사용하고 있습니까 아니면 일반적으로 EA 자체에 삽입되며 EA를 열면 자동으로 발생합니까?

다 정리하려고 해요

 
RaptorUK :
때때로 이 기사를 살펴보십시오. https://www.mql5.com/en/articles/1456 약간 어려울 수 있지만 조금씩 계속 읽으십시오. 일단 이해하면 다음에 대해 배우게 될 것입니다. 지표, EA 및 차이점.
하겠습니다. 감사합니다.

계속 고민하고 싶지는 않지만 MQL4에 대한 모든 것을 배워서 나만의 아이디어를 코딩하고 코드 기반에 약간 기여할 수 있도록 하고 싶습니다.

계속 읽어보겠습니다 감사합니다
 
안녕

누군가 내가 이 코드를 올바르게 고려하고 있는지 확인할 수 있습니까?

내 print 문은 이전 iFractal을 참조합니까?

 //maybe something like this to count back to the previous iFractal for reference
//needs work     
     for (i= 0 ; val1==val3; i++)
      {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
      val3= iFractals ( NULL , 0 , MODE_UPPER, 0 );
       if (val1 > 0 )
         {
         Print (val1, " = val1" );
         }
        }
지금까지 저의 제한된 지식으로 생각할 수 있는 전부였습니다.

어쨌든, 내가 여기에서 만든 것이 사실이라면 이전 iFractal로 돌아가는 이 방법에 문제가 있습니까?

내가 말할 수있는 것에서 이론적으로 옳은 것 같습니까?

조언 부탁드립니다

감사해요

 

iFractal을 얻을 때 값이 > 0, 예 ?

예를 들어, 마지막 UPPER 및 LOWER iFractal이 어디에 있는지 알고 싶다면 다음과 같이 하십시오. . .

val1 = 0 ; val2 = 0 ; i = 0 ;

while ( val1== 0 && val2== 0 )
   {
   if ( iFractals ( NULL , 0 , MODE_UPPER,i) > 0 && val1== 0 ) val1 = i;
   if ( iFractals ( NULL , 0 , MODE_LOWER,i) > 0 && val2== 0 ) val2 = i;
   i++;
   }
Print ( "Last UPPER Fractal at " , val1, " Last LOWER Fractal at " , val2);
 
for (i= 0 ; val1==val3; i++) <--- val1==val3??? This is indeed, "tricky"
        {
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
      val3= iFractals ( NULL , 0 , MODE_UPPER, 0 );
       if (val1 > 0 )
         {
         Print (val1, " = val1" );
         }
        }

솔직히 루프 종료 조건에서 이것을 본 것은 이번이 처음입니다. 까다롭습니다...

 

제가 보기엔 멋져요... 백 테스터 내에서 테스트만 하면 됩니다. 다음은 내가 하는 방법입니다.

 void start(){
   double val1= 0 ,val3= 0 ;
   for ( int i= 0 ; i<= 3 ; i++){
      val1= iFractals ( NULL , 0 , MODE_UPPER,i);
      val3= iFractals ( NULL , 0 , MODE_UPPER, 0 );
       if (val1>val3){
         Print ( "Value_1=" +val1+ " TimeOf_Fractal=" + TimeToStr ( TimeCurrent ()));
         break ;
      }
   }
}

프랙탈이 어떻게 형성되었는지 기억이 나지 않습니다. 나는 그것이 세 번째 막대에서 형성되었다고 믿습니다. 그리고 그 전후의 두 막대를 고려합니다.

위의 코드를 EA로 저장하고 짧은 백 테스트를 실행합니다. 확인을 위해 백 테스트 차트 에 지표를 첨부할 수 있습니다.

내가 얻은 것은 다음과 같습니다.

 2011.10 . 06 06 : 38 : 49      2011.01 . 02 23 : 00   De_Bugger EURUSD,M1: Value_1= 1.33710000 TimeOf_Fractal= 2011.01 . 02 23 : 00