[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 333

 
drknn :

지표 중 하나가 너무 날카로워서 D1 기간이 두려운 곳이라고 상상해보십시오. :) 요컨대, 코드를 살펴봐야 합니다. 아마도 이유가 있을 것입니다.
나는 모든 것이 다른 터미널에서 작동하는 것이 창피했습니다. 방금 잘못된 것을 발견했습니다 - GBP 14000 영역에서 1970에 대한 인용. 템플릿에 있는 그러한 범위의 개체 라인을 그릴 수 있었습니다. 당신은 연락해야 합니다 제거하는 테크노.
 

다시 말하지만 그는 버퍼로 무언가를 망쳤을 것입니다. 봐주세요.

작업은 다음과 같습니다.

1) LSMA가 계산됩니다. [i]>[i+1]이면 색상이 녹색이고, [i]<[i+1]이면 색상이 빨간색입니다. 이것으로 모든 것이 명확합니다.

2) 녹색과 빨간색 값의 계열의 길이를 찾아 배열에 저장해야 합니다. 여기에서 문제가 발생하며 아직 우리 스스로 대처할 수 없습니다.

 //+------------------------------------------------------------------+
//|                                                   LSMA_Stat2.mq4 |
//|                                                       silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "silhouette"
#property link       "http://www.metaquotes.net"

#property copyright "silhouette"
#property link       "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_color2 Green
#property indicator_color3 Red
//+------------------------------------------------------------------+
double BufferYellow[],BufferGreen[], BufferRed[];
int GreenSeries[], RedSeries[], g= 0 , r= 0 , gc= 0 , rc= 0 ;
string Symb;

int init()
  {
   Symb= Symbol ();
   
   SetIndexBuffer ( 0 ,BufferYellow);
   SetIndexBuffer ( 1 ,BufferGreen);
   SetIndexBuffer ( 2 ,BufferRed);
   
   SetIndexStyle ( 0 , DRAW_LINE ,EMPTY, 2 );
   SetIndexStyle ( 1 , DRAW_LINE ,EMPTY, 2 );
   SetIndexStyle ( 2 , DRAW_LINE ,EMPTY, 2 );  
   return ( 0 );
  }

int deinit()
  {

   return ( 0 );
  }

int start()
  {
   double tmp1, tmp2, LSMA;
   
   int counted_bars= IndicatorCounted ();
   int limit= Bars -counted_bars- 1 ;
   if (limit> 1 ) 
      limit= Bars - 1 ;
      
   for ( int i=limit; i> 0 ; i--)
    {
     tmp1= iMA (Symb, Period (), 34 , 0 , MODE_SMA , 0 ,i);
     tmp2= iMA (Symb, Period (), 34 , 0 , MODE_LWMA , 0 ,i);
     LSMA= 3.0 *tmp2- 2.0 *tmp1;
      
     BufferYellow[i]=LSMA;
     BufferGreen[i]=LSMA;
     BufferRed[i]=LSMA;

     if (BufferYellow[i]>BufferYellow[i+ 1 ])
      {
       BufferRed[i]= EMPTY_VALUE ;
      }
     else if (BufferYellow[i]<BufferYellow[i+ 1 ])
      {
       BufferGreen[i]= EMPTY_VALUE ;
      }
     else
      {
       BufferRed[i]= EMPTY_VALUE ;
       BufferGreen[i]= EMPTY_VALUE ;
      }                        
      
     if (BufferGreen[i]!= EMPTY_VALUE && BufferRed[i]== EMPTY_VALUE )
      {
       g++;
      }
     if (BufferGreen[i]== EMPTY_VALUE && BufferRed[i]!= EMPTY_VALUE )
      {
       r++;
      }
     if (BufferGreen[i]== EMPTY_VALUE && BufferRed[i]== EMPTY_VALUE )
      {
       if (BufferGreen[i+ 1 ]!= EMPTY_VALUE )
        {
         GreenSeries[gc]=g;
         gc++;
         g= 0 ;
        }
       if (BufferRed[i+ 1 ]!= EMPTY_VALUE )
        {
         RedSeries[rc]=r;
         rc++;
         r= 0 ;
        }
      }              
    }
   return ( 0 );
  }
 
silhouette :

다시 말하지만 그는 버퍼로 무언가를 망쳤을 것입니다. 봐주세요.

작업은 다음과 같습니다.

1) LSMA가 계산됩니다. [i]>[i+1]이면 색상이 녹색이고, [i]<[i+1]이면 색상이 빨간색입니다. 이것으로 모든 것이 명확합니다.

2) 녹색과 빨간색 값의 계열의 길이를 찾아 배열에 저장해야 합니다. 여기에서 문제가 발생하며 아직 우리 스스로 대처할 수 없습니다.


지표가 마음에 들지 않은 이유는 무엇입니까?
 
Vinin :

지표가 마음에 들지 않은 이유는 무엇입니까?

Vinin, 나는 실제로 당신의 모델에 따라 그것을했지만 요점은 다릅니다. 나에게 중요한 것은 계산 방법 자체가 아니라 (가장 간단한 MA가 있는지 여부) 단락 2의 문제 솔루션입니다.

추가 분석을 위해 녹색 또는 빨간색 계열의 길이를 저장하는 배열을 가져와야 합니다.

 
말해 주세요. 실제 생활에는 크게 분기할 수 있는 2개의 가상 대차 대조표(매도 및 매수 주문)가 있습니다. 이 그래프의 교차 순간을 감지할 수 있도록 상대 단위로 어떻게 변환할 수 있습니까?
 
silhouette :

Vinin, 나는 실제로 당신의 모델에 따라 그것을했지만 요점은 다릅니다. 나에게 중요한 것은 계산 방법 자체가 아니라 (가장 간단한 MA가 있는지 여부) 단락 2의 문제 솔루션입니다.

추가 분석을 위해 녹색 또는 빨간색 계열의 길이를 저장하는 배열을 가져와야 합니다.


배열이 필요한 이유는 무엇입니까?
 
Vinin :

배열이 필요한 이유는 무엇입니까?
후속 통계 분석을 위해. 예를 들어 엑셀에서.
 

마우스 거래를 위한 라이브러리가 있습니다 https://www.mql5.com/ru/code/9671

전혀 연결이 안되는데 도와주세요.

필요한 모든 파일을 전문가 폴더에 다운로드한 다음 컴파일하지만 모두 동일하게 표시기에 데이터가 없는 검은색 창이 있습니다.

뭔가 유치한 실수가 뻔한데 하루도 못찾아


 
TheXpert :

아무 것도 폴더에 넣을 필요가 없습니다. 아카이브에서 모든 파일은 이미 간격이 지정되어 있으므로 아카이브를 터미널 폴더에 풀고 컴파일하기만 하면 됩니다.

표시기 파일만 컴파일되며 라이브러리(mqh)는 컴파일할 필요가 없습니다. 새 터미널을 설치하고 실습해 보십시오.

 

말해주세요! 터미널에서 "MQL4.community" 버튼을 클릭하면 해당 페이지와 함께 Word가 열리지만 링크를 클릭하려고 하면 컴퓨터의 제한 사항에 대해 알려주는 창이 나타납니다! ???

그것을 처리하는 방법? 고맙습니다.