기고글 토론 "MetaTrader 5의 다중 통화 모드 구현" - 페이지 2

 
Lizar:

그러나 테스터의 전문가가 스파이를로드 할 수 없다는 사실은 이상합니다. 데모에서는 작동하나요?

오류가 발생합니다.

ERR_INDICATOR_CANNOT_CREATE

4802

인디케이터를 만들 수 없습니다.

인디케이터가 생성되지 않는 이유를 확인하세요.
 
Yedelkin:
오류가 발생합니다.

ERR_INDICATOR_CANNOT_CREATE

4802

인디케이터를 만들 수 없습니다.

인디케이터가 생성되지 않는 이유를 확인하세요.

아직 파악할 수 없습니다. 데모에서는 작동하지만 테스터에서는로드되지 않습니다 (생성되지 않음) . 이것도 시도했습니다:

#property tester_indicator "iSpy.ex5"
도움이되지 않습니다.
 
Lizar:

아직 단서를 얻을 수 없습니다. 데모에서는 작동하지만 테스터에서는로드되지 않습니다 (생성되지 않음) . 이것조차도 시도했습니다:

도움이되지 않습니다.

과학적 찌르는 방법으로 테스터에서 작동했습니다:

   if(iCustom("GBPUSD",PERIOD_M1,"iSpy.ex5",ChartID(),0)==INVALID_HANDLE) 

그리고 "GBPUSD" 에 대한 첫 번째 조건에서만 삽입하는 것이 충분했습니다 . 이제 질문 - 왜 정확히 이와 같은 이유는 무엇입니까?

 
Yedelkin:

과학적인 방법으로 - 이것이 테스터에서 작동하는 방식입니다:

그리고 첫 번째 조건 인 "GBPUSD" 에 대해서만 삽입하는 것으로 충분했습니다 . 이제 질문은 - 왜 정확히 그런가요?

와우, "과학적 찌르기"는 우리 사업에서 대단한 일입니다. 글쎄요, 왜 그런지는 개발자가 알아서 할 문제라고 생각합니다.

알아낼 수 있도록 도와주셔서 감사합니다.

 
Lizar:

스파이 제어판 MCM의 OnCalculate() 함수에는 한 줄이 있습니다:

기본적으로 가격[rates_total-1]은 마지막 미종가 막대의 종가와 같으며, 이는 다시 마지막 입찰 가격과 같습니다. 즉, 기본적으로 스파이에서 항상 입찰 가격을 가져옵니다.

강제로 매도호가를 가져오고 싶다면 이 줄을 예를 들어 .... 으로 바꾸세요.

고맙지만 약간 잘못되었습니다. 즉, 입찰 또는 요청 중 하나를 가져올 수 있습니다. 하지만 이런 상황을 분석하려면 매도 호가와 매수 호가를 한꺼번에 가져와야 합니다.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
3 틱과 입찰은 변경되지 않으므로 (아마도) 요청이 변경되었습니다. 더 완전한 정보를 얻고 싶습니다.

가능한가요 ?

 
Trolls:

감사합니다, 하지만 조금 틀렸습니다. 즉, 입찰 또는 요청 중 하나를 받을 수 있습니다. 하지만 입찰과 요청 두 가지 가격을 한 번에 모두 받으려면 다음과 같은 상황을 분석해야 합니다.

2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 가격=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
2011.01.24 10:59:28 exSpy (GBPUSD,M5) 08:59:24 -> id=2: EURUSD PERIOD_M1 price=1.35778
3 틱과 입찰은 변경되지 않으므로 (아마도) 요청이 변경되었습니다. 더 완전한 정보를 받고 싶습니다.

가능한가요 ?

몇 가지 방법이 있습니다:

1. 같은 심볼에 다른 아이디로 두 명의 스파이를 배치합니다. 한 명은 입찰을 보내고 다른 한 명은 요청을 보냅니다.

2. 동일한 심볼에 스파이를 한 명 두되, 다른 아이디로 두 개의 이벤트 입찰과 요청을 순차적으로 보내도록 합니다.

3. 더 많은 옵션이 있지만 이미 온차트이벤트에 매개변수를 전달하는 방식에 상당한 수정이 필요하므로 권장하지 않습니다.

Документация по MQL5: Основы языка / Функции / Передача параметров
Документация по MQL5: Основы языка / Функции / Передача параметров
  • www.mql5.com
Основы языка / Функции / Передача параметров - Документация по MQL5
 
스파이를 "새로운 진드기 도착의 세마포어"로 사용하고, 전문가 어드바이저에서 SymbolInfoTick을 사용하여 진드기에 대한 전체 정보를 얻습니다.
 
Kos:
스파이를 "새로운 진드기 도착의 세마포어"로 사용하고, 전문가 어드바이저에서 SymbolInfoTick을 사용하여 진드기에 대한 전체 정보를 얻습니다.

훌륭한 솔루션입니다.
 

괜찮다면 힌트를 주세요. 이 문서에는 열거형 예제인

enum ENUM_CHART_EVENT_SYMBOL
  {
   CHARTEVENT_INIT      =0,          // 이벤트 "초기화"
   CHARTEVENT_NO        =0,          // 이벤트 연결 끊김

   CHARTEVENT_NEWBAR_M1 =0x00000001, // 1분 차트의 '새 막대' 이벤트
   CHARTEVENT_NEWBAR_M2 =0x00000002, // 2분 차트의 '새 막대' 이벤트
   CHARTEVENT_NEWBAR_M3 =0x00000004, // 3분 차트의 '새 막대' 이벤트
   CHARTEVENT_NEWBAR_M4 =0x00000008, // 4분 차트의 '새 막대' 이벤트
   
   ...
   
   CHARTEVENT_ALL       =0xFFFFFFFF, // 모든 이벤트가 활성화됨
  };

열거형의 예와 이 열거형의 값으로 작업하는 예가 포함되어 있습니다:

if((flag_event & CHARTEVENT_NEWBAR_M1)!=0) EventCustom(CHARTEVENT_NEWBAR_M1,price_current

표준 라이브러리에서도 비슷한 구조가 관찰됩니다. 내가 이해하는 한, 우리는 16 진수와 비트 연산에 대해 이야기하고 있지만 인터넷에서 찾은 몇 가지 일반적인 기사는 MQL5에서 사용의 의미와 목적을 명확히하는 데 도움이되지 않았습니다. MQL5에서 사용되는 16진수 논리의 특성을 명확하고 명확하게 숙지할 수 있는 곳을 알려주시겠습니까?

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Yedelkin:

괜찮다면 힌트를 주세요. 이 문서에는 열거형 예제인

열거형의 예와 이 열거형의 값으로 작업하는 예가 포함되어 있습니다:

표준 라이브러리에서도 비슷한 구조가 관찰됩니다. 내가 이해하는 한, 우리는 16 진수와 비트 연산에 대해 이야기하고 있지만 인터넷에서 찾은 몇 가지 일반적인 기사는 MQL5에서 사용의 의미와 목적을 명확히하는 데 도움이되지 않았습니다. MQL5에서 사용되는 16진수 논리의 특성을 명확하고 명확하게 숙지할 수 있는 곳을 알려주시겠어요?

16진수 논리는 모든 곳에서 동일하게 사용됩니다. 여기에서 숫자 체계에 대해 읽을 수 있습니다. 위치 숫자 시스템에 대해 읽고 16진수와 2진수에 대한 참조를 확인할 수 있습니다. 또한 시스템 간 변환의 예도 있습니다.

모든 비트 연산은 이진 시스템을 위한 것입니다. MQL5의 비트 연산에 대한 자세한 내용은 여기를 참조하세요.