Galateo del mercato o buone maniere in un campo minato - pagina 20

 
Neutron >> :

Dammi un indizio su quale sia il tuo problema con la correlazione dei segnali di ingresso. Cosa stai inserendo e perché pensi che ci sia un problema. Dopo tutto, è più facile assicurarsi che non esista che risolverlo :-)

Non è questo il problema, sono il mio analfabetismo matematico.

Pensi che io sia come l'SP? Non ci crederete! Avendo diviso in anticipo l'intervallo -/+1 in intervalli uguali di 0,02, nel ciclo ho percorso tutta la BP e se il valore BP su una data barra cadeva nell'intervallo -0,98 : +1 ho messo in questa "tasca" un "chatl" = 0,01. Poi ho visualizzato il contenuto di queste 100 tasche sulle ultime 100 barre. E per normalizzare lo SP, ho moltiplicato la BP studiata per un fattore K > 1

Ecco il mio codice:

for(int i = limit; i >= 0; i--)
{
if(first)
for(int k = 200; k >0; k--)
Ind2[k] = 0.0; // Инициализация нулем
first = false;
//---------------------------------------------------
res = th(kf*(Close[i] - Close[i+1])/Close[i+1]); // Входной ВР
Ind1[i] = res;
//-------------------------------------------------------

pos = -1.0;
for(int j=200; j>0; j--)
{
if((res > pos) && (res < (pos+step))) // расчет МО
{
if( i > 2 )
{Ind2[j] = Ind2[j] + chatl;}
break;
}
else
{pos = pos + step;}
}

}


Cioè, prendo questo coefficiente "manualmente", usando un indicatore, e poi lo inserisco come costante nel codice NS. Questo funziona, ma solo se gli incrementi BP in ingresso vengono presi in periodi di tempo uguali - per esempio ad ogni barra o a n barre uguali. Ma se gli incrementi di input sono presi a intervalli di tempo disuguali - per esempio, secondo la serie di Fibonacci - 2,3,5,8... ... allora per ogni tale riferimento il coefficiente di normalizzazione MO dovrebbe essere diverso! In generale, il modo in cui lo faccio è efficiente, ma non intelligente -:)

 

Capisco.

Allora, qual è la correlazione con gli ingressi NS?

 
Neutron >> :

Capisco.

E la correlazione sugli ingressi NS?

Apparentemente c'è poca o nessuna correlazione. Vedi l'indicatore sotto il grafico. Ogni linea blu è uno degli ingressi.



Ciò che è sorprendente è che NS sta ottenendo risultati notevoli! Due mesi dopo "l'affilatura" sta crescendo con un drawdown molto accettabile (27%)

 

Ecco un'altra domanda che volevo fare:

Il neurone di uscita della griglia è senza FA, poiché ne prendiamo l'ampiezza, che usiamo come misura della probabilità di successo dell'operazione pianificata, ma non è nemmeno normalizzato.

È necessario normalizzare l'uscita? Se no, come valutiamo la probabilità risultante, dato che è generalmente al di fuori dell'intervallo +/-1?

 
paralocus писал(а) >>

Sembra essere trascurabile o inesistente. Fare riferimento all'indicatore sotto il grafico. Ogni linea blu è uno degli ingressi.

Ciò che è sorprendente è che il NS sta funzionando notevolmente bene! Due mesi dopo "l'affilatura" cresce con un drawdown molto accettabile (27%).

Quindi non c'è bisogno di sbiancare nulla!

In effetti, sarebbe bene ottenere una misura numerica del coefficiente di correlazione a coppie per i due BP selezionati. Questo è l'aspetto di un misuratore di correlazione universale a coppie:

Trasferire in MQL, mettere due BP (X,Y) della stessa lunghezza - n, e ottenere un numero di ingresso nell'intervallo +/-1. Solo per fare un'ipotesi veloce, il coefficiente di correlazione per indici raggiunge +0,6

Per quanto riguarda il neurone di uscita, se il suo output è utilizzato per stimare la probabilità di un evento, è necessario avere come input un FA non lineare. Qualsiasi FA andrà bene (questo è provato rigorosamente), quindi mettete il.

 
Neutron >> :


...

Non capisco, come si definisce il valore di n??????

 

Penso che sia più semplice e più chiaro :o):



In questo caso non ha molto senso creare un ciclo, l'operatore di somma farà lo stesso lavoro in termini di tempo.

PS Inoltre, questo non è affatto un "FAC", il significato è un po' diverso.

 
Neutron >> :

Per quanto riguarda il neurone di uscita, se si usa il suo output per stimare la probabilità di un evento, è necessario avere come input un FA non lineare. Uno qualsiasi va bene (questo è provato rigorosamente), quindi mettetelo.

Questo è quello che faccio. Ho tutto via th() -:) gioco di parole, comunque.

Facendo tutto come hai spiegato:

1. Tutti i neuroni hanno un solo ingresso (+1) (questo ovviamente esclude altri ingressi di dati)

2. All'uscita di tutti i neuroni tranne l'ultimo, l'uscita FA è non lineare - uso th(x)

Ora, se voglio ottenere una probabilità sull'uscita, questa uscita dovrebbe essere entro +/-1 (per quanto ho capito). Ora vediamo come si forma quest'ultima uscita.

E si forma così: OUT1*W1 + OUT2*W2 + OUT3*W3 + W4. Se teniamo conto che OUT1 - OUT3 sono uscite ipertangenti dei neuroni dello strato precedente e prendono valori dall'intervallo -/+1, e W1 - W4 sono i loro pesi che prendono valori dall'intervallo -/+1, allora l'ampiezza del neurone di uscita è entro -/+ 4. Ok, ma se si tiene conto del fatto che i pesi possono variare su una vasta gamma - come hai detto tu +/-20 è la norma - allora la gamma di ampiezza della griglia di uscita scompare all'orizzonte.

Domande:

1. Come stimare la probabilità di transazione in queste condizioni?

2. Hai bisogno di normalizzare il segnale di uscita e se sì, con cosa?


A proposito di uscite da MathLab - purtroppo, per me è una foresta oscura... Lo stesso vale per il MathLab.

Non ho capito molto di quello che mi hai detto qualche post fa, ma ho frugato nella mia testa per un'ora e mezza.

E, perdonate la mia invadenza, ma ho ancora molte più domande che risposte sull'algoritmo ORO.

Con lo sbiancamento sembra chiaro - tutto funziona.

Capisco l'architettura.

Le epoche e il campionamento ottimale sono quasi chiari:

Ho provato a calcolare la dimensione ottimale del campione per il tuo "schema carino" e ho finito con questo:

numero di ingressi - 4

numero di sinapsi - 4*6 + 3*3 + 4 = 37

fattore 4.

P = k*w*w/d = 4*37*37/4 = 1369 .... e dovrebbe essere 1500.

Domanda: le sinapsi dei singoli ingressi devono essere contate? Ho contato.

 
grasn писал(а) >>

Non capisco, come si determina il valore di n??????

Da fuori.

Ciao, Sergei!

Tu hai cinque cicli indipendenti e io ne ho solo uno! Cos'è meglio, apparire eleganti o essere sempre così?

paralocus ha scritto >>.

Domande:

1. Come stimare la probabilità di una transazione in queste condizioni?

2. È necessario normalizzare il segnale di uscita e se sì, con cosa?

Mettete th() sull'uscita dell'ultimo neurone: tutti i vostri problemi spariranno! E non renderà più difficile l'allenamento delle maglie.

Ho provato a calcolare la dimensione ottimale del campione per il tuo "schema carino", e ho finito con questo:

numero di ingressi - 4

numero di sinapsi - 4*6 + 3*3 + 4 = 37

fattore - 4

P = k*w*w/d = 4*37*37/4 = 1369 .... e dovrebbe essere 1500.

Domanda: le sinapsi dei singoli ingressi devono essere contate? L'ho fatto.

Calcoliamo la lunghezza ottimale del vettore di addestramento per ogni membro. Dato che abbiamo tutti i membri con la stessa architettura, troviamo per uno:

1. Numero di ingressi d=3+1=4.

2. Numero di sinapsi w=2*4+3+1=12

Lunghezza ottimale del vettore di allenamento P=4*w*w/d=4*12*12/4=144

Così, per addestrare il comitato di reti, abbiamo bisogno di tre vettori di addestramento (il numero di membri del comitato), ciascuno con lunghezza 144. Se voi, paralocus, pensate che questo valore sia piccolo, aumentate il numero di neuroni nello strato nascosto da due a 4 o 8 e otterrete 500 o 2000 campioni in una volta sola! Ricordate che dovreste allenare tutte queste cose in ogni campione.

 
Neutron писал(а) >>

Da fuori.

Ciao, Sergei!

Tu hai cinque cicli indipendenti e io ne ho solo uno! Cos'è meglio - avere un aspetto elegante o essere così per sempre?

Ho indovinato :o)

Mentre sto creando - ho bisogno di sembrare un artista! Ma quando sto codificando ... :о)))

PS: Serega, è quasi monopenico in MathCAD, ma in C++/FORTRAN ... sarà diverso, ma in MathCAD - a dir poco no (per questo caso particolare). E se usate mean, conterà ancora più velocemente, e se usate corr, per esempio, il vostro algoritmo "veloce" andrà in tilt :o) Come lo fanno, non lo so, ma per quanto riguarda l'operatore "summing" - è molto più veloce del loop. Se non ce l'hai così - allora metti una versione fresca.