MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1683

 
그렇지. 첫 번째: 0, 마지막: OrdersTotal()-1
 
Aleksei Stepanenko # :
그렇지. 첫 번째: 0, 마지막: OrdersTotal()-1

그리고 같은 장소에서 배열, 정말 처음부터 ...

 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
                                                              
extern int RSIPERIOD= 3 ;
extern double KOEFF1= 2.5 ;
extern double KOEFF2= 1.86 ; 
                                                                                                                                                                  
double mass0[],Buf1[],Buf2[];
double D10,D11,D12;
                                                                                                                                                                                                                                                                                                                                             
int init()
  {
   IndicatorDigits( 0 );
   string short_name= "RSITEST" ;           
   IndicatorShortName( "RSITEST" );
   
   D10=RSIPERIOD;D11=D10*KOEFF1;D12=D11*KOEFF2;;
 
   SetIndexBuffer ( 0 ,mass0);
   SetIndexLabel ( 0 , "Stoch " +Ds_0(D10)+ ")\n" );
   SetIndexBuffer ( 1 ,Buf1);
   SetIndexLabel ( 1 , "Stoch (" +Ds_0(D11)+ ")\n" );
   SetIndexBuffer ( 2 ,Buf2);
   SetIndexLabel ( 2 , "Stoch (" +Ds_0(D12)+ ")\n" );
   return ( 0 );
  }
                                                                                                               
int start()
  {
   if ( Bars <=RSIPERIOD) return ( 0 );
   int ExtCountedBars=IndicatorCounted();
   if (ExtCountedBars< 0 ) return (- 1 );
   if (ExtCountedBars> 0 ) ExtCountedBars--;
   for ( int i= 0 ;i< Bars -RSIPERIOD;i++)
      {
       mass0[i] = iRSI ( NULL , 0 ,D10, 0 ,i);
       if ( iRSI ( NULL , 0 ,D11, 0 ,i)> iRSI ( NULL , 0 ,D12, 0 ,i))
       Buf1[i] = Buf2[i];
       Buf1[i] = DRAW_LINE ;
       Buf2[i] = EMPTY_VALUE ;
      }
   return ( 0 );
  }

string Ds_0( double DOUBLE) { return (DoubleToStr(DOUBLE, 0 ));}
MakarFX # :
귀하의 경우 3 줄 중 2 줄만 나왔고 작업에 맞게 조정했으며 첫 번째 줄은 그대로 유지되고 다른 두 줄 (빨간색과 파란색)의 방정식은 주어진 조건( 빨간색 선과 파란색 선 대신 한 줄이 될 것입니다.   RSI2 > RSI3 및 파란색인 경우   RSI2<   RSI3 ) 그녀는 자신이 RSI임을 이해하지 못하는 것처럼 곧고 붉어집니다.
스크린샷 첨부
파일:
 
Andrey Kipyatkov # :
귀하의 경우 3 줄 중 2 줄만 나왔고 작업에 맞게 조정했으며 첫 번째 줄은 그대로 유지되고 다른 두 줄 (빨간색과 파란색)의 방정식은 주어진 조건( 빨간색 선과 파란색 선 대신 한 줄이 될 것입니다.   RSI2 > RSI3 및 파란색인 경우   RSI2<   RSI3 ) 그녀는 자신이 RSI임을 이해하지 못하는 것처럼 곧고 붉어집니다.
스크린샷 첨부

Buf1과 Buf2를 어떻게 이퀄라이징합니까?

귀하의 조건에서 그들은 0과 같습니다!

 
Andrey Kipyatkov # :
귀하의 경우 3 줄 중 2 줄만 나왔고 작업에 맞게 조정했으며 첫 번째 줄은 그대로 유지되고 다른 두 줄 (빨간색과 파란색)의 방정식은 주어진 조건( 빨간색 선과 파란색 선 대신 한 줄이 될 것입니다.   RSI2 > RSI3 및 파란색인 경우   RSI2<   RSI3 ) 그녀는 자신이 RSI임을 이해하지 못하는 것처럼 곧고 붉어집니다.
스크린샷 첨부


파일:
RSITEST-1.mq4  4 kb
 
안녕하세요! 거래 로봇과 거래 고문의 차이점이 무엇인지 알려주십시오.
 
Daniil Osipov # :
안녕하세요! 거래 로봇과 거래 고문의 차이점이 무엇인지 알려주십시오.
똑같아... 말장난
 
MakarFX # :

코드에 도움을 주셔서 감사합니다만, 어렵지 않다면 본질을 이해하고 싶습니다. 한 줄에 모든 것을 작성할 때 다음을 수행합니다.
Buf0[i] = iRSI(NULL,0,D10,0,i); - 0 배열이 위에 지정된 매개변수를 사용하는 rsai 행이 되도록 이 소문자를 설정합니다.
if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i)) 그러면 여기에서 매개변수 D11 > D12 가 있는 rsi라고 말합니다.
Buf1[i] = Buf0[i]; 여기에서 rsai를 매개변수 D11 및 D10 과 동일시합니다(한 줄을 다른 줄에 겹쳐놓음).
또 다른
버퍼1[i] = EMPTY_VALUE; 그리고 당신은 D11 매개변수가 있는 PC가 그려지지 않는다고 말합니다.
하지만 3줄로 작업할 때
Buf0[i] = iRSI(NULL,0,D10,0,i); 당신은 1 라인을 그리는 방법을 말한다
Buf1[i] = (iRSI(NULL,0,D11,0,i)+iRSI(NULL,0,D12,0,i))/2; 그런 다음 2 2와 3으로 더하고 나눕니다. 이전에 배열을 동일시하고 한 줄을 다른 줄에 겹쳐 놓았기 때문에 이러한 구문이 있는 이유는 무엇입니까?
if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i)) 그런 다음 예에서와 같이 반복 합니다.   D11   >D12
Buf2[i] = Buf1[i]; 그리고 이미 3과 2 라인을 동일시
또 다른
버퍼2[i] = EMPTY_VALUE; 그리고 당신은 두 번째를 그리지 말라고 말합니다

"매개변수"를 언어로 설정하는 방법, 수행해야 할 작업 및 두 번째 경우에 배열을 추가하고 2로 나눈 이유를 올바르게 이해합니다.

 
MakarFX # :
똑같아... 말장난
비탈리 무지첸코 # :

익살.

다음 스레드에서. 말없이...

 
Andrey Kipyatkov # :
코드에 도움을 주셔서 감사합니다만, 어렵지 않다면 본질을 이해하고 싶습니다. 한 줄에 모든 것을 작성할 때 다음을 수행합니다.

Andrey, 먼저 첫 번째 게시물 에서 귀하의 상태를 정의하겠습니다.

빨간색과 파란색 선(각각 그림의 RSI2와 RSI3(각각 동일 첨부))의 대신에 한 이 있도록 코드에 작성하는 것이 가능한지 명확히 하고 싶었습니다. RSI2> RSI2 < RSI3인 경우 RSI3 및 파란색

그래서 빨간색과 파란색 대신에 하나가 있습니다. 우리는 이러한 선의 평균값을 얻습니다.

Buf1[i] = ( iRSI ( NULL , 0 ,D11, 0 ,i)+ iRSI ( NULL , 0 ,D12, 0 ,i))/ 2 ;

이 줄은 기본적으로 빨간색입니다.

또한, 조건이

 if ( iRSI ( NULL , 0 ,D11, 0 ,i)> iRSI ( NULL , 0 ,D12, 0 ,i))

그러면 선의 색상을 변경하지 않습니다. 왜냐하면 MT4에서는 할 수 없습니다.

다른 색으로 다른 줄 위에 가져 와서 부과하십시오.

Buf2[i] = Buf1[i];