오류, 버그, 질문 - 페이지 2585

 
Nikolai Semko :

그리고 표시 핸들을 삭제할 위치와 시점은 무엇입니까?

즉시, 더 이상 필요하지 않게 되었습니다. 그리고 OnDeinit 전에.

 
fxsaber :

즉시, 더 이상 필요하지 않게 되었습니다. 그리고 OnDeinit 전에.

문제는 그가 더 이상 필요하지 않게 되자마자 내가 그를 삭제한다는 것입니다. OnDeinit가 작동하지 않으면 프로그램이 삭제된다는 것을 이해하는 방법은 무엇입니까?

 
Nikolai Semko :

문제는 그가 더 이상 필요하지 않게 되자마자 내가 그를 삭제한다는 것입니다. OnDeinit가 작동하지 않으면 프로그램이 삭제된다는 것을 이해하는 방법은 무엇입니까?

실제 문제를 진술하십시오.

 
fxsaber :

실제 문제를 진술하십시오.

실제 문제는 핸들을 가져오는 간단한 예외로 쉽게 해결되었습니다. 자신은 필요하지 않습니다:

Total = ChartIndicatorsTotal ( 0 , 0 );
for ( int i= 0 ; i<Total; i++) 
  {
       string name= ChartIndicatorName ( 0 , 0 ,i);
       if (name!= MQLInfoString ( MQL_PROGRAM_NAME )) 
         handle[i] = ChartIndicatorGet ( 0 , 0 ,name);
  }

내 생각에는: 만약 당신이 당신 자신의 손잡이가 필요하다면...

그런 작업이 있었는데 기억이 안나네요

 
Nikolai Semko :

내 생각에는: 만약 당신이 당신 자신의 손잡이가 필요하다면...

그런 작업이 있었는데 기억이 안나네요

Init_Sync에는 그러한 필요가 있습니다.

 

무작위 찌르기 방법을 사용하여 const wchar_t* 유형의 문자열인 mql-ovsky 문자열로의 정상적인 복사를 결정했습니다.
memcpy 함수에서 이 매개변수를 사용하면 mql에 짝수 라인이 누출 없이 도착하기 시작했습니다.

memcpy( out , data, wcslen(data) * ( sizeof ( char )* 3 ) );

즉, 2바이트 sizeof(wchar_t) 대신 3바이트를 사용했습니다.
mql 문자열이 문자열 const wchar_t*에 대한 포인터를 올바르게 수락하기 시작했습니다.
정상인가요?

그러나 흥미롭게도 자체 작성 리터럴 문자열은 sizeof(wchar_t)로 올바르게 전달됩니다.
 
Roman :

무작위 찌르기 방법으로 const wchar_t* 유형의 문자열인 mql-ovsky 문자열로의 정상적인 복사를 결정했습니다.
memcpy 함수에서 이 매개변수를 사용하면 mql에 짝수 라인이 누출 없이 도착하기 시작했습니다.

즉, 2바이트 sizeof(wchar_t) 대신 3바이트를 사용했습니다.
mql 문자열이 문자열 const wchar_t*에 대한 포인터를 올바르게 수락하기 시작했습니다.
정상인가요?

그러나 흥미롭게도 자체 작성 리터럴 문자열은 sizeof(wchar_t)로 올바르게 전달됩니다.

일반 wcscpy 대신 memcpy 가 사용되는 이유는 무엇입니까?

 
Ilyas :

일반 wcscpy 대신 memcpy가 사용되는 이유는 무엇입니까?

Memcpy는 Renata의 예제 문서 에 표시된 대로 사용되었습니다.
다른 복사 기능을 사용하면 유사한 문제가 발생합니다.
이러한 기능의 동작은 이 게시물 게시물에 설명되어 있습니다.
가능한 모든 복사 기능이 이미 시도되었습니다.

 
테스터에서 임의의 날짜(데모 헤지 메타쿼트 서버)에서 CopyTime() 100000 bar M15 EURUSD를 셀 수 없습니다.


void OnInit()
  {
    datetime first_date;
   SeriesInfoInteger(_Symbol,_Period,SERIES_FIRSTDATE,first_date);
   int bars=Bars(_Symbol,_Period);
   Print("First date ",first_date," - ",bars," bars");
   
   datetime time[];
   CopyTime(_Symbol,PERIOD_M15,D'2015.01.01',100000,time);
   Print("rows=",100000," =? ",ArraySize(time));
   Print("Load data from ",D'2015.01.01'," =? ",time[0]," to ",time[ArraySize(time)-1],", rows=",100000," =? ",ArraySize(time));
//---

  }
 
void OnTick(){


}

약 37,000바를 읽습니다. 터미널에서 실행하면 100,000개의 막대를 모두 읽습니다.


https://www.mql5.com/en/docs/series/timeseries_access#synchronized를 통해 서버에서 데이터를 업로드하는 코드를 추가하려고 했습니다.

그러나 아무것도 바뀌지 않았습니다.

테스터에서 이 100,000바를 계산하는 방법은 무엇입니까?

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Прежде чем ценовые данные будут доступны в терминале MetaTrader 5, их необходимо получить и обработать. Для получения данных требуется подключение к торговому серверу MetaTrader 5. Данные поступают с сервера по запросу терминала в виде экономно упакованных блоков минутных баров. Механизм обращения к серверу за данными не зависит от того, каким...
 
elibrarius :

이 100,000바를 어떻게 세나요?

시작하려면 https://www.mql5.com/ru/articles/239 기사를 읽으십시오.

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
사유: