EA에서 이 클래스를 전략의 컨테이너로 사용하기로 결정했습니다 (StrategyGUID, Strategy). 여기서 StrategyGUID는 ulong 유형의 식별자이고 Strategy는 CObject에서 상속 된 클래스를 기반으로 생성 된 전략입니다.
따라서 활성 전략의 책인 CDictionary StrategyBook을 포함하여 필요한 변수를 선언하고, EA의 OnInit() 함수에서 고유 GUID를 할당하는 등 다양한 매개 변수를 시작하는 필요한 전략 Strategy01, Strategy02를 만듭니다. OnInit()의 맨 마지막에 다음 코드를 호출하여 전략을 StrategyBook에 저장하기로 결정했습니다.
EA에서 이 클래스를 전략의 컨테이너로 사용하기로 결정했습니다 (StrategyGUID, Strategy). 여기서 StrategyGUID는 ulong 유형의 식별자이고 Strategy는 CObject에서 상속 된 클래스를 기반으로 생성 된 전략입니다.
따라서 활성 전략의 책인 CDictionary StrategyBook을 포함하여 필요한 변수를 선언하고, EA의 OnInit() 함수에서 고유 GUID를 할당하는 등 다양한 매개 변수를 시작하는 필요한 전략 Strategy01, Strategy02를 만듭니다. OnInit()의 맨 마지막에 다음 코드를 호출하여 전략을 StrategyBook에 저장하기로 결정했습니다.
Каждый экспертописатель, независимо от уровня своей подготовки, ежедневно сталкивается с одними и теми же торговыми задачами и алгоритмическими проблемами, которые так или иначе приходится решать для организации надежного торгового процесса. Данная статья описывает возможности торгового движка CStrategy, способного взять на себя решение этих задач и предоставить пользователю удобные механизмы для описания своей торговой идеи.
바실리의 라이브러리를 성공적으로 사용하고 있어 감사하게 생각하고 있습니다. 정말 큰 도움이 되었어요!
저도 컴파일러 오류가 몇 개 있었는데 고칠 수 있었던 기억이 납니다. 하지만 어떤 오류였는지, 제가 무엇을 했는지는 정확히 기억나지 않습니다.
그리고 저는 MQL5 코드의 형식에 매우 짜증이 나고 항상 모든 것을 최신 C++ 형식(적절한 들여쓰기, 불필요한 대괄호 피하기, 주석 혼잡 없음 등)으로 다시 포맷하기 때문에 코드의 실제 변경 사항이 무엇인지 말하기는 불가능합니다. 제가 기억하는 것은 변경 사항이 작았다는 것뿐입니다.
적절한 형식의 라이브러리를 사용하고 싶으시다면 여기 있습니다:
(탭을 사용하고 있기 때문에 여기서는 서식이 깨진 것처럼 보이지만 메타에디터에서는 그렇지 않습니다!).
EA에서 이 클래스를 전략의 컨테이너로 사용하기로 결정했습니다 (StrategyGUID, Strategy). 여기서 StrategyGUID는 ulong 유형의 식별자이고 Strategy는 CObject에서 상속 된 클래스를 기반으로 생성 된 전략입니다.
따라서 활성 전략의 책인 CDictionary StrategyBook을 포함하여 필요한 변수를 선언하고, EA의 OnInit() 함수에서 고유 GUID를 할당하는 등 다양한 매개 변수를 시작하는 필요한 전략 Strategy01, Strategy02를 만듭니다. OnInit()의 맨 마지막에 다음 코드를 호출하여 전략을 StrategyBook에 저장하기로 결정했습니다.
StrategyBook.AddObject(Strategy01.strGUID,Strategy01);
StrategyBook.AddObject(Strategy02.strGUID,Strategy02);
그런데 두 줄 모두에서 "StrategyXX - 매개변수 변환이 허용되지 않습니다"라는 오류가 발생합니다.
C#에 대한 제 경험에 따르면 모든 것이 올바르게 수행됩니다. 하지만 MQL5에서는 이 오류가 발생합니다.
무엇과 관련이 있을까요?
EA에서 이 클래스를 전략의 컨테이너로 사용하기로 결정했습니다 (StrategyGUID, Strategy). 여기서 StrategyGUID는 ulong 유형의 식별자이고 Strategy는 CObject에서 상속 된 클래스를 기반으로 생성 된 전략입니다.
따라서 활성 전략의 책인 CDictionary StrategyBook을 포함하여 필요한 변수를 선언하고, EA의 OnInit() 함수에서 고유 GUID를 할당하는 등 다양한 매개 변수를 시작하는 필요한 전략 Strategy01, Strategy02를 만듭니다. OnInit()의 맨 마지막에 다음 코드를 호출하여 전략을 StrategyBook에 저장하기로 결정했습니다.
StrategyBook.AddObject(Strategy01.strGUID,Strategy01);
StrategyBook.AddObject(Strategy02.strGUID,Strategy02);
그런데 두 줄 모두에서 "StrategyXX - 매개변수 변환이 허용되지 않습니다"라는 오류가 발생합니다.
C#에 대한 제 경험에 따르면 모든 것이 올바르게 수행됩니다. 하지만 MQL5에서는 이 오류가 발생합니다.
무엇과 관련이 있을까요?
몇 가지 이유가 있을 수 있습니다. 대부분 유형 비호환성 또는 포인터를 사용한 잘못된 작업일 가능성이 큽니다. 또한 템플릿 메소드 작업의 특성을 배제 할 수 없습니다 (고유 한 뉘앙스도 있습니다).
일반적으로 기성품 거래 엔진을 사용하는 것이 더 좋으며 많은 시간과 신경을 절약 할 수 있습니다 : https://www.mql5.com/ko/articles/2166.
네, 결국 그렇게 하기로 결정했습니다.
새 문서 MQL5 쿡북: 빠른 데이터 액세스를 위한 연관 배열 또는 사전 구현이 게시되었습니다:
작성자: Vasiliy Sokolov
모든 노력에 감사하지만 코드 예제 중 어떤 것도 작동하는 것 같지 않습니다.
사전 딕셔너리인 것 같은데 CDictionary 딕 셔너리여야 합니다;
간단한 작동 예제는 어떻습니까?
새로운 MT4(빌드 1080, 2017년 5월 12일)의 경우 컴파일 중에 이러한 오류가 발생하여 실행을 방해합니다:
'm_array' - 객체를 포함하는 구조는 허용되지 않음 Dictionary.mqh 303 25
안녕하세요,
이전에 다른 사람이 말했듯이 컴파일 가능한 예제는 없습니다.
러시아어로 된 주석이 있는 파일만 있습니다.
바실리의 라이브러리를 성공적으로 사용하고 있어 감사하게 생각하고 있습니다. 정말 큰 도움이 되었어요!
저도 컴파일러 오류가 몇 개 있었는데 고칠 수 있었던 기억이 납니다. 하지만 어떤 오류였는지, 제가 무엇을 했는지는 정확히 기억나지 않습니다.
그리고 저는 MQL5 코드의 형식에 매우 짜증이 나고 항상 모든 것을 최신 C++ 형식(적절한 들여쓰기, 불필요한 대괄호 피하기, 주석 혼잡 없음 등)으로 다시 포맷하기 때문에 코드의 실제 변경 사항이 무엇인지 말하기는 불가능합니다. 제가 기억하는 것은 변경 사항이 작았다는 것뿐입니다.
적절한 형식의 라이브러리를 사용하고 싶으시다면 여기 있습니다:
(탭을 사용하고 있기 때문에 여기서는 서식이 깨진 것처럼 보이지만 메타에디터에서는 그렇지 않습니다!).
요소를 삭제하고 마지막 요소로 이동하려고 할 때 버그를 발견한 것 같습니다:
CDictionary.mqh에 오류가 발생합니다:
'Dictionary.mqh'에서잘못된 포인터 액세스 (463,9)
누구든지 이것을 확인할 수 있습니까? 수정하는 방법에 대한 아이디어가 있습니까?