Discussione sull’articolo "Reti neurali di terza generazione: Reti profonde" - pagina 5

 
alsu:
No, certo che no. Sto solo combattendo i tentativi di sostituire la scienza, non importa se applicata o teorica, con lo sciamanesimo al meglio delle mie possibilità. E questo è esattamente ciò che sta accadendo nel campo della NS, che in realtà è bloccato sia in ambito applicato che teorico da circa un decennio.

1. A proposito di blocco. Mi sembra che la diffusa applicazione pratica del riconoscimento vocale e della scrittura a mano basato sulle reti profonde smentisca questa affermazione. Non sto parlando del riconoscimento facciale. In questo momento mi sembra che questo argomento abbia preso nuovo slancio.

2. Per quanto riguarda la scienza e lo sciamanesimo. Fin dall'epoca sovietica, la differenza di approccio alla pratica della scienza sovietica e della scienza occidentale è stata radicalmente diversa. Questo si vede meglio nella letteratura scientifica. Ai tempi dell'Istituto (70 anni del secolo scorso) prestavo attenzione a quanto accessibili e comprensibili fossero le descrizioni di questioni complesse nelle pubblicazioni occidentali e quanto astruse e contorte, con una dispersione di formule complesse, fossero quelle della letteratura nazionale. Questo approccio non è cambiato fino ad oggi. Più è complicato e incomprensibile, più è scientifico?

Non sono né un programmatore né un matematico. Sono un praticante. Per me è importante che le nuove idee siano presentate in modo accessibile, confermate da applicazioni autorevoli e che mi aiutino a risolvere le questioni necessarie con il minor glavobolismo e la minor perdita di tempo per la loro attuazione. E tutto questo nel tema delle reti neurali profonde in pacchetti di linguaggio R.

Sono d'accordo sul fatto che tutto ciò che è scritto nell'articolo è un cumulo. Nessuno cancella il desiderio di abbracciare la vastità. E non tutti i rappresentanti della nuova generazione ricordano l'argomento delle reti neurali. Volevo ricordarglielo.

Bene, come si è scoperto.

Buona fortuna

 

Grande articolo!

Una bella sequenza di articoli di DM ultimamente.

 

Finora ho provato a caricare tutto e non importa cosa faccio, non riesco a caricarlo. Tutti i percorsi sono uguali alle vostre istruzioni, ho provato sia la versione 3.1.1, che è la stessa che avete usato, sia una versione più recente, la 3.1.3, e tutti gli script, le DLL, gli indicatori, le intestazioni, ecc. sono nella loro posizione corretta secondo le vostre istruzioni.

Ogni volta che l'EA viene scaricato su un grafico, viene visualizzato "Rterm has crashed" come finestra di avviso, che esaminando il codice dice che R non viene caricato.

Sono necessari ulteriori passaggi, come ad esempio una DLL necessaria per caricare R che manca?

Ho anche controllato tutti gli script di R per assicurarmi che i percorsi siano corretti (e la sensibilità alle maiuscole per i nomi delle cartelle), ma ancora non funziona.

Sono rimasto molto colpito dal tuo articolo e dalla profondità della spiegazione. Ho lavorato molto con Neural Network di Jeff Heaton e quindi volevo dare un'occhiata anche a R.

Qualsiasi consiglio possiate darmi sarà molto apprezzato.

 
Ne to chtobi statja ustarela, ma luche izpolzovat recurenement LSTM i delphi decition. Mne lichno ochen nenravitsa MT4
 
traderd:

Finora ho provato a caricare tutto e non importa cosa faccio, non riesco a caricarlo. Tutti i percorsi sono uguali alle vostre istruzioni, ho provato sia la versione 3.1.1, che è la stessa che avete usato, sia una versione più recente, la 3.1.3, e tutti gli script, le DLL, gli indicatori, le intestazioni, ecc. sono nella loro posizione corretta secondo le vostre istruzioni.

Ogni volta che l'EA viene scaricato su un grafico, viene visualizzato "Rterm has crashed" come finestra di avviso, che esaminando il codice dice che R non viene caricato.

Sono necessari ulteriori passaggi, come ad esempio una DLL necessaria per caricare R che manca?

Ho anche controllato tutti gli script di R per assicurarmi che i percorsi siano corretti (e la sensibilità alle maiuscole per i nomi delle cartelle), ma ancora non funziona.

Sono molto colpito dal tuo articolo e dalla profondità della spiegazione. Ho lavorato molto con Neural Network di Jeff Heaton e volevo quindi dare un'occhiata anche a R.

Qualsiasi consiglio tu possa offrire sarebbe apprezzato.

Ciao/

Sono lieto che siate interessati all' articolo.
Eseguo il debug dei casi di caduta di Rterma nel modo seguente:
- Commentare tutto in avvio () , tranne che il lavoro di ispezione Rterma
- Commentare nel init () tutti, ma eseguire Rterm ()

- Se Rterm è attivo e funzionante, dal momento che Init() decommenta un operatore e controllato. È possibile specificare cosa accade all 'operatore che si blocca.

In seguito è più facile determinare la causa del crash. Di solito sono due: l' errore di sintassi dello script o la mancanza delle librerie necessarie .
Rimando ancora una volta all'appendice dell'articolo.

Sono pronto ad aiutarvi in futuro se mi dite quali sono le cadute di Rterm.

Cordiali saluti

 
guz1kas:

Ne to chtobi statja ustarela, ma luche izpolzovat recurenement LSTM i delphi decition. Mne lichno ochen nenravitsa MT4

Saluti.

Superato??? E 'nuovo.

Meglio come, perché. Se si può essere più dettagliato con i dettagli, preferibilmente. Sono solo curioso.

Non stiamo affatto discutendo di Delphi.

La questione non è se MT4 ci piace o meno. Il compito è quello di realizzare con ciò che abbiamo (cioè MT4, qualunque cosa sia...) ciò di cui abbiamo bisogno in modo rapido e affidabile.

Buona fortuna

 
vlad1949:

Ciao/

Sono lieto che siate interessati all' articolo.
Ho debug casi caduta Rterma come segue:
- Commentare tutto in avvio (), tranne che il lavoro di ispezione Rterma
- Commentare nel init () tutti, ma eseguire Rterm ()

- Se Rterm è attivo e funzionante, dal momento che Init() decommenta un operatore e controllato. È possibile specificare cosa accade all 'operatore che si blocca.

In seguito è più facile determinare la causa del crash. Di solito sono due: l' errore di sintassi dello script o la mancanza delle librerie necessarie .
Rimando ancora una volta all'appendice dell'articolo.

Sono pronto ad aiutarvi in futuro se mi dite quali sono le cadute di Rterm.

Cordiali saluti

Sto avendo lo stesso problema. Non riesco a trovare dove si parla di start(), tranne che l'ispezione lavoro Rterma o l'init() tutti, ma eseguire Rterm(). Ho guardato il codice R e in MetaEditor.
 

Questo è un articolo molto interessante e utile. Sono riuscito a far funzionare il sistema, ma in Zorro, non in MT4. Questo semplifica molto lo script e posso fare il backtesting dal 14 ottobre 2014 a oggi.

C'è però un problema: sembra che tu ti sia allenato sullo ZZ della stessa barra, non sullo ZZ della barra successiva. Quindi il sistema è molto bravo a prevedere la barra appena conclusa. Se faccio trading sulla barra precedente, ottengo questa curva di equilibrio:

Trading con la macchina del tempo

Un sistema perfetto! Ma se utilizzo il Sig restituito per fare trading sulla barra successiva, ottengo questa curva di equilibrio leggermente più realistica:

Trading reale

(La parte rossa è l'equity sommersa).

Ho utilizzato il modello del 14 ottobre 2014. Hai già provato a formare un modello sullo ZZ della barra successiva?

 
jcl365:

Questo è un articolo molto interessante e utile. Sono riuscito a far funzionare il sistema, ma in Zorro, non in MT4. Questo semplifica molto lo script e posso fare il backtesting dal 14 ottobre 2014 a oggi.

C'è però un problema: sembra che tu ti sia allenato sullo ZZ della stessa barra, non sullo ZZ della barra successiva. Quindi il sistema è molto bravo a prevedere la barra appena conclusa. Se faccio trading sulla barra precedente, ottengo questa curva di equilibrio:

Un sistema perfetto! Ma se utilizzo il Sig restituito per fare trading sulla barra successiva, ottengo questa curva di equilibrio leggermente più realistica:

(La parte rossa è l'equity sommersa).

Ho utilizzato il modello del 14 ottobre 2014. Hai già provato a formare un modello sullo ZZ della barra successiva?

Ciao/

Dobbiamo tenere presente quanto segue.

1. Il segnale viene ricavato dallo zigzag.

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

2. Lo spostiamo su un'altra barra nel futuro.

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

3. Addestriamo la rete neurale al segnale della barra successiva .
La qualità della formazione deve aumentare la selezione degli indicatori, dei loro parametri e dei parametri della rete neurale.

L'articolo mostra il percorso e il metodo. Il potenziale di queste reti è enorme.

Cordiali saluti

Vladimir

 

Ora ho addestrato un nuovo modello con la previsione della barra successiva e sembra che funzioni davvero. L'accuratezza è ancora nell'ordine del 74%. Questa è la curva dell'equity ora:

:

Si comporta proprio come mi sarei aspettato: il sistema è redditizio subito dopo l'addestramento, per poi peggiorare lentamente man mano che il mercato cambia.

Il prossimo passo sarà quindi un test WFO con una riqualificazione regolare del modello. A tal fine, l'addestramento deve essere integrato nello script della strategia.

Questa è la funzione corretta per calcolare il Sig della barra successiva:

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)
}

La funzione "Compute" che viene eseguita ogni 30 minuti dallo script della strategia:

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]);
}

Lo script di strategia, l'"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;
        //Trail = 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(); // terminare la sessione
        }
}