내 접근 방식. 코어 - 엔진. - 페이지 25

 
Yuriy Asaulenko :

MT에도 콜백이 없습니다. 모든 것은 MT에서 미리 결정된 이벤트에 따라 수행되며, 한 번이면 끝입니다.

여전히 터미널 이벤트 를 DLL에 전달하고 MT 또는 DLL에서 처리하는 위치는 중요하지 않습니다.

다음은 내 연결 인터페이스의 예입니다.

모든 것이 이미 여기에서 생각되었습니다.

파일:
 
Реter Konow :

MCL 응용 프로그램에서 Sharp의 메시지를 지속적으로 확인하는 데 비용이 많이 들지 않는다고 상상하더라도 상호 작용 형식을 개발하는 것은 매우 방대한 작업입니다.

이 작업에는 다음이 포함됩니다.

1. 공유 메모리의 조직을 발명합니다.

2. 3자 상호작용의 구현.

3. 3자 동시 테스트(Sharp, DLL, MT 애플리케이션).

매우 노동 집약적입니다.


제 경우에는 사용자가 파일을 가져와서 작성합니다. 그리고 연결이 작동합니다.

생각하지마. VBA Excel에서 C++에 이르기까지 다양한 터미널과 언어로 8년 동안 이 작업을 수행해 왔으며 이러한 문제에 대해 아무것도 모릅니다.)

나는 이미 다른 프로그래밍 언어와 환경의 존재에 대해 아무것도 모르는 MT-MQL을 제외하고는 시장 판매자 또는 사람들이 귀하의 시스템을 적용할 수 있다고 썼습니다.

 
Yuriy Asaulenko :

생각하지마. VBA Excel에서 C++에 이르기까지 다양한 터미널과 언어로 8년 동안 이 작업을 수행해 왔으며 이러한 문제에 대해 아무것도 모릅니다.)

내 연결 파일을 봐.

사용자는 포함을 통해 이 파일을 자신의 고문에 연결하기만 하면 됩니다. 그리고 채워줍니다. 그리고 모든 것이 작동합니다 ...
 
Yuriy Asaulenko :

...

나는 이미 다른 프로그래밍 언어와 환경의 존재에 대해 아무것도 모르는 MT-MQL을 제외하고는 시장 판매자 또는 사람들이 귀하의 시스템을 적용할 수 있다고 썼습니다.

그건 그렇고, 나는 현재 테스터에서 EA와 GUI 연결을 개발 중입니다. GUI는 하나의 차트에 있고 EA는 테스터에서 시작됩니다. 이 경우 완전히 상호 작용합니다. 그리고 테스터의 EA는 GUI와 상호 작용할 다른 차트의 사용자 작업에 응답합니다.

구현하는 방법을 알아봤습니다.

그리고 테스터에 있는 Expert Advisor와 DLL을 통해 Sharp 사이에 연결을 설정하는 것은... 불가능해 보입니다.

 
Реter Konow :

그리고 테스터에 있는 Expert Advisor와 DLL을 통해 Sharp 사이에 연결을 설정하는 것은... 불가능해 보입니다.

가능한 것 같습니다. 내가 아는 한 테스터는 DLL과의 통신에 어떤 제한도 부과하지 않습니다. 그러나, 나는 그것을 직접 시도하지 않았습니다.

 
Yuriy Asaulenko :

가능한 것 같습니다. 내가 아는 한 테스터는 DLL과의 통신에 어떤 제한도 부과하지 않습니다. 그러나, 나는 그것을 직접 시도하지 않았습니다.

네 물론 할 수 있습니다. 그래서 DLL이 허용됩니다.
 
글쎄, 아마도 당신은 할 수 있습니다 ... 그러나 Sharpe에 대한 "마조히즘적"선택은 고통스럽게 분명합니다)) 뉘앙스가 너무 많습니다 ... 그러나 선택의 여지가 없을 때 물론입니다.
 
Реter Konow :
글쎄, 아마도 당신은 할 수 있습니다 ... 그러나 Sharpe에 대한 "마조히즘적"선택은 고통스럽게 분명합니다)) 뉘앙스가 너무 많습니다 ... 그러나 선택의 여지가 없을 때 물론입니다.

Sharpe에 글을 쓴 적도 없고 관심도 없었지만 약 5년 전쯤에 .dll과 버튼과 폼을 Delphi에 연결했는데 모든 것이 문제 없이 작동했고 낮에는 전체 프로젝트를 Delphi에서 작성하고 절반을 보냈습니다. 하루는 표준 양식이 작동하지 않는 이유를 찾고 시스템 Windows 창에 대한 호출을 통해 연결했을 때 모든 것이 제대로 작동했지만 MT4는 매우 빡빡하고 느려졌습니다. 이제는 날아갑니다.

일반적으로 .dll을 연결하고 표준 뮤텍스와 편리하게 동기화하는 데 문제가 없습니다. 터미널과 통신하기 위해 스레드를 실행하면 끝입니다. 그러면 모든 것이 자체적으로 수행됩니다. .dll의 별도 형식, 별도로 MT 아무도 기다리지 않습니다 누구에게나

추신: Delphi는 .dll을 생성하는 데 다소 비실용적이지만 손에 있던 것(당시 내가 앉아 있던 것)을 사용했습니다)))


하지만 주제에 따르면 글쎄요, MT 전달에서 표준 클래스 를 사용할 수 없는 이유를 이해하지 못합니다. 기껏해야 그래픽을 만드는 프로세스를 통합하는 것이 흥미로울 것입니다. 불필요한 버튼/대화 상자 등을 주석 처리할 수 있습니다. .

[삭제]  
Piotr, 당신의 접근 방식이 새로운 것이라고 생각하지 마십시오.
OOP가 없을 때 프로그래머가 가지 않은 트릭.
이것은 오픈 소스 C 프로그램에서 직접 확인할 수 있습니다.
OOP가 이것을 할 수 있지만 할 수 없다는 사실에 대한 귀하의 모든 진술은 현실과 아무 관련이 없습니다.
당신은 OOP에 대해 말하는 것이 아니라 OOP에 대한 당신의 아이디어에 대해 이야기하고 있습니다. 당신이 그에 대해 그렇게 많은 이야기를 하는 것이 놀랍습니다.
그러나 그것이 무엇인지 알아내는 데 결코 귀찮게하지 않았습니다.

어떤 이유로 당신은 다른 사람의 경험을 무시하지만, 그것은 존재합니다.
Google에서 찾을 수 있는 내용을 4개월 동안 연구하면서 동시에 더 많은 것을 배우는 것은 어리석은 일입니다.
자신만의 마크업 언어를 발명할 때 어떤 이유에서인지 다른 사람의 경험을 연구하고 싶지도 않았습니다.
예를 들어, 무료 QT Designer가 있습니다. XML 기반 마크업 언어를 사용합니다.
Delphi, C++ Builder도 이제 XML을 사용합니다.
MS Visusl Studio에는 리소스 편집기도 있습니다. 대화 상자를 편집하고 리소스에 배치할 수 있습니다.
자체 마크업 언어도 있습니다.

GUI에 대한 내 경험을 바탕으로:
좋은 그래픽 라이브러리를 사용하면 그래픽 인터페이스로 작업하기가 훨씬 쉬워집니다.
시각적 편집기는 편의성을 거의 추가하지 않습니다. 사실 이것은 초보자를 위한 미끼일 뿐입니다.
마크업 언어는 일반적으로 비주얼 편집기에 양식을 저장하는 데 사용됩니다. 그것 없이는 마크업 언어가 필요하지 않습니다.
라이브러리를 사용하면 프로그래머가 마크업 언어를 사용하는 것보다 코드 로 그래픽 인터페이스를 만드는 것이 더 쉽습니다.
코드를 숨기고 싶기 때문에 마크업 언어를 강요한다고 생각합니다.

[삭제]  
Igor Makanu :

MQL에서 그래픽 코드를 작성할 수 있도록 무료 GUI 생성자 중 일부를 알려주시겠습니까?

Delphi Drag-and-Drop과 유사한 작업을 수행하고 싶지만 MQL에서 그래픽 코드를 작성할 수 있는 무료 생성자를 아직 찾지 못했습니다.

GUI 생성자는 특정 그래픽 라이브러리 용으로 만들어졌습니다. MQL용 GUI 생성자가 있다면 여기에 있을 것입니다.