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

 
Dimka-novitsek :
여기, 나는 당신의 용서를 구합니다 .. 나는 대괄호를 8 번 다시 읽었습니다. 균형이 잘 잡혀 있습니다! 균형이 잡힌! 아님??


이 코드에서:

            Print(
          "strela1>strela2&&BUY==0&&SELL==0   " , GetLastError()  ,"  Ask ",Ask,
     "   NormalizeDouble( Bid- (stoplos*Point),Digits)  ", NormalizeDouble( Bid- (stoplos*Point),Digits),"  
         NormalizeDouble( Ask+( takeprofit*Point),Digits) ", NormalizeDouble( Ask+( takeprofit*Point),Digits)); }

따옴표(줄 끝에 있는 것)를 감쌉니다.

 
네... 바로 지금.
 
휴!! 도움이 되지 않습니다. A. 바로 지금, 새로운 Expert Advisor에서 개를 부분적으로 편집할 것입니다!
 
Dimka-novitsek :
휴!! 도움이 되지 않습니다. A. 바로 지금, 새로운 Expert Advisor에서 개를 부분적으로 편집할 것입니다!


나는 다음과 같은 경우에 이것을 한다:

- 함수의 전체 텍스트에 대해 설명합니다.

- 부분적으로 주석을 제거하고 컴파일하고 오류가 나타날 때까지 기다립니다.

 
   if (strela1>strela2&&BUY== 0 &&SELL== 0 )    {    
            
           OrderSend ( Symbol ( ), OP_BUY, lot, Ask, 3 , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),  
           NormalizeDouble ( Ask+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ); 

 
             Print (
           "strela1>strela2&&BUY==0&&SELL==0   " , GetLastError ()  , "  Ask " ,Ask,
     "   NormalizeDouble( Bid- (stoplos*Point),Digits)  " , NormalizeDouble ( Bid- (stoplos* Point ), Digits ),  
     "     NormalizeDouble( Ask+( takeprofit*Point),Digits) " , NormalizeDouble ( Ask+( takeprofit* Point ), Digits )); }

그래서

   for ( int A= 0 ; A< 100 ; A++)
   {
       double strela1 = iCustom ( NULL , taymfreym, "индикатор" , 2 , A);
       double strela2 = iCustom ( NULL , taymfreym, "индикатор" , 3 , A);
            
       int BUY= 0 ,SELL= 0 ; int ticket; 
       Print ( A,   "  strela1 " , strela1 , "    strela2  " , strela2 ); 
           
       for ( int i= 1 ; i<= OrdersTotal (); i++)
       {  
         if ( OrderSelect (i- 1 ,SELECT_BY_POS)==true) // Если есть следующий
         {                                       // Анализ ордеров:
             if ( OrderSymbol ()!= Symbol ( ) ) continue ;       // Не наш фин. инструм
             if ( OrderMagicNumber ( ) !=magicnumber) continue ;
             if ( OrderType ()== 0 ){ BUY++; ticket= OrderTicket ( );}
             if ( OrderType ()== 1 ) {SELL++;ticket= OrderTicket ( );}
         }
       }
    }

그래서

       if (strela1<strela2&&BUY== 0 &&SELL== 0 )
      {  

         OrderSend ( Symbol ( ), OP_SELL, lot, Bid, 3 , NormalizeDouble ( Ask- (stoplos* Point ), Digits ),  
         NormalizeDouble ( Bid+( takeprofit* Point ), Digits ), NULL , magicnumber, 0 , CLR_NONE ) ; 
         Print ( "strela1<strela2&&BUY==0&&SELL==   " , GetLastError ()  , "  Bid " ,Bid,
         "   NormalizeDouble( Ask- (stoplos*Point),Digits)  " , NormalizeDouble ( Ask- (stoplos* Point ), Digits ),
         "    NormalizeDouble( Bid+( takeprofit*Point),Digits) " , NormalizeDouble ( Bid+( takeprofit* Point ), Digits ) ) ;
      }

그래서

     Print (   "  Конец " );      

팁 1: 들여쓰기를 사용하여 프로그램 구성

팁 2: 이러한 오류 및 기타 여러 오류를 검색할 때 코드의 일부를 주석 처리하여 사용합니다. /* */ - 구문 오류는 매우 빠르게 검색됩니다.

 
Dimka-novitsek :
감사해요!! 바로 지금, 코드를 더 잘 볼 것입니다 ... 그리고 종이에 대괄호를 세어 보니 균형이 잡혀 있습니다 !!

한 조각 한 조각이 정확하다는 의미는 아닙니다. 중첩 규칙을 준수해야 합니다.

 
Dimka-novitsek :
지점은 어디에 있습니까? 아니면 내가 바보인가... 역시, 조건에 따라 주문을 연다!
if 문은 분기입니다. 두 번째 분기(else)가 없다는 것입니다.
 

감사해요!!

이 줄 없이 컴파일됩니다.

 Print ( "strela1<strela2&&BUY==0&&SELL==   " ,   GetLastError (),     "  Bid " ,  Bid,   "   NormalizeDouble( Ask- (stoplos*Point),Digits)  " , 
 NormalizeDouble ( Ask- (stoplos* Point ), Digits ),   "    NormalizeDouble( Bid+( takeprofit*Point),Digits) " ,   NormalizeDouble ( Bid+( takeprofit* Point ), Digits );

나는 그 안에 범죄가 보이지 않습니다! 나는 전체 고문을 부분적으로 옮기고 루트를 찾을 때까지 별도로 편집했습니다.

 
Dimka-novitsek :

감사해요!!

이 줄 없이 컴파일됩니다.

나는 그 안에 범죄가 보이지 않습니다! 나는 전체 고문을 부분적으로 옮기고 루트를 찾을 때까지 별도로 편집했습니다.

인쇄 에 대한 후행 중괄호 누락

 Print ( "strela1<strela2&&BUY==0&&SELL==   " ,   GetLastError (),     "  Bid " ,  Bid,   "   NormalizeDouble( Ask- (stoplos*Point),Digits)  " , 
 NormalizeDouble ( Ask- (stoplos* Point ), Digits ),   "    NormalizeDouble( Bid+( takeprofit*Point),Digits) " ,   NormalizeDouble ( Bid+( takeprofit* Point ), Digits ) ) ;
[Deleted]  

좋은하루..간단한 지표를 작성했습니다(첨부파일 참조).

간단히 말해서, 지표의 본질: 지표는 3줄로 구성됩니다.

1 라인 은 마침표 ab 를 사용하여 마감 시 두 MA 간의 차이를 보여줍니다. (조건부로).

라인 2 는 기간 cd 로 마감에 대한 두 MA 간의 차이를 표시합니다. (조건부로); abcd .

3행 은 1행과 2행의 차이의 MA를 표시합니다. MA(Lines1-Lines2)에는 특정 기간이 있습니다.

질문 : Line3(검정색)가 차트에 직선으로 표시되는 이유는 무엇입니까?


그림 참고 사항 : 위 그림은 원하는 결과이고 아래 그림은 내가 만든 표시기가 표시하는 것입니다.

참고 : 누군가가 더 많은 잼을 찾으면 힌트를 주시면 감사하겠습니다.

PS 포럼을 어지럽히지 않기 위해 미리 답변 주셔서 감사합니다.

파일:
aom3.mq4  12 kb