MQL5 및 MQL5 Cloud Network에서 범용 수학 계산을 추가로 지원하려면 무엇을 추가해야 합니까?

 

MetaTrader 5 테스터가 거래 전략을 테스트할 수 있을 뿐만 아니라 보편적인 작업의 전체 클래스를 해결할 수 있다는 것을 모든 사람이 아는 것은 아닙니다. 이를 위해 시장 환경 데이터 전달이 비활성화되는 특수 모드 "수학적 계산"이 있어 전송되는 데이터의 양을 크게 절약할 수 있습니다.

현재 우리는 보편적 결제 네트워크를 구축하기 위한 여러 가지 중요한 기능을 구현했습니다.

  • 시장 환경을 비활성화하는 작동 모드 " 수학 계산 ".
  • #property tester_file "my_file.dat"를 첨부하여 원시 데이터를 전달하면 모든 크기의 원시 데이터를 처리하고 결과를 반환할 수 있습니다.
  • 첨부된 #resource 리소스로 소스 데이터를 전달합니다.
  • 터미널에서 서버 모드를 정산하고 에이전트에서 프레임 형태로 데이터 배열을 전송합니다. 에이전트는 FrameAdd 를 통해 모든 데이터를 터미널로 반환할 수 있으며, 동일한 Expert Advisor의 서버 부분은 별도의 창에서 터미널 측에서 실행되어 FrameXXX 기능을 통한 데이터 추출과 함께 OnTesterPass 진입점을 통해 결과를 수신합니다. 수신된 데이터는 터미널 측에서 기록하고 그래프로 시각화하는 등의 작업을 수행할 수 있습니다. 이에 대한 자세한 내용은 " 실시간 최적화 프로세스 제어 및 에이전트에서 MetaTrader 5로 대량 데이터 전송 " 항목에 설명되어 있습니다.
  • 명명된 파이프 를 통해 별도의 서버를 사용하여 로컬 및 원격 에이전트(MQL5 클라우드 네트워크 제외) 작업.
  • 지불 속도를 높이기 위해 거대한 에이전트 네트워크를 임대합니다.
  • 원격 에이전트의 네트워크에 자신의 정착 농장을 구축합니다.

물론 MQL5의 보안, 속도, 유전자 분류 등이 적용됩니다.

따라서 문제 - 결제 네트워크의 기능을 향상시키기 위해 어떤 다른 기능이 포함되어야 합니까?

 
Renat :

따라서 문제 - 결제 네트워크의 기능을 향상시키기 위해 어떤 다른 기능이 포함되어야 합니까?

클라우드의 "수학" 모드에서 OpenCL 사용을 허용합니다 .
OpenCL: Мост в параллельные миры
OpenCL: Мост в параллельные миры
  • 2012.05.16
  • Sceptic Philozoff
  • www.mql5.com
В конце января 2012 года компания-разработчик терминала MetaTrader 5 анонсировала нативную поддержку OpenCL в MQL5. В статье на конкретном примере изложены основы программирования на OpenCL в среде MQL5 и приведены несколько примеров "наивной" оптимизации программы по быстродействию.
 
TheXpert :
클라우드의 "수학" 모드에서 OpenCL 사용을 허용합니다 .

이것은 이미 여러 번 논의되었습니다. Windows 드라이버가 작동하는 방식 때문에 아키텍처적으로 불가능합니다. 계산된 함수가 비디오 드라이버의 보호된 부분인 한 솔루션이 없습니다. 이제 원격 데스크톱을 통해 Windows에 연결하더라도 OpenCL에 액세스할 수 없습니다.

그래픽 카드 제조업체가 계산 부분을 비디오 드라이버와 별개인 별도의 인터페이스에 넣으면 행복이 찾아옵니다. 지금까지는 Nvidia Tesla만이 이 방향으로 움직이고 있습니다.

 
OnTesterInit() 함수에서

연결된 리소스의 형태가 아니라 최적화 중에 생성된 데이터 배열의 형태로 에이전트에 초기 데이터 전송을 추가합니다.

다음과 같이 다소:

 void OnTesterInit()
  {
   // здесь формируем массив данных (например ArrayPass[])
   // и передаем сформированный массив агенту для расчетов
   return (ArrayPass);
  }

.

...

물론이죠.

 
그리고 이 데이터를 누가, 어떻게 정확하게 전송해야 합니까?

누가, 무엇을, 어떻게 기술적인 상세한 설명에 관심이 있습니다.
 
Renat :
1. 누가, 어떻게 이 데이터를 정확히 전송해야 합니까?

2. 누가, 무엇을, 어떻게 기술적인 상세한 설명에 관심이 있습니다.

1. 당연히 사용자는 위에서 제안한 대로 "이와 같이:"로 전송해야 합니다.

2. 누구를, 어떻게, 설명할 수 없음)

에이전트는 무엇을 위한 것입니까? - 문제를 해결하기 위해.

어떤 작업을 해결합니까? - 지옥은 알고 있습니다. 가장 중요한 것은 결정하는 것입니다.

문제를 해결하는 데 필요한 것 - 입력 데이터 및 출력.

출구는 분명해 보이지만 입구는 명확하지 않다.

내가 뭔가를 놓친 게 아닐까? 입력 데이터(이전 출력 데이터를 기반으로 계산)를 에이전트에 전달하는 방법은 무엇입니까?

 
her.human :

1. 당연히 사용자는 위에서 제안한 대로 "이와 같이:"로 전송해야 합니다.

2. 누구를, 어떻게, 설명할 수 없음)

사실 우리는 적어도 2단계에서 기술적으로 개발된 제안이 정확히 필요합니다. "무엇을, 어떻게"는 그다지 적합하지 않습니다.

 
her.human :

에이전트에 입력을 전달하는 방법(이전 출력에서 계산됨)

이것은 이미 요청되었으며 최적화 진행 상황을 관리하는 것이 때때로 매우 도움이 될 것입니다.

그러나 다음 다이빙에서 많은 질문이 발생합니다(한 로컬 에이전트에서 최적화가 발생하지 않는 한).

 
Renat :

사실 우리는 적어도 2단계에서 기술적으로 개발된 제안이 정확히 필요합니다. "무엇을, 어떻게"는 그다지 적합하지 않습니다.

당신은 그렇게 말할 것입니다 - "응용 프로그램은 기술 과제의 형태로 수락됩니다", 그렇지 않으면 "우리는 아이디어를 들을 것입니다"로 인식됩니다.
 
Komposter는 그렇게 범주적이지 않지만 여전히 조금 더 기술적인 것이 필요합니다.

저희 입장에서는 단말의 참여 없이 에이전트 간의 독립적인 커뮤니케이션을 생각하고 있습니다. 예를 들어, 에이전트 중 하나는 초기 데이터를 생성하고 이를 나머지 브로드캐스트에 보낼 수 있습니다.
 
Renat :
저희 입장에서는 단말의 참여 없이 에이전트 간의 독립적인 커뮤니케이션을 생각하고 있습니다. 예를 들어, 에이전트 중 하나는 초기 데이터를 생성하고 이를 나머지 브로드캐스트에 보낼 수 있습니다.

그것은 다른 것에 관한 것입니다. 최적화 프로세스를 관리하고 싶었을 뿐입니다.

저것들. 최적화 과정에서 매개변수 세트를 생성하고 실행을 위해 에이전트에 보냅니다.

당연히 많은 질문이 있을 것입니다. 나는 그들에게 대답할 준비가 되지 않았다.