Discussão do artigo "Redes Neurais de Terceira Geração: Redes Profundas" - página 5

 
alsu:
Não, é claro que não. Estou apenas lutando contra as tentativas de substituir a ciência, seja ela aplicada ou teórica, pelo xamanismo da melhor forma possível. E isso é exatamente o que está acontecendo no campo da NS, que, na verdade, está preso tanto à aplicação quanto à teoria há cerca de uma década.

1. Sobre estar preso. Parece-me que a aplicação prática generalizada do reconhecimento de voz e de caligrafia com base em redes profundas refuta isso. Não estou falando de reconhecimento facial. No momento, parece-me que esse tópico ganhou um novo impulso.

2. Com relação à ciência e ao xamanismo. Desde os tempos soviéticos, a diferença na abordagem da prática da ciência soviética e da ciência ocidental tem sido radicalmente diferente. Isso é mais bem visto na literatura científica. Na época do instituto (70 anos do século passado), eu prestava atenção em como as publicações ocidentais descreviam questões complexas de forma acessível e compreensível e em como a literatura nacional descrevia questões complexas de forma abstrusa e distorcida, com fórmulas complexas espalhadas. Essa abordagem não mudou até agora. Quanto mais complicado e incompreensível, mais científico?

Não sou programador nem matemático. Sou um praticante. Para mim, é importante que as novas ideias sejam apresentadas de forma acessível, confirmadas por aplicações confiáveis e que me ajudem a resolver as questões necessárias com o mínimo de glavobolismo e perda de tempo para sua implementação. E tudo isso está no tópico de redes neurais profundas em pacotes de linguagem R.

Concordo que tudo no artigo está em um amontoado. Ninguém cancela o desejo de abraçar a vastidão. E nem todos os representantes da nova geração se lembram do tópico das redes neurais. Eu queria lembrá-los.

Bem, como se viu.

Boa sorte

 

Ótimo artigo!

Uma boa sequência de artigos do DM ultimamente.

 

Até o momento, tentei carregar tudo e, não importa o que eu faça, não consigo fazer com que carregue. Todos os caminhos estão de acordo com suas instruções, tentei tanto a versão 3.1.1, que é a mesma que você usou, quanto a versão mais recente, 3.1.3, e todos os scripts, DLLs, indicadores, cabeçalhos etc. estão em seus locais corretos, de acordo com suas instruções.

Sempre que o EA é colocado em um gráfico, aparece a mensagem "Rterm has crashed" como janela de alerta, o que, ao analisar o código, indica que o R não está carregando.

Há alguma etapa adicional necessária, como uma DLL que seja necessária para carregar o R que esteja faltando?

Também verifiquei todos os scripts do R para garantir os caminhos corretos (e a diferenciação de maiúsculas e minúsculas para os nomes de pastas) e ainda não está funcionando.

Fiquei muito impressionado com seu artigo e com a profundidade de sua explicação. Já trabalhei muito com a Rede Neural de Jeff Heaton, por isso quis dar uma olhada no R também.

Qualquer conselho que você possa oferecer será apreciado.

 
Não há estatísticas de chtobi ustarela, mas luche izpolzovat recurenement LSTM i delphi decition. Não é necessário ter um sistema MT4
 
traderd:

Até o momento, tentei carregar tudo e, não importa o que eu faça, não consigo fazer com que carregue. Todos os caminhos estão de acordo com suas instruções, tentei tanto a versão 3.1.1, que é a mesma que você usou, quanto a versão mais recente, 3.1.3, e todos os scripts, DLLs, indicadores, cabeçalhos etc. estão em seus locais corretos, de acordo com suas instruções.

Sempre que o EA é colocado em um gráfico, aparece a mensagem "Rterm has crashed" como janela de alerta, o que, ao analisar o código, indica que o R não está carregando.

Há alguma etapa adicional necessária, como uma DLL que seja necessária para carregar o R que esteja faltando?

Também verifiquei todos os scripts do R para garantir os caminhos corretos (e a diferenciação de maiúsculas e minúsculas para os nomes de pastas) e ainda não está funcionando.

Fiquei muito impressionado com seu artigo e com a profundidade de sua explicação. Já trabalhei muito com a Rede Neural de Jeff Heaton, por isso quis dar uma olhada no R também.

Qualquer conselho que você possa oferecer será apreciado.

Hi/

Fico feliz que tenha se interessado pelo artigo.
Eu depuro os casos de queda do Rterma da seguinte forma:
- Comento tudo no start () , exceto o trabalho de inspeção Rterma
- Comento tudo no init () , exceto a execução do Rterm ()

- Se o Rterm estiver funcionando, desde Init() , descomente um operador e verifique. Você especifica o que acontece quando o operador falha.

Depois disso, será mais fácil determinar a causa da falha. Normalmente, há duas: o erro de sintaxe do script ou a falta das bibliotecas necessárias .
Mais uma vez, remeto ao Apêndice do artigo.

Estarei pronto para ajudá-lo no futuro se você disser qual é a falha do Rterm.

Atenciosamente

 
guz1kas:

Não há estatísticas de chtobi ustarela, mas luche izpolzovat recurenement LSTM i delphi decition. Meu nome é MT4

Saudações.

Desatualizado??? Isso é novo.

Melhor como, por quê. Se você puder ser mais detalhista, de preferência. Estou apenas curioso.

Não estamos discutindo o Delphi de forma alguma.

A questão não é se gostamos ou não do MT4. A tarefa é cumprir com o que temos (ou seja, o MT4, seja ele qual for...) o que precisamos de forma rápida e confiável.

Boa sorte, Delphi

 
vlad1949:

Hi/

Fico feliz que você esteja interessado no artigo.
Eu depuro os casos de queda do Rterma da seguinte forma:
- Comente tudo no start () , exceto o trabalho de inspeção Rterma
- Comente no init () tudo, exceto a execução do Rterm ()

- Se o Rterm estiver funcionando, desde Init(), descomente um operador e verifique. Você especifica o que acontece quando o operador falha.

Depois disso, será mais fácil determinar a causa da falha. Normalmente, há duas: o erro de sintaxe do script ou a falta das bibliotecas necessárias .
Mais uma vez, remeto ao Apêndice do artigo.

Estarei pronto para ajudá-lo no futuro se você disser qual é a falha do Rterm.

Atenciosamente

Estou tendo o mesmo problema. Não consigo encontrar onde você está falando sobre start(), exceto que o trabalho de inspeção do Rterma ou do init() é executado, mas o Rterm(). Dei uma olhada no código do R e no MetaEditor.
 

Este é um artigo muito interessante e útil. Consegui fazer o sistema funcionar, mas no Zorro, e não no MT4. Isso simplifica muito o script e posso fazer o backtest desde 14 de outubro de 2014 até hoje.

No entanto, há um problema: parece que você treinou com o ZZ da mesma barra, não com o ZZ da barra seguinte. Portanto, o sistema é muito bom em prever a barra que acabou de terminar. Se eu operar na barra anterior, obtenho essa curva de equilíbrio:

Negociação com uma máquina do tempo

Um sistema perfeito! Mas se eu usar o Sig retornado para negociar na próxima barra, obtenho essa curva de equilíbrio um pouco mais realista:

Negociação real

(A parte vermelha é o patrimônio subaquático).

Usei o modelo de 14 de outubro de 2014. Você já tentou treinar um modelo no ZZ da próxima barra?

 
jcl365:

Este é um artigo muito interessante e útil. Consegui fazer o sistema funcionar, mas no Zorro, e não no MT4. Isso simplifica muito o script e posso fazer o backtest desde 14 de outubro de 2014 até hoje.

No entanto, há um problema: parece que você treinou com o ZZ da mesma barra, não com o ZZ da barra seguinte. Portanto, o sistema é muito bom em prever a barra que acabou de terminar. Se eu operar com base na barra anterior, obtenho essa curva de equilíbrio:

Um sistema perfeito! Mas se eu usar o Sig retornado para negociar na próxima barra, obtenho essa curva de saldo um pouco mais realista:

(A parte vermelha é o patrimônio subaquático).

Usei o modelo de 14 de outubro de 2014. Você já tentou treinar um modelo no ZZ da próxima barra?

Hi/

Devemos ter em mente o seguinte.

1. Obtemos o sinal do ziguezague.

sig <- ifelse(diff(zz) > 0, 1, ifelse(diff(zz) < 0, -1, NA)

2. Nós o transferimos para outra barra no futuro.

sig <- Hmisk::Lag(sig, shift=-1)

3. Treinamos a rede neural para o sinal da próxima barra.
A qualidade da educação precisa aumentar a seleção de indicadores, seus parâmetros e os parâmetros da rede neural.

O artigo mostra o caminho e o método. O potencial dessas redes é enorme.

Saudações

Vladimir

 

Agora treinei um novo modelo com previsão da próxima barra e parece que ele realmente funciona. A precisão ainda está na faixa de 74%. Esta é a curva de patrimônio agora:

:

Ela se comporta exatamente como eu esperava: o sistema é lucrativo imediatamente após o treinamento e depois se deteriora lentamente conforme o mercado muda.

Portanto, a próxima etapa é um teste WFO com retreinamento regular do modelo. Para isso, o treinamento deve ser integrado ao script da estratégia.

Essa é a função corrigida para calcular o Sig da próxima barra:

Sig <- function(ch = 0.0037, pr = price[ ,'Med']) {
        ZZ <<- ZigZag(pr, change = ch, percent = F, retrace = F, lastExtreme = T)
        for(i in 1:length(ZZ)) { if(is.na(ZZ[i])) ZZ[i] = ZZ[i-1] }
  #shift zz for predicting the next bar
        for(i in 1:length(ZZ)-1) { ZZ[i] = ZZ[i+1] }
        dz <- c(diff(ZZ), NA)
        sig <- ifelse(dz > 0, 0, ifelse(dz < 0, 1, NA))
        return(sig)
}

A função "Compute" que é executada a cada 30 minutos pelo script da estratégia:

Compute <- function() {
  price <<- pr.OHLC(Open,High,Low,Close)
  X <<- In()
  normalized <- predict(Prepr, tail(X,1))
  pr.sae <- nn.predict(SAE, normalized)
  return(pr.sae[1]);
}

O script de estratégia, o "EA":

#include <default.c>
#include <r.h>

string RPath = "F:\\D\\R\\R-3.1.3\\bin\\i386\\Rterm.exe";
int Size = 200;

bool RCheck()
{
   if(!Rr()) {
        quit("R session aborted!");
                return false;           
   }
   return true;
}


function run()
{
        BarPeriod = 30;
        StartDate = 20141014;
        LookBack = Size;
        asset("EUR/USD");
        
        Spread = Slippage = Commission = RollLong = RollShort = 0;
        //Stop = 25*PIP;
        //Trilha = 25*PIP;
        
        if(is(INITRUN)) {
           RStart(RPath,1);
           if(!RCheck()) return;
           printf("\n%s running",RPath);
           Rx("rm(list = ls());");
           string Command = strfmt("source('%sStrategy/SAE.r')",
                strrep(ZorroFolder,"\\","/"));
           Rx(Command);
           Command = strfmt("load('%sData/sae.model')",
                strrep(ZorroFolder,"\\","/"));
           Rx(Command);
        }
        
        vars op = rev(series(priceOpen())),
                hi = rev(series(priceHigh())),
                lo = rev(series(priceLow())),
                cl = rev(series(priceClose()));
                
        if(!is(LOOKBACK)) {
                Rv("Open",op,Size);
                Rv("High",hi,Size);
                Rv("Low",lo,Size);
                Rv("Close",cl,Size);
                
                var Predict = Rgd("Compute()");
                if(!RCheck()) return;
                
                if(Predict > 0.6 && !NumOpenShort)
                        enterShort();
                else if(Predict < 0.4 && !NumOpenLong)
                        enterLong();
        }
        
        if(is(EXITRUN)) {
                RStop(); // encerrar a sessão
        }
}