MQL의 비동기 및 다중 스레드 프로그래밍 - 페이지 6

 
Andrey Pogoreltsev :

MQL5에는 OrderSendAsync와 같은 비동기식이 있습니다.

네트워크 또는 파일 시스템과의 상호 작용 - WinAPI를 사용하여 위의 솔루션을 작성했습니다. 제 생각에는 모든 것이 여기에 있습니다. Microsoft 웹 사이트에서 이러한 방법을 사용하는 방법을 읽을 수 있습니다. 아직 발견되지 않은 것은 무엇입니까?)

예, 나는 OrderSendAsync 에 대해 알고 있지만 이것은 요청을 보내기 위한 것입니다.
대략 이 방향으로 WinAPI가 보였지만 mql에서 스트림을 사용할 수 없다는 무지로 인해 포함 상자의 프로토타입이 오해의 소지가 있었습니다.

 
Andrey Pogoreltsev :

MQL5에는 비동기식이 있습니다(예: OrderSendAsync).

MQL4/5에는 항상 MQL 코드 실행의 비동기 및 다중 스레딩이 있었습니다. https://www.mql5.com/en/docs/runtime/running

저것들. 모든 것이 기본적으로 준비되어 있습니다. 유일한 문제는 MQL 프로그램 간의 데이터 교환입니다. 개발자가 미리 만든 솔루션이 없거나 오히려 터미널의 전역 변수 만 있습니다. 이것이 그들이 생각한 데이터 교환 방식입니다. 매우 불편합니다. 비효율적이지만 KB에 데이터 교환을 위한 기성 솔루션이 있습니다.

NN 교육은 위에서 언급했습니다. 멀티스레딩이 필요합니다. 예, 하지만 Alglib만 MT와 함께 제공되며 얼마 동안 사용했는데 NN 교육이 1-2초 이상 필요한지 보지 못했습니다. 왜 속도가 있습니까? - 타사 NS 패키지를 사용하는 경우 - 옵션이 없으면 MT에서 나와야 합니다. - dll을 사용합니다. 그러면 데이터 교환 및 멀티스레딩을 구성하는 데 문제가 무엇입니까? - dll에서 모든 것을 구현합니다.

Pythons에 대한 언급이 있었습니다... 속도에 대한 질문은 전혀 없었습니다. NS 개발을 위한 매우 매우 구체적인 환경은 모든 것이 있는 것처럼 보이지만 단순히 사용하는 것은 불가능합니다. 가장 흥미로운 것은 Python에서 NS로 작업하는 것입니다! )))

추신: 이 개념의 일반적인 의미에서 Python에는 멀티스레딩이 없습니다 . 하지만 여기에서 제가 틀릴 수 있습니다. 저는 Python을 정말 좋아하지 않습니다. 많은 소음과 주류, 모든 것이 기본적으로 작동하지만 .... 그러나 그러한 브레이크 시스템으로 작업하는 것은 불가능합니다. 유일한 장점은 Python 및 대규모 온라인 커뮤니티를 위해 이미 만들어진 많은 코드입니다.

 

베어 포인터가 왜 그렇게 안전하지 않습니까?

제 생각에는 개발자들이 교활하고 진짜 이유는 dll에서 끌어내지 못하게 하기 위해서입니다. 아마도 까다로운 호출 규칙이 적용되었을 것입니다.

 
Vict :

베어 포인터가 왜 그렇게 안전하지 않습니까?

제 생각에는 개발자들이 교활하고 진짜 이유는 dll에서 끌어내지 못하게 하기 위해서입니다. 아마도 까다로운 호출 규칙이 적용되었을 것입니다.

사회자가 쓴 것처럼 보안상의 이유로 물리적 메모리 주소에 대한 액세스는 닫혀 있습니다.
이를 통해 경험 많은 파렴치한 코더는 컴파일된 프로그램의 모든 요소에 액세스할 수 있습니다.

 
Roman :

사회자가 쓴 것처럼 보안상의 이유로 물리적 메모리 주소에 대한 액세스는 닫혀 있습니다.
이를 통해 경험 많은 파렴치한 코더는 컴파일된 프로그램의 모든 요소에 액세스할 수 있습니다.

믿기 어렵습니다. 단순히 성인 언어와 경쟁할 필요가 없습니다. 그리고 재컴파일 중에 크기를 변경하는 것과 같은 이러한 모든 칩은 동일한 목적으로 사용됩니다.

 
Vict :

믿기 어렵습니다. 단순히 성인 언어와 경쟁할 필요가 없습니다. 그리고 재컴파일 중에 크기를 변경하는 것과 같은 이러한 모든 칩은 동일한 목적으로 사용됩니다.

아니요, 아니요, mql4의 일반적인 디컴파일을 기억하고 누적된 오류를 고려하고 보호를 구현했습니다.
대체로 이것은 직접적인 WinAPI 호출을 손상시키는 효과적인 보안 선택이지만 dll에 대한 액세스가 열려 있기 때문에 기능이 변경되지 않고 상호 작용 방식이 변경됩니다.
따라서 이제 어디에서나 프로그램의 디컴파일 및 해킹 가능성을 찾을 수 없습니다. 그리고 이것은 개발자들에게 좋은 일이며 존경합니다.

 
Vict :

베어 포인터가 왜 그렇게 안전하지 않습니까?

admin Renat는 항상 Metaquotes가 보안을 제공할 수 있는 솔루션을 선택하는 것과 같은 질문에 답했습니다. 옵션으로 컴파일된 ex4에 코드를 추가할 수 있는 메모리 포인터를 받은 후 자신의 바이러스를 주입할 수 있습니다. 예 5


로만 :

직접적인 WinAPI 호출의 피해

다시 스물 다섯! 어떤 피해? 런타임이 있고 프로그램이 회전 중이며 이 런타임 없이는 독립적으로 작동할 수 없습니다.

- WinAPI를 사용하여 별도의 프로세스에서 Python 함수 본문 을 실행할 수 있습니까?

-..... WinAPI를 사용하여 Java에서 함수 본문?

-..... WinAPI를 사용하여 WordBASIC에서 함수 본문?


옵션으로 Metaquotes는 명확한 답변을 제공했습니다. 이러한 기능은 제공되지 않습니다. 명령 체인을 더 아래로 이동합니다. Python Software, Oracle, Microsoft로 작성합니다. 다른 두뇌를 제공합니다.

)))

 
Roman :

아니요, 아니요, mql4의 일반적인 디컴파일을 기억하고 누적된 오류를 고려하고 보호를 구현했습니다.
대체로 이것은 직접적인 WinAPI 호출을 손상시키는 효과적인 보안 선택이지만 dll에 대한 액세스가 열려 있기 때문에 기능이 변경되지 않고 상호 작용 방식이 변경됩니다.
따라서 이제 어디에서나 프로그램의 디컴파일 및 해킹 가능성을 찾을 수 없습니다. 그리고 이것은 개발자들에게 좋은 일이며 존경합니다.

고려하고 시장의 하위 세부 사항이 기본으로 컴파일되기 시작했습니다.

레나트

보호 시스템이 완전히 변경되었기 때문에 빌드 500에서 이미 약하게 디컴파일되었습니다.

MQL5 엔진과 마켓으로 전환한 후 디컴파일이 있는 주제는 완전히 소멸됩니다. 누가 모릅니다 - 시장의 제품은 구매 시점에 32/64 기본(순수 어셈블러, 어떤 식으로든 디컴파일하지 않음)으로 컴파일되며 구매자의 하드웨어에서 암호화됩니다.

그리고 메타따옴표를 사용하여 다른 사이트에서 디컴파일하는 것은 심지어 유익합니다. 일반적으로 - 개인적인 것이 아니라 비즈니스일 뿐입니다.
 
fxsaber :

MQL의 프레임워크 내에서 두 작업은 EA 카운터의 자동 실행을 통해 해결됩니다.

자, 그게 내가 한 일입니다. 사실, 저는 Web-Request를 사용하지 않지만 자동 최적화(이미 TS 리그에 무언가가 있습니다)가 최대한 작동합니다. 또한 선택은 여러 단계로 이루어지며 먼저 "깨끗한" 시스템이 최적화되고 해당 매개변수가 고정된 다음 손익분기점 최적화가 시작되고 매개변수가 고정된 다음 보호 라인 최적화가 시작됩니다(필요한 경우). 또한 모든 곳에서 프레임 및 데이터 처리 작업이 있습니다.

필요한 모든 멀티스레딩은 기본적으로 이미 사용 가능합니다.

 
Igor Makanu :

admin Renat는 항상 Metaquotes가 보안을 제공할 수 있는 솔루션을 선택하는 것과 같은 질문에 답했습니다. 옵션으로 컴파일된 ex4에 코드를 추가할 수 있는 메모리 포인터를 받은 후 자신의 바이러스를 주입할 수 있습니다. 예 5

디버거에서 전문가와 함께 터미널 을 시작하고 실행이 시작되는 상대 주소를 찾을 수 없다고 정말 생각하십니까? 함수 또는 변수의 주소? 또 다른 사실은 이러한 주소가 변경될 수 있다는 것입니다(트릭으로 인해). 그러나 이론상으로는 일반 포인터가 제공하는 모든 것을 찾을 수 있습니다.

런타임에 포인터를 통해 함수의 주소를 찾아 dll에서 끌어오는 다른 것이 그들을 두렵게 합니다.