Uma biblioteca rápida e gratuita para o MT4, muito para o deleite de quem trabalha com redes neurais - página 8

 
newerty >> :

Você pode me dizer, por favor? Como faço para que minha EA comercialize vários símbolos ao mesmo tempo?

Por exemplo, ouro, gbpusd, nzdusd, audusd etc...

Em cada par, obviamente diferentes S/L.

Clone MT4... clone advisor....???? E correr ao mesmo tempo?

Basta colocar a EA em diferentes gráficos.

O StopLoss em cada par é diferente.


A única coisa que você não pode fazer é pendurar outro EA em um par ocupado por um EA, ou negociar manualmente, porque os números mágicos não são usados. Isto é, não mais que uma EA por par.

 

Yuri, você poderia me dar um exemplo das configurações (prazo, período, etc.) que lhe dão um grande número de negócios?

 
Solver.it >> :

Yuri, você poderia me dar um exemplo das configurações (prazo, período, etc.) que lhe dão um grande número de negócios?

Na página 6 desta linha está um trecho do backtest. Está tudo aí.

 

Se a linha

if (IsOptimization() || IsTesting()) {


é substituído por

if (IsOptimization()){


então os resultados da corrida única se tornam mais estáveis.

Encontrei um problema diferente: a rede se ajusta muito rapidamente aos dados, gráficos como uma régua no testador, mas os testes para frente e para trás mostram um caráter de curva muito diferente.

 
Kharin >> :

Se o fio

if (IsOptimization() || IsTesting()) {


para substituir por

if (IsOptimization()){


então os resultados da corrida única se tornarão mais estáveis.

Encontrei um problema diferente: a rede se ajusta muito rapidamente aos dados, gráficos como uma régua no testador, mas os testes para frente e para trás mostram um caráter de curva muito diferente.

Isto é auto-explicativo, pois a remoção desta função desativa a adaptação em modo de teste. Mas deixei esta característica na EA de propósito. Quanto mais instáveis forem os resultados nas diferentes séries do teste adaptado, mais provável é que a rede não tenha aprendido nada em particular, pois é apenas mais uma época e tudo já é bem diferente. Isto é, se os resultados instáveis mostram que a grade não está segura na amostra de teste, então não podemos nem mesmo mencionar os avanços - neurônios nem mesmo viram suas citações.

 
É uma questão de gosto, é claro, mas eu colocaria esta escolha em variáveis externas. Entretanto, eu o fiz))))
 
Reshetov >> :

Repito: esta linha não carrega nenhuma carga de informação. O sinal de retorno não muda, enquanto as negociações serão abertas dependendo dos valores positivos ou negativos do retorno.

É óbvio sobre o sinal. Também é óbvio que sem um duque esta função retorna um valor significativo da resposta média do comitê de malhas, mas com um duque é uma besteira. Levando em conta que a mesma função é chamada na corrida normal das grades após o treinamento e é melhor rejeitar pequenos valores de retorno (tanto positivos quanto negativos) sem gerar negócios por eles, esta linha realmente contém informações importantes.

Você ainda não respondeu por que você só ensina as redes com exemplos negativos?

 
Kharin >> :

Encontrei um problema diferente: a rede se ajusta muito rapidamente aos dados, gráficos como uma régua no testador, mas os avanços e recuos mostram um caráter muito diferente da curva.

Sim, em sua forma atual, a EA não realiza avaliação da qualidade do treinamento. Se mudarmos a lógica de coleta de dados, poderemos inserir algumas chamadas: f2M_test (com dados de validação, não dados de treinamento) e f2M_get_MSE, interrompendo o treinamento quando o erro começar a crescer.

 

Yuri, quero fazer uma pergunta fora do tópico: é possível estabelecer uma grade separada para o SL (digamos por volatilidade - fazer previsões, e ajustar o SL a isso)?

Talvez isso ajude as grades paternosters a aprender mais consistentemente?

 

Yuri, acho que encontrei outra imprecisão no código... Estava bisbilhotando em meu código por estranhos resultados de aprendizagem e encontrei isto:

double ann_pnn() {
...
    ret = 2 * ret / AnnsNumber;

É uma obrigação:

ret = ret / AnnsNumber;

O fato de que o autor da biblioteca em sua EA, por razões que não entendo, dividiu a grade ao meio para posições curtas e longas respectivamente em pares e ímpares com os respectivos ciclos:

for (i = 0; i < AnnsNumber; i += 2) - для четных С ПРИРАЩЕНИЕМ "2" !!!
for (i = 1; i < AnnsNumber; i += 2) - для нечетных

Daí o duplo no denominador. Não precisamos disso em nosso caso. Embora seja claro que não terá muito efeito nos resultados do treinamento.

O significado deste laço (funções ann_pnn e run_anns) me escapa completamente...

for (i = 0; i < AnnsNumber; i++) {    ret += AnnOutputs[i];    }

Se temos uma grade com um neurônio de saída, onde conseguimos 16 saídas?!... Ou é um comitê de 16 malhas? É para isso que estou inclinado... Então a questão é: qual é o objetivo? Também deixei esta peça inalterada por enquanto, até que finalmente descubra seu significado. Alguém tem alguma idéia sobre isso? Por favor, compartilhe...