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

 
Ashes :

바로 위에 다음과 같이 썼습니다.

그런 의도였을 수도 있겠지만... 저는 본격적인 실험(빌드 358)을 하고 있습니다.

"C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history" 폴더에서 모든 기호를 삭제합니다.

나는 Alpari-Demo에 연결합니다(5개의 차트가 터미널에 열려 있습니다: EURUSD H1, EURCHF H1, USDJPY H1, GPBUSD H1+M1).

몇 분 후에 나는 그림을 관찰합니다(스토리 다운로드는 여전히 진행 중입니다).

폴더 내용 C:\Program Files\MetaTrader 5\Bases\Alpari-Demo\history

메시지 주셔서 감사합니다. 알아봅시다.
 
Interesting :

...

동시에 히스토리 파일의 크기를 올바르게 이해하면 "작업" 디렉토리의 위치로 표시된 터미널 디렉토리를 찾습니다. C:\Program Files\MetaTrader 5\Bases\ Alpari-Demo \역사\EURJPY

테스터는 C:\Program Files\MetaTrader 5\tester\ Agent (에이전트 수에 따라)\bases\DC 또는 다른 브로커(서버)\history\... 이 데이터에 대한 자체 디렉토리를 가지고 있습니다.

그렇다면 실제 문제는 무엇입니까?

문제는 원본 메시지를 주의 깊게 읽지 않으려는 것입니다.)

테스터의 폴더에는 금년도에 테스트할 때 실제로 2개의 파일(2009, 2010)이 있는데, 특정 악기에서 테스터를 처음 실행하면 해당 악기에 대한 모든 이력이 다운로드됩니다(다운로드되지 않은 경우 이전 또는 삭제됨) "x :\Program Files\MetaTrader 5\Bases\..." 폴더로 이동하고 이 추가 정보 다운로드를 완료할 때까지 테스트가 시작되지 않습니다.

나는 \MetaTrader 5\Bases\ 에서 MetaTrader 5\tester\ Agent(에이전트 수에 따라)\bases로 데이터를 복제하는 것에 신경 쓰지 않습니다. 왜냐하면 이것은 최적화 매개변수를 통해 정렬할 때 따옴표의 절대적인 동일성을 보장하기 위한 틱 상태의 스냅샷이라는 것을 이해합니다. 그러나 순간에 절대적으로 불필요한 데이터를 업로드하는 이유는 무엇입니까?

 
Ashes :

문제는 원본 메시지를 주의 깊게 읽지 않으려는 것입니다.)

테스터의 폴더에는 금년도에 테스트할 때 실제로 2개의 파일(2009, 2010)이 있는데, 특정 기기에서 테스터를 처음 실행하면 그에 대한 모든 이력이 다운로드됩니다(다운로드되지 않은 경우 이전 또는 삭제됨) "x :\Program Files\MetaTrader 5\Bases\..." 폴더로 이동하고 이 추가 정보를 끝까지 다운로드할 때까지 테스트가 시작되지 않습니다.

나는 \MetaTrader 5\Bases\ 에서 MetaTrader 5\tester\ Agent(에이전트 수에 따라)\bases로 데이터를 복제하는 것에 신경 쓰지 않습니다. 왜냐하면 이것은 최적화 매개변수를 통해 정렬할 때 따옴표의 절대적인 동일성을 보장하기 위한 틱 상태의 스냅샷이라는 것을 이해합니다. 그러나 순간에 절대적으로 불필요한 데이터를 업로드하는 이유는 무엇입니까?

내가 정말 틀렸고 생각할 것이 있는지 확인하겠습니다.
 
Renat :
기록이 올바르게 업로드되었습니다. 이는 2004년에 대한 요청이 있음을 의미합니다. 그리고 테스터를 사용할 때 전체 스토리가 무조건적으로 최대 깊이까지 올바르게 업로드됩니다. 이것은 절대적으로 정확하고 의식적인 결정입니다. MT4 사용자의 "이해할 수 없는" 감탄사만 보면 충분합니다. 우리가 이력을 처리하지 않으면 사용자는 이력을 제어할 수도 없습니다.

제 답변을 다시 읽어주세요.

우리는 전체 스토리를 업로드하고 다시 확인하지 않습니다. 테스터가 사용되는 경우 이것은 불가피하게(이 테스트가 아니라 다음 테스트에서도) 이 특정 테스트에서 짧은 기간의 히스토리가 사용된다는 사실에 관계없이 전체 히스토리에 대한 완전하고 무조건적인 작업을 의미합니다. 따라서 단말은 사전에 준비하여 필요한 심볼의 전체 이력의 깊이와 정확성을 완전히 재확인합니다. 물론, 특정 테스트를 위해 특정 테스트 에이전트에 필요한 이력 기간만 전송/동기화합니다.

트레이더는 테스트를 위한 조건을 제대로 준비하기 위한 규칙을 인지하지 못하는 경향이 있기 때문에 터미널 자체에서 최대한 환경을 준비하고 이중 확인하려고 합니다. MetaTrader 5에서는 거래자가 수동으로 데이터 다운로드 및 동기화 를 재개할 필요가 없도록 요청된 데이터의 양과 깊이에 대한 제한을 특별히 제거했습니다.

Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
Документация по MQL5: Получение рыночной информации / SymbolIsSynchronized
  • www.mql5.com
Получение рыночной информации / SymbolIsSynchronized - Документация по MQL5
 
Interesting :

1. 전략 테스터

테스터가 테스트할 때 테스터 매개변수에 지정된 쌍만 로드됩니다. 모든 캐릭터에 대해 최적화가 수행되는 경우 각 캐릭터가 순차적으로 로드됩니다.

Expert Advisor가 다중 통화인 경우 나머지 기호는 직접 로드해야 합니다.

아이디어는 이렇습니다.

ㅏ. 테스터는 테스터 매개변수에 지정된 쌍만 처음에 배치되는 자체 시장 검토가 있습니다.

비. 필요한 경우 나머지 쌍은 Select를 사용하여 EA에서 테스터의 시장 개요에 추가해야 합니다.

에. 시장 개요에 존재하는 쌍에 따라 전략 테스터는 터미널과 데이터를 동기화하고, 터미널은 거래 서버(계정이 개설된 서버)와 데이터를 동기화합니다.

동시에 전체 테스트 기간 + 테스트 시작일(내가 틀리지 않았다면 1년) 전 일정량의 정보에 대한 히스토리를 로드한다.

에. 이러한 전문가(귀하)의 깊이가 필요한 이력에 맞지 않으면 직접 로드해야 합니다. 예를 들어, 초기화 블록에서 이전에 기록 및 데이터 동기화의 존재를 확인했습니다.

ㅏ. 논리적

비. 즉, 일반적으로 Expert Advisor가 테스트 중에 필요한 모든 것을 테스트하기 전에 다운로드하는 것은 불가능합니다(모든 것을 완전히 다운로드하지 않은 경우).

에. 즉, 테스터에서 Expert Advisor를 시작하기 전에 해당 쌍은 아직 테스터의 시장 개요에서 사용할 수 없습니다(a 단락에 따라).

2)에서. 깊이 수트, 나는 더 많은 것을 요구하지 않았습니다.

따라서 Expert Advisor의 데이터에 액세스한 후 이유 b, c, c(2)로 인해 다운로드하는 것이 더 논리적(그러나 조금 더 어렵습니다)입니다.

#property tester_symbol 을 추가하여 a 지점에서 테이블을 채우는 것이 좋습니다(아이디어가 올바르게 설명된 경우). #property description 과 같이 여러 개를 설정할 수 있습니다. 그러나 나는 여전히 #property tester_symbol 이 없는 경우 페이징이 "진행 중에"(기본 기호 제외) 진행되어야 한다고 확신합니다. 그들의 NEED는 Expert Advisor 자체의 알고리즘에만 의존합니다.

흥미로운 :

2. 터미널

여기에서 역사는 비슷한 방식으로 형성됩니다(내가 이해하는 한, 열린 차트를 고려하여 터미널 시장 검토에 표시된 기호에 따라). 터미널 작업을 시작하면 작업 중인 기호에 대해 필요한 최소 기록이 형성됩니다(정확한 막대 수는 기억나지 않지만 포럼에 반복적으로 표시됨).

이 깊이가 적합하지 않으면 데이터를 독립적으로 로드해야 합니다. 이렇게 하려면 최대 TF - 월(권장 옵션 중 하나)로 전환하고 차트를 왼쪽으로 스크롤하여 기록을 최대 깊이로 로드해야 합니다.

또한 터미널 매개변수에서 차트에 필요한 막대 수를 설정하는 것이 바람직합니다.

결과적으로 특정 경우에 다운로드되는 것은 필요한 최소값이 아니라 우리가 작업하는 기호의 전체 기록입니다.

관찰(빌드가 360으로 변경됨): 조건을 약간 변경하면 초기 다운로드 후 전체 기록 폴더를 삭제하지 않고 현재 연도를 그대로 두고 이전 연도의 스왑이 임의로 수행되지 않습니다! 이 기호에서 테스터를 실행하기 전에.

 
Renat :

제 답변을 다시 읽어주세요.

우리는 전체 스토리를 다운로드하고 다시 확인하지 않습니다. 테스터가 사용되는 경우 이것은 불가피하게(이 테스트가 아니라 다음 테스트에서도) 이 특정 테스트에서 짧은 기간의 히스토리가 사용된다는 사실에 관계없이 전체 히스토리에 대한 완전하고 무조건적인 작업을 의미합니다. 따라서 단말은 사전에 준비하여 필요한 심볼의 전체 이력의 깊이와 정확성을 완전히 재확인합니다. 물론, 특정 테스트를 위해 특정 테스트 에이전트에 필요한 이력 기간만 전송/동기화합니다.

트레이더는 테스트를 위한 조건을 제대로 준비하기 위한 규칙을 인지하지 못하는 경향이 있기 때문에 터미널 자체에서 최대한 환경을 준비하고 이중 확인하려고 합니다. MetaTrader 5에서는 거래자가 수동으로 데이터 다운로드 및 동기화 를 재개할 필요가 없도록 요청된 데이터의 양과 깊이에 대한 제한을 특별히 제거했습니다.

"되기"처럼! 다음에 테스터를 사용하면 이력을 수정할 수 있습니다(특히 지금은 완전한 부재에서 비뚤어진 데이터에 이르기까지 서로 다른 DC에 대해 많은 단점이 있는 경우).

사용자는 그에게 떨어진 행복을 이해하지 못합니다! 설정에서 "I DON'T WANT, I want only at the request of user or Expert/script/indicator" 확인란을 추가합니다. 그리고 "나는 MT5 자동 업데이트를 강제하고 싶지 않습니다"도 마찬가지입니다.

 
Ashes :

ㅏ. 논리적

비. 즉, 일반적으로 Expert Advisor가 테스트 중에 필요한 모든 것을 테스트하기 전에 다운로드하는 것은 불가능합니다(모든 것을 완전히 다운로드하지 않은 경우).

에. 즉, 테스터에서 Expert Advisor를 시작하기 전에 해당 쌍은 아직 테스터의 시장 개요에서 사용할 수 없습니다(a 단락에 따라).

2)에서. 깊이 수트, 나는 더 많은 것을 요구하지 않았습니다.

따라서 Expert Advisor의 데이터에 액세스한 후 이유 b, c, c(2)로 인해 다운로드하는 것이 더 논리적(그러나 조금 더 어렵습니다)입니다.

#property tester_symbol 을 추가하여 a 지점에서 테이블을 채우는 것이 좋습니다(아이디어가 올바르게 설명된 경우). #property description 과 같이 여러 개를 설정할 수 있습니다. 그러나 나는 여전히 #property tester_symbol 이 없는 경우 페이징이 "진행 중에"(기본 기호 제외) 진행되어야 한다고 확신합니다. 그들의 NEED는 Expert Advisor 자체의 알고리즘에만 의존합니다.


테스터를 포함하여 기호 목록을 구성하려면 이러한 기능을 사용하는 것이 편리합니다.

시장 정보 얻기

시장 상황에 대한 정보를 얻기 위한 함수입니다.

기능

행동

기호총계

사용 가능한(MarketWatch 또는 모두에서 선택됨) 기호의 수를 반환합니다.

기호 이름

지정된 기호의 이름을 반환합니다.

기호선택

MarketWatch 창에서 기호를 선택하거나 창에서 기호를 제거합니다.

 
"배열 크기 조정을 자주 사용하시나요? 가끔 머리가 지끈거릴 때가 있는데 " Array out of the range in... "이 뜨는 이유를 모르십니까? 그럼 바로 가겠습니다!" :디

-ArrayResize() 가 "-1"을 반환하는지 확인합니까?

이전에는 "메모리 부족"과 같은 메시지가 팝업되는 것처럼 보였고 프로그램이 충돌했지만 이제는 그렇지 않습니다. 빌드 360.

Документация по MQL5: Операции с массивами / ArrayResize
Документация по MQL5: Операции с массивами / ArrayResize
  • www.mql5.com
Операции с массивами / ArrayResize - Документация по MQL5
 

빌드 360. CTrade의 오류처럼 보입니다.

2010.10.04 18:59:00 CTrade::PositionOpen: 즉시 구매 0.10 EURUSD에서 1.36890 sl: 1.36390 tp: 1.37890 [ 0.00000 에 완료]

2010.10.05 09:43:00 CTrade::PositionModify: 구매 0.00 EURUSD 수정 (sl: 1.36897, tp: 1.37861) [완료]

 

빌드 360. 테스터에 "테스터 에이전트가 실패했습니다"라는 메시지가 여러 번 표시되었습니다.

GK 0 테스터 18:26:31 EURUSD: 히스토리 예비 다운로드 시작

CL 0 테스터 18:28:55 EURUSD: 히스토리 예비 다운로드 완료

GH 0 코어 2 18:28:59 에이전트 프로세스 시작됨

HP 0 코어 2 18:29:00 127.0.0.1:3000에 연결

OI 2 Tester 18:29:05 테스터 에이전트가 실패했습니다.

LI 0 코어 2 18:29:05 연결 닫힘

GN 0 코어 2 18:34:14 에이전트 프로세스 시작됨

KJ 0 코어 2 18:34:14 127.0.0.1:3000에 연결

RJ 0 코어 2 18:34:15 연결됨

OP 0 코어 2 18:34:15 승인됨(에이전트 빌드 360)

NH 0 Tester 18:34:15 EURUSD,M1(Alpari-Demo): Experts\third.ex5 테스트 2010.10.04 00:00 ~ 2010.11.05 00:00 시작

...

HQ 0 Core 2 19:27:47 에이전트 프로세스 시작됨

II 0 코어 2 19:27:48 127.0.0.1:3000에 연결

CP 2 테스터 19:27:53 테스터 에이전트가 실패했습니다.

HP 0 Core 2 19:27:53 연결 닫힘

KI 0 코어 2 19:28:10 127.0.0.1:3000에 연결

QL 0 코어 2 19:28:10 연결됨

PN 0 코어 2 19:28:10 승인됨(에이전트 빌드 360)

RJ 0 테스터 19:28:10 EURUSD,M1(MetaQuotes-Demo): Experts\third_alptest2.ex5 테스트 2010.10.04 00:00 ~ 2010.11.05 00:00 시작

MF 0 Core 2 19:28:11 공통 동기화 완료

IM 0 Core 2 19:28:11 3124바이트의 계정 정보가 로드됨