2차원 배열 "Events_of_a new_bar[][]" 각 기호 및 각 기간의 새 막대 출현 이벤트 플래그를 기록합니다. "Symbols[]" 및 "Timeframes[]" 배열에 있는 항목. 이 배열은 1분에 한 번씩 타이머 이벤트의 심볼과 시간 프레임에 의해 순환적으로 채워집니다. 그 후에는 지워집니다. 채우기와 지우기 사이의 간격에서 이 배열은 사용자 기능에 의해 액세스되고 새 막대에 대한 알림을 받습니다.
2. 초기화 시 기호 배열의 크기를 설정하고 거기에 시장 리뷰에서 기호의 이름을 씁니다.
3. "Number_bars[][]" 배열의 첫 번째 차원 크기를 설정합니다. 이 크기는 기호 수와 동일하고 두 번째 차원은 시간 프레임 수와 동일합니다. 이 배열은 테이블과 같습니다. 각 기호 및 각 시간대의 현재 막대 수를 기록합니다. 금액은 iBars 함수에 의해 반환됩니다.
4. "New_bar_events[][]" 배열의 첫 번째 차원 크기를 설정합니다. 이 크기는 기호 수와 동일하고 두 번째 차원은 시간 프레임 수와 동일합니다. 이 배열은 테이블과 같습니다. 각 시간 프레임에서 각 기호의 새 막대에 대한 이벤트 플래그를 기록합니다.
5. 타이머 내부에서 분을 계산하고 기호(Symbols[] 배열에 있음)와 시간 프레임(Timeframes[] 배열에 있음)을 통해 이중(중첩) 루프를 수행합니다. iBars 함수를 호출하고 Symbols 및 Timeframes 배열에서 각 심볼과 각 시간 프레임에 대한 현재 막대 수를 가져옵니다. 먼저 현재 막대 수와 이미 배열에 있는 막대 수를 비교합니다. 이 값이 같지 않으면 새 막대 이벤트 플래그를 "New_bar_events[][]" 배열로 설정합니다. 그런 다음 이전 막대 대신 현재 막대 수를 기록합니다.
전역 배열 "Events_of_new_bar[][]"는 프로그램의 어느 지점에서나 사용할 수 있으며 매분 자동으로 채워지고 자동으로 지워집니다. 어레이가 채워지는 기간 동안 사용자 기능은 새 막대에 대한 새로운 데이터를 수신합니다. 그 후 어레이는 자동으로 지워집니다.
이 버전의 함수에는 New_bar() 함수가 전혀 없습니다.
이것은 내가 제공한 가장 자원을 절약하는 옵션입니다. 또한 타이머 또는 틱 이벤트에서 사용자 코드가 실행되는 동안 새 막대 이벤트가 항상 저장된다는 또 다른 이점이 있습니다.
이전에는 이 이벤트를 한 번만 받을 수 있었고 플래그는 New_bar() 함수에 의해 제거되었습니다. 이제 특수 함수는 분당 한 번씩 "Events_of_new_bar[][]" 배열을 지우고 사용자 코드를 실행한 후에만 호출됩니다.
사용자 정의 함수는 배열에 직접 액세스하고 타이머 또는 틱 이벤트 에서 코드가 실행될 때마다 새 막대 이벤트에 대한 정보를 수신할 수 있습니다.
리소스가 훨씬 더 절약됩니다.
마지막 코드도 작동하지 않습니다. 7분 동안 인쇄가 기다리지 않았습니다.
마지막 코드도 작동하지 않습니다. 7분 동안 인쇄가 기다리지 않았습니다.
이 함수는 OnTick 또는 타이머에서 호출해야 합니다.
뭔가 작은 문제가 있는 것 같지만 아직 현지화하지 못했습니다. 코드를 직접 보고 오류를 찾으십시오. 3센트 정도로 간단합니다. 그리고 댓글과 함께.
명확하지 않은 경우 질문하십시오. 다른 일을 할 시간입니다.
이 버전의 함수에는 New_bar() 함수가 전혀 없습니다.
이것은 내가 제공한 가장 자원을 절약하는 옵션입니다. 또한 타이머 또는 틱 이벤트에서 사용자 코드가 실행되는 동안 새 막대 이벤트가 항상 저장된다는 또 다른 이점이 있습니다.
이전에는 이 이벤트를 한 번만 받을 수 있었고 플래그는 New_bar() 함수에 의해 제거되었습니다. 이제 특수 함수는 분당 한 번씩 "Events_of_new_bar[][]" 배열을 지우고 사용자 코드를 실행한 후에만 호출됩니다.
사용자 정의 함수는 배열에 직접 액세스하고 타이머 또는 틱 이벤트 에서 코드가 실행될 때마다 새 막대 이벤트에 대한 정보를 수신할 수 있습니다.
리소스가 훨씬 더 절약됩니다.
나는 유머를 얻지 못했다. 그리고 무엇 - 디버거가 러시아어를 이해하지 못합니까? 아니면 단지 내 결함입니까? 라틴어에서는 변수를 볼 수 있지만 키릴 자모에서는 볼 수 없습니다.
Peter, 그러면 디버거를 어떻게 사용합니까, 아니면 사용하지 않습니까?
![](https://c.mql5.com/3/153/588__1.png)
누구나 코드에서 오류를 찾을 수 있습니다.
코드의 본질:
1. 전역 배열 선언:
2. 초기화 시 기호 배열의 크기를 설정하고 거기에 시장 리뷰에서 기호의 이름을 씁니다.
3. "Number_bars[][]" 배열의 첫 번째 차원 크기를 설정합니다. 이 크기는 기호 수와 동일하고 두 번째 차원은 시간 프레임 수와 동일합니다. 이 배열은 테이블과 같습니다. 각 기호 및 각 시간대의 현재 막대 수를 기록합니다. 금액은 iBars 함수에 의해 반환됩니다.
4. "New_bar_events[][]" 배열의 첫 번째 차원 크기를 설정합니다. 이 크기는 기호 수와 동일하고 두 번째 차원은 시간 프레임 수와 동일합니다. 이 배열은 테이블과 같습니다. 각 시간 프레임에서 각 기호의 새 막대에 대한 이벤트 플래그를 기록합니다.
5. 타이머 내부에서 분을 계산하고 기호(Symbols[] 배열에 있음)와 시간 프레임(Timeframes[] 배열에 있음)을 통해 이중(중첩) 루프를 수행합니다. iBars 함수를 호출하고 Symbols 및 Timeframes 배열에서 각 심볼과 각 시간 프레임에 대한 현재 막대 수를 가져옵니다. 먼저 현재 막대 수와 이미 배열에 있는 막대 수를 비교합니다. 이 값이 같지 않으면 새 막대 이벤트 플래그를 "New_bar_events[][]" 배열로 설정합니다. 그런 다음 이전 막대 대신 현재 막대 수를 기록합니다.
전역 배열 "Events_of_new_bar[][]"는 프로그램의 어느 지점에서나 사용할 수 있으며 매분 자동으로 채워지고 자동으로 지워집니다. 어레이가 채워지는 기간 동안 사용자 기능은 새 막대에 대한 새로운 데이터를 수신합니다. 그 후 어레이는 자동으로 지워집니다.
그게 다야.
이 함수는 OnTick 또는 타이머에서 호출해야 합니다.
뭔가 작은 문제가 있는 것 같지만 아직 현지화하지 못했습니다. 코드를 직접 보고 오류를 찾으십시오. 3센트 정도로 간단합니다. 그리고 댓글과 함께.
명확하지 않은 경우 질문하십시오. 다른 일을 할 시간입니다.
전문적인 대응
나는 유머를 얻지 못했다. 그리고 무엇 - 디버거가 러시아어를 이해하지 못합니까? 아니면 단지 내 결함입니까? 라틴어에서는 변수를 볼 수 있지만 키릴 자모에서는 볼 수 없습니다.
Peter, 그러면 디버거를 어떻게 사용합니까, 아니면 사용하지 않습니까?
전문적인 대응
이 함수는 OnTick 또는 타이머에서 호출해야 합니다.
뭔가 작은 문제가 있는 것 같지만 아직 현지화하지 못했습니다. 코드를 직접 보고 오류를 찾으십시오. 그것은 3 kopecks만큼 간단합니다 . 그리고 댓글과 함께.
명확하지 않은 경우 질문하십시오. 다른 일을 할 시간입니다.
너무 복잡하고 꼬여서 개가 다리를 부러뜨릴 정도입니다.
죄송하지만, 게다가 아직 완전히 읽을 수 없습니다.
너무 복잡하고 꼬여서 개가 다리를 부러뜨릴 정도입니다.
죄송하지만, 게다가 아직 완전히 읽을 수 없습니다.
"할 수 없다 ... 고문하지 말라 ..."라는 속담을 알고 있습니까? 주제에 대한 내 의견으로는.
"할 수 없다 ... 고문하지 말라 ..."라는 속담을 알고 있습니까? 주제에 대한 내 의견으로는.
맞습니다. 마침내 작업에 대처했습니다. 그렇지 않으면 솔루션을 올바르게 실행할 수 없습니다.