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

 
Реter Konow :

또 다른 심각한 질문입니다.

직접 해보지는 않았지만, 자원을 통한 빠른 교환의 실효성에 의문이 있습니다.

빠른 교환 - 지속적으로 앞뒤로 16밀리초.

디스크가 로드되지 않습니까?

당신은 "조기 최적화의 죄"에 빠진다 :-)

데이터 교환 의 클래스(또는 OO가 싫다면 함수 세트)를 만드십시오. 실제 프로젝트에서 속도가 느려지면 옵션에 대해 생각할 것입니다. 그래서 또 6개월 동안 무의미한 테스트를 하게 됩니다.

PS 그건 그렇고, 당신은 프로젝트를 대중에게 알리기 위해 무언가를 했습니까? 또는 전통적으로 포럼에서 CHSV를 긁습니다 :-)

 
Artyom Trishkin :

차트 댓글의 크기가 제한되어 있습니다. 아님? 나는 약간 비틀거렸다.

한계가 있다고 생각합니다. 나는 문자열을 통해 MqlTick 틱만 EventChartCustom 에 전달합니다. 이벤트 큐는 틱 시퀀스를 저장합니다. 매우 편안합니다.

 
Реter Konow :

즉, 유니온을 통해 문자열 배열을 uint로 변환할 수 있습니까?

어떻게 구현되었는지 기억나지 않지만 문자열 배열뿐만 아니라 다른 데이터 유형도 모든 유형(MqlTick에서도)으로 변환할 수 있습니다. 코드는 동일할 것입니다.

그리고 StringToChar()를 사용하는 것보다 빠릅니까?

모르겠어. 메소드를 사용하여 문자열로 변환한 다음 StringToChar를 통해 uint로 변환하려면 MqlTick을 시도하십시오. 그리고 물론 다시. 측정하고 비교합니다.

가능하면 작고 간단한 예를 들어 주십시오. 귀하의 코드를 이해할 수 없습니다.

 #include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart ()
{    
   string Str[] = { "123" , "Hello World!" , "Peter Konow" };

  CONTAINER< uint > Container; // Создаем контейнер - все будет храниться в массиве простого типа (в примере выбран uint)     
  Container[ 0 ] = Str;         // Записали в контейнер строковый массив
  
  CONTAINER< uint > Container2;                 // Создаем контейнер-получатель   
   ArrayCopy (Container2.Data, Container.Data); // Скопировали в него ТОЛЬКО содержимое uint массива

   string Str2[];
  Container2[ 0 ].Get(Str2); // Получили данные в исходном виде
   ArrayPrint (Str2);
}
 
fxsaber :

한계가 있다고 생각합니다. 나는 문자열을 통해 MqlTick 틱만 EventChartCustom 에 전달합니다. 이벤트 큐는 틱 시퀀스를 저장합니다. 매우 편안합니다.

적은 양의 메시지(최대 64자)와 지속적으로 빠르게 앞뒤로 전송하는 경우 몇 가지 편리한 옵션이 있습니다.

게다가 EventChartCustom은 OnChartEvent() 이벤트 대기열에 들어가기 때문에 최상이 아닙니다.

그러나 1000자 이상의 문자를 앞뒤로 빠르게 전송하는 경우 EventChartCustom 및 이벤트 대기열로 인해 지연이 발생합니다(예: 테이블 및 사용자 정의 애니메이션을 다시 그리는 경우).

자원을 통한 빠른 이전이 의심스럽습니다.

여기에서 디스크를 로드하지 않을 것이라고 말합니까?

 

침묵으로 판단하면 아마 그럴 것이다.

여기서 우리는 확인했습니다.))

 
Реter Konow :

자원을 통한 빠른 이전이 의심스럽습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MetaTrader 5 플랫폼 빌드 1930의 새 버전: MQL5의 플로팅 차트 창 및 .Net 라이브러리

fxsaber , 2018.12.09 00:18

이 예제 는 이제 15배 더 빠릅니다.

 1000000
Time [TestResource()] = 286646


대략적으로 말하자면, 리소스를 통한 쓰기/읽기 틱의 전체 주기는 초당 4백만 틱의 속도로 진행됩니다.


여기에서 디스크를 로드하지 않을 것이라고 말합니까?

리소스로 작업할 때는 디스크가 사용되지 않습니다. 모든 것이 메모리에 있습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2018.12.11 09:19

확인해보니 60Mb가 리소스에 조용히(MT4/5) 쓰여집니다. 따라서 한도가 있으면 더 높아집니다.

 
fxsaber :


리소스로 작업할 때는 디스크가 사용되지 않습니다. 모든 것이 메모리에 있습니다.

고맙습니다. 따라서 이 옵션이 남아 있습니다.

 
fxsaber :


리소스로 작업할 때는 디스크가 사용되지 않습니다. 모든 것이 메모리에 있습니다.

테스터는 어떻습니까? 테스터에서 생성된 리소스가 외부에서 볼 수 있습니까? 그리고 그들은 테스터에서 전혀 생성됩니까?

추신. 그리고 여기 한 동지가 리소스라고 말했습니다. 테스터에서 작동하는지 여부는 알려져 있지 않습니다.))
 
Реter Konow :

테스터는 어떻습니까? 테스터에서 생성된 리소스가 외부에서 볼 수 있습니까?

그리고 그들은 테스터에서 전혀 생성됩니까?

Tester에서 리소스 작업을 확인하지 않았습니다. 그들이 거기에서 작동한다면 테스터가 터미널 내부에 있기 때문에 MT4에서 볼 수 있지만 테스터가 터미널에 어떤 식으로든 연결되어 있지 않기 때문에 MT5에는 없습니다. 그곳에서는 Common-files를 통해서만 교환이 가능합니다.


ZY 위의 모든 정보는 한 가지 방법으로 얻은 것입니다. 스스로 질문하고 코드 검사를 통해 답변했습니다. 추천하다.

 
fxsaber :

Tester에서 리소스 작업을 확인하지 않았습니다. 그들이 거기에서 작동한다면 테스터가 터미널 내부에 있기 때문에 MT4에서 볼 수 있지만 테스터가 터미널에 어떤 식으로든 연결되어 있지 않기 때문에 MT5에는 없습니다. 그곳에서는 Common-files를 통해서만 교환이 가능합니다.

알았습니다. 확인이 필요합니다. 오늘 확인하겠습니다.