a corda está vazia, como se não existisse, ou seja, nem sequer a memória está atribuída.
Isto é observado para outros tipos. Se declarar uma variável, isso significa que a memória já está atribuída. Mas, de facto, uma corda não é um tipo primitivo, mas sim um tipo de referência.
Como poderia não ser? A memória para o objecto string é atribuída na pilha e o endereço de memória onde o texto começa é 0x00
não consegue descobrir como verificar oPrintFormat
Nota
PrintFormat() não é executado no modo de optimização do testador de estratégia.
Alguma ideia?
Que talStringFormat e a corda resultante para um ficheiro? (para cada passe criar o seu próprio ficheiro na pasta partilhada - para que o testador não os sobreescreva).
Vladimir Simakov: Como poderia não ser? A memória para o objecto da corda é atribuída na pilha, mas o endereço de memória em que o texto começa é 0x00.
A memória é atribuída apenas para o nome e a referência, mas não para o objecto em si, uma vez que ainda não existe. Este não é o caso dos tipos primitivos, a memória é aí alocada no momento em que a variável é criada, mesmo sem inicialização. Não quero incomodar-me com a terminologia. Toda a gente se entende de qualquer forma. Tudo isto é óbvio.
Que talStringFormat e a corda resultante para um ficheiro? (criar um ficheiro diferente para cada passe na pasta partilhada - para que o testador não os sobreescreva).
boa opção, irá testar
ZS: código novamente reescrito para trabalhar mais rapidamente no optimizador (os resultados foram 5h, agora 1,5h!!!)
agora cruzei a printf() em ajuda, e decidi verificar todas as minhas impressões, onde preciso de substituir.... e a optimização tornou-se 22h .... encontrei onde fiz asneira, mas claro que imediatamente pensei que estava tudo na printf() !!!
)))
Tentei verificar o printf() no optimizador:
int xx=10;
voidOnTick()
{ printf("1/x = %f",1/(xx--));
....
até agora consegui logo o que esperava:
2019.09.20 11:29:16.611 Core 1 genetic pass (0, 607) testado com erro "critical runtime error 503 in OnTick function (zero divide, module experts\)" às 0:00:00.048
Estava à espera que se dissesse"PrintFormat() não é executado. "então deve conseguir isso.
SZY: código novamente reescrito para trabalhar mais rapidamente no optimizador (os resultados foram 5h, agora 1,5 h!!!)
Agora cruzei a printf() em ajuda, e decidi verificar todas as minhas impressões, onde preciso de substituir.... e a optimização tornou-se 22 horas .... Encontrei onde fiz asneira, mas claro, pensei imediatamente que a causa de tudo na printf() !!!
)))
Tentei verificar o printf() no optimizador:
até agora consegui logo o que esperava:
2019.09.20 11:29:16.611 Core 1 genetic pass (0, 607) testado com erro "critical runtime error 503 in OnTick function (zero divide, module experts\)" às 0:00:00.048
Estava à espera que se dissesse"PrintFormat() não é executado. "então deve obtê-lo.
Aha. E obter valores diferentes de variável xx em teste único e em optimização.
1. Haverá uma gama de negociação permitida para VP via MOEX (por exemplo, EURRUB_TOM)? Neste momento não é possível saber ao certo se será estabelecido um limite, uma vez que não há acesso à gama (preços máximos e mínimos possíveis). Acrescente, por favor.
2. É possível adicionar ao terminal e meta-editor um estado de auto-salvamento a cada N minutos? Muito ausente, pois com uma súbita desconexão volta-se ao estado no início do programa com perda de todas as mudanças! Muito stressante!
Sobre o primeiro ponto: compreenda que é impossível negociar normalmente se não conhecer as limitações! Porque é possível obter estas limitações para alguns instrumentos e não para outros?
Функция возвращает максимальное из двух числовых значений.
doubleMathMax(
double value1, // первое числоdouble value2 // второе число
);
Vejo que não há opções, função tipo fmax() duplo , procurando onde posso ter perdido um valor fracionário, depois de procurar tudo e mais alguma coisa, faço o teste:
voidOnStart()
{
long slvl = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
int sl = 300;
Print(typename(fmax(slvl,sl)));
}
2019.09.20 18:06:34.194 tst (EURUSD,H1) long
ZS: Respondo de imediato, leio a ajuda até ao fim e vejo a frase: "O tipo de valor de retorno corresponde ao tipo sénior". ...imho, não é grave, que em 99% dos casos é suficiente procurar ajuda para a descrição da função, do que procurar um significado oculto entre linhas - é resultado escrito tipo fmin() --> duplo - por isso não há opções
a corda está vazia, como se não existisse, ou seja, nem sequer a memória está atribuída.
Isto é observado para outros tipos. Se declarar uma variável, isso significa que a memória já está atribuída.
Mas, de facto, uma corda não é um tipo primitivo, mas sim um tipo de referência.
não consegue descobrir como verificar oPrintFormat
Nota
PrintFormat() não é executado no modo de optimização do testador de estratégia.
Alguma ideia?
Que talStringFormat e a corda resultante para um ficheiro? (para cada passe criar o seu próprio ficheiro na pasta partilhada - para que o testador não os sobreescreva).
Como poderia não ser? A memória para o objecto da corda é atribuída na pilha, mas o endereço de memória em que o texto começa é 0x00.
A memória é atribuída apenas para o nome e a referência, mas não para o objecto em si, uma vez que ainda não existe. Este não é o caso dos tipos primitivos, a memória é aí alocada no momento em que a variável é criada, mesmo sem inicialização.
Não quero incomodar-me com a terminologia. Toda a gente se entende de qualquer forma.
Tudo isto é óbvio.
Que talStringFormat e a corda resultante para um ficheiro? (criar um ficheiro diferente para cada passe na pasta partilhada - para que o testador não os sobreescreva).
boa opção, irá testar
ZS: código novamente reescrito para trabalhar mais rapidamente no optimizador (os resultados foram 5h, agora 1,5h!!!)
agora cruzei a printf() em ajuda, e decidi verificar todas as minhas impressões, onde preciso de substituir.... e a optimização tornou-se 22h .... encontrei onde fiz asneira, mas claro que imediatamente pensei que estava tudo na printf() !!!
)))
Tentei verificar o printf() no optimizador:
até agora consegui logo o que esperava:
2019.09.20 11:29:16.611 Core 1 genetic pass (0, 607) testado com erro "critical runtime error 503 in OnTick function (zero divide, module experts\)" às 0:00:00.048
Estava à espera que se dissesse"PrintFormat() não é executado. "então deve conseguir isso.
boa opção, irá testar
SZY: código novamente reescrito para trabalhar mais rapidamente no optimizador (os resultados foram 5h, agora 1,5 h!!!)
Agora cruzei a printf() em ajuda, e decidi verificar todas as minhas impressões, onde preciso de substituir.... e a optimização tornou-se 22 horas .... Encontrei onde fiz asneira, mas claro, pensei imediatamente que a causa de tudo na printf() !!!
)))
Tentei verificar o printf() no optimizador:
até agora consegui logo o que esperava:
2019.09.20 11:29:16.611 Core 1 genetic pass (0, 607) testado com erro "critical runtime error 503 in OnTick function (zero divide, module experts\)" às 0:00:00.048
Estava à espera que se dissesse"PrintFormat() não é executado. "então deve obtê-lo.
Aha. E obter valores diferentes de variável xx em teste único e em optimização.
Apenas a chamada da função printf não é executada.
Aha. E obter valores diferentes de variável xx em teste único e em optimização.
Apenas a chamada da função printf não é executada.
Sim, é claro que o utilizador também o pode fazer dessa forma
mas como verificar printf() ?
HH: embora, se o revelador disse que não está impresso, então não temos de o verificar.
mas como se verifica printf() ?
Comparar o tempo de uma única passagem da optimização e o tempo de uma única passagem
Vou duplicá-lo:
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Insectos, insectos, perguntas
Alexey Kozitsyn, 2019.09.18 09:34
Algumas perguntas sobre a plataforma:
1. Haverá uma gama de negociação permitida para VP via MOEX (por exemplo, EURRUB_TOM)? Neste momento não é possível saber ao certo se será estabelecido um limite, uma vez que não há acesso à gama (preços máximos e mínimos possíveis). Acrescente, por favor.
2. É possível adicionar ao terminal e meta-editor um estado de auto-salvamento a cada N minutos? Muito ausente, pois com uma súbita desconexão volta-se ao estado no início do programa com perda de todas as mudanças! Muito stressante!
a ajuda está novamente incorrecta, li:https://www.mql5.com/ru/docs/math/mathmax
Функция возвращает максимальное из двух числовых значений.
Vejo que não há opções, função tipo fmax() duplo , procurando onde posso ter perdido um valor fracionário, depois de procurar tudo e mais alguma coisa, faço o teste:
2019.09.20 18:06:34.194 tst (EURUSD,H1) long