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

 
fxsaber :

친애하는 fxsaber.

리소스를 통해 모든 데이터를 교환할 수 있다는 것을 알고 있습니다.

하지만 먼저 문자열로 변환 한 다음 StringToChar()를 통해 uint로 변환하여 리소스에 저장해야 합니다. 그리고 이에 대한 코드는 훨씬 간단합니다.

그러나 이 방법이 동일한 문자열을 전달하는 것보다 느리다 는 것을 개체 설명 을 통해 증명 했습니다.


내 상대는 문자열 유형을 경멸하고 모든 데이터를 유니온을 통해 한 번에 uint로 변환하는 신화적인 방법을 사용하는 것에 대해 이야기합니다.

또한 문자열도 공용체를 통해 uint로 변환해야 합니다.


StringToChar()가 있는 경우 유니온을 통해 줄을 uint로 전송하려면 어떻게 해야 하나요???

 
Maxim Kuznetsov :

일반적으로 어드바이저, 인디케이터, 스크립트 간의 데이터 교환에는 GlobalVariables 및 파일만 있고 배타적으로 있습니다.

위의 4가지 포인트는 모두 물고기 부족으로 인한 현지 "해킹"입니다. 위의 4가지 포인트는 모두 임의 데이터 교환을 위한 것이 아닌 데이터 배열을 위한 메커니즘을 사용합니다.

p1. 100%는 인터페이스 스레드를 일시적으로 잠그고(오, 개체가 거기에 있고 "설명"도 있음) 옵티마이저에서 작동하지 않습니다. 개체 설명은 사람이 읽을 수 있는 개체 설명을 위한 것입니다.

p2. 테스터 및 옵티마이저에서 작동하지 않으며 이벤트에 대해 알리는 데 사용됩니다.

p3. p4. 리소스(이름 포함)는 "빠른 스왑"이 아닌 장기 저장을 위한 것입니다. 테스터/옵티마이저에서 성능에 대해서는 아무 말도 하지 않겠습니다 :-) 리소스를 읽기 전용으로 사용합니다.

곡선 솔루션의 성능에 대해 이야기하는 것은 의미가 없습니다.

ps/ 그런데 파일이나 파이프를 사용할 수 있습니다.

당신은 모든 것을 올바르게 썼습니다.

그러나 "카키색"은 우리의 전부입니다.))

최적화 모드 의 테스터에서는 EA와 엔진 간의 연결이 작동하지 않습니다. 이것은 필요하지 않습니다.


이벤트에 대한 매개변수 값의 본격적인 교환을 위해 어드바이저와 엔진은 최대 2000자 크기의 데이터를 서로 전송해야 합니다. 많지 않아요. 하지만, 그리고 많이.


가장 편리한 해킹은 1번입니다.

Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Типы оптимизации - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
В данном режиме происходит полный перебор всех возможных комбинаций значений входных переменных, выбранных для оптимизации на соответствующей вкладке. Быстрая (генетический алгоритм) В основу данного типа оптимизации заложен генетический алгоритм подбора наилучших значений входных параметров. Данный тип оптимизации значительно быстрее полного...
 
Реter Konow :

내 상대는 문자열 유형을 경멸하고 모든 데이터를 유니온을 통해 한 번에 uint로 변환하는 신화적인 방법을 사용하는 것에 대해 이야기합니다.

또한 문자열도 공용체를 통해 uint로 변환해야 합니다.

위의 코드 는 한 번에 여러 유형(문자열뿐만 아니라 문자열 배열 포함)을 uint로 변환하고 그 반대로 변환하는 코드입니다.

그러나 나는 그것이 이 대화에서 유용할 것이라고 생각하지 않습니다.


추신 당신이 정말로 라인을 통해 원한다면

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

라이브러리: HistoryTicks

fxsaber , 2018.12.04 09:11

 // Пример передачи/обмена данных между программами через поле комментария чартов

#include <fxsaber\HistoryTicks\Data_String.mqh> // https://www.mql5.com/ru/code/20298

void OnStart ()
{
   int ArrayIn[] = { 0 , 1 , 2 , 3 , 4 , 5 };  
   ChartSetString ( 0 , CHART_COMMENT , DATA_STRING::ToString(ArrayIn));     // Записали данные в комментарий чарта

   int ArrayOut[];    
  DATA_STRING::FromString( ChartGetString ( 0 , CHART_COMMENT ), ArrayOut); // Прочли данные из комментария чарта
  
   ArrayPrint (ArrayOut);
}
 
fxsaber :

위의 코드 는 한 번에 여러 유형(문자열뿐만 아니라 문자열 배열 포함)을 uint로 변환하고 그 반대로 변환하는 코드입니다.

그러나 나는 그것이 이 대화에서 유용할 것이라고 생각하지 않습니다.

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

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

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

 
Реter Konow :

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

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

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

예제는 이 스레드 에 있습니다 .

이를 재현하려면 예제 코드에 작성된 링크가 있는 라이브러리를 연결해야 합니다.

Мой подход. Ядро - Движок.
Мой подход. Ядро - Движок.
  • 2018.12.19
  • www.mql5.com
В этой ветке, я хочу рассказать о своем подходе в программировании. Заранее предупреждаю, - здесь не будет обсуждений GUI...
 
fxsaber :

...

추신 당신이 정말로 라인을 통해 원한다면

최대 댓글 크기는 얼마입니까?

 
Реter Konow :

당신은 모든 것을 올바르게 썼습니다.

그러나 "카키색"은 우리의 전부입니다.))

최적화 모드 의 테스터에서는 EA와 엔진 간의 연결이 작동하지 않습니다. 이것은 필요하지 않습니다.


이벤트에 대한 매개변수 값의 본격적인 교환을 위해 어드바이저와 엔진은 최대 2000자 크기의 데이터를 서로 전송해야 합니다. 많지 않아요. 하지만, 조금은 아닙니다.


가장 편리한 해킹은 1번입니다.

이 "가장 편리한 해킹"을 사용하면 "어린이 갈퀴", 즉 사용자가 매우 사랑하고 재부팅 중에 사용되는 템플릿을 밟을 수 없습니다.
 
fxsaber :
...


추신 당신이 정말로 라인을 통해 원한다면

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

 

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

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

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

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

 
Maxim Kuznetsov :
이 "가장 편리한 해킹"을 사용하면 "어린이 갈퀴", 즉 사용자가 매우 사랑하고 재부팅 중에 사용되는 템플릿을 밟을 수 없습니다.

명확히 해주세요.

추신. 의사 소통을 위해 특별한 개체가 사용됩니다. 이름. polzov와 우연의 일치가 없었습니다. 사물.