포팅 주제 (더 정확하게는 MQL4 메소드로 에뮬레이터 클래스를 작성하는 주제)는 다른 기사에서 수행되었습니다 (완료되기를 바랍니다). 자료를 읽는 과정에서 우리는 저자에게 모든 MQL4 기능 (거래 제외-조만간 솔루션 중 하나를 볼 수 있음)을 다루는 참고서 형식의 기사를 작성하고 일반적으로 MQL4 프로그램을 다시 작성하는 사람들이 아날로그를 빠르게 찾을 수 있도록 모든 것을 통합하기 위해 MQL5에서 각각의 아날로그에 대한 아날로그 제공에 대한 기사를 작성하도록 요청했습니다. 무제한 욕망에 대해 고려되는 섹션의 수에 대해 이야기하고 있다면 모든 기능을 다루어야한다고 주장했습니다 (250 개 이상으로 판명 됨).
일부 섹션의 기능 비교에 관해서는 정확히 비교가 아니 었습니다. 동일하더라도 아날로그를 제공해야했습니다. 모든 기능에 대해. 그래서 비교가있는 것 같지만 예를 들어 수학 함수가 동일하다는 것을 비교에서 알 수 있습니다. 그건 그렇고, 권장 사항으로 각 섹션의 시작 부분에 이것을 언급하는 것이 유용 할 것입니다.
이러한 이유(에뮬레이터 함수의 아키텍처)로 인해 작성자는 구현에서 명확하지 않은 몇 가지 사항(예: 미리 전역적으로 선언하고 OnInit에서 AsSeries로 만든 iLowest/iHighest 글로벌 Open[]...High[]...)이 있었는데, 이는 에뮬레이터에서처럼 함수의 보편성을 위해 자연스럽게 로컬 배열을 사용하는 것이 더 낫다는 것을 암시하는 것이죠.
기술 지표로 작업하는 경우 많은 질문이있을 수 있으므로 로컬 함수에서 매번 생성하는 대신 OnInit에서 수동으로 생성하고 설명자를 참조하는 것이 좋습니다. 그러나 터미널이 표시기를 즉시 파괴하지 않기 때문에 저자가 제안한 접근 방식도 작동합니다. 따라서 많은 미묘함이 있습니다.
중요한 것은 이제 제안 된 함수 구조로 인한 오류를 포함하여 오류를 발견하면 논의 할 것이 있다는 것입니다.
이것이 참고서라면 참고서가되도록하십시오 !!!
아니면 생선과 고기가 아닙니다
전역 배열이 중간 계산에 사용되는 이유!
함수 내에서 이러한 계산을위한 공간을 할당 할 수 있습니다. 왜 참조를 넣을까요?
일부 함수에서는 아타가 수정됩니다.
또 같은 야히게스트!!! 함수 내부의 전역 버퍼를 수정하는 것은 아타스입니다!
글쎄요, 제가 글을 쓰는 동안 이미 수정되었지만이 스타일은 기사 전체에서 추적 될 것이라고 확신합니다.
mcl4 가격 구조가 이러한 배열에 액세스하면.....
다음은 6개의 비교 섹션이 있습니다!
mcl4와 mcl4의 기능
와 비교만 합니다.
그런 다음 갑자기
함수 대체 테이블.
2개의 섹션
그리고 다시 비교
3개 섹션
그런 다음 대체
함수!
그리고 다시....
먼저 표에는 µl4 함수가 있고 그다음에는 두 종류의 셀이 있습니다.
여기에는 mcl5로 재작성된 대체 함수가 포함되어 있습니다.
또는 2종류의 셀, 동일한 함수만 있습니다.
그리고 이것은 기사 전체에 걸쳐 있습니다... 그래서 이것은 µl4로의 이전입니까 아니면 참고서입니까?
한 가지는 내버려둬요!
작동하지 않는 상태로 이어질 결함도 많이 있습니다.
이미 µl5 어레이에 데이터를 저장하는 특성에 대해 많이 배웠기 때문입니다.
그리고 많은 함수에서 배열의 크기를 결정하는 것이 필요하다고 말할 수도 있습니다,
일부는 인덱싱 방향을 결정해야 할 것입니다.
mcl4와 mcl5 환경에서의 데이터 처리의 차이 때문에.
이미 컴파일 될 것이라고 느낄 수 있지만 시작되지 않기 때문입니다.
물론, 당신이 말하는 그런 가이드는 실제로 매우 유용 할 것입니다.
이 기사에는 몇 가지 흥미로운 점이 있습니다.
그러나 그것은 물고기도 살도 아닙니다.
대체하지 않고 mql5의 함수와 그 아날로그 만 남겨 두십시오.
이것은 mql4 표시기를 mql5로 완전히 다시 작성하는 데 유용할 것입니다.
문서에 대한 모든 참조와 함께!
이 조잡한 대체품은 지옥에나 가세요.
물론 가혹한 비판에 대해서는 죄송하지만, 가장 예상되는 시기에 이런 원시적인 기사를 공개하는 것은.
이렇게 심각한 오류가 있는
그것으로부터 무엇을 배울 것인가....
분명히 이단...
마지막으로, 왜 첨부파일이 없나요?
그렇게 많은 함수를 옮겼다면 왜 .mqh 파일이 없나요?
모든 기능이 모이는 곳에... 특히 250개는... 하나씩 복사하여 mqh4 전송 ....
실제로 오류 없이 컴파일되는 함수를 작성한다고 해서 코드에 안전하게 포함할 수 있는 것은 아닙니다. 가장 큰 문제는 프로그램 로직을 번역하는 것입니다. 시를 번역하는 것과 같습니다. 당신은 그것을 그대로 번역했지만 운율이 맞지 않습니다. 그렇기 때문에 함수를 번역하는 것만으로는 충분하지 않습니다. 한 언어에서 다른 언어로 변환하는 작업은 생각만큼 간단하지 않습니다.
저는 지표, 스크립트 및 Expert Advisor를 MQL5로 전송하는 간단하고 명확한 메커니즘을 갖춘 에뮬레이터 형태의 솔루션을 봅니다. 현재 작업 중입니다.
17이 좋습니다. 첫 번째 턴에 대해서는 제가 판단할 사항이 아닙니다. mql4를 mql5로 변환하는 모든 사람은 자신의 대기열을 갖게됩니다. 아무것도 놓치지 않기 위해 AccountFreeMarginCheck, AccountFreeMarginMode, ArrayCopyRates, ArrayDimension 등으로 시작하여 위에서 아래로 순서를 채우면됩니다 (9 개만 남았습니다).
실수를 할 수 있고 자료가 상당히 큽니다.
포팅 주제 (더 정확하게는 MQL4 메소드로 에뮬레이터 클래스를 작성하는 주제)는 다른 기사에서 수행되었습니다 (완료되기를 바랍니다). 자료를 읽는 과정에서 우리는 저자에게 모든 MQL4 기능 (거래 제외-조만간 솔루션 중 하나를 볼 수 있음)을 다루는 참고서 형식의 기사를 작성하고 일반적으로 MQL4 프로그램을 다시 작성하는 사람들이 아날로그를 빠르게 찾을 수 있도록 모든 것을 통합하기 위해 MQL5에서 각각의 아날로그에 대한 아날로그 제공에 대한 기사를 작성하도록 요청했습니다. 무제한 욕망에 대해 고려되는 섹션의 수에 대해 이야기하고 있다면 모든 기능을 다루어야한다고 주장했습니다 (250 개 이상으로 판명 됨).
일부 섹션의 기능 비교에 관해서는 정확히 비교가 아니 었습니다. 동일하더라도 아날로그를 제공해야했습니다. 모든 기능에 대해. 그래서 비교가있는 것 같지만 예를 들어 수학 함수가 동일하다는 것을 비교에서 알 수 있습니다. 그건 그렇고, 권장 사항으로 각 섹션의 시작 부분에 이것을 언급하는 것이 유용 할 것입니다.
이러한 이유(에뮬레이터 함수의 아키텍처)로 인해 작성자는 구현에서 명확하지 않은 몇 가지 사항(예: 미리 전역적으로 선언하고 OnInit에서 AsSeries로 만든 iLowest/iHighest 글로벌 Open[]...High[]...)이 있었는데, 이는 에뮬레이터에서처럼 함수의 보편성을 위해 자연스럽게 로컬 배열을 사용하는 것이 더 낫다는 것을 암시하는 것이죠.
기술 지표로 작업하는 경우 많은 질문이있을 수 있으므로 로컬 함수에서 매번 생성하는 대신 OnInit에서 수동으로 생성하고 설명자를 참조하는 것이 좋습니다. 그러나 터미널이 표시기를 즉시 파괴하지 않기 때문에 저자가 제안한 접근 방식도 작동합니다. 따라서 많은 미묘함이 있습니다.
중요한 것은 이제 제안 된 함수 구조로 인한 오류를 포함하여 오류를 발견하면 논의 할 것이 있다는 것입니다.
이것이 참고서라면 참고서가되도록하십시오 !!!
아니면 생선과 고기가 아닙니다
전역 배열이 중간 계산에 사용되는 이유!함수 내에서 이러한 계산을위한 공간을 할당 할 수 있습니다. 왜 참조를 넣을까요?
일부 함수에서는 아타가 수정됩니다.
또 같은 야히게스트!!! 함수 내부의 전역 버퍼를 수정하는 것은 아타스입니다!
글쎄요, 제가 글을 쓰는 동안 이미 수정되었지만이 스타일은 기사 전체에서 추적 될 것이라고 확신합니다.
mcl4 가격 구조가 이러한 배열에 액세스하면.....
다음은 6개의 비교 섹션이 있습니다!
mcl4와 mcl4의 기능
와 비교만 합니다.
그런 다음 갑자기
함수 대체 테이블.
2개의 섹션
그리고 다시 비교
3개 섹션
그런 다음 대체
함수!
그리고 다시....
먼저 표에는 µl4 함수가 있고 그다음에는 두 종류의 셀이 있습니다.
여기에는 mcl5로 재작성된 대체 함수가 포함되어 있습니다.
또는 2종류의 셀, 동일한 함수만 있습니다.
그리고 이것은 기사 전체에 걸쳐 있습니다... 그래서 이것은 µl4로의 이전입니까 아니면 참고서입니까?
한 가지는 내버려둬요!
작동하지 않는 상태로 이어질 결함도 많이 있습니다.
이미 µl5 어레이에 데이터를 저장하는 특성에 대해 많이 배웠기 때문입니다.
그리고 많은 함수에서 배열의 크기를 결정하는 것이 필요하다고 말할 수도 있습니다,
일부는 인덱싱 방향을 결정해야 할 것입니다.
mcl4와 mcl5 환경에서의 데이터 처리의 차이 때문에.
이미 컴파일 될 것이라고 느낄 수 있지만 시작되지 않기 때문입니다.
물론, 당신이 말하는 그런 가이드는 실제로 매우 유용 할 것입니다.
이 기사에는 몇 가지 흥미로운 점이 있습니다.
그러나 그것은 물고기도 살도 아닙니다.
대체하지 않고 mql5의 함수와 그 아날로그 만 남겨 두십시오.
이것은 mql4 표시기를 mql5로 완전히 다시 작성하는 데 유용할 것입니다.
문서에 대한 모든 참조와 함께!
이 조잡한 대체품은 지옥에나 가세요.
물론 가혹한 비판에 대해서는 죄송하지만, 가장 예상되는 시기에 이런 원시적인 기사를 공개하는 것은.
이렇게 심각한 오류가 있는
그것으로부터 무엇을 배울 것인가....
분명히 이단...
마지막으로, 왜 첨부파일이 없나요?
그렇게 많은 함수를 옮겼다면 왜 .mqh 파일이 없나요?
모든 기능이 모이는 곳에... 특히 250개는... 하나씩 복사하여 mqh4 전송 ....
다시 한 번 저자가 의도적으로 무언가를 숨기려고한다는 것을 암시합니다.
안부 바실리.
...
이미 컴파일 중이라는 냄새가 나지만 시작되지 않습니다.
...
실제로 오류 없이 컴파일되는 함수를 작성한다고 해서 코드에 안전하게 포함할 수 있는 것은 아닙니다. 가장 큰 문제는 프로그램 로직을 번역하는 것입니다. 시를 번역하는 것과 같습니다. 당신은 그것을 그대로 번역했지만 운율이 맞지 않습니다. 그렇기 때문에 함수를 번역하는 것만으로는 충분하지 않습니다. 한 언어에서 다른 언어로 변환하는 작업은 생각만큼 간단하지 않습니다.
저는 지표, 스크립트 및 Expert Advisor를 MQL5로 전송하는 간단하고 명확한 메커니즘을 갖춘 에뮬레이터 형태의 솔루션을 봅니다. 현재 작업 중입니다.
가이드북이라면 가이드북으로 해주세요!!!
피시 앤 칩스가 아닙니다.
....
Vasily, 건설적인 비판에 감사드립니다. 저자가 소원을 고려하여 전역 배열을 사용하지 않고 자급 자족 함수의 변형을 제공 할 수 있기를 바랍니다.
이 기사는 MQL4와 MQL5 함수 간의 대응을 제공하기 위한 참고 자료로 작성되었습니다.
이것이 아마도 저자가 최소한의 설명, 많은 표, 완전한 사용 예제 없음 등 무언가를 숨기려고한다는 인상을주는 이유 일 것입니다. 그러나 이것은 장르의 특수성입니다.
함수 작업에는 많은 미묘함이 있으며 세부 사항은 예제와 함께 자세히 고려해야하지만 다른 기사의 주제이므로 나타나기를 바랍니다. MQL4에서 마이그레이션에 대한 주제는이 기사에서 소진되지 않았으며 많은 흥미로운 자료가 준비 중이며 곧 게시 될 예정입니다 (
).
구현이 너무 복잡하고 정당화되지 않는다는 점을 이해해야 합니다. 결국 목표는 MQL4 기능을 완전히 포기하는 것입니다.
맞습니다. 요점은 시스템 아키텍처의 변경 사항으로 인해 현재 어떤 (다른) 수단을 사용해야하는지 설명하는 것입니다. 이 자료는 참고서 형태로 제공되므로 모든 셀을 "솔루션"으로 채우는 것이 중요합니다. 아날로그가 없으면 다른 접근 방식이 있습니다.
적어도 각 지표에 대한 책을 읽는 것은 어렵습니다.
저조차도 자랑 할 수 없습니다.
... 모든 상자를 '솔루션'으로 채우는 것이 중요합니다. 아날로그가 없다는 것은 다른 접근 방식이 있다는 뜻입니다.
섹션 17에 "솔루션"에 대한 참조가 추가되었습니다.
모든 기능이 그렇게 관련성이 높고 필요한 것은 아니므로 먼저 주목해야 할 "아날로그 없는" 기능을 제안하세요. 변경하도록 노력하겠습니다.
17이 좋습니다. 첫 번째 턴에 대해서는 제가 판단할 사항이 아닙니다. mql4를 mql5로 변환하는 모든 사람은 자신의 대기열을 갖게됩니다. 아무것도 놓치지 않기 위해 AccountFreeMarginCheck, AccountFreeMarginMode, ArrayCopyRates, ArrayDimension 등으로 시작하여 위에서 아래로 순서를 채우면됩니다 (9 개만 남았습니다).
바실리님께!
귀하의 의견에 감사드리며, 섹션 18의 기능이 업데이트되었습니다. 현재 버전을 확인해 주세요.
작성자가 많은 작업을 수행했으며 오류가있을 수 있으므로 함께 수정하겠습니다.
MQL5 기간의 올바른 값으로 대체하려면 TFMigrate(int tf) 함수가 필요합니다. 예를 들어, MQL4에서 PERIOD_H1 상수의 수치는 60이고, MQL5에서는 PERIOD_H1=16385, 즉 TFMigrate(60)=16385입니다.
제 생각에는 마이그레이션 조건에서 TF를 사용하려면 두 가지 함수가 필요합니다:
1. 초 수를 TF로 변환합니다(예: ENUM_TIMEFRAMES SecondToPeriod (int 값));
2. 기간을 초로 변환합니다 - 예를 들어 int PeriodToSecond(ENUM_TIMEFRAMES Value).
처음에 마이그레이션 모듈에서 성공적으로 수행했습니다(DLL 옵션도 있습니다).
PS
MQL4를 최대한 준수하기 위해 개인적으로 비표준 기간에 대한 모든 비표준을 제거했습니다.