Discussão do artigo "Programação baseada em autômatos como nova abordagem para criação de sistemas de negociação automatizados" - página 4

 
Integer: Mas pelo menos temos uma coisa universal e rapidamente reprogramável. Um ótimo tópico para um artigo.
Por que você não escreve um artigo? Acho que muitas pessoas se interessariam em lê-lo.
 
Integer:

O artigo não aborda o assunto de forma alguma, exceto o fato de que existe uma chave. Não importa se ela existe ou não, ela pode ser trocada por if's.

Certa vez, eu estava escrevendo um EA e havia um sistema muito complexo com ordens. Tive de analisá-lo seriamente e fazer uma lista de estados: sem ordens, uma pendente, uma ordem de mercado, duas ordens pendentes, uma pendente e uma de mercado etc. Só assim consegui superar o problema. Mas acabou se revelando uma coisa universal e rapidamente reprogramável. Um ótimo tópico para um artigo.

Eu também prefiro usar o if usual. Em geral, há duas abordagens: com a ajuda do if e com a ajuda de funções especiais que são chamadas pela chave de estado do switch. A questão é qual abordagem é melhor/simples.
 
Rosh:
Então, talvez você possa escrever um artigo? Acho que muitas pessoas se interessariam em lê-lo.

Está bem, eu escrevo.

 
C-4:
Eu também prefiro usar um if comum. Em geral, há duas abordagens: com a ajuda do if e com a ajuda de funções especiais que são chamadas pela chave de estado do switch. A questão é qual abordagem é melhor/simples.

É necessário analisar o assunto, o contador é mais rápido na escolha de uma solução, mas o if é mais fácil de chamar.

Se houver muitos contadores aninhados, o if funcionará mais rápido, porque uma chamada ao if é mais barata do que uma chamada ao switch.

Mas se houver várias soluções em cada nível, switch é mais apropriado.

 
abolk:

Isso é algo novo. Apenas QUALQUER (sem exceção) TS é baseado na análise e na compreensão clara dos estados do TS. Os estados mais simples: o processamento de sinais para abertura/fechamento/modificação de uma ordem, etc. etc.

Se "o estado atual do Expert Advisor não é claramente conhecido", então ele definitivamente não é um Expert Advisor, e definitivamente não é um programa, e a palavra "algoritmo" em relação a um Expert Advisor deve ser riscada e esquecida para sempre.

As informações do mercado chegam com atraso, pode haver (e provavelmente há) erros no software do servidor e do computador, as ordens podem não ser executadas por um milhão de motivos, a rede - a conexão com o provedor pode piscar, a eletricidade pode ser cortada a qualquer momento (lembre-se de falhas e reinícios no campeonato). Há fatores de incerteza mais do que suficientes. E um Expert Advisor ou um algoritmo deve levar tudo isso em consideração. É impossível contar com o perfeito funcionamento do servidor, do software, da comunicação, do mercado, do operador e da eletricidade.

Portanto, o estado atual das ordens, do mercado, da comunicação e da eletricidade nunca é conhecido pelo Expert Advisor, e o Expert Advisor ou o algoritmo ainda deve funcionar corretamente em condições imprecisas.

 
Virty:

As informações de mercado chegam com atraso, pode haver (e provavelmente há) erros no software do servidor e do computador, as ordens podem não ser executadas por um milhão de motivos, a rede - conexão com o provedor - pode piscar, a eletricidade pode ser cortada a qualquer momento (lembre-se das falhas e reinícios no campeonato). Há fatores de incerteza mais do que suficientes. E um Expert Advisor ou um algoritmo deve levar tudo isso em consideração. É impossível contar com o funcionamento perfeito do servidor, do software, da comunicação, do mercado, do operador e da eletricidade.

Portanto, o estado atual das ordens, do mercado, da comunicação e da eletricidade nunca é conhecido pelo Consultor especialista, e o Consultor especialista ou o algoritmo ainda deve funcionar corretamente em condições imprecisas.

Bobagem. Misturando tudo em uma grande pilha.

- verificação de possíveis atrasos na cotação; - recusa do corretor em executar uma ordem; - reinicialização anormal do EA - esses são estados claros e definidos do EA - como resultado da identificação de cada um desses estados - cumprimento da função correspondente

- se alguma função não for fornecida em resposta a algum estado possível, isso não significa "condição de trabalho difusa" - simplesmente o EA não analisa (de acordo com seu algoritmo claro e inequívoco) esse estado.

Qualquer programa (inclusive um Expert Advisor) funciona de acordo com um algoritmo claro e predeterminado. E não há ações difusas e indefinidas no trabalho de qualquer programa. Caso contrário, será um estado de "congelamento". E o "congelamento" de um programa é, como sabemos, um erro de algoritmo, não uma consequência de uma imprecisão etérea.

 
Virty:
Para os Expert Advisors reais, é impossível definir o estado sem ambiguidade. O estado interno é determinado de forma inequívoca, mas o estado das posições no servidor pode ser desconhecido, conhecido com atraso, estar em um estado pouco claro (algumas ordens e solicitações são executadas, outras não, e não se sabe por quê).
Virty:
Há fatores de incerteza mais do que suficientes. E um Expert Advisor ou um algoritmo deve levar tudo isso em consideração. É impossível contar com o trabalho perfeito do servidor, do software, da comunicação, do mercado, do operador e da eletricidade. Portanto, o estado atual das ordens, do mercado, da comunicação e da eletricidade nunca é conhecido pelo Expert Advisor em geral

Não há incertezas. Há erros de um programador que não levou algo em consideração.

"Não conhecido", "em um estado não claro" são estados completos como todos os outros. É claro que eles devem ser levados em conta, caso contrário, não há outra maneira.

Se você escrever a linha "c = a + b", isso é programação teórica, que é aceitável apenas nas aulas da escola. Mas quando você programa uma planta industrial real, uma operação útil como "c = a + b" requer 100500 operações de verificação para confirmar que uma entrada é realmente "a", outra entrada é realmente "b", e você também precisa se certificar de que "a" e "b" não mudaram durante a adição, e se de repente "c" não atingiu a saída, a operação deve ser reconhecida como incorreta e tudo deve ser revertido, etc., etc.etc. Bem-vindo ao mundo real ))))

 
bas:

Não há incertezas. Há erros de um programador que não levou algo em consideração.

"Não conhecido", "em estado incerto" - esses são estados completos como todos os outros. É claro que eles devem ser levados em conta, caso contrário, não há outra maneira.

Se você escrever a linha "c = a + b", isso é programação teórica, que é aceitável apenas nas aulas da escola. Mas quando você programa uma planta industrial real, uma operação útil como "c = a + b" requer 100500 operações de verificação para confirmar que uma entrada é realmente "a", outra entrada é realmente "b", e você também precisa se certificar de que "a" e "b" não mudaram durante a adição, e se de repente "c" não atingiu a saída, a operação deve ser reconhecida como incorreta e tudo deve ser revertido, etc., etc.etc. Bem-vindo ao mundo real )))).

Essa é uma boa analogia. )) Mas, dito isso, é preciso lembrar que ainda é impossível levar em conta tudo. Até mesmo a natureza comete erros e erra na forma de mutações. Mas é necessário buscar a perfeição, é claro. ))
 
tol64:
Essa é uma boa analogia. )) Mas, com tudo isso, não se deve esquecer que é impossível explicar tudo de qualquer maneira. Até mesmo a natureza comete erros e perde seus erros na forma de mutações. Mas devemos nos esforçar para alcançar a perfeição, é claro. ))

A natureza não comete erros porque não dá a mínima. Somos nós que criamos as teorias justificadoras.

E a natureza é uma coisa inconsciente e, portanto, não segue quem está certo e quem é culpado.

 
Urain:

...

E a natureza é inconsciente e, portanto, ...

Bem, isso também é uma teoria e não temos certeza disso. )))