+
Esse é um exemplo de MLP? O aprendizado ficou mais rápido com o Adam? Lembro-me de que as épocas levaram muito tempo para aprender da última vez
O gradiente estocástico leva muito tempo para funcionar, com certeza
Obrigado pelo artigo.
Há planos para organizar outros métodos de cálculo da função de perda de aprendizado?
Dmitriy Gizlyk - Você tem prática além da teoria ou é um eterno "professor"?
prática - é quando, com a ajuda de seus métodos, você obtém sucesso nas negociações?

- www.mql5.com
Dmitriy Gizlyk - você tem prática além da teoria pura e simples ou é um eterno "professor"?
prática - é quando, com a ajuda de seus métodos, você obtém sucesso nas negociações?
Você quer que o artigo contenha uma máquina de imprimir dinheiro?
O homem fala sobre arquitetura de rede e variações de sua organização, o que é interessante e o que alimentar a rede fica a cargo do usuário.
Pergunta. Quais são as finalidades da criação de uma enumeração
enum ENUM_BUFFERS
{
WEIGHTS,
DELTA_WEIGHTS,
OUTPUT,
GRADIENT,
FIRST_MOMENTUM,
SECOND_MOMENTUM
};
e variáveis na classe CLayer?
class CLayer: public CArrayObj { private: ... int hWeights; int hDeltaWeights; int hOutput; int hGradient; ... };
Não consigo encontrar seu uso no código.
Pergunta. Para que fins as transferências são criadas?
e variáveis na classe CLayer?
Não consigo encontrar seu uso no código.
Obrigado por apontar isso. Você pode excluí-las, pois elas são remanescentes de rascunhos.
Olá a todos. Quem encontrou esse erro ao tentar ler um arquivo?
OnInit - 198 -> Erro de leitura de AUDNZD.......
Olá a todos. Quem já encontrou esse erro ao tentar ler um arquivo?
OnInit - 198 -> Erro de leitura de AUDNZD.......
Essa mensagem apenas informa que a rede pré-treinada não foi carregada. Se estiver executando o EA pela primeira vez, isso é normal e não preste atenção à mensagem. Se já tiver treinado a rede neural e quiser continuar a treiná-la, deverá verificar onde ocorreu o erro de leitura de dados do arquivo.
Infelizmente, você não especificou o código de erro para que possamos dizer mais.Essa mensagem informa apenas que a rede pré-treinada não foi carregada. Se estiver executando o EA pela primeira vez, isso é normal e não preste atenção à mensagem. Se você já tiver treinado a rede neural e quiser continuar a treiná-la, deverá verificar onde ocorreu o erro de leitura de dados do arquivo.
Infelizmente, você não especificou o código de erro para que possamos dizer mais.Olá.
Vou lhe contar mais sobre isso.
Ao iniciar o Expert Advisor pela primeira vez. Com essas modificações no código:
dError=Net.getRecentAverageError(); if(add_loop) { Net.Save(FileName+".nnw",dError,dUndefine,dForecast,dtStudied,false); printf("Era %d -> error %.2 f %% forecast %.2 f",count,dError,dForecast); } ChartScreenShot(0,FileName+IntegerToString(count)+".png",750,400); int h=FileOpen(CSV,FILE_READ|FILE_WRITE|FILE_CSV); if(h!=INVALID_HANDLE) { FileSeek(h,0,SEEK_END); FileWrite(h,eta,count,dError,dUndefine,dForecast); FileFlush(h); FileClose(h); Print("Файл должен быть создан ChartScreenShot "); } else Print("Операция FileOpen ChartScreenShot неудачна, ошибка ",GetLastError()); } }
no registro, ele escreve isso:
KO 0 18:49:15.205 Core 1 NZDUSD: carregar 27 bytes de dados históricos para sincronizar em 0:00:00.001
FI 0 18:49:15.205 Core 1 NZDUSD: histórico sincronizado de 2016.01.04 a 2022.06.28
FF 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OnInit - 202 -> Erro de leitura de AUDNZD_PERIOD_D1_ 20Fractal_OCL_Adam 1.nnw prev Net 0
CH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OpenCL: GPU device 'gfx902' selected
KN 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Era 1 -> error 0.01 % forecast 0.01
QK 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Arquivo a ser criado ChartScreenShot
HH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Era 2 -> erro 0.01 % previsão 0.01
CP 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Arquivo a ser criado ChartScreenShot
PS 2 18:49:19.829 Core 1 desconectado
OL 0 18:49:19.829 Core 1 conexão fechada
NF 3 18:49:19.829 Tester parado pelo usuário
И в директории "C:\Users\Borys\AppData\Roaming\MetaQuotes\Tester\BA9DEC643240F2BF3709AAEF5784CBBC\Agent-127.0.0.1-3000\MQL5\Files"
Este arquivo foi criado:
Fractal_10000000.csv
#define FileName Symb.Name()+"_"+EnumToString((ENUM_TIMEFRAMES)Period())+"_"+IntegerToString(HistoryBars,3)+StringSubstr(__FILE__,0,StringFind(__FILE__,".",0)) #define CSV "Fractal_"+StringSubstr(DoubleToString(eta),2)+".csv"
com o seguinte conteúdo :
0.1 1 0.006391065067727753 0.30606698779533065 0.009849141883310947 |
0.1 2 0.01416031275898674 0.320172057079727 0.009671500063084178 |
0.1 1 0.021322935369592233 0.4824709164481285 0.009510368103745911 |
0.1 2 0.03047882579179044 0.4736268224037817 0.009336035129387396 |
0.1 1 0.04096262961921367 0.4747386346906194 0.009164897823757697 |
0.1 2 0.04745129346676422 0.9935630387598718 0.1983981648307233 |
e assim por diante...
Ao reiniciar, o mesmo erro é exibido e o arquivo .csv é sobrescrito .
Ou seja, o Expert está sempre em treinamento porque não encontra o arquivo.
E a segunda pergunta, por favor, sugira o código (para ler os dados do neurônio de saída) para abrir ordens de compra e venda quando a rede estiver treinada.
Obrigado pelo artigo e pela resposta.
Olá.
Vou lhe contar mais sobre isso.
quando o Expert Advisor é iniciado pela primeira vez. Com essas modificações no código:
no registro, ele escreve isso:
KO 0 18:49:15.205 Core 1 NZDUSD: carregar 27 bytes de dados do histórico para sincronizar em 0:00:00.001
FI 0 18:49:15.205 Core 1 NZDUSD: histórico sincronizado de 2016.01.04 a 2022.06.28
FF 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OnInit - 202 -> Erro de leitura AUDNZD_PERIOD_D1_ 20Fractal_OCL_Adam 1.nnw prev Net 0
CH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 OpenCL: Dispositivo de GPU 'gfx902' selecionado
KN 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Era 1 -> error 0.01 % forecast 0.01
QK 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Arquivo a ser criado ChartScreenShot
HH 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Era 2 -> erro 0,01 % previsão 0,01
CP 0 18:49:15.205 Core 1 2019.01.01 00:00:00 Um arquivo deve ser criado ChartScreenShot
PS 2 18:49:19.829 Core 1 desconectado
OL 0 18:49:19.829 Core 1 conexão fechada
NF 3 18:49:19.829 Testador interrompido pelo usuário
И в директории "C:\Users\Borys\AppData\Roaming\MetaQuotes\Tester\BA9DEC643240F2BF3709AAEF5784CBBC\Agent-127.0.0.1-3000\MQL5\Files"
Este arquivo foi criado:
Fractal_10000000.csv
com este conteúdo :
0.1 1 0.006391065067727753 0.30606698779533065 0.009849141883310947 |
0.1 2 0.01416031275898674 0.320172057079727 0.009671500063084178 |
0.1 1 0.021322935369592233 0.4824709164481285 0.009510368103745911 |
0.1 2 0.03047882579179044 0.4736268224037817 0.009336035129387396 |
0.1 1 0.04096262961921367 0.4747386346906194 0.009164897823757697 |
0.1 2 0.04745129346676422 0.9935630387598718 0.1983981648307233 |
Etc...
Quando você o executa novamente, o mesmo erro é exibido e o arquivo .csv é sobrescrito .
Ou seja, o Expert Advisor está sempre em aprendizado porque não encontra o arquivo.
E a segunda pergunta: por favor, sugira o código (para ler os dados do neurônio de saída) para abrir ordens de compra e venda quando a rede for treinada.
Obrigado pelo artigo e pela resposta.
Boa noite, Boris.
Você está tentando treinar uma rede neural no testador de estratégias. Não recomendo que você faça isso. Certamente não sei quais alterações você fez na lógica de treinamento. No artigo, o treinamento do modelo foi organizado em um loop. E as iterações do ciclo foram repetidas até que o modelo estivesse totalmente treinado ou o EA fosse interrompido. E os dados históricos foram imediatamente carregados em matrizes dinâmicas na íntegra. Usei essa abordagem para executar o Expert Advisor em tempo real. O período de treinamento foi definido por um parâmetro externo.
Ao iniciar o Expert Advisor no testador de estratégia, o período de aprendizado especificado nos parâmetros é deslocado para a profundidade do histórico desde o início do período de teste. Além disso, cada agente no testador de estratégia MT5 trabalha em sua própria "sandbox" e salva arquivos nela. Portanto, quando você executa novamente o Expert Advisor no testador de estratégias, ele não encontra o arquivo do modelo treinado anteriormente.
Tente executar o Expert Advisor no modo em tempo real e verifique a criação de um arquivo com a extensão nnw depois que o EA parar de funcionar. Esse é o arquivo em que seu modelo treinado está gravado.
Quanto ao uso do modelo em negociações reais, você precisa passar a situação atual do mercado para os parâmetros do método Net.FeedForward. E, em seguida, obter os resultados do modelo usando o método Net.GetResult. Como resultado do último método, o buffer conterá os resultados do trabalho do modelo.

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Redes Neurais de Maneira Fácil(Parte 7): Métodos de otimização adaptativos foi publicado:
Nos artigos anteriores, nós usamos o gradiente descendente estocástico para treinar uma rede neural usando a mesma taxa de aprendizado para todos os neurônios da rede. Neste artigo, eu proponho olhar para os métodos de aprendizagem adaptativos que permitem a mudança da taxa de aprendizagem para cada neurônio. Nós também consideraremos os prós e os contras dessa abordagem.
O teste da otimização pelo método de Adam foi realizado sob as mesmas condições, que foram usados nos testes anteriormente: símbolo EURUSD, tempo gráfico H1, alimentando a rede com os dados das 20 velas consecutivas e o treinamento é executado usando o histórico dos últimos dois anos. O Expert Advisor Fractal_OCL_Adam foi criado para teste. Este Expert Advisor foi criado com base no EA Fractal_OCL especificando o método de otimização de Adam ao descrever a rede neural na função OnInit do programa principal.
O número de camadas e neurônios não foi alterado.
O Expert Advisor foi inicializado com os pesos aleatórios variando de -1 a 1, excluindo os valores iguais a zero. Durante o teste, já após a 2ª época de treinamento, o erro da rede neural estabilizou em torno de 30%. Como você deve se lembrar, ao aprender pelo método do gradiente descendente estocástico, o erro estabilizou em torno de 42% após a 5ª época de treinamento.
O gráfico dos fractais ausentes exibe um aumento gradual no valor ao longo de todo o treinamento. No entanto, após 12 épocas de treinamento, ocorre uma diminuição gradual na taxa de crescimento do valor. O valor foi igual a 72.5% a partir da 14ª época. Ao treinar uma rede neural semelhante usando o método gradiente descendente estocástico, a porcentagem de fractais ausentes após 10 épocas foi de 97-100% com diferentes taxas de aprendizado.
Autor: Dmitriy Gizlyk