Os custos são maiores sem ambigüidade. Existem duas variantes com configurações de indicadores inalteradas e com os mesmos valores, mas já escritas em um arquivo, que são despejadas em uma matriz.
A variante com o arquivo leva muitas vezes mais tempo para ser calculada do que a variante com cálculo de indicador no Expert Advisor.
Eu estava pensando que talvez haja uma maneira de salvar a matriz uma vez e usá-la para todas as passagens de otimização, aliviando assim a carga no algoritmo.
Existe uma maneira de escrever e ler a matriz que leva mais tempo do que o cálculo do indicador?
Dmitry Fedoseev: Sim. Não é difícil ou caro. Você pode usar o modo binário. Você pode não ler o arquivo inteiro, mas comece a partir da posição que você precisa.
int init()
{
int k;
string Skip;
datetime Str_DtTm;
double L;
Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_BIN,",");
ResetLastError();
if(Handle<0) // Failure when opening a file
{
if(GetLastError()==4103)
Alert("There is no file named ",File_Name);
elseAlert("Error when opening a file ",File_Name);
PlaySound("Bzrrr.wav");
return(0);
}
ArrayInitialize(T,0);
ArrayInitialize(dn,0);
ArrayResize(T,stroki);
ArrayResize(dn,stroki);
for(k=stroki-1;k>=0;k--)
{
//--------------------------------------------------------- 5 --
Str_DtTm=FileReadDatetime(Handle);// строка даты
L=FileReadDouble(Handle);
Skip=FileReadString(Handle);//пропускаем//--------------------------------------------------------- 6 --
T[k]=Str_DtTm;
dn[k]=L;
//--------------------------------------------------------- 7 --if(FileIsEnding(Handle)==true){ Print("Конец отсчета=",TimeToString(T[k]));break;}//завершили отсчет
}
FileClose(Handle);
return(0);
}
incluem atos de compilação. Quem vai compilar? Talvez esta matriz dependa de parâmetros de otimização? Portanto, temos que gerar a matriz antes de cada otimização e compilá-la. É uma solução coxa.
Dmitry Fedoseev: incluem atos de compilação. Quem vai compilar? Talvez esta matriz dependa de parâmetros de otimização? Portanto, temos que gerar a matriz antes de cada otimização e compilá-la. É uma solução coxa.
Não invente - TC disse claramente que a matriz não sofreu alterações.
Naturalmente, se a matriz estiver sempre e completamente inalterada, é melhor incluí-la no código EA. Você pode incluí-lo diretamente no arquivo EA sem incluí-lo.
Dmitry Fedoseev: É claro, se a matriz é sempre e absolutamente imutável, é melhor incluí-la no código do Expert Advisor. Você pode fazer isso diretamente no arquivo do Expert Advisor, sem incluir.
Ainda não encontrei um include.Por favor, me oriente sobre como fazer isso aproximadamente.
forexman77: Eu ainda não me deparei com isso. Aponte-me na direção certa, como fazer isso de forma aproximada.
Você pode fazê-lo sem o inlude, gerar o código do array com o script, escrevê-lo em um arquivo (você também pode produzi-lo em Alert()), depois transferi-lo para o código EA com o mouse.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Os custos são maiores sem ambigüidade. Existem duas variantes com configurações de indicadores inalteradas e com os mesmos valores, mas já escritas em um arquivo, que são despejadas em uma matriz.
A variante com o arquivo leva muitas vezes mais tempo para ser calculada do que a variante com cálculo de indicador no Expert Advisor.
Eu estava pensando que talvez haja uma maneira de salvar a matriz uma vez e usá-la para todas as passagens de otimização, aliviando assim a carga no algoritmo.
Existe uma maneira de escrever e ler a matriz que leva mais tempo do que o cálculo do indicador?
Se você fizer isso, a matriz será salva quando você mudar para um novo passe?
Sim. Não é difícil ou caro. Você pode usar o modo binário. Você pode não ler o arquivo inteiro, mas comece a partir da posição que você precisa.
O modo binário é quando não há conversões de linha para número?
Eu também acrescentaria essa otimização em um gráfico de 1 minuto sobre uma grande história.
incluem atos de compilação. Quem vai compilar? Talvez esta matriz dependa de parâmetros de otimização? Portanto, temos que gerar a matriz antes de cada otimização e compilá-la. É uma solução coxa.
O modo binário é quando não há conversão de string para número?
https://www.mql5.com/ru/docs/files/filereadarray
https://www.mql5.com/ru/docs/files/filewritearray
Os links também têm exemplos.
Não invente - o TC disse claramente que a matriz não sofreu alterações.
sim, você deve...
É claro, se a matriz é sempre e absolutamente imutável, é melhor incluí-la no código do Expert Advisor. Você pode fazer isso diretamente no arquivo do Expert Advisor, sem incluir.
Eu ainda não me deparei com isso. Aponte-me na direção certa, como fazer isso de forma aproximada.