static 변수(정적 변수)를 사용할 때 동작 MQL5 확인
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시간 동안 다리로 움직인다.
이렇게 하면 매번 초기화되지 않은 것을 이용하여 최종 값의 확정을 알릴 수 있다.
Reference
이 문제에 관하여(static 변수(정적 변수)를 사용할 때 동작 MQL5 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aisaki180507/items/b15597f301704a114386텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)