Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 891

 
elibrarius:
31 categoria... não, é mais uma discretização com 31 passos. Um dos artigos do Vladimir usa isto e o resultado é igualmente bom.

Somente se os dados originais em si forem bons....

 
Mihail Marchukajtes:

Primeiro, grave o momento em que a decisão é tomada. Que seja um evento. Então, neste momento em que o evento ocorreu, salve os valores dos indicadores.

Para ser honesto, não entendo bem a sua mesa. O que tem lá dentro?

Então qual é a vantagem de salvar o valor exato, e não um padrão - por exemplo o conhecido RSI, como eu tenho, se você abrir acima do nível 70, então 1, abaixo do nível 30, então -1, mas não ambos, então 0.

Na tabela há um conjunto de regras com pontuação alta, que foram formadas com base nos resultados da árvore. Eu uso o Deductor Studio - para iniciantes, que eu acho que sou, é bastante bom, mas a versão gratuita é difícil de obter os resultados da análise, então eu filtrei as regras e escolhi as melhores e as digitei manualmente no código.

Hoje eu automatizei o processo e notei o seguinte fenômeno: uma regra pode estar incompleta se sua parte depois de filtrar uma amostra der apenas um valor preditor (ou seja, por exemplo, se o preditor geral tiver 2 posições, e depois de filtrar (aplicando parte das regras) obtemos um conjunto tão estranho, um exemplo em duas regras:

com regras definidas - verde, qualquer valor - amarelo, indefinido - vermelho.

A incerteza só aumenta quando depois de filtrarmos por regras não temos valores alternativos de variáveis, mas em outras condições elas podem aparecer e a regra será executada, não porque esteja comprovadamente correta, mas porque ela não encontrou a situação antes e não pôde avaliá-la e a considerará semelhante embora possa ser bem o oposto.

 
Aleksey Vyazmikin:

Então qual é o objectivo de manter o valor exacto e não algum padrão - por exemplo o bem conhecido RSI, como o meu, se você abrir acima de 70 então 1, abaixo de 30 então -1, se não ambos então 0.

Na tabela há um conjunto de regras com pontuação alta, que foram formadas com base nos resultados da árvore. Eu uso o Deductor Studio - para iniciantes, que eu acho que sou, é bastante bom, mas é difícil obter resultados de análise da versão gratuita, então eu filtrei as regras e escolhi as melhores e as digitei manualmente no código.

Hoje eu automatizei o processo e notei o seguinte fenômeno: uma regra pode estar incompleta se sua parte depois de filtrar uma amostra der apenas um valor preditor (ou seja, por exemplo, se o preditor tiver 2 posições, e depois de filtrar (aplicando algumas regras) obtemos um conjunto tão estranho, um exemplo em duas regras:

com regras definidas - verde, qualquer valor - amarelo, indefinido - vermelho.

A ambigüidade só fede quando depois de filtrarmos por regras não temos valores alternativos de variáveis, mas em outras condições elas podem aparecer e a regra será executada não por estar comprovadamente correta, mas porque ela não encontrou esta situação antes e não pôde avaliá-la e a considerará semelhante, embora possa ser bem o oposto.

Para responder à sua pergunta principal. Quando o RSI está acima de 70, você tem apenas um valor de 1 (um), mas é muito importante para NS saber quanto acima de 70 o RSI mostra. Se é 70,05, é uma coisa e se é 73, é outra, muito menos 90, 80 ou qualquer outro número entre 70 e 100. É nestas trivialidades que o modelo tenta agarrar-se ao IMPORTANTE...! Seja como for, é assim que as coisas são. E ao atribuir estritamente unidades você priva a rede de informações importantes para ela, IMHO, é claro!!!

 

Sabe, todos aqui estão longe de ser estúpidos, diria até muito inteligentes e lógicos no seu raciocínio. A programação é um compromisso com a lógica. Mas eis o que se passa.... Quando você começa a ligar o TS você confia apenas nas suas conclusões lógicas e em todas as conclusões que tira da sua experiência e na frase "Bem é lógico", que você deve fazer isso e assim por diante. Mas os testes mostram a invalidez das suas conclusões e você não entende porque não funciona. Afinal de contas, fizeste tudo logicamente bem. Mas fazer algo logicamente não significa que esteja certo. Muitas pessoas são reféns da sua própria lógica, o que é naturalmente correcto, mas porque não funciona...... E comete o mesmo erro sem sequer saber que o fazes uma e outra vez com base nas tuas conclusões lógicas.

Como exemplo, já dei: Logicamente, quanto maior o modelo, mais inteligente ele é...

Caso em questão: Modelos médios funcionam melhor do que modelos grandes ou pequenos. Isto é como um exemplo...

Você calculou que atribuir 1 se o RSI estiver acima de 70 está certo, e para uma rede não está. E tu és como, e a grelha que eu fiz para facilitar o teu trabalho, como podes não compreender? Mas infelizmente, ela não será capaz de lhe responder que não é suficiente. Que com a tua unidade mataste estupidamente toda a informação importante.... Isso também é um exemplo...

E em geral o campo do MO é alógico. Aqui as conclusões lógicas não funcionam bem. As conclusões lógicas vão bem aqui!!!!

 
Mihail Marchukajtes:

Para responder à sua pergunta principal. Quando o seu PSI tem mais de 70, você tem apenas um valor de 1 (um), mas é muito importante para NS saber quanto mais alto que 70 o PSI mostra. Se é 70,05, é uma coisa e se é 73, é outra, muito menos 90, 80 ou qualquer outro número entre 70 e 100. É nestas trivialidades que o modelo tenta agarrar-se ao IMPORTANTE...! Seja como for, é assim que as coisas são. E ao atribuir estritamente unidades você priva a rede de informações importantes para ela, IMHO, naturalmente!!!

Você pode estar certo, mas eu procedo de tais considerações, se o sistema sem NS funciona de acordo com tais regras com sucesso, então o que impede de entender e encontrar essas regras de NS? Ontem eu postei screenshots para comparação. Até agora, a minha tarefa é tal que o resultado da aprendizagem da máquina seria melhor do que a optimização e lógica suficientemente dura no TS.

 
Aleksey Vyazmikin:

Você pode estar certo, mas meu raciocínio é que se um sistema sem NS opera com sucesso de acordo com tais regras, o que o impede de entender e encontrar essas regras NS? Ontem eu postei screenshots para comparação. Até agora, meu objetivo é que o resultado da aprendizagem da máquina seja melhor do que otimizar e prescrever uma lógica bastante rigorosa no TS.

Me dê o link onde você postou as screenshots... Eu vou dar uma olhada em.... E quanto às regras, estás a dar-lhas mal. Acham que a estão a alimentar bem, mas ela está esfomeada por falta de informação. Estão a entender-se mal um ao outro. Você não pode explicar a ela exatamente o que você quer, então ela te dá o resultado como ela o entende. Queres que te ajude com o teu TS. Somente dentro das diretrizes ....

Primeiro, diga-me que TS básico você usa?

 
Mihail Marchukajtes:

Atira-me um link para onde afixaste as capturas de ecrã... deixe-me ver.... E quanto às regras, estás a dar-lhas mal. Achas que a estás a alimentar bem, mas ela está esfomeada por falta de informação. Por isso, estão a entender-se mal um ao outro. Você não pode explicar a ela exatamente o que você quer, então ela te dá o resultado como ela o entende. Queres que te ajude com o teu TS. Somente dentro das diretrizes ....

Primeiro diz-me que TS básico estás a usar.

Aqui está o linkhttps://www.mql5.com/ru/forum/86386/page889#comment_7378517

Sobre a fome, só agora estou a pensar que estou a sobrealimentar os dados, já que na verdade nem tudo vai para as regras...

Ideia interessante que não consigo explicar o que quero, ou seja, é sobre os alvos errados?

E TC, então o básico é simples - tartarugas em minutos. O resto é realizado por cascatas filtrantes com base nas minhas observações do mercado.

 
Aleksey Vyazmikin:

Aqui está o linkhttps://www.mql5.com/ru/forum/86386/page889#comment_7378517

Sobre a fome, só agora estou pensando que estou alimentando demais os dados, já que na verdade eles não vão todos para as regras...

Ideia interessante que não consigo explicar o que quero, ou seja, é sobre os alvos errados?

E TC, então o básico é simples - tartarugas em minutos. E o resto é feito por cascatas filtrantes construídas a partir das minhas observações do mercado.

Quantos sinais por dia a tartaruga em minutos dá????

O TS básico é necessário apenas para o momento de tomar uma decisão. Há um sinal no TS básico. Tudo começa a analisar o mercado. Capturas de ecrã dos sinais do TS básico.

 
Mihail Marchukajtes:

Quantos sinais por dia a tartaruga dá em minutos????

O TS básico é necessário apenas para o momento de tomar uma decisão. Um sinal é formado pelo TS básico. Tudo o que começamos a analisar o mercado. Captura de tela dos sinais do TS básico.

O meu Expert Advisor está sempre a melhorar, por isso não tenho estatísticas - tenho 8 sinais de perda no dia 8 e 5 de Maio, mas fechei o dia com lucro. Notei por mim mesmo que na noite antes das férias é melhor não trocar - vou verificar a história - à noite havia 1 entrada estúpida, que poderia ter sido evitada, mas que representava 20% do rendimento diário.

Bem, o meu sistema de negociação não está estruturado de forma padrão, ou seja, a decisão de entrar no mercado é gerada constantemente, dependendo da posição de preço no canal Doncian, e então os filtros começam a funcionar e finalmente eles fornecem a decisão de abrir posição ou não. Em geral, idealmente, preciso encontrar um fator externo que possa habilitá-los/desabilitá-los em diferentes momentos do mercado. Comecei a trabalhar em NS ainda esta semana, enquanto estava a criar ambiente para o meu trabalho e não trabalhei muito na selecção de preditores, mas já encontrei alguns padrões interessantes, que eu uso no meu EA de qualquer forma.

 

Esse é praticamente todo o pré-requisito básico para a entrada

      double HighD=Donchianf(0,0);
      double LowD=Donchianf(1,0);
      double PriceProc=0.0;

      if(HighD-LowD>0) PriceProc=((Open(0)-LowD)/(HighD-LowD))*100.0;
      else
        {
         SellNow=false;
         BuyNow=false;
        }

      priceBuy   =Open(0);
      priceSell  =Open(0);


      if(CountMarketOrder_OS==0 && CountMarketOrder_OB==0 && HighD>0 && LowD>0)
        {
         if(PriceProc<=ProcOpenBuy && PriceProc>50.0)BuyNow=true;
         if(PriceProc>=ProcOpenSell && PriceProc<50.0)SellNow=true;
        }