static 변수(정적 변수)를 사용할 때 동작 MQL5 확인

3313 단어 MQL4MQL5
정적 변수
static int count = 0;
일반 변수 성명에static 수식자를 넣으면 변수를 정적 변수로 할 수 있습니다.동적 변수는 변수가 성명할 때 메모리를 확보하고 정적 변수는 프로그램이 실행될 때 메모리를 한 번만 확보하며 변수의 초기화도 처음이다.
정적 변수
동적 변수
초기화 시기
프로그램 실행 시
변수 선언 시
EA의 On Tick 함수에서 동작의 차이를 확인합니다.
void OnTick()
  {
   static int count1 = 0; //静的変数

          int count2 = 0; //動的変数

   count1++;

   count2++;

   Print("静的変数 count1 = ",count1," , 動的変数 count2 = ",count2);
  }
모든 정적 변수의count1과 동적 변수의count2는 각각 하나의 값을 더하고 두 변수의 내용이 무엇이 다른지 실제적으로 조작해서 확인하자.

Print 함수를 통해 변수의 내용을 확인한 후 정적 변수는 각각 값이 1씩 증가하고 동적 변수는 각각 변수의 값이 0,count2++로 초기화됩니다.의 처리 후 출력된 값은 항상 1로 유지됩니다.
static 변수를 사용하여 촛불 다리의 최종치를 조사하여 확정하였습니다
static 변수가 매번 초기화되지 않은 것을 이용하여'초발의 최종치 확정'을 조사한다.새로운 촛불 발의 tick 음량은 0에서 시작하기 때문에 우리는 최신 발의 tic 음량과 static 변수를 비교하여 그 시기를 찾아내려고 한다.
void OnTick()
  {
   static int TickVolume = 0;

   if( TickVolume > iTickVolume(_Symbol,PERIOD_CURRENT,0) ) Print("終値が確定しました");

   TickVolume = iTickVolume(_Symbol,PERIOD_CURRENT,0);
  }
액션확인↓

※ 운행시간 프레임은 1시간 동안 다리로 움직인다.
이렇게 하면 매번 초기화되지 않은 것을 이용하여 최종 값의 확정을 알릴 수 있다.

좋은 웹페이지 즐겨찾기