Mt4 지원 종료. - 페이지 35

 
Реter Konow :

이 버전의 함수에는 New_bar() 함수가 전혀 없습니다.

이것은 내가 제공한 가장 자원을 절약하는 옵션입니다. 또한 타이머 또는 틱 이벤트에서 사용자 코드가 실행되는 동안 새 막대 이벤트가 항상 저장된다는 또 다른 이점이 있습니다.

이전에는 이 이벤트를 한 번만 받을 수 있었고 플래그는 New_bar() 함수에 의해 제거되었습니다. 이제 특수 함수는 분당 한 번씩 "Events_of_new_bar[][]" 배열을 지우고 사용자 코드를 실행한 후에만 호출됩니다.

사용자 정의 함수는 배열에 직접 액세스하고 타이머 또는 틱 이벤트 에서 코드가 실행될 때마다 새 막대 이벤트에 대한 정보를 수신할 수 있습니다.

리소스가 훨씬 더 절약됩니다.

마지막 코드도 작동하지 않습니다. 7분 동안 인쇄가 기다리지 않았습니다.

 //+------------------------------------------------------------------+
//Пример использования событий нового бара в пользовательском функционал.
//Просто обращаемся к глобальному массиву "События_нового_бара[a1][a2]" напрямую
//и используем событие в наших торговых алгоритмах.
//+------------------------------------------------------------------+
void Моя_стратегия_торговли_на_новых_барах()
{
   for ( int a1 = 0 ; a1 < Всех_символов; a1++)
   {
     string Этот_символ    = Символы[a1];
     //----------------------------------
     for ( int a2 = 0 ; a2 < Всех_таймфреймов; a2++)
      {
       bool    Новый_бар      = События_нового_бара[a1][a2];
       int     Этот_таймфрейм = Таймфреймы[a2];
       //----------------------------------
       if (Новый_бар && Этот_символ == "EURUSD" && Этот_таймфрейм == PERIOD_M5 )
         {
           Print ( "M5" );
         }
       //---------------------------------- 
       if (Новый_бар && Этот_символ == "EURUSD" && Этот_таймфрейм == PERIOD_M1 )
         {
           Print ( "M1" );
         }
       //----------------------------------        
      }
   }
}
 
Vitaly Muzichenko :

마지막 코드도 작동하지 않습니다. 7분 동안 인쇄가 기다리지 않았습니다.

이 함수는 OnTick 또는 타이머에서 호출해야 합니다.

뭔가 작은 문제가 있는 것 같지만 아직 현지화하지 못했습니다. 코드를 직접 보고 오류를 찾으십시오. 3센트 정도로 간단합니다. 그리고 댓글과 함께.

명확하지 않은 경우 질문하십시오. 다른 일을 할 시간입니다.

 
Реter Konow :

이 버전의 함수에는 New_bar() 함수가 전혀 없습니다.

이것은 내가 제공한 가장 자원을 절약하는 옵션입니다. 또한 타이머 또는 틱 이벤트에서 사용자 코드가 실행되는 동안 새 막대 이벤트가 항상 저장된다는 또 다른 이점이 있습니다.

이전에는 이 이벤트를 한 번만 받을 수 있었고 플래그는 New_bar() 함수에 의해 제거되었습니다. 이제 특수 함수는 분당 한 번씩 "Events_of_new_bar[][]" 배열을 지우고 사용자 코드를 실행한 후에만 호출됩니다.

사용자 정의 함수는 배열에 직접 액세스하고 타이머 또는 틱 이벤트 에서 코드가 실행될 때마다 새 막대 이벤트에 대한 정보를 수신할 수 있습니다.

리소스가 훨씬 더 절약됩니다.


나는 유머를 얻지 못했다. 그리고 무엇 - 디버거가 러시아어를 이해하지 못합니까? 아니면 단지 내 결함입니까? 라틴어에서는 변수를 볼 수 있지만 키릴 자모에서는 볼 수 없습니다.

Peter, 그러면 디버거를 어떻게 사용합니까, 아니면 사용하지 않습니까?

 

누구나 코드에서 오류를 찾을 수 있습니다.

코드의 본질:

1. 전역 배열 선언:

  • 기호 이름 "Symbols[]"에 대한 1차원 배열
  • 시간 프레임 "Timeframes[]"에 대한 1차원 배열
  • 현재 막대 수를 쓰는 2차원 배열 "Number_bars[][]"
  • 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[][]"는 프로그램의 어느 지점에서나 사용할 수 있으며 매분 자동으로 채워지고 자동으로 지워집니다. 어레이가 채워지는 기간 동안 사용자 기능은 새 막대에 대한 새로운 데이터를 수신합니다. 그 후 어레이는 자동으로 지워집니다.


그게 다야.

 
Реter Konow :

이 함수는 OnTick 또는 타이머에서 호출해야 합니다.

뭔가 작은 문제가 있는 것 같지만 아직 현지화하지 못했습니다. 코드를 직접 보고 오류를 찾으십시오. 3센트 정도로 간단합니다. 그리고 댓글과 함께.

명확하지 않은 경우 질문하십시오. 다른 일을 할 시간입니다.


전문적인 대응

 
Nikolai Semko :

나는 유머를 얻지 못했다. 그리고 무엇 - 디버거가 러시아어를 이해하지 못합니까? 아니면 단지 내 결함입니까? 라틴어에서는 변수를 볼 수 있지만 키릴 자모에서는 볼 수 없습니다.

Peter, 그러면 디버거를 어떻게 사용합니까, 아니면 사용하지 않습니까?

Nikolai, 부끄럽게도 디버거를 사용하는 방법을 모릅니다. 사용하지 않았습니다. ((
 
Galina Bobro :

전문적인 대응

이것은 전문적인 트롤링입니다.
 
Реter Konow :

이 함수는 OnTick 또는 타이머에서 호출해야 합니다.

뭔가 작은 문제가 있는 것 같지만 아직 현지화하지 못했습니다. 코드를 직접 보고 오류를 찾으십시오. 그것은 3 kopecks만큼 간단합니다 . 그리고 댓글과 함께.

명확하지 않은 경우 질문하십시오. 다른 일을 할 시간입니다.

너무 복잡하고 꼬여서 개가 다리를 부러뜨릴 정도입니다.

죄송하지만, 게다가 아직 완전히 읽을 수 없습니다.

 
Vitaly Muzichenko :

너무 복잡하고 꼬여서 개가 다리를 부러뜨릴 정도입니다.

죄송하지만, 게다가 아직 완전히 읽을 수 없습니다.

"할 수 없다 ... 고문하지 말라 ..."라는 속담을 알고 있습니까? 주제에 대한 내 의견으로는.

 
Реter Konow :

"할 수 없다 ... 고문하지 말라 ..."라는 속담을 알고 있습니까? 주제에 대한 내 의견으로는.

맞습니다. 마침내 작업에 대처했습니다. 그렇지 않으면 솔루션을 올바르게 실행할 수 없습니다.