나는 완전히 길을 잃었다 - 페이지 3

 
FMIC 문서에는 말이 안 되는 내용이 있습니다. 누가 그 글을 분명히 작성했는지는 더 높은 수준의 프로그래밍 개념에 대한 노출은 고사하고 gwbasic 또는 의사 코드로 프로그램을 작성한 적이 없는 의도된 청중을 위해 작성하는 것입니다. 또는 적어도 저자의 의도는 그러한 사람들이 이해할 수 있도록 하는 것이었으며, 반드시 그러한 사람들을 대상으로 하는 것은 아닙니다. 나는 if/else 문과 for 루프와 변수가 무엇인지에 대한 부분을 건너뛰는 경향이 있습니다. 그러나 그 부분을 건너뛰면 다음 섹션에서 저자는 상대적인 초보자의 관점에서 그것을 성공적으로 볼 수 없었습니다. 왜냐하면 저와 같은 사람이 약간의 프로그래밍 경험이 있고 조각들이 여전히 서로 맞지 않기 때문입니다. 일단 문학의 특정 지점에 도달하면. 여기 또 다른 예가 있습니다. 날짜/시간 데이터 유형입니다. 여기로 이동합니다: http://msdn.microsoft.com/en-us/library/system.datetime_members%28v=VS.90%29.aspx 그리고 나는 datetime 변수가 표준에 따라 이 문서에서 말하는 것보다 훨씬 더 복잡하다는 것을 알았습니다. . 예를 들어, MILLISECONDS에 대한 정보를 포함합니다. 그것은 AD 9999년까지의 어떤 연도일 수 있습니다. 그러나 이 문서는 그것이 다르다고 제안하지만 충분히 자세히 설명하지 않습니다. 아마도 표준 C++ 날짜/시간 변수가 아니라 MQL4에만 해당하는 변수일 것입니다. 1970년 초부터 2037년 말까지 유효한 초 수. 이제 그 시간 간격에 거의 2^31초가 있습니다. 그것은 그것이 부호 있는 긴 정수라는 것을 암시합니다. 부호 없는 긴 정수는 실제로 1970년부터 22세기로 만들 것이기 때문입니다. 실제로 그것이 부호 있는 긴 정수인 것처럼 산술 연산에서 그것을 사용할 수 있습니까? 그것은 말하지 않는다. 모호하다. 문자열이 무엇일 수 있는지에 대한 특정 제약 조건이 있는 경우 영광스러운 문자열과 같은 변수가 될 수 있습니다. 그것은 또한 그것을 사용하는 몇 가지 불완전한 방법을 보여줍니다. 그러나 액세스하거나 조작할 수 있는 모든 방법에 대해 충분히 명시적이지 않습니다. int와 함께 정수 산술에 사용할 수 있습니까? 샘플의 시간 인덱스를 읽는 경우 다른 1분 차트에서 1분 차트에서 하나를 빼서 연속적인 분인 경우 60(플러스 또는 마이너스 1)만큼 다를 것으로 예상할 수 있습니까?

이미 문제가 있었던 다른 것이 있었습니다. ArrayCopySeries에 대한 설명이 모호합니다. 어떤 부분에서는 array[] 가 쓰여져 있다고 제안하지만 다른 부분에서는 그렇지 않다고 제안합니다. 그리고 나는 그것을 살펴보고 통화 데이터를 배열에 복사하지 않으면 함수의 목적을 절대적으로 이해하지 못합니다.

여기에 또 하나 알고 싶은 것이 있습니다. EA는 3가지 주요 기능을 가질 수 있다고 합니다. 초기화, 초기화 및 시작합니다. init는 처음 실행될 때 한 번 실행되고, 새로운 틱이 있을 때마다 start가 실행되며, deinit에 대해서는 아무 말도 하지 않습니다. https://book.mql4.com/samples/expert의 예에는 초기화가 없습니다. 시작이 있습니다. Fun_Error와 같은 오류를 명백하게 처리하기 위한 몇 가지 복잡한 작업이 있습니다. 초기화가 없습니다. 변수는 어떻습니까? init 내에 정의된 변수는 완료될 때와 "start"가 실행될 때 여전히 유효합니까? 아니면 두 변수 모두 외부에서 선언해야 합니까? start 내에 선언된 변수는 start가 다시 실행될 때마다 지워집니까? 변수가 외부에 선언되어 있습니까? 내가하지 희망! 어떤 함수의 외부에 선언된 변수를 변경할 수 있는지조차 확신할 수 없습니다. 그들은 내가 본 것에서 모두 전역 정적 변수 인 것처럼 보입니다.

그건 그렇고, iTime과 같은 기능에서 사용되는 통화 기호는 작은따옴표나 큰따옴표로 묶어야 합니다. "USDCHF" 또는 'USDCHF'. 이와 같은 천 가지 작은 것. 그들 중 하나는 내가 끝에 도달했을 때 컴파일되지 않을 것이라고 확신합니다. 그리고 수천 가지의 작은 부수적인 일이 잘못되어 디버깅을 할 것입니다.

RaptorUK 아, 물론 당신은 나를 도울 의무가 없습니다. 그리고 좋은 시간에 대한 당신의 아이디어가 포럼에서 사람들을 조롱하고 도움을 요청 하는 포럼에 있다고 조롱하는 것이라면 어떤 포럼에 가는 목적이 처음에 사람들을 트롤하는 것이 분명할 때 두 사람 모두 정말 즐기고 있는 것 같습니다. 자신과 포럼 사용자의 올바른 역할이라고 생각하는 것을 수행합니다. 나에 관해서는, 내가 누군가를 도울 수 있는 자격이 있다면, 내가 대답할 수 있는 질문에 대답함으로써, 나는 가정적으로 그렇게 할 의향이 있을 것입니다. 저는 프로그래밍에 대해서는 그다지 많이 알고 있지 않고 신비한 수학에 대해서는 많이 알고 있습니다. 예를 들어, 통계적으로 독립적이지 않은 12개의 지표가 있는 경우 통계적으로 종속된다는 사실을 보상하는 방식으로 복합 지표로 최적으로 결합하는 방법을 알고 있습니다. 물론 나는 지금 당신을 도와주지 않을 것입니다. 골리로, 내가 당신의 발이 철로에 갇힌 것을 본다면, 나는 "내가 당신을 도울 수 있지만 나에게 무슨 도움이 될까요?"라고 말할 것입니다.

 
zortharg :
FMIC 문서에는 말이 안 되는 내용이 있습니다. ...

나는 고급 및 저급 언어에 능통했음에도 불구하고 처음부터 끝까지 모든 책을 읽는 데 어려움이 없었습니다.

저는 45세이며 1986년부터 소프트웨어 개발자로 일해 왔으며 엔지니어링(저전류 전자공학)에서 학사 학위를 받았습니다. 저는 C, C++, C#, Pascal, Cobol, Fortran, Perl 및 오래전에 사라진 많은 다른 분야에 능숙합니다. 또한 x86, Z-80, Pics 및 기타 여러 아키텍처용 어셈블러 프로그래밍에도 정통합니다. 다시 말씀드리지만 저는 MQL4를 읽고 배우는 데 어려움이 없었습니다.

따라서 내가 결론을 내릴 수 있는 것은 MQL을 배우는 실제 목표에 초점을 맞추는 대신 문서를 비판하는 당신의 거만하고 강력한 태도는 오직 한 가지 의미일 수 있다는 것 입니다. 에 대한 문서가 작성되었습니다.

MetaTrader와 MQL이 당신보다 낮다고 생각한다면 왜 여기에 있습니까? 진지하게! 왜요?

다른 많은 거래 응용 프로그램 과 알고리즘 시스템이 있습니다. 하나를 선택하고 문제를 가자!

그건 그렇고, "RaptorUK"는 포럼의 중재자입니다. 당신은 여기 트롤입니다!

이 스레드에 대한 내 마지막 게시물입니다! 당신은 노력할 가치가 없습니다.

 
zortharg :

RaptorUK 아, 물론 당신은 나를 도울 의무가 없습니다. 그리고 좋은 시간에 대한 당신의 아이디어가 포럼에서 사람들을 조롱하고 도움을 요청하는 포럼에 있다고 조롱하는 것이라면 어떤 포럼에 가는 목적이 처음에 사람들을 트롤하는 것이 분명할 때 두 사람 모두 정말 즐기고 있는 것 같습니다. 자신과 포럼 사용자의 올바른 역할이라고 생각하는 것을 수행합니다. 나에 관해서는, 내가 누군가를 도울 수 있는 자격이 있다면, 내가 대답할 수 있는 질문에 대답함으로써, 나는 가정적으로 그렇게 할 의향이 있을 것입니다. 저는 프로그래밍에 대해서는 그다지 많이 알고 있지 않고 신비한 수학에 대해서는 많이 알고 있습니다. 예를 들어, 통계적으로 독립적이지 않은 12개의 지표가 있는 경우 통계적으로 종속된다는 사실을 보상하는 방식으로 복합 지표로 최적으로 결합하는 방법을 알고 있습니다. 물론 나는 지금 당신을 도와주지 않을 것입니다. 골리로, 내가 당신의 발이 철로에 갇힌 것을 본다면, 나는 "내가 당신을 도울 수 있지만 나에게 무슨 도움이 될까요?"라고 말할 것입니다.

아마도 당신 은 당신 의 이 의견 을 설명 해야 합니까 ?

이 포럼에 있는 사람들의 대담함!


이 포럼 의 많은 사람들 은 시도 하고 도움 을 주기 위해 여가 시간 을 포기 합니다 . . . 그리고 당신은 함께 와서 그것이 옳은 일인 것처럼 도움을 기대합니다! 나는 당신이 당신의 태도를 보여줄 때까지 모두가 당신을 기꺼이 도울 것이라고 생각합니다. . . 도움을 요청할 때 약간의 겸손을 보여야 합니다.

당신이 원하는 대로 저에게 라벨을 붙일 수 있습니다. 저는 정말로 상관하지 않습니다. 저는 제가 왜 여기 있는지 알고 있습니다. 그리고 몇몇 사람들은 심지어 저를 도우려고 노력하는 것에 대해 감사합니다. . . 나는 그것이 당신을 넘어서는 것 같아요.

 
zortharg :

그러면 iclose로 과거 가격을 한 번에 하나씩 다운로드해야 합니까? https://docs.mql4.com/series/iClose 내가 보기에 문제는 다운로드하는 동안 데이터가 업데이트될 수 있다는 것입니다. 전체를 블록으로 다운로드하는 것이 좋습니다. iTime으로 시간을 다운로드한 다음 iclose를 사용한 다음 동일한 인덱스에서 iTime을 다시 사용할 수 있습니다. 변경된 경우 새 막대 시간 간격이 시작되고 인덱스 번호로 돌아가야 합니다. 내가 추론하는 것이 맞습니까 아니면 이해하지 못하는 것이 있습니까?


Array CopySeries () 함수 를 호출할 때 시리즈를 직접 복사해야 하는 이유는 무엇입니까?

배열을 선언하지만 크기를 지정할 필요는 없습니다.

배열에 액세스할 때마다 mql은 "마법"을 수행하고 (잘하면) 올바른 값이 올바른 위치에 나타납니다.

페이지에 예제가 있습니다.

즉, 온라인 문서가 현재 동기화되지 않았으므로 메타에디터의 도움말을 기본 참조로 사용하십시오.

이해가 될 때까지 예제를 응시하세요!

 
zortharg :
날짜/시간 데이터 유형입니다. 여기로 이동합니다: http://msdn.microsoft.com/en-us/library/system.datetime_members%28v=VS.90%29.aspx 그리고 나는 datetime 변수가 표준에 따라 이 문서에서 말하는 것보다 훨씬 더 복잡하다는 것을 알았습니다. . 예를 들어, MILLISECONDS에 대한 정보를 포함합니다. 그것은 AD 9999년까지의 어떤 연도일 수 있습니다. 그러나 이 문서는 그것이 다르다고 제안하지만 충분히 자세히 설명하지 않습니다. 아마도 표준 C++ 날짜/시간 변수가 아니라 MQL4에만 해당되는 변수일 것입니다. 1970년 초부터 2037년 말까지 유효한 초 수. 이제 그 시간 간격에 거의 2^31초가 있습니다. 그것은 그것이 부호 있는 긴 정수라는 것을 암시합니다. 부호 없는 긴 정수는 실제로 1970년부터 22세기로 만들 것이기 때문입니다. 실제로 그것이 부호 있는 긴 정수인 것처럼 산술 연산에서 그것을 사용할 수 있습니까? 그것은 말하지 않는다. 모호하다. 문자열이 될 수 있는 것에 대한 특정 제약 조건이 있기만 하면 영광스러운 문자열과 같은 변수가 될 수 있습니다. 그것은 또한 그것을 사용하는 몇 가지 불완전한 방법을 보여줍니다. 그러나 액세스하거나 조작할 수 있는 모든 방법에 대해 충분히 명시적이지 않습니다. int와 함께 정수 산술에 사용할 수 있습니까? 샘플의 시간 인덱스를 읽는 경우 다른 1분 차트에서 1분 차트에서 하나를 빼서 연속적인 분인 경우 60(플러스 또는 마이너스 1)만큼 다를 것으로 예상할 수 있습니까?

간단한 걸 물어볼 단어가 왜 이렇게 많은지 :)

이전 MQL: https://docs.mql4.com/dateandtime 날짜/시간 유형의 데이터 작업을 제공하는 함수 그룹(1970년 1월 1일 자정부터 경과된 초의 양을 나타내는 정수 ).

새로운 MQL: https://www.mql5.com/en/docs/basis/types/integer/datetime - datetime 유형 날짜와 시간을 1970년 1월 1일 이후 경과된 시간(초)으로 저장하기 위한 것입니다. 이 유형 8바이트의 메모리를 차지합니다.

시간을 저장하기 위해 오래된 32비트 정수를 사용했던 대부분의 언어는 2038년이 오면 망하지 않도록 64비트로 이동했습니다.

당신은 당신이 추측하는 것처럼 더하고 빼기만 하면 됩니다. 그러나 날짜 시간 데이터 유형으로 유지하고 변수에 저장하려는 유혹을 피하십시오.

 

ydrol 감사합니다!

흠흠. static_cast가 mql4에도 존재하는지 모르겠지만 결과를 다른 날짜 시간에 저장하는 한 날짜 시간에 일반 산술 연산을 사용할 수 있습니까? X[]가 날짜 시간 배열이고 분 숫자로 작업하려는 경우 Y가 날짜 시간이고 길지 않은 한 Y=(X[17]+30)/60을 사용할 수 있습니까? 권리? 또는 오히려 X[17]이 29 mod 60이고 X[16]이 30 mod 60이면 나쁠 것이기 때문에 Y=(X[17]-X[16]+30)/60을 취할 것입니다. 내가 첫 번째 방법으로 했다면 그들은 2분 간격이었다고 생각한다.

아, 지금까지 만든 코드가 이미 너무 길어서 데이터를 읽기만 하면 됩니다. 이제 데이터를 더 많이 이동하여 몇 분(또는 주말 내내!) 건너뛰는 데이터를 보상해야 합니다. 보간법, 나는 이 칠면조가 작업을 마치면 어떻게 될지 궁금합니다. 하하. 내가 마침내 스프레드/커미션을 이길 수 있는 거래 방법을 가지고 있음을 보여주는 matlab 프로그램의 모든 것이지만 실제 실행에 적용하는 것은 다른 것입니다.

ydrol이 아닌 모든 사람에게, ok, 나는 당신을 각각의 p***ing 콘테스트의 승자로 선언합니다. 축하합니다. 그리고 당신이 이겼으니 지금 이 스레드에 게시를 중단할 수 있습니다.

 

Hmmmmm. I don't know if static_cast even exists in mql4, but can I just use any regular arithmetic operations on datetimes then, so long as I save the result in another datetime?

산술 결과가 여전히 특정 시점(즉, 1970년 이후 초 단위 값)인 경우 날짜 시간으로 유지하고 그렇지 않으면 long 또는 int로 캐스팅할 수 있습니다. (꼭 그렇게 할 필요는 없지만 나중에 혼동을 피할 수 있습니다)

모든 사람을 적대시하는 데 도움이 되지 않습니다. 원하는 도움을 받을 수 있도록 접근 방식을 변경하세요. :)

 

일부 코드를 작성한 후에는 날짜/시간을 int에 대한 입력으로 사용하여 산술 결과를 저장하는 것을 피하는 것이 실제로 매우 어려워 보입니다. 그러나 static_cast<long>은 이론적으로 C++에서와 같이 작동할까요? 문서에 언급이 없습니다.

아, 그건 그렇고, 시간대. UTC입니까? 그 책은 1970년 1월 1일 0시 이후로 초 수를 계속 말하고 있습니다. 여기에서 "datetime" 변수와 C++에서 사용하는 것(예: 밀리초 없음) 간에 최소한 일부 불일치가 있다는 점을 이미 확인했다는 점을 제외하고는 UNIX 시간과 같은 UTC라고 가정할 수 있습니다. time이지만 "datetime"이라고 합니다. 따라서 1970년 초부터 시작하기 때문에 표면적으로 UNIX 시간과 유사하기 때문에 그것이 무엇인지 가정해서는 안됩니다. 그것은 반드시 UTC입니까 아니면 모든 브로커가 자신의 시간대를 기반으로 자체 오프셋을 가질 수 있고 주의 시작(modulo 10080분)이 어디인지 알아내기 위해 코드에 이 오프셋이 있어야 합니다. 데이터를 기반으로? 요점은 거래가 시작되고 끝나는 시간 모듈로 10080을 아는 것입니다. 시장은 그 10080분 중 7200분 동안만 열리기 때문에 주말이 다가옴에 따라 포지션을 축소할 수 있고, 시작 또는 훨씬 더 나쁜 경우, 한 주의 끝과 다음 주 시작 사이의 가격 불연속을 기반으로 과감한 거래 결정을 내리거나, 변동성과 같은 정보를 결정할 때 중단을 무시하는 것 - 저는 이것을 평균 제곱 변화로 정의합니다. 1분 후 가격 - 그리고 2분 후 가격의 평균 제곱 변화를 1/4배, 3분 후 가격의 평균 제곱 변화를 1/9배, 4분 후 가격의 평균 제곱 변화를 1/16배 더하고 그런 다음 전체에 1/(1+1/2+1/3+1/4)=0.48을 곱합니다.

이봐, 내가 무슨 말을 할 수 있을까, 나는 도움 을 청하러 왔고 그들은 처음부터 나에게 불쾌하고 적대적이었습니다. 누군가가 도움을 요청하면 내가 하는 것은 그들에게 도움을 주지 않거나 주는 것입니다. 나는 누군가가 묻는 질문에 대한 대답을 모른다면 대답 대신 잡담을 하지 않고, 시간을 내어 질문에 제대로 대답하기 싫으면 시간을 들이지 않는다. 묻는 것에 대해 조롱하거나 쓸모없는 무응답을 제공합니다. 마지막 질문은 그들이 지구에서 하루 이상 살았거나 질문이 수사학적이고 특히 특정 그룹의 사람들을 모욕하기 위해 고안된 경우 답을 알아야 하는 질문을 하는 사람을 위한 것입니다. 나는 개인의 요점에 도달했고 나는 윤리 강령에 따라 작동합니다. 나는 사람들이 나에게 험악할 때까지 예의를 지키다가 더 이상 예의를 지키지 않을 때까지 사람들에게 정직합니다. 또한 사람들이 거짓말을 하고 속이고 훔쳐갈 때까지 사람들에게 정직합니다. 그런 다음 내 기본 예의범절은 창밖이고 나는 거짓말과 속임수와 도둑질을 하고 동정이나 자제를 나타내지 않을 것입니다. 세상을 단순하게 보는 시각일지 모르지만 저는 완고하고 용서가 없습니다.

하지만 도움을 주셔서 감사합니다. 그리고 제가 도와드릴 일이 있으면 물어보세요. 당신이 내가 도울 수 있는 모든 일에 도움을 구하고 있다고 생각하는 것은 아닙니다.

 
zortharg :

일부 코드를 작성한 후에는 날짜/시간을 int에 대한 입력으로 사용하여 산술 결과를 저장하는 것을 피하는 것이 실제로 매우 어려워 보입니다. 그러나 static_cast<long>은 이론적으로 C++에서와 같이 작동합니까? 문서에 언급이 없습니다.

아, 그건 그렇고, 시간대. UTC입니까?


시간대에 독립적입니다. . . 오후 2시와 3시 사이에 몇 초가 있습니까? 3600 에 답하기 위해 시간대를 알 필요는 없습니다. . . 시작 시간인 1970년 1월 1일 자정과 관심 있는 시간이 모두 동일한 시간대에 있다고 가정하면 도움이 됩니다.
 

편집: 죄송합니다. 지적했듯이 datetime에 대한 특정 시간대는 없습니다. 그것은 당신이 그것을 어디에서 얻었는지에 달려 있습니다! (이것은 궁극적으로 기반이 된 UnixTime과 달리 불필요한 복잡성을 유발합니다!).

datetime의 시간대(1970년 이후 초)는 UTC를 기준으로 합니다. 유닉스 시간처럼. UnixTime - 64비트 유닉스 시간 입니다.

Unile true UTC, Unix 시간은 윤초 를 무시하므로(첫 번째 단락 참조) 모듈로 산술은 분 및 시간 동안 작동합니다.

datetime - datetime = long(초 지속 시간) - 비록 거래에 관한 한 내가 상상할 수 있는 대부분의 시간에 int가 될 것입니다!

날짜 시간 +/- 초(긴) = 날짜 시간(다른 날짜)

datetime +/- 초(int) = datetime(다른 날짜)

사유: