Init() 및 DeInit() 실행 순서 - 페이지 17

 
fxsaber :

서비스에는 OnInit, OnDeinit, OnTick(string)과 같은 거의 모든 On-function이 있는 것으로 나타났습니다. 시간제 노동자, 온트레이드, OnTradeTransaction, OnTester, OnTesterInit, OnTesterPass, OnTesterDeinit , OnBookEvent, OnChartEvent(long ChartID, ...), OnCalculate , ...


그리고 표시기 버퍼가 필요하지 않고 표시기/EA의 목발을 처리하고 싶지 않다면 제한(MT의 이전 버전에서 가져온) - 서비스를 겪지 않는 새로운 종류의 프로그램을 작성하십시오.

정확히.

OnCalculate는 하지 않습니다.

OnChartEvent를 사용하면 아직 솔루션이 없습니다.

 
Slawa :

정확히.

이 목발은 아마도 많은 사람들을 얻었을 것입니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

이전 TF에서 지표 데이터를 가져올 수 없습니다.

Sergey Dzyublik , 2017.04.14 10:55

사용자는 시장의 "강도"를 측정하는 지표를 가지고 있었습니다.
표시기는 현재 TF와 통화 쌍에서 작동했습니다.

작업은 표시할 독립적인 TF를 선택할 수 있는 기능과 함께 하나의 차트에 8가지 인기 있는 통화의 결과를 표시하는 것이었습니다.
어떤 사용자 TF가 켜져 있든 매개변수에 설정된 결과를 보여야 합니다.

필요한 TF에 대해 다른 통화에서 트래픽을 로드하는 문제는 다음 목발로 해결되었습니다.

   for ( int i = ArraySize (symbols_load) - 1 ; i >= 0 ; --i){
       int counter = 0 ;
       int max_count = 10 ;
       while (counter < max_count){
         RefreshRates ();
         double tmp_arr[];
         int res = CopyClose (symbols_load[i] + Suffix, int (TF), 0 , 3 , tmp_arr);
         if (res == 3 )
             break ;
         RefreshRates ();
         ++counter;
      }
   }

어디:

symbol_load - 로드할 통화 목록
접미사   - 통화 쌍의 이름에 가능한 접두사
TF - 필요한 기간

주어진 볼륨에 대한 기록 데이터(막대 및 눈금)를 구독/구독 취소할 수 있습니까? 주어진 기호에 대해 서비스에 대해 항상 특정 크기의 캐시(신선한 막대 및 눈금)를 갖습니다.


예를 들어 시장 스크리너를 작성하는 것이 훨씬 더 쉬울 것입니다.

 
Slawa :

지표는 의도한 목적에 맞게 사용해야 합니다.

즉, 차트 의 기호 -주기를 변경할 때 표시기의 OnInit 및 OnDeinit 실행 순서는 누구도 걱정하지 않아도 됩니다.

이 접근 방식은 많은 것을 설명합니다.

따라서 그것을 있는 그대로 받아들일 필요가 있으며, 가장 중요한 것은 그것에 대해 아는 것입니다.

 
Slawa :

아니요.

지표가 무엇인지 다시 읽으십시오. 아켈리스에서. 콜비에서. 예, Yandex에 시장 지표가 무엇인지 물어보십시오.

MT3에서 사용자 지정 표시기의 개념을 도입했을 때 표시기 버퍼 가 2개만 있었기 때문에 차트의 개체로 작업할 수 있었습니다.

역사에 대한 작은 탈선. 먼저 FXCharts가 있었는데 2002년 10월에 입사한 이후로 그를 찾지 못했습니다. 그 다음이 MetaTrader였습니다. 저는 MQL II(FXCharts에는 이미 거래 전략 언어가 있음)를 개발하기 위해 회사에 왔습니다. MQL II와 전문가를 만들 때 이름을 MetaTrader 2로 변경했습니다. 사용자 지정 지표를 작성할 수 있게 되자 MetaTrader는 세 번째인 MetaTrader 3가 되었습니다.

그런 다음 MetaTrader 4와 MQL4가 있었습니다. 사용자 지정 표시기는 이제 8개의 표시기 버퍼로 작동할 수 있습니다. 차트의 개체에 대한 작업 기능은 그대로 유지됩니다. 그러나 지표가 인터페이스 스레드에서 계산되었기 때문에 개체 작업을 남용하는 사람은 거의 없었습니다.

그리고 여기 MT5가 있습니다. 아키텍처는 완전히 다르지만 차트의 그래픽 개체로 작동하는 기능 측면에서 우리는 MT4의 인질이 되었습니다. 예, 우리는 Stakhanovites입니다. 영웅처럼 지표에서 차트를 관리할 수 있는 거의 무한한 가능성을 추가했습니다. 우리는 도착. 스톡 콘텐츠 - 아무것도에 대한 토론의 16 페이지.

서비스로 전환하자

서비스 폴더가 MQL5 편집기에 나타났지만 이 도구를 사용하는 방법은 아직 명확하지 않습니다. https://www.mql5.com/ru/forum/190129


Services , новый функциона в архитеркуте MT5, похороны MT4 не за горой.
Services , новый функциона в архитеркуте MT5, похороны MT4 не за горой.
  • www.mql5.com
Хотелось бы подробней с примерами использования обсудить новый функционал...
 
Slawa :

지표는 의도한 목적에 맞게 사용해야 합니다.

즉, 차트 의 기호 -주기를 변경할 때 표시기의 OnInit 및 OnDeinit 실행 순서는 누구도 걱정하지 않아도 됩니다.

그리고 왜 모든 논쟁이 그래픽 개체로 넘어갔습니까? 전역 변수, 파일 등과 같은 다른 전역 리소스가 있습니다(의도한 대로 표시기에 사용할 수 있습니까?). " 기호를 변경할 때 표시기의 OnInit 및 OnDeinit 실행 순서 - 차트의 주기는 누구에게도 방해가 되지 않는다 ". 다시 한번 말하지만, 이제 핵심은 MQL 프로그래머가 init/deinit 호출 시퀀스의 불확정성으로 인한 레이크를 우회하기 위해 순서에 대해 걱정해야 하는 방식으로 구현되었다는 사실에 주의를 기울입니다. MQL에 대해 걱정하지 않으려면 내부적으로 불확실성을 해결하는 커널이 필요합니다.
 
Stanislav Korotky :
그리고 왜 모든 논쟁이 그래픽 개체로 넘어갔습니까? 전역 변수, 파일 등과 같은 다른 전역 리소스가 있습니다(의도한 대로 표시기에 사용할 수 있습니까?). " 기호를 변경할 때 표시기의 OnInit 및 OnDeinit 실행 순서 - 차트의 주기는 누구에게도 방해가 되지 않는다 ". 다시 한번 말하지만, 이제 핵심은 MQL 프로그래머가 init/deinit 호출 시퀀스의 불확정성으로 인한 레이크를 우회하기 위해 순서에 대해 걱정해야 하는 방식으로 구현되었다는 사실에 주의를 기울입니다. MQL에 대해 걱정하지 않으려면 내부적으로 불확실성을 해결하는 커널이 필요합니다.
그것은 파일에 관한 것입니다. 좋은 질문입니다. 초기화 해제 중에 무언가를 재설정해야 하고 후속 초기화 중에 무언가를 읽어야 하는 경우 특정 문제가 있을 수 있습니다.
 
Stanislav Korotky :

서비스 또는 하나의 차트에서 여러 Expert Advisors를 실행하는 기능이 논의된 문제를 완전히 커버할 수 없는 이유는 무엇입니까?

스레드에서 언급한 지표의 경우 대신 지표의 전체 계산 부분을 포함하는 서비스가 시작된다고 상상해 보십시오. 그리고 차트에 표시기를 올려 서비스에서 계산한 데이터를 표시기 버퍼에 표시 합니다.


지표는 의도한 용도에 맞게 사용해야 하며, 지표만 한 차트에서 여러 번 실행할 수 있다는 이유로 지표를 보편적으로 사용해서는 안 됩니다. 따라서 지표에서 OrderSend 금지에 대해 불평을 시작할 수 있습니다.

 
fxsaber :

서비스 또는 하나의 차트에서 여러 Expert Advisors를 실행하는 기능이 논의된 문제를 완전히 커버할 수 없는 이유는 무엇입니까?

스레드에서 언급한 지표의 경우 대신 지표의 전체 계산 부분을 포함하는 서비스가 시작된다고 상상해 보십시오. 그리고 차트에 표시기를 올려 서비스에서 계산한 데이터를 표시기 버퍼에 표시 합니다.

저것들. 서비스를 통해 지표를 만들 수 있습니까?
 
Alexey Kozitsyn :
저것들. 서비스를 통해 지표를 만들 수 있습니까?
이것은 여전히 Expert Advisor에서 가능합니다(일부 제한 있음).
 
fxsaber :
이것은 여전히 Expert Advisor에서 가능합니다(일부 제한 있음).
저것들. 목발을 사용하여? 예를 들어도 될까요?