Etiqueta de mercado ou boas maneiras em um campo minado - página 20

 
Neutron >> :

Dê-me uma dica sobre qual é o seu problema com a correlação dos sinais de entrada. O que você está inserindo e por que você acha que há um problema. Afinal, é mais fácil ter certeza de que não existe do que resolvê-lo :-)

Este não é o problema, eu sou meu analfabetismo matemático.

Você acha que eu sou como SP? Você não vai acreditar! Tendo dividido antecipadamente a faixa -/+1 em intervalos iguais de 0,02, no laço eu percorri toda a BP e se o valor da BP em uma determinada barra caiu na faixa -0,98 : +1 eu joguei neste "bolso" um "chatl" = 0,01. E para normalizar o SP, multipliquei a BP investigada por um fator K > 1

Aqui está o meu código:

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

}


Ou seja, pego este coeficiente "manualmente", usando um indicador, e depois o inseri como uma constante no código NS. Isto funciona, mas somente se a BP de entrada aumentar em períodos iguais de tempo - por exemplo, em cada barra ou em n barras iguais. Mas se os incrementos de entrada forem tomados em intervalos de tempo desiguais - por exemplo, de acordo com a série Fibonacci - 2,3,5,8... ... então para cada uma dessas referências o coeficiente de normalização MO deve ser diferente! Em geral, a forma como o faço é eficiente, mas não inteligente -:)

 

Estou vendo.

Então, qual é a correlação com as entradas NS?

 
Neutron >> :

Estou vendo.

Então, e a correlação sobre as entradas NS?

Aparentemente, há pouca ou nenhuma correlação. Veja o indicador abaixo do gráfico. Cada linha azul é uma das entradas.



O que é surpreendente é que a NS está tendo um desempenho notavelmente bom! Dois meses após a "afiação" ela está crescendo com um drawdown muito aceitável (27%)

 

Aqui está outra pergunta que eu queria fazer:

O neurônio de saída da grade é sem FA, pois tiramos a amplitude da mesma, que usamos como medida da probabilidade de sucesso da transação planejada, mas também não é normalizada.

A normalização é necessária na saída? Se não, como avaliamos a probabilidade resultante, já que geralmente está fora da faixa +/-1?

 
paralocus писал(а) >>

Parece ser insignificante ou inexistente. Veja o indicador abaixo do gráfico. Cada linha azul é uma das entradas.

O que é surpreendente é que a NS está funcionando notavelmente bem! Dois meses após a "afiação", ela cresce com um drawdown muito aceitável (27%).

Portanto, não há necessidade de branquear nada!

De fato, seria bom obter uma medida numérica do coeficiente de correlação em pares para as duas BPs selecionadas. Este é o aspecto de um medidor de correlação universal em pares:

Transferir para MQL, colocar duas BPs (X,Y) do mesmo comprimento - n, e obter um número de entrada na faixa +/-1. Apenas para fazer um rápido palpite, o coeficiente de correlação por índices atinge +0,6

Quanto ao neurônio de saída, se sua saída for usada para estimar a probabilidade de um evento, é necessário ter um FA não linear como entrada. Qualquer FA serve (isto é provado rigorosamente), então coloque o seguinte.

 
Neutron >> :


...

Eu não entendo, como você define o valor de n??????

 

Eu acho que é mais simples e claro :o):



Neste caso, não faz muito sentido criar um loop, o operador de somatório fará o mesmo trabalho em termos de tempo.

PS Também, isto não é um "FAC" de forma alguma, o significado é um pouco diferente.

 
Neutron >> :

Quanto ao neurônio de saída, se você usar sua saída para estimar a probabilidade de um evento, você precisará ter um FA não linear como entrada. Qualquer um o fará (isto é provado rigorosamente), então coloque o seguinte.

Isso é o que eu faço. No entanto, eu tenho tudo através do() -:) trocadilho pretendido.

Fazendo tudo como você explicou:

1. Todos os neurônios têm uma única entrada(+1)(isto, é claro, excluindo outras entradas de dados)

2. Na saída de todos menos o último neurônio - a saída, FA não linear - eu uso th(x)

Agora, se eu quiser ter uma probabilidade na saída, esta saída deve estar dentro de +/-1(tanto quanto eu entendo). Agora vamos ver como esta última saída é formada.

E é formado assim: OUT1*W1 + OUT2*W2 + OUT3*W3 + W4. Se levarmos em conta que OUT1 - OUT3 são saídas hipertangentes de neurônios de camada anterior e tirar valores da faixa -/+1, e W1 - W4 são seus pesos tirando valores da faixa -/+1, então a amplitude do neurônio de saída está dentro de -/+ 4. Ok, mas se você levar em conta que os pesos podem variar em uma ampla faixa - como você disse +/-20 é a norma - então a faixa de amplitude da grade de saída desaparece no horizonte.

Perguntas:

1. Como estimar a probabilidade de transação em tais condições?

2. Você precisa normalizar o sinal de saída e, se sim, com o quê?


Sobre os resultados do MathLab - infelizmente, para mim, é uma floresta escura... Assim como o próprio MathLab.

Eu não entendi muito do que você me disse há alguns posts atrás, mas eu tenho andado bisbilhotando na minha cabeça por uma hora e meia.

E, perdoe minha intromissão, mas ainda tenho mais perguntas do que respostas sobre o algoritmo ORO.

Com o clareamento parece claro - tudo funciona.

Eu entendo a arquitetura.

As épocas e a amostragem ideal são quase claras:

Tentei calcular o tamanho ideal da amostra para seu "belo esquema" e acabei com isto:

número de entradas - 4

número de sinapses - 4*6 + 3*3 + 4 = 37

fator de 4.

P = k*w*w/d = 4*37*37/4 = 1369 .... e deve ser 1500.

Pergunta: as sinapses de entradas únicas têm que ser contadas? Eu contei.

 
grasn писал(а) >>

Eu não entendo, como você determina o valor de n??????

De fora.

Olá, Sergei!

Você tem cinco ciclos independentes, e eu tenho apenas um! O que é melhor, parecer elegante, ou ser sempre assim?

paralocus escreveu >>

Perguntas:

1. Como você estima a probabilidade de uma transação sob estas condições?

2. É necessário normalizar o sinal de saída e, se sim, com o quê?

Coloque th() sobre a saída do último neurônio - todos os seus problemas desaparecerão! E isso não vai dificultar ainda mais o treinamento da malha.

Tentei calcular o tamanho ideal da amostra para seu "belo esquema" e acabei com isto:

número de entradas - 4

número de sinapses - 4*6 + 3*3 + 4 = 37

fator - 4

P = k*w*w/d = 4*37*37/4 = 1369 .... e deve ser 1500.

Pergunta: as sinapses das entradas individuais precisam ser contadas? Eu tenho.

Vamos calcular a duração ideal do vetor de treinamento para cada membro. Como temos todos os membros com a mesma arquitetura, encontramos para um:

1. Número de entradas d=3+1=4.

2. Número de sinapses w=2*4+3+1=12

Duração ótima do vetor de treinamento P=4*w*w/d=4*12*12/4=144

Assim, para treinar o comitê de redes, precisamos de três vetores de treinamento (o número de membros do comitê), cada um com 144 de comprimento. Se você, paralocus, achar que este valor é pequeno, aumente o número de neurônios na camada oculta de dois para 4 ou 8 e você receberá 500 ou 2000 amostras ao mesmo tempo! Lembre-se de que você deve treinar todas essas coisas em cada amostra.

 
Neutron писал(а) >>

De fora.

Olá, Sergei!

Você tem cinco ciclos independentes e eu tenho apenas um! O que é melhor - parecer elegante, ou ser assim para sempre?

Eu adivinhei :o)

Enquanto eu estou criando - preciso parecer um artista! Mas quando eu estou codificando ... :о)))

PS: Serega, é quase monopênico em MathCAD, mas em C++/FORTRAN ... será diferente, mas em MathCAD - para dizer de forma branda (para este caso em particular). E se você usar meios, isso contará ainda mais rápido, e se você usar corr, por exemplo, seu algoritmo "rápido" irá tartaruga :o). Como eles fazem isso, não sei, mas quanto à "soma" do operador - é muito mais rápido que o loop. Se você não o tem dessa maneira - então coloque uma nova versão.