Erros, bugs, perguntas - página 2585

 
Nikolai Semko:

Onde e em que momento se apaga o manípulo indicador?

Assim que já não seja necessário. E antes do OnDeinit.

 
fxsaber:

Assim que já não fosse necessário. E antes do OnDeinit.

É essa a questão, assim que deixar de ser necessário, eu apago. Como posso dizer a um programa que está a ser removido se o OnDeinit não funciona?

 
Nikolai Semko:

É essa a questão, assim que deixar de ser necessário, eu apago. Como pode um programa saber que está a ser removido se o OnDeinit não funciona?

Dê-me a tarefa real.

 
fxsaber:

O verdadeiro problema é contar-me o verdadeiro problema.

O verdadeiro problema foi facilmente resolvido evitando simplesmente obter a sua própria pega, uma vez que não precisa da sua própria pega:

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);
  }

só de pensar: e se precisar da sua própria pega...

havia tais problemas, mas não me lembro deles

 
Nikolai Semko:

apenas a pensar: e se precisar da sua própria pega...

Havia tais tarefas, mas não me lembro delas.

Init_Sync tem uma tal necessidade.

 
Roman:

post 25786

Por método de aleatorização, defini uma cópia normal em cadeia de mql, uma cadeia do tipo const wchar_t*.
Com este parâmetro na função memcpy, o mql começou a receber até cordas, e sem fugas.

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

Ou seja, em vez de 2 bytes de tamanho do(wchar_t), utilizou 3 bytes.
A corda mql começou a levar correctamente um ponteiro para a corda const wchar_t *.
Está tudo bem?

Mas curiosamente, a cadeia literal autodescrita é passada correctamente com sizeof(wchar_t).
 
Roman:

Por método de aleatorização, defini cópia normal para mql string, uma string de const wchar_t* tipo
Com tal parâmetro na função memcpy, o mql começou a receber até strings, e sem fugas.

Ou seja, em vez de 2 bytes de tamanho do(wchar_t), utilizou 3 bytes.
A corda mql começou a levar correctamente um ponteiro para a corda const wchar_t*
É normal?

Mas, curiosamente, a cadeia literal autoescrita é passada correctamente com sizeof(wchar_t).

Porque é utilizada a memória em vez da wcscpy normal ?

 
Ilyas:

Porquê utilizar a memcscpy em vez da wcscpy normal ?

memcpy foi utilizada como mostra oartigo de exemplo deRenate.
A utilização de outras funções de cópia causa os mesmos problemas.
O comportamento com estas funções é descrito neste posto eneste
Todas as funções de cópia possíveis foram experimentadas.

 
Não consigo ler 100000 barras M15 EURUSD a partir de qualquer data no testador (metaquot demo hedge server)


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(){


}

lê cerca de 37.000 bares. Ao correr no terminal, lê todas as 100000 barras.


Tentei adicionar o código de paging do servidor em https://www.mql5.com/ru/docs/series/timeseries_access#synchronized

Mas nada muda.

Como ler estas 100000 barras no provador?

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

Como se calculam estas 100.000 barras?

Comece por ler o artigo https://www.mql5.com/ru/articles/239

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