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

 
deyron :
주문을 열려고 시도한 경우 메시지에 표시됩니다. 주문을 열려고 시도하지 않으면 오류는 어디에서 발생합니까? 문제는 마샤가 레벨을 통과하기 위한 조건이 맞는지 여부다. 하드 코딩된 매개변수를 사용하면 주문이 예상보다 훨씬 늦게 열리는 이유가 무엇입니까?

올바른 위치의 Print() 및 GetLastError() 가 모든 질문에 답합니다.
 

안녕하세요!

마지막 Parabolic 시리즈의 마지막 점의 값을 찾아야 합니다. 다음과 같이 말해보자.

나는 그것을 찾는 함수를 작성했습니다.

 double FindLastLevel ()                             
 { double Level; int i;
   for (i= 0 ; Level== 0 ; i++) 
  { double SAR0= iSAR ( Symbol (), Period (), Step, Maximum, i),
          SAR1= iSAR ( Symbol (), Period (), Step, Maximum, i+ 1 ),
          SAR2= iSAR ( Symbol (), Period (), Step, Maximum, i+ 2 );

   if (SAR0>SAR1){ if (SAR1<SAR2){Level=SAR2; return (Level);}}
   if (SAR0<SAR1){ if (SAR1>SAR2){Level=SAR2; return (Level);}}
  }}

저것들. 각 포물선 값은 현재 막대에서 시작하여 다시 계산됩니다. 값의 점진적인 감소/증가 조건이 위반되는 즉시 함수는 추세에서 "막힌" 막대의 값을 반환합니다. 그러나 다음과 같이 1마디 점프가 있는 경우:


그 기능은 "보이지 않는다".

함수를 다시 작성하는 방법을 알려주실 수 있습니까? 어쩌면 이미 해결책이 있습니까?

 
Heroix :

안녕하세요!

마지막 Parabolic 시리즈의 마지막 점의 값을 찾아야 합니다. 다음과 같이 말해보자.

나는 그것을 찾는 함수를 작성했습니다.

저것들. 각 포물선 값은 현재 막대에서 시작하여 다시 계산됩니다. 값의 점진적인 감소/증가 조건이 위반되는 즉시 함수는 추세에서 "막힌" 막대의 값을 반환합니다. 그러나 다음과 같이 1마디 점프가 있는 경우:


그 기능은 "보이지 않는다".

함수를 다시 작성하는 방법을 알려주실 수 있습니까? 어쩌면 이미 해결책이 있습니까?

가격적인 부분도 염두에 두어야 합니다.
 
Zhunko :
가격적인 부분도 염두에 두어야 합니다.

저것들. 예를 들어 표시기 자체의 판독 값뿐만 아니라 i의 가격 값과 관련된 i의 값 위치를 비교합니까?
 

이 Expert Advisor를 살펴보십시오. 아마도 흥미로운 것이 https://www.mql5.com/ru/code/10649가 될 것입니다.

 
사람들은 왜 if(OPN<CLS && (CLS-OPN)>=50*Point)가 검색되지 않는지 알려줍니다????
 
nlp2311 :

문제.

조건이 실패하는 이유

if(Close_1>Open_1 && ( Close_1-Open_1)>=30*Point) 버퍼[i]=High_1;

...

대신 시도

 if (Close_1>Open_1 && ( Close_1-Open_1)>= 30 * Point ) buffer[i]=High_1;

이렇게 해

 if (Close_1>Open_1)
{   if (Close_1-Open_1>= 30 * Point ) buffer[i]=High_1;
}

이 조건이 존재하는 코드 부분을 여기에 게시하십시오. 루프 어딘가에 오류가 있을 수 있습니다. SRC 를 사용하여 포럼에 코드를 게시합니다.

 
paladin80 :

대신 시도

이렇게 해

이 조건이 존재하는 코드 부분을 여기에 게시하십시오. 루프 어딘가에 오류가 있을 수 있습니다. SRC 를 사용하여 포럼에 코드를 게시합니다.


시도 .... 작동하지 않습니다.

그는 다른 방식으로 대괄호를 넣었습니다. 최선을 다해 왜곡했습니다 ... 더 이상 할 수 없습니다 !!!!!!!!!!!!!!!!!))))):

그래서 나는 변태 없이 어떻게 했는지 묻습니다)):???

이 MT4 새끼는 if(.....) 조건에 의해 핍이 전혀 보이지 않는 것 같습니다...((

게다가 나는 이미 별도의 칠면조를 작성했기 때문에 이 조건이 어떻게든 수행될 수 있도록 ... 안 돼((:

왜 그런 겁니까?

 
nlp2311 :

여기 그놈이 .... 이 새끼(((!!!!

이미 미쳤어...


그리고 stoplevel은 무엇을 확인합니까?
 

좋은 오후입니다. 두 개의 다른 MACD를 하나의 창과 동일한 크기에 배치하는 지표를 작성했습니다.

이제 모든 VISIBLE 막대를 다시 살펴보고 ZERO 막대에서 두 번째 표시기(주황색)의 신호 라인이 첫 번째 표시기(빨간색 라인)의 신호 라인과 같아지는 순간을 찾아야 합니다. 하나로 병합되어야 하지만 아무 것도 작동하지 않습니다! 위쪽 창에는 내 표시기가 있고 아래쪽 창에는 신호선이 있습니다.

누구든지 그것을 알아낼 수 있습니까?


  
Код 2
-----

#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color5 Aqua
#property indicator_color6 DarkOrange
#property  indicator_width1   2
#property  indicator_width5   2


//--- buffers
double Macd1Buffer[];
double Signal1Buffer[];
double Macd2Buffer[];
double Signal2Buffer[];
double Macd3Buffer[];
double Signa13Buffer[];

//--- for one bar
datetime last;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle ( 0 , DRAW_NONE );
   SetIndexBuffer ( 0 ,Macd1Buffer);
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexBuffer ( 1 ,Signal1Buffer);
   SetIndexStyle ( 2 , DRAW_NONE );
   SetIndexBuffer ( 2 ,Macd2Buffer);
   SetIndexStyle ( 3 , DRAW_NONE );
   SetIndexBuffer ( 3 ,Signal2Buffer);
   SetIndexStyle ( 4 , DRAW_NONE );
   SetIndexBuffer ( 4 ,Macd3Buffer);
   SetIndexStyle ( 5 , DRAW_LINE );
   SetIndexBuffer ( 5 ,Signa13Buffer);
   
   
   IndicatorDigits ( Digits );
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
     if (last>=Time[ 0 ]) return ;
  
     double max_M1=- 0.01 ,min_M1= 0.01 ,
           max_M2=- 0.01 ,min_M2= 0.01 ,
           max_S1=- 0.01 ,min_S1= 0.01 ,
           max_S2=- 0.01 ,min_S2= 0.01 ,
           max1=- 0.01 ,min1= 0.01 ,
           max2=- 0.01 ,min2= 0.01 ,
           max3,
           M,
           Dmax_3,
           D_sig,
           D_sig_Last= 1.0 ;
  
  
   int j= 0 ;                                             
       
     while (j< WindowBarsPerChart ()- 1 )
{          
//----
   for ( int i= 0 ;i<=j;i++)
       
      { 
           Macd1Buffer[i]= iMACD ( 0 , PERIOD_H1 , 6 , 12 , 5 , PRICE_CLOSE ,MODE_MAIN,i+ 1 );           // основная линия 1-ого MACD        
           Macd2Buffer[i]= iMACD ( 0 , PERIOD_H1 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,i+ 1 );         // основная линия 2-ого MACD
           
              max_M1= MathMax (Macd1Buffer[i],max_M1);
              min_M1= MathMin (Macd1Buffer[i],min_M1);
           
              max_M2= MathMax (Macd2Buffer[i],max_M2);
              min_M2= MathMin (Macd2Buffer[i],min_M2); 
     
           Signal1Buffer[i]= iMACD ( 0 , PERIOD_H1 , 6 , 12 , 5 , PRICE_CLOSE ,MODE_SIGNAL,i+ 1 );       // сигнальная линия 1-ого MACD   
           Signal2Buffer[i]= iMACD ( 0 , PERIOD_H1 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL,i+ 1 );     // сигнальная линия 2-ого MACD
              
              max_S1= MathMax (Signal1Buffer[i],max_S1);
              min_S1= MathMin (Signal1Buffer[i],min_S1);
           
              max_S2= MathMax (Signal2Buffer[i],max_S2);
              min_S2= MathMin (Signal2Buffer[i],min_S2); 
    
              max1= MathMax (max_M1,max_S1);                                               // максимум 1-ого MACD
              min1= MathMin (min_M1,min_S1);                                               // минимум 1-ого MACD
           
              max2= MathMax (max_M2,max_S2);                                               // максимум 2-ого MACD
              min2= MathMin (min_M2,min_S2);                                               // минимум 2-ого MACD
      }   
        
           M=(max1-min1)/(max2-min2);                                                   // соотношение диапазонов max-min 1-ого и 2-ого MACD  
           max3=max2*M;                                                                 // max 3-его MACD,т.е."нового" 2-ого MACD
           Dmax_3=max1-max3;                                                             // смещение 3-ого MACD относительно 1-ого MACD
            
           
     for ( i= 0 ;i<=j;i++)
       
      {       
         Macd3Buffer[ 0 ]=Macd2Buffer[ 0 ]*M+Dmax_3;                                         // приведение диапазона max-min 2-ого MACD к диапазону 1-ого MACD,
                                                                                         // т.е.подучаем 3-ий MACD и совмещаем max и min 3-его MACD с                                                                                    // max и min 1-ого MACD                                                                                                                                       
         Signa13Buffer[ 0 ]=Signal2Buffer[ 0 ]*M+Dmax_3;                                     // max и min 1-ого MACD                                            
      }  
      
      
         D_sig= MathAbs (Signal1Buffer[ 0 ]-Signa13Buffer[ 0 ]);                               // разница между сигнальными линиями 1-ого и 3-ого MACD на
                                                                                         // нулевом баре
 if (Signa13Buffer[ 0 ]==Signal1Buffer[ 0 ])
      
         break ;          
             
              D_sig_Last=D_sig; 
              
         
         j++;
         
}             
     
       Comment ( "\n" , " Баров = " , WindowBarsPerChart ()- 1 , 
               "\n" , " Macd1Buffer = " , DoubleToStr (Macd1Buffer[ 0 ], 4 ),
               "\n" , " Signal1Buffer = " , DoubleToStr (Signal1Buffer[ 0 ], 4 ),
               "\n" , " Macd3Buffer = " , DoubleToStr (Macd3Buffer[ 0 ], 4 ),
               "\n" , " Signa13Buffer = " , DoubleToStr (Signa13Buffer[ 0 ], 4 ),
               "\n" , " D_sig = " , DoubleToStr (D_sig, 4 ));
               
               
               
               
               
               
//----
   last=Time[ 0 ];
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+