멀티스레딩에 대한 추가 정보 - 페이지 4

 
meat :

글쎄, 이런 식으로 말하자. 당신이 나열한 모든 것이 mql5 도구를 참조하는 것은 결코 아닙니다. 당신은 항상 탈출구를 찾을 수 있습니다. 의심의 여지가 없습니다. 그리고 대화는 변태할 필요가 없도록 mql5에 적절한 기능을 추가하지 않는 이유에 대한 것입니다.

MQL5에는 필요한 모든 것이 있으며 사용 방법을 배우기만 하면 됩니다.

계산의 일부를 지표로 전송하고 EA에서 실행합니다.

그리고 아무도 24명의 (낙관적으로) 사용자에 대해 정기적인 병렬화를 수행하지 않을 것입니다.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
TheXpert :
그래서 멀티스레딩을 위한 스크립트가 있습니다. 테스터에는 필요하지 않습니다.

전문가로부터 스크립트를 실행하는 방법은 무엇입니까?

 
komposter :

계산의 일부를 지표로 전송하고 EA에서 실행합니다.

글쎄, 당신은 탬버린과 함께 춤을 추는 것에 대해 다시 이야기합니다. 그것은 정상적인 구현에 관한 것이었습니다.

그리고 아무도 24명의 (낙관적으로) 사용자에 대해 정기적인 병렬화를 수행하지 않을 것입니다.

처음에는 MQL5가 mql4와 달리 자격을 갖춘 프로그래머를 위한 언어로 자리 잡은 것 같았습니다. 이것은 알고리즘을 최적화하고 여러 스레드로 병렬화하는 주제가 일상적인 필수 사항이어야 함을 의미합니다. 따라서 주제의 맨 처음에 이 점에 주의를 기울였습니다. 그리고 레나트는 어떤 이유에서인지 매우 고통스럽게 반응했습니다.

여기에서 많은 사람들이 제안하는 것처럼 한 곳을 통해 최적화 문제를 끊임없이 해결하는 것은 전혀 원하는 것이 아닙니다.

게다가 처음에 나는 그들에게 정기적인 병렬화를 요구하지 않는다고 말했다. WinApi를 사용하여 모든 것을 직접 병렬화할 수 있습니다. 필요한 것은 함수의 주소뿐입니다. 그래서 함수 포인터만 추가하도록 요청했습니다. 물론 __stdcall 지시문을 지원하는 것도 바람직하지만 이 역시 선택 사항이므로 필요한 조작을 스스로 수행할 수 있습니다.

함수 포인터는 실제로 매우 유용한 것입니다. 그것들을 사용하여 스레드를 만드는 것은 많은 용도 중 하나일 뿐입니다. 예를 들어 다양한 비동기 작업에서 콜백 함수를 설정하는 데에도 사용됩니다. 또한 DLL로 전송할 때 매우 유용하므로 DLL과 이를 가져온 Expert Advisor 간의 연결이 간소화됩니다. 사실 완전한 통합이 있습니다. 실행하는 동안 DLL은 MQL 함수를 직접 호출하여 필요한 정보를 얻을 수 있습니다. 이제 이를 수행하려면 Expert Advisor의 실행을 유발하는 일종의 이벤트(예: 틱)를 생성해야 합니다. 이 이벤트는 필요한 정보를 DLL로 전송합니다... 일반적으로 추가 치질 그리고 시간 낭비

 
멀티스레딩에 대해
  1. 언어에 멀티스레딩을 추가하는 것은 멀티스레딩을 지원하는 특수 API를 만드는 것과 관련이 있습니다.
    이러한 지원이 없으면 API보다 느리게 작동하므로 이것이 명확하기를 바랍니다(잠금 등).
  2. MQL5 컴파일러 옵티마이저를 다시 작성해야 합니다. 실제로는 최적화가 악화됩니다.
  3. 이것은 미묘한 사용자 오류가 있는 곳입니다.
마지막으로, 이것을 필요로 하는 사용자가 많지 않으며 지원 부족을 우회할 수 있습니다.


함수 포인터 정보.
문제는 MQL5 코드 에서의 사용과 관련하여 열려 있습니다.
불행히도 DLL에 대한 포인터 전달은 작동하지 않습니다. x86/x64 플랫폼 간을 위해 호출 규칙을 희생해야 했습니다.
 
mql5 :
멀티스레딩에 대해

사람은 이론적 추론을 위해 단순히 언어를 트롤링하고 (언어가 ...라고 생각했습니다) 언어의 적용 특성이나 멀티 스레딩의 결과를 이해하지 못합니다.

사실, 그는 병렬 처리에 대한 실제 작업조차 가지고 있지 않습니다.

 

mql5 :
 ...Ну и последнее, нужно это не очень малому числу пользователей и отсутствие поддержки можно обойти .

스크립트를 사용한다는 아이디어가 마음에 들었지만 Expert Advisor에서 스크립트를 호출하는 방법은 무엇입니까?

 
DC2008 :

스크립트를 사용한다는 아이디어가 마음에 들었지만 Expert Advisor에서 스크립트를 호출하는 방법은 무엇입니까?

불행히도 MQL5에서 실행 스크립트는 제공되지 않습니다.

하지만 차트 템플릿을 통해 전문가 대신 스크립트를 추가하는 방법이 있습니다.
이러한 템플릿을 새 차트에 적용하면 스크립트가 실행됩니다(단, 이는 "문서화되지 않은 기능"이며 언젠가는 되지 않을 수 있음)...

당신의 임무는 무엇입니까?
이벤트를 수신하고 제 역할을 수행할 다음 차트에서 실행 중인 Expert Advisor가 준비되어 있지 않은 이유는 무엇입니까?
새로운 MQL5 프로그램 의 출시는 EX5 파일의 보호로 인해 비용이 많이 듭니다.
 
mql5 :
불행히도 MQL5에서 실행 스크립트는 제공되지 않습니다.

하지만 차트 템플릿을 통해 전문가 대신 스크립트를 추가하는 방법이 있습니다.
이러한 템플릿을 새 차트에 적용하면 스크립트가 실행됩니다(단, 이는 "문서화되지 않은 기능"이며 언젠가는 되지 않을 수 있음)...

당신의 임무는 무엇입니까?
이벤트를 수신하고 제 역할을 수행할 다음 차트에서 실행 중인 Expert Advisor가 준비되어 있지 않은 이유는 무엇입니까?
새로운 MQL5 프로그램 의 출시는 EX5 파일의 보호로 인해 비용이 많이 듭니다.

분석해야 할 수천 개의 그래픽 개체가 있습니다: 불필요한 개체 삭제, 속성 변경, 통계 계산 등. 하나의 차트에도 브레이크가 있는데, 브레이크가 여러 개라면?

 
그래픽 개체의 경우 멀티스레딩은 이론적으로도 도움이 되지 않습니다.

그래픽 개체로 작업하는 문제는 알고리즘적으로 해결해야 합니다. 개체를 변경하고 읽기 위한 명령을 드물게 혼합하지 마십시오. 예를 들어, 1000번 읽고 나서 1000번 쓰는 것이 1000번 읽고 쓰는 것보다 훨씬 빠릅니다.
 
mql5 :
멀티스레딩에 대해
  1. 언어에 멀티스레딩을 추가하는 것은 멀티스레딩을 지원하는 특수 API를 만드는 것과 관련이 있습니다.
    이러한 지원이 없으면 API보다 느리게 작동하므로 이것이 명확하기를 바랍니다(잠금 등).
  2. MQL5 컴파일러 옵티마이저를 다시 작성해야 합니다. 실제로는 최적화가 악화됩니다.
  3. 이것은 미묘한 사용자 오류가 있는 곳입니다.
마지막으로, 이것을 필요로 하는 사용자가 많지 않으며 지원 부족을 우회할 수 있습니다.


함수 포인터 정보.
질문은 MQL5 코드 에서의 사용에 대해 열려 있습니다.
불행히도 DLL에 대한 포인터 전달은 작동하지 않습니다. x86/x64 플랫폼 간을 위해 호출 규칙을 희생해야 했습니다.
확장된 답변 감사합니다. 이제 모든 것이 다소간 명확해졌습니다. 내가 이해하는 것처럼 DLL에 대한 포인터를 전달할 수 없다는 것과 관련된 유일한 것은 시스템 DLL(즉, __stdcall 규칙)을 의미했습니까? 그리고 내 DLL에서 다른 계약을 처방할 수 있습니다. 아니면 어떤 기준에도 부합하지 않는 당신만을 위한 것입니까?