오류, 버그, 질문 - 페이지 342

 
Urain :

MQ에 대한 가장 간단한 솔루션은 함수 매개변수로 제공하는 것입니다.

현재 매개변수로 존재하는 변수 대신 데이터 배열. 물론 이 솔루션은 조언자 간에 데이터를 전송하는 것이 여전히 불가능하기 때문에 일방적이지만 여전히 없는 것보다는 낫습니다.

이런게 있었으면 더 좋았을텐데

 void SendData( const int handle, const long &lparam[], const double &dparam[], const string &sparam[])
void GetData( const int handle, const long &lparam[], const double &dparam[], const string &sparam[])

특정 수신자에게 보내고 특정 발신자로부터 수신할 수 있도록 합니다. 그리고 일부 차트를 보내지 않습니다. 그리고 핸들을 공개합니다. 글쎄, 이런 것.

 

그러한 작업이 있습니다. 조언자에서 표시기 창을 제거하고 복원해야 합니다. 그러나 계산된 데이터는 일정하게 유지됩니다.

간단한 해결책은 데이터 계산을 위한 표시기( "Calculate" 라고 함)와 데이터를 별도의 창에 표시하기 위한 표시기를 만드는 것입니다. 이를 "Plot" 이라고 합니다. "Plot" 표시기에서 iCustom ( "Calculate" )을 통해 호출하지만 이전에는 EA도 iCustom ( "Calculate" )을 통해 호출했습니다. 동일한 매개변수로 호출됩니다. 어디선가 동일한 차트에 동일한 매개변수를 가진 두 개의 지표가 생성되지 않고 이미 실행 중인 지표 프로세스의 메인 핸들 을 참조하는 추가 핸들 만 생성된다는 언급을 만났습니다.

따라서 질문: EA에서 "플롯" 을 제거하고 다시 추가한 후 " 플롯 "에서 시작된 "계산" 이 다시 계산됩니까, 아니면 단순히 EA에서 시작된 "계산" 표시기의 계산된 데이터를 선택합니까?

 
Urain :

어디선가 동일한 차트에 동일한 매개변수를 가진 두 개의 지표가 생성되지 않고 이미 실행 중인 지표 프로세스의 메인 핸들 을 참조하는 추가 핸들 만 생성된다는 언급을 만났습니다.

MQL5 참조 / 기술 지표 / 기술 지표 작업을 위한 기능:

" iMA, iAC, iMACD, iIchimoku 등과 같은 모든 기능은 클라이언트 단말기의 글로벌 캐시에 해당 기술 지표의 복사본을 생성합니다. 이러한 매개변수가 있는 지표의 복사본이 이미 존재하는 경우 새 복사본은 생성되었지만 이 사본에 대한 참조 카운터가 증가했습니다.

이 함수는 해당 표시기 복사본의 핸들을 반환합니다. 이 핸들을 사용하면 나중에 해당 표시기로 계산된 데이터를 받을 수 있습니다... "

" 참고 : 동일한 mql5 프로그램 내에서 동일한 매개변수를 사용하여 표시기 기능을 여러 번 호출해도 참조 카운터가 여러 번 증가하지 않으며 카운터는 한 번만 1씩 증가합니다. ..."

 
Yedelkin :

MQL5 참조 / 기술 지표 / 기술 지표 작업을 위한 기능:

...

" 참고 : 동일한 mql5 프로그램 내에서 동일한 매개변수를 사용하여 표시기 기능을 여러 번 호출해도 참조 카운터가 여러 번 증가하지 않으며 카운터는 한 번만 1씩 증가합니다. ..."

그렇습니다. 팁 고마워.

나는 이 줄을 잘 이해하지 못한다. Expert Advisor에서 시작된 지표를 하나의 프로그램으로 간주할 수 있습니까? 아니면 두 가지 프로그램을 의미합니까?

첫 번째 가정이면 모든 것이 정상입니다. 그러나 컴파일러가 이들을 다른 프로그램으로 간주한다면 문제가 있는 것입니다.

 
Urain :

Expert Advisor에서 시작된 지표를 하나의 프로그램으로 간주할 수 있습니까? 아니면 두 가지 프로그램을 의미합니까?

1. 참조: " iMA, iAC, iMACD, iIchimoku 등과 같은 모든 기능 은 클라이언트 터미널의 글로벌 캐시에 해당 기술 지표 의 복사본을 생성합니다 ."

나는 다음과 같이 읽었습니다(질문과 관련하여): " iMA, iAC, iMACD, iIchimoku 등과 같은 모든 기능 은 특정 mql5 프로그램에서 호출되고 해당 기술 지표의 복사본을 글로벌 캐시에 생성합니다. 클라이언트 터미널 ." 따라서 " Expert E가 표시기 I를 시작 합니다"라는 일반적인 표현은 Expert Advisor E가 표시기 I의 기능을 호출하여 해당 표시기의 복사본이 클라이언트 터미널의 글로벌 캐시에 생성되고 Expert Advisor E를 의미합니다. 이 복사본의 핸들을 받습니다.

2. "EA E가 표시기 기능 I을 호출"하는 경우 "하나의 mql5 프로그램 내에서" 표시기 기능을 호출하는 것에 대해 이야기하고 있습니다.

 
https://www.mql5.com/en/forum/23/page11 에서 420번째 빌드를 다운로드했는데 실제로는 412번째 빌드가 설치되어 있습니다. 문제가 있는 건가요 아니면 그들이 metaquotes.net 파일을 변경하는 것을 잊었나요?
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
 
Yedelkin :

1. 참조: " iMA, iAC, iMACD, iIchimoku 등과 같은 모든 기능 은 클라이언트 터미널의 글로벌 캐시에 해당 기술 지표의 복사본을 생성합니다 ."

나는 다음과 같이 읽었습니다(질문과 관련하여): " iMA, iAC, iMACD, iIchimoku 등과 같은 모든 기능 은 특정 mql5 프로그램에서 호출되고 해당 기술 지표의 복사본을 글로벌 캐시에 생성합니다. 클라이언트 터미널 ." 따라서 " Expert E가 표시기 I를 시작 합니다"라는 일반적인 표현은 Expert Advisor E가 표시기 I의 기능을 호출하여 해당 표시기의 복사본이 클라이언트 터미널의 글로벌 캐시에 생성되고 Expert Advisor E를 의미합니다. 이 복사본의 핸들을 받습니다.

2. "EA E가 표시기 기능 I을 호출"하는 경우 "하나의 mql5 프로그램 내에서" 표시기 기능을 호출하는 것에 대해 이야기하고 있습니다.

이해합니다. 여기서 핵심은 " 클라이언트 터미널의 전역 캐시에 있는 "이라는 표현입니다.

그렇다면 모든 것이 정상입니다. 다른 문제를 명확히 했습니다.

 
a483483 :
https://www.mql5.com/en/forum/23/page11 에서 420번째 빌드를 다운로드했는데 실제로는 412번째 빌드가 설치되어 있습니다. 문제가 있는 건가요 아니면 그들이 metaquotes.net 파일을 변경하는 것을 잊었나요?

따라서 기다리면 최신 버전으로 자동 업데이트됩니다.

위협은 터미널을 실행한 상태로 두고 비즈니스를 하십시오. 잠시 후 터미널에 해당 버전이 다운로드되었다는 메시지가 표시되고 터미널을 다시 시작하십시오.

 

안녕하세요!

420 릴리스로 업데이트한 후 Expert Advisor를 테스트하기 시작했으며 어떤 이유로 인해 "병합"되기 시작했음을 알았습니다. 나는 거래를 분석하고 손절매가 존재하지 않는 가격에서 발생한다는 것을 알아차렸습니다. 예를 들어 EURUSD 쌍의 경우 손절매가 1.06520으로 설정되어 이 막대 의 최대 가격 이 1.05920이지만 트리거됩니다. 자세히 보니 그런 거래가 많이 있습니다. 동일한 원칙(존재하지 않는 가격에서)에 따라 이익실현도 트리거됩니다. 델타는 동일합니다(600포인트). 차트의 테스터에서 위쪽 및 아래쪽 화살표는 막대에서 멀리 떨어진 공중에 "매달려" 있습니다.

스크린샷을 첨부합니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
파일:
eurusd.jpg  235 kb
 
Kairoser :

안녕하세요!

420 릴리스로 업데이트한 후 Expert Advisor를 테스트하기 시작했으며 어떤 이유로 인해 "병합"되기 시작했음을 알았습니다. 나는 거래를 분석하고 손절매가 존재하지 않는 가격에서 발생한다는 것을 알아차렸습니다. 예를 들어 EURUSD 쌍의 경우 손절매가 1.06520으로 설정되어 이 막대 의 최대 가격 이 1.05920이지만 트리거됩니다. 자세히 보니 그런 거래가 많이 있습니다. 동일한 원칙(존재하지 않는 가격에서)에 따라 이익실현도 트리거됩니다. 델타는 동일합니다(600포인트). 차트의 테스터에서 위쪽 및 아래쪽 화살표는 막대에서 멀리 떨어진 공중에 "매달려" 있습니다.

스크린샷을 첨부합니다.

MQ 서버에서 EA를 테스트해 보십시오. Alpari는 잘못된 과거 데이터로 인해 여전히 오래된 문제가 있을 수 있습니다.