다중 통화 지표를 개발하는 방법을 아는 사람이 있습니까? - 페이지 2

 

ACR을 처음 호출하면 오류 4066이 발생합니다. 그게 전부입니다. 다시 호출하면 유효한 개수를 얻을 수 있지만 배열에 데이터가 없습니다. 어레이에 액세스해도 범위를 벗어나지 않습니다.

 
WHRoeder :

ACR을 처음 호출하면 오류 4066이 발생합니다. 그게 전부입니다. 다시 호출하면 유효한 개수를 얻을 수 있지만 배열에 데이터가 없습니다. 어레이에 액세스해도 범위를 벗어나지 않습니다.

나는 당신이 방금 설명한 것을 보지 못하기 때문에 동의하지 않을 수 없습니다. 그러나 이것은 대부분의 경우 Real Live를 사용할 때 모든 데이터가 일반적으로 사용 가능하고 데모/테스트 환경에서 외부 데이터에서 ".hst" 및 ".fxt"를 생성했기 때문일 수 있습니다.

로컬 데이터가 없는 "깨끗한 슬레이트" 조건을 다시 만들고 귀하가 설명하는 내용을 복제할 수 있는지 확인하겠습니다.

 

나는 "깨끗한 슬레이트" 조건을 다시 만들고 잠자기 기능 이 없는 연속 루프에서 이것을 테스트하기 위해 작은 스크립트를 코딩했습니다. "EURUSD" 차트에 대해 스크립트를 두 번 실행했지만 이전에 로드된 적이 없는 "NZDCAD"에 대한 코드 요청 데이터가 있었습니다.

첫 번째 실행 결과는 다음과 같습니다.

  • 처음 73607 반복(약 516ms 지속) 동안 "ArrayCopyRates"는 항상 -1의 개수를 반환하고 4073 오류(오류 4073 - 기록 데이터 없음)를 생성했습니다. 이러한 반복 동안 배열 크기는 항상 0이었습니다.
  • 마지막으로 73608번째 반복에서 카운트 512를 반환했고 배열 크기도 512로 설정되었으며 0번째 요소의 시간은 유효한 시간(0이 아님)을 갖고 오류가 생성되지 않았습니다.
그런 다음 데이터가 이미 로드되었고 결과가 다음과 같았기 때문에 스크립트를 두 번째 실행했습니다.
  • 첫 번째이자 유일한 반복 동안 "ArrayCopyRates"는 2048의 개수를 반환했지만 반환 개수가 유효했음에도 4066 오류를 생성했습니다(오류 4066 - 요청된 기록 데이터가 업데이트 상태임). 배열 크기도 2048이었고 0번째 요소의 시간은 유효했습니다(0이 아님).
테스트 스크립트와 결과 로그 파일이 포함된 ZIP 파일을 첨부했습니다.

스스로 결론을 내리게 놔두세요!

추신! 내 결론은 진행하기 전에 모든 테스트를 결합하는 것입니다. (즉, "ArrayCopyRates"의 반환 코드를 테스트하고, 오류 코드를 확인하고, MqlRates 배열의 배열 크기를 테스트하고, ( WHRoeder 가 제안하는 대로) 또한 배열 요소의 날짜 유효성을 테스트합니다.

편집: "pair[0].time == 0" 테스트만 사용했다면 데이터를 사용할 수 없을 때 첫 번째 실행의 첫 번째 반복 중에 배열 인덱스 오류가 발생하고 실행이 중지되었을 것입니다. 따라서 반환 코드와 배열 크기를 확인해야 하지만 다른 조건이 충족되면 시간 테스트가 후속 수준의 검증을 제공할 수 있다는 데 동의합니다.

파일:
testacr.zip  217 kb
 
이상하게도, 이 스레드가 시작된 이후로 원본 포스터의 댓글이 단 한 번도 없었습니다. 얘도 이거 따라하는거야?
 
FMIC :
  • 처음 73607 반복(약 516ms 지속) 동안 "ArrayCopyRates"는 항상 -1의 개수를 반환하고 4073 오류(오류 4073 - 기록 데이터 없음)를 생성했습니다. 이러한 반복 동안 배열 크기는 항상 0이었습니다.
  • 마지막으로 73608번째 반복에서 카운트 512를 반환했고 배열 크기도 512로 설정되었으며 0번째 요소의 시간은 유효한 시간(0이 아님)을 갖고 오류가 생성되지 않았습니다.
이것은 사전 빌드 600 버전의 반대 동작입니다.
이것은 내가 원래 예상한 것이지만 잘못된 것으로 판명되었습니다.
그들은 마침내 옳았고 나는 미래를 위해 이것을 기록할 것입니다.
 
FMIC :


편집: "pair[0].time == 0" 테스트만 사용했다면 데이터가 없을 때 첫 번째 실행의 첫 번째 반복 동안 배열 인덱스 오류가 발생하여 실행이 중지되었을 것입니다. 따라서 반환 코드와 배열 크기를 확인해야 하지만 다른 조건이 충족되면 시간 테스트가 후속 수준의 검증을 제공할 수 있다는 데 동의합니다.


연구와 결과 덕분에 이 모든 것이 매우 유용합니다.

 
FMIC :
이상하게도, 이 스레드가 시작된 이후로 원본 포스터의 댓글이 단 한 번도 없었기 때문입니다. 얘도 이거 따라하는거야?

그/그녀가 이 게시물을 팔로우해야 하는 이유, 후속 게시물은 이 포럼에 있는 대부분의 사람들이 이해할 수 있는 수준을 훨씬 넘어섰습니다.

간단하고 정확하게 질문에 답해보시는 건 어떠세요!

이제 원본 포스터가 아직 남아 있을 가능성이 약간 있는 경우를 대비하여 원래 질문에 답하기 위해 Google이 당신의 친구입니다.

 
4x_Gypsy :

간단하고 정확하게 질문에 답해보시는 건 어떠세요!

우리는 본질적으로 " 1~10개의 다른 통화와 각 통화에 대해 5개의 막대를 선택하고 싶습니다 ."라는 질문에 대답했습니다.

예제 코드나 자세한 내용을 제공하지 않았기 때문에 간단하고 정확한 답변을 할 수 없었습니다. 우리가 할 수 있는 일은 그가 직면하게 될 문제에 대한 일반적인 답변과 인식을 제공하는 것뿐이었습니다. 우리는 그가 " ArrayCopyRates() "를 사용하거나 " iFunctions() "를 사용해야 하며 그가 분명히 얻게 될 고유한 지연과 오류를 추적해야 한다고 대답했습니다. 그런 다음 표시기의 절전 기능 부족 및 pre-600 및 post 빌드 간의 다른 동작과 같은 함정과 문제를 논의하여 정보를 보완했습니다.

당신이 이것이 그의 머리 전체에 있었다고 말한다면 그가 해야 할 일은 "미안합니다, 이해가 안 가네요! 간단하게 해 주실 수 있나요!" 그러나 그런 게시물(또는 그 문제에 대한 다른 게시물)이 없었기 때문에 그와 다른 사람들이 팔로우할 수 있다는 믿음으로 토론이 계속되었습니다.

이제 당신이 쓴 것처럼 그는 Google을 사용하여 많은 다중 시간 프레임 지표를 찾을 수 있지만 여전히 작동 방식을 모른다면 지표가 원하는 대로 작동하도록 하는 데 그리 멀리 가지 못할 것입니다.

편집: 추신! 주의! 다시 생각해 본 후 WHRoeder 는 실제로 문제에 대한 솔루션으로 스켈레톤 코드를 제공했습니다. 원래 질문에 세부 정보가 부족하기 때문에 이보다 더 간단하고 정확할 수 없습니다.

 
FMIC :

우리는 본질적으로 " 1~10개의 다른 통화와 각 통화에 대해 5개의 막대를 선택하고 싶습니다 ."라는 질문에 대답했습니다.

예제 코드나 자세한 내용을 제공하지 않았기 때문에 간단하고 정확한 답변을 할 수 없었습니다. 우리가 할 수 있는 일은 일반적인 답변과 그가 직면하게 될 문제에 대한 인식을 제공하는 것뿐이었습니다. 우리는 그가 " ArrayCopyRates() "를 사용하거나 " iFunctions() "를 사용해야 하며 그가 분명히 얻게 될 고유한 지연과 오류를 추적해야 한다고 대답했습니다. 그런 다음 표시기의 절전 기능 부족 및 pre-600 및 post 빌드 간의 다른 동작과 같은 함정과 문제를 논의하여 정보를 보완했습니다.

당신이 이것이 그의 머리 전체에 있었다고 말한다면 그가 해야 할 일은 "미안합니다, 이해가 안 가네요! 간단하게 해 주실 수 있나요!" 그러나 그런 게시물(또는 그 문제에 대한 다른 게시물)이 없었기 때문에 그와 다른 사람들이 팔로우할 수 있다는 믿음으로 토론이 계속되었습니다.

이제 당신이 쓴 것처럼 그는 Google을 사용하여 많은 다중 시간 프레임 지표를 찾을 수 있지만 여전히 작동 방식을 모른다면 지표가 원하는 대로 작동하도록 하는 데 그리 멀리 가지 못할 것입니다.

편집: 추신! 주의! 다시 생각해 본 결과 WHRoeder 는 실제로 문제에 대한 솔루션으로 스켈레톤 코드를 제공했습니다. 원래 질문에 세부 정보가 부족하기 때문에 이보다 더 간단하고 정확할 수 없습니다.

질문은 " 다중 통화 지표 를 개발하는 방법을 아는 사람이 있습니까?"였습니다.

명백한 대답은 OP가 실제로 필요로 하는 것에 대한 세부 사항을 묻거나 기다리지 않고 "예, 우리(FMIC 및 WHRoeder)는 우리가 논의하는 것을 지켜볼 뿐입니다."였습니다.

그/그녀가 그 지표로 하고 싶었던 것은 "1~10개의 다른 통화와 각 통화에 대해 5개의 막대를 선택하고 싶습니다."였습니다.

예, 예가 제공되었습니다. 그러나 그것들은 둘 사이의 더 많은 경쟁으로 제공되었습니다. 흥미로운 토론? 네. 몰랐던 사실을 알게 되었습니다. 예제가 초보자가 이해할 수 있는 방식으로 제공되었습니까? 별로. 사람들은 MetaTrader의 도움과 튜토리얼이 부족하기 때문에 이 포럼에 옵니다. 여기에 게시하는 대부분의 사람들은 자신이 하고 싶은 일에 대한 최소한의 이해를 갖고 있으며 토론이 너무 지나치면 이해를 잃고 방황합니다. 정말 부끄러운 일입니다.

큰 단서는 "하지만 나는 이것을 하는 방법을 모른다."였다.

OP에서 어떤 종류의 응답도 없다는 것은 문제가 있다는 표시입니다. 내 "추측"은 OP가 이해 부족으로 좌절하고 스레드를 포기했다는 것입니다. 몇 년 전에도 같은 일을 하던 때가 있었습니다. 내가 얼마나 새로운지 깨닫는 데 시간을 할애하는 사람이 없었고 계속해서 사례를 게시하고 당시 내 이해를 완전히 뛰어넘는 토론을 했기 때문에 나는 이것보다 다른 사이트/포럼에서 더 많은 것을 배웠습니다.

그러나 OP가 사라진 이후로 더 이상 중요하지 않습니다.

다시 한 번 이것은 수치스러운 일입니다. 이 사람이 이 포럼과 다른 포럼이 절실히 필요로 하는 다음 전문가가 될 수도 있고 될 수도 있다는 것을 누가 알겠습니까?

 
4x_Gypsy :

큰 단서는 "하지만 나는 이것을 하는 방법을 모른다."였다.

OP에서 어떤 종류의 응답도 없다는 것은 문제가 있다는 표시입니다. 내 "추측"은 OP가 이해 부족으로 좌절하고 스레드를 포기했다는 것입니다. 몇 년 전에도 같은 일을 하던 때가 있었습니다. 내가 얼마나 새로운지 깨닫는 데 시간을 할애하는 사람이 없었고 계속해서 사례를 게시하고 당시 내 이해를 완전히 뛰어넘는 토론을 했기 때문에 나는 이것보다 다른 사이트/포럼에서 더 많은 것을 배웠습니다.

당신의 관점에서 당신이 옳을 수도 있는 반면에 나는 문서를 빠르게 살펴보는 위험을 감수한다면 단순히 대답되는 많은 질문을 보았고 나는 정말로 그런 종류의 질문에 계속해서 대답하는 바보가 된 기분이 듭니다.

또한 여기에 Google 및 검색 옵션이 있습니다. 어떻게 해야 할지 모르겠다면 스스로 문제를 해결하기 위한 다음 단계가 될 것입니다.

이제 이 스레드의 주제인 "...다중 통화 시스템을 개발하는 방법"으로 이동합니다. "코딩을 무료로 가르쳐 주세요"라고 하는 것은 "코딩을 해 줄 수 있습니까?"에 매우 가깝습니다. 이 모든 것이 심각한 것은 아닙니다.

무료로 사용할 수 있는 코드가 너무 많기 때문에 이에 대한 내 대답은 "Google을 사용하거나 여기를 검색하여 무료 코드를 찾아 변경하십시오!"였습니다.

사람들이 이것에 기분이 상했다면 나는 그것이 그들의 문제라고 생각합니다.