그래픽 모드에서 MQL용 GUI 작성. - 페이지 13

 
Алексей Барбашин :

Maxim, 이 솔루션이 더 나은 이유는 무엇입니까? 결국 플래그의 상태를 폴링하기 위해서는 MQL에서도 주기적으로 체크가 필요하다. 파헤치지 않은 곳에서 데이터를 수집할 때임을 이해하기 위해 무언가의 상태 변화를 지속적으로 모니터링해야 합니다. 그리고 이 조각은 dll 자체에 저장하고 거기에서 확인할 수 있습니다. 귀하의 예에는 플래그 상태를 반환하는 암시적 dll 호출이 있습니다.

플래그를 확인하는 것은 매우 빠른 작업입니다. 일반적으로 가장 빠릅니다 :-)

위의 예에서는 암시적 호출이 없습니다.

InitDLL은 int *flags를 입력으로 받아 자체 어딘가에 저장하고 무언가를 계산하는 스레드를 생성하고 완료 시 atomic_inc(플래그)를 수행합니다.

EA는 플래그[0]만 확인하면 됩니다.

 
확인하기 위해서입니다. 이것이 핵심입니다. 그러나 "작업"이 완료되었음을 도구에 알릴 것을 제안합니다. 즉, 검사에 지속적인 리소스를 소비할 필요가 없습니다. 경고가 왔습니다 - 데이터가 수신되었습니다.
 
Maxim Kuznetsov :

플래그를 확인하는 것은 매우 빠른 작업입니다. 일반적으로 가장 빠릅니다 :-)

위의 예에서는 암시적 호출이 없습니다.

InitDLL은 int *flags를 입력으로 받아 자체 어딘가에 저장하고 무언가를 계산하는 스레드를 생성하고 완료 시 atomic_inc(플래그)를 수행합니다.

EA는 플래그[0]만 확인하면 됩니다.

여기서만 플래그의 간단한 검사로는 충분하지 않습니다. 스레드 간 동기화가 필요하고 원자 또는 뮤텍스가 취해야 하는 장벽이 물론 모든 CPU와 관련이 없기 때문입니다.


알렉세이 바바신 :
확인하기 위해서입니다. 이것이 핵심입니다. 그러나 "작업"이 완료되었음을 도구에 알릴 것을 제안합니다. 즉, 검사에 지속적인 리소스를 소비할 필요가 없습니다. 경고가 왔습니다 - 데이터가 수신되었습니다.
뮤텍스는 어떻게 구현됩니까? 내가 아는 한 플래그를 확인하고 설정하는 것입니다. 어쨌든 흐름의 어딘가에서 일부 플래그를 확인해야 합니다.
 
Maxim Kuznetsov :

플래그를 확인하는 것은 매우 빠른 작업입니다. 일반적으로 가장 빠릅니다 :-)

위의 예에서는 암시적 호출이 없습니다.

InitDLL은 int *flags를 입력으로 받아 자체 어딘가에 저장하고 무언가를 계산하는 스레드를 생성하고 완료 시 atomic_inc(플래그)를 수행합니다.

EA는 플래그[0]만 확인하면 됩니다.

맥스, 콜백으로 상황이 명확해졌습니다. 우리는 우리가 가진 것을 사용하고 개발자가 역 상호 작용의 가능성을 추가할 때까지 기다릴 것입니다.

GUI 문제로 돌아가고 싶습니다. 무엇에 그려졌는지는 중요하지 않습니다. 예를 들어, 나는 샤프에서 하고 당신은 Tcl에서 합니다.

형태가 그 자체로 존재하는 한 어려움은 없다. 그러나 양식이 저절로 날아가지 않고 해당 차트에 연결되기를 정말로 원합니다.

생성된 폼의 부모를 설정하면 원하는 차트에 배치됩니다. 그러나 여기서 창을 차트와 "병합"하는 문제가 발생하고 차트는 단순히 "접착된" 형태를 그립니다.

이 문제는 아직 MT 개발자의 범위 밖에 있기 때문에 당분간 이 문제를 해결하는 것이 좋습니다.

GUI를 차트에 연결해 보셨습니까?

 
pavlick_ :

여기서만 플래그의 간단한 검사로는 충분하지 않습니다. 스레드 간 동기화가 필요하고 원자 또는 뮤텍스가 취해야 하는 장벽이 물론 모든 CPU와 관련이 없기 때문입니다.


뮤텍스는 어떻게 구현됩니까? 내가 아는 한 플래그를 확인하고 설정하는 것입니다. 어쨌든 흐름의 어딘가에서 일부 플래그를 확인해야 합니다.

맞아요. 그러나 이것은 예를 들어 OnChartEvent 와 함께 작동하므로 가장 낮은 응용 프로그램 수준에서 이미 발생하도록 둡니다. 즉, 이제 명시적으로 프로그래밍(검사)하고 있지만 이 모든 것을 Renat이 말한(제공된 옵션) 응용 프로그램 수준으로 전송할 수 있습니다.

 
Maxim Kuznetsov :

나는 가득 찼다 :-) 나는 준다 - 당신은 MS에서 그것을 던질 수 있다

066cd265-e2fe-468e-9492-4228e9759e38
8e1040ba-dc3e-4e2a-9208-e3ea8da9ad05
03dcd7cd-4b9b-4ff7-bff0-e0839a0f9d8b
d69f2c8c-de51-4557-8188-4ebb870da7da
a79a8cc6-f785-4268-bc4e-2deda0f1ecd0
f4f59f52-1da8-4f74-a71e-9aec1992674d
85608797-6015-456d-af64-ad7890120372
9289991a-e287-47fb-b595-6d719c1b7dbd
63d3b953-3229-4045-a82a-fc9e7795bb01
c75c4e0f-8320-42df-943c-9aada54b60eb

무엇이든 저에게 연락하십시오. 아마도 더 많이 찾을 수 있을 것입니다.

감사합니다, 합격했습니다!

 
Alexey Volchanskiy :

감사합니다, 합격했습니다!

그래서 그것은 스캘퍼보다 훨씬 더 수익성이 있습니다! 소매 가이드에게 센트를 줄 준비가 되면 $ 1/10에 도매합니다. 이익은 전송 속도에 의해서만 제한됩니다 :-) 초당 몇 킬로바이트의 GUID
 
Maxim Kuznetsov :
그래서 그것은 스캘퍼보다 훨씬 더 수익성이 있습니다! 소매 가이드에게 센트를 줄 준비가 되면 $ 1/10에 도매합니다. 이익은 전송 속도에 의해서만 제한됩니다 :-) 초당 몇 킬로바이트의 GUID

유혹, 젠장. 이것이 우리가 중고 GUID 시장을 정복하는 방법입니다! 그리고 우리는 독점자가 되어 비트코인처럼 인위적인 흥분을 만들어 부자가 될 것입니다!

 
Алексей Барбашин :

맥스, 콜백으로 상황이 명확해졌습니다. 우리는 우리가 가진 것을 사용하고 개발자가 역 상호 작용의 가능성을 추가할 때까지 기다릴 것입니다.

GUI 문제로 돌아가고 싶습니다. 무엇에 그려졌는지는 중요하지 않습니다. 예를 들어, 나는 샤프에서 하고 당신은 Tcl에서 합니다.

형태가 그 자체로 존재하는 한 어려움은 없다. 그러나 양식 이 저절로 날아가지 않고 해당 차트에 연결 되기를 정말로 원합니다.

생성된 폼의 부모를 설정하면 필요한 차트에 배치됩니다 . 그러나 여기서 창을 차트와 "병합"하는 문제가 발생하고 차트는 단순히 "접착된" 형태를 그립니다.

이 문제는 아직 MT 개발자의 범위 밖에 있기 때문에 당분간 이 문제를 해결하는 것이 좋습니다.

GUI를 차트에 연결해 보셨습니까?

솔직히 차트에 양식을 연결할 필요가 없었습니다.

나는 분명히 나 자신을 분리합니다. 차트와 직접 관련된 운영 그래픽이 있습니다(모든 종류의 선, 서명, 비문 등). 이것은 MT를 통해 자연스럽게 수행됩니다.

설정, 보고서, 통계와 같은 관리 GUI가 있습니다. 그리고 그것들은 꽤 커서 차트 안에 채우는 것은 사용자에 대한 범죄입니다 :-)

상위 항목을 변경하지 않고 차트 상단에 양식을 배치할 수 있습니다. 그냥 어리석게도 그것을 맨 위에 놓으십시오 ;-) 물론 창 관리자에서 양식을 가져와 차트 지오메트리 및 포커스의 변경 사항을 추적해야 합니다.
이것이 "수동 일몰"입니다 :-) 그러나 MetaTrader 내부에 들어가지 않고 창에 새로운 자식과 후크를 부과하지 않습니다. 즉, 적절하게 행동합니다.

DLL에서 호출되는 모든 GUI에는 가장 불쾌한 기능이 있습니다. 이를 호출하는 어드바이저/지시자는 사소한 재채기부터 주기적으로 다시 시작합니다. 매트의 형태와 폭포의 재발견을 일으키는 것은..
아마도 오랫동안 발표된 "서비스"(또는 호출되는 모든 것)에는 그러한 단점이 없을 것입니다.

업데이트/ 양식 배치 - 차트에 RectLabel을 표시하고 차트 이벤트의 좌표 변경을 추적합니다. 변경할 때 - 양식을 맨 위에 놓으십시오 :-) 탭을 변경할 때 탬버린으로 약간의 춤을 추고 양식을 제 시간에 숨기기 위해 창을 최소화해야 합니다.
 
Alexey Volchanskiy :

전혀 설명하지 않았습니다. 명확하게 대답하십시오 plz - 어떻게 MT에서 * 샤프의 패널에서 데이터를 얻습니까?

타이머 폴링으로 메모리 매핑을 통해 피드백을 했습니다. 패널은 다른 설정과 느린 계산 결과만 전송했습니다.

외부 차량이 있고 터미널에서 GUI 피드백이 필요하지 않습니다.