포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 135

 

좋은 하루입니다. 어렵지 않다면 초보자에게 다음과 같이 말하십시오.

1) 특정 변수의 값과 동일한 크기 의 배열을 선언하는 방법은 무엇입니까? (i=7이면 배열 double Muss[7] 등을 선언합니다);

2) 조건이 항상 false인 경우 사용자 정의 함수의 배열이 선언되고 적절하게 사용된 것으로 간주되는 이유는 무엇입니까?

동안 (거짓){

경고("aaaaaaa");

정적 이중 Buf_max[9000000];

정적 이중 Buf_min[9000000];}

3) 사용자 정의 함수와 일반적으로 단순 배열과 정적 배열 간에 차이가 있습니까?

 
ALXIMIKS :

좋은 하루입니다. 어렵지 않다면 초보자에게 다음과 같이 말하십시오.

1) 특정 변수의 값과 동일한 크기의 배열을 선언하는 방법은 무엇입니까? (i=7이면 배열 double Muss[7] 등을 선언합니다);

...

1) 배열 크기 조정()

 int i= 7 ;
double Muss[]; // объявление динамического массива
//---
int init() 
{
   ArrayResize (Muss,i); // устанавливает новый размер массива
   return ( 0 );
}
 

그런 헛소리 :

MarketInfo( Symbol() ,MODE_TRADEALLOWED)를 호출하면 - 1=거래가 허용됩니다.

시장 개요에서 기호 위로 마우스를 가져가면 - Trade: Close라는 문구가 있는 툴팁이 나타납니다.

여기서 초점은 무엇입니까?

실제로 거래를 허용하지 않지만 MODE_TRADEALLOWED가 잘못된 값을 반환하는 이유는 무엇입니까?

 
chief2000 :

표시기를 몇 번 실행하셨습니까? 그것은 여러 번 보인다(결과에서 주기가 눈에 띈다).
일종의 "구분자"로 초기화할 다른 인쇄를 추가하거나 입력 조건을 설정하거나 스크립트로 변환하여 한 번 이상 실행되지 않도록 하면 더 명확해집니다.


좋은 아이디어))

다음과 같이 더 쉽게 만들었습니다.

 //+------------------------------------------------------------------+
//|                                            massive_fffffffff.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link       ""

int start()
{ 

   int Array[ 4 ] = { 1 , 2 , 3 , 4 };
   int x1, x2, x3, x4;
   int Array_Size = ArrayRange (Array, 0 );
   
   for ( int i= 0 ; i< 11 ; i++)
   {
      i++;
       Print ( "_i = " , i);
   }

   for (x1= 0 ; x1<Array_Size; x1++)
   {
       Print ( "Combination = " , Array[x1]);

       for (x2=x1+ 1 ; x2<Array_Size; x2++)
      {
         Print ( "Combination = " , Array[x1] + "   " + Array[x2]);

         for (x3=x2+ 1 ; x3<Array_Size; x3++)
         {
             Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

             for (x4=x3+ 1 ; x4<Array_Size; x4++)
            {
               Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
            }
         }
      }
   }
   for ( int h= 0 ; h< 11 ; i++)
   {
      h++;
       Print ( "h = " , h);
   }


   return ( 0 );
}

로그는 다음과 같이 시작됩니다.

 2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 9
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 9
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 7
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 5
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 3
2013.09 . 10 17 : 09 : 08      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 1
2013.09 . 10 17 : 09 : 07      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 11
2013.09 . 10 17 : 09 : 07      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 10
2013.09 . 10 17 : 09 : 07      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 7
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 5
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 3
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 1
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 11
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 10
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: h = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: Combination = 1
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 11
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 9
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 7
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 5
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 3
2013.09 . 10 17 : 09 : 06      2013.08 . 15 00 : 00   massive_fffffffff EURUSD.GI,M5: _i = 1
2013.09 . 10 17 : 09 : 06      massive_fffffffff test started
2013.09 . 10 17 : 09 : 04      TestGenerator: spread set to 2
2013.09 . 10 17 : 09 : 04      massive_fffffffff EURUSD.GI,M5: loaded successfully

일반적으로 짝수 사이클은 극복되지 않습니다. 주문이 없습니다. 결론은 전혀 일관성이 없습니다.

 
hoz :


좋은 아이디어))

다음과 같이 더 쉽게 만들었습니다.

로그는 다음과 같이 시작됩니다.

일반적으로 짝수 사이클은 극복되지 않습니다. 주문이 없습니다. 결론은 전혀 일관성이 없습니다.


뭔가 복잡하다, 검증 단계에서 옵션에 따라 1~2줄이면 다 할 수 있다. 일반적으로 인터넷에서 모든 것을 할 수 있습니다. 철수 순서는 지정되지 않았습니다.


 bool Status_Run = true ;


start() {

   if (Status_Run== true ) {
      Status_Run  = false ;

      Print("---START ---");
      ......

   }
}
 
chief2000 :

뭔가 복잡하다, 검증 단계에서 옵션에 따라 1~2줄이면 다 할 수 있다. 일반적으로 인터넷에서 모든 것을 할 수 있습니다. 철수 순서는 지정되지 않았습니다.





루프가 한 번만 실행되도록 플래그를 입력하시겠습니까? 내 실행이 멈추지 않습니다 .. 여기 이 버전에서:

 //+------------------------------------------------------------------+
//|                                            massive_fffffffff.mq4 |
//|                                                              hoz |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "hoz"
#property link       ""

int start()
{ 

   bool Status_run = true ;
   int Array[ 4 ] = { 1 , 2 , 3 , 4 };
   int x1, x2, x3, x4;
   int Array_Size = ArrayRange (Array, 0 );
   
   if (Status_run == true )
   {
      Status_run = false ;

       for (x1= 0 ; x1<Array_Size; x1++)
      {
         Print ( "Combination = " , Array[x1]);

         for (x2=x1+ 1 ; x2<Array_Size; x2++)
         {
             Print ( "Combination = " , Array[x1] + "   " + Array[x2]);

             for (x3=x2+ 1 ; x3<Array_Size; x3++)
            {
               Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3]);

               for (x4=x3+ 1 ; x4<Array_Size; x4++)
               {
                   Print ( "Combination = " , Array[x1] + "   " + Array[x2] + "   " + Array[x3] + "   " + Array[x4]);
               }
            }
         }
      }
   }

   return ( 0 );
}

실제로 코드는 INIT에서와 같이 작동해야 하지만 한 번이면 끝입니다. 그러면 즉시 Boolean 변수 Status_run이 false 값을 취하여 if 조건이 더 이상 실행되지 않습니다.하지만 어떤 이유로 내 출력이 로그에서 끝나지 않습니다.

 
hoz :


루프가 한 번만 실행되도록 플래그를 입력하시겠습니까? 내 실행이 멈추지 않습니다 .. 여기 이 버전에서:

실제로 코드는 INIT에서와 같이 작동해야 하지만 한 번이면 끝입니다. 그러면 즉시 Boolean 변수 Status_run이 false 값을 취하여 if 조건이 더 이상 실행되지 않습니다.하지만 어떤 이유로 내 출력이 로그에서 끝나지 않습니다.


당신은 주기가 잘못된 결과를 주었다고 주장했고 나는 당신에게 확인 옵션을 제안했습니다. 필요에 따라 작동하면 알고리즘에 따라 더 진행하고, 그렇지 않으면 검증 단계에서 변경하십시오.

PS "Status_run"은 start() 전에 생성되어야 하며 전역 변수 입니다.
 

전문가, 말해봐. bool 변수를 설정했습니다. 플래그 = ; 시작할 때 ,

나는 거래를 엽니 다

if ( 조건 )

{

Opn_S=참;

플래그=거짓;

}

플래그를 열 때 false 가 반환되고 여는 조건에 이 플래그가 포함된 경우 플래그에 대한 질문이 있습니다. 플래그에 의해 전송된 참 또는 거짓은 얼마나 오래 저장되며 다음날 0으로 재설정됩니까?

 
Forexman77 :

전문가, 말해봐. 변수 bool = true 를 넣었습니다. 시작할 때 ,

나는 거래를 엽니 다

if ( 조건 )

{

Opn_S=참;

플래그=거짓;

}

플래그를 열 때 false 가 반환되고 여는 조건에 이 플래그가 포함된 경우 플래그에 대한 질문이 있습니다. 플래그에 의해 전송된 참 또는 거짓은 얼마나 오래 저장되며 다음날 0으로 재설정됩니까?


아니요, 새 틱마다 값이 플래그는 사실이 될 것입니다. https://book.mql4.com/en/variables/types

전역 수준에서 변수를 선언해야 합니다(예: 프로그램 시작 시, 모든 기능 외부에서).

또는 변수를 static - static bool flag=true로 만드십시오. .

 
ALXIMIKS :

아니요, 새 틱마다 값이 플래그는 사실이 될 것입니다. https://book.mql4.com/en/variables/types

전역 수준에서 변수를 선언해야 합니다. 프로그램 시작 시, 모든 기능 외부에서.

또는 변수를 static - static bool flag=true로 만드십시오. .

고맙습니다!