EDIT - este artigo foi de um par de anos atrás, inicialmente, eu adicionei uma atualização no final da faixa de opções ...



Eu estou trabalhando até tarde hoje à noite e tenho um tempo livre entre os trabalhos, então aqui vai um monte de divagar. Estou convencido de que meu colega de trabalho vai se deliciar com isso.


Quando eu comecei a entender sobre negociação, um lógico trem de ifthen gentileza anúncios e suposições tem moldado, com o que parece ser um acabamento natural, tenho certeza que muitos outros alcançaram.

(1) Quando o mercado é totalmente inconsistente, 50/50 a longo prazo, nem mesmo a melhor eégia de gerenciamento de caixa irá finalmente prevalecer.

Ao contrário do que alguns jogadores de matemática já raciocinaram, não acho que haja uma maneira de vencer em uma partida de expectativa negativa (o corte do agente adivinhou). Tudo é reorganizar seus ganhos e perdas.

Eu presumo que o mercado não é totalmente inconsistente, porque parece haver pessoas justas que conseguem sempre lucrar. Os investidores regulares aproveitam as notícias e gráficos, embora não os jogadores de chão que não confiam como plano.

(2) Quando o mercado tem certa previsibilidade, pode ser codificado.

As pessoas são notáveis ​​no reconhecimento de padrões e, possivelmente, a capacidade de sempre reconhecer os termos vencedores está além dos princípios de negociação simplistas que formam os numerosos sistemas. Uma pessoa pode reconhecer um rosto em qualquer estado, enquanto os computadores exigem ângulos de iluminação muito bons, e os apliivos, imediatamente para fazer um trabalho. Difícil não é impossível, e os computadores mostraram a capacidade de localizar padrões que as pessoas desconhecem.

Eu presumo que não é impossível codificar a previsibilidade do mercado, se for, como resultado da presumida existência de concessionários usando regras relativamente fáceis para gerar ganhos consistentes.

(3) Se a psicologia e a emoção individuais forem inimigas da boa gestão do dinheiro e da implementação do sistema, então, removê-las na tomada de decisões deve aumentar a consistência e a lucratividade a longo prazo.

Tenho lido artigos e posts sobre a psicologia do jogo, e tanto a ganância quanto o medo parecem ser sérios desafios. Além disso, um simples erro humano pode impedir uma boa implementação de princípios de negociação sólidos (como um jogador de blackjack que comete erros de eégia fundamental). Cumulativamente precisava que uma expectativa positiva pudesse mudar por causa da mentalidade e do erro, até que tivesse uma chance ou uma conta pudesse drenar.

Presumo que, se o mercado for previsível e puder ser codificado, a implementação mecânica desse código trará os resultados mais positivos. O aparente que se incorpora os eventos externos básicos ... terremotos, ganhar anúncios, guerras, pequena nação atinge petróleo, etc. Estes são simplesmente, mas variabilidade e sua raridade pode tornar isso difícil ou impossível. Uma vez que parece haver regras que produzem retornos positivos durante os tempos da negociação de notícias, haveria uma solução muito simples para deixar de usar a negociação se o mercado estivesse estabilizado e voltasse a ele. Uma solução mais forte seria adicionar eventos frequentes aos fatores de regra, como anúncios de ganhos e previsões de ganhos, flutuações de juros principais, etc. Um sistema precisa ter a capacidade de lidar com esses eventos, já que esses eventos aconteceram várias vezes em quase qualquer informação de mercado usada para backtesting.



Para esta divagação intrigante. Qual é o tipo de execução para uma plataforma de negociação? Não o perfeito, que incorporaria a capacidade, mas em vez disso, sobre o qual produzir princípios o estágio teórico? Aqui algumas suposições são feitas por mim. Você gostaria que a regra mudasse desde o comportamento do setor. Você precisaria do sistema para criar todas as opções, como dimensões de localização e eventos de saída e entrada.

Pode parecer que os Algoritmos Genéticos são apenas uma alternativa que poderia preencher cada um dos pré-requisitos. Minha habilidade de programação é restrita ao design, o que era simplista, e mesmo assim é shakey, mas ponderei como seria a estrutura desse programa GA. Eu vou ter uma facada sob ...




Pode haver três componentes principais: (1) um programa gerenciador que lê informações, recebe insumos do usuário, executa rotinas de organismos, avalia o bem-estar do receptor, modifica os organismos, também implementa eventos comerciais de acordo com o organismo vencedor, (2) um documento contendo um listagem de sub-rotinas receptoras e (3) que um arquivo de configuração que controla parâmetros como taxa de mutação, tipos de mutações, blocos de construção do receptor, complexidade máxima do receptor, número de crianças nascidas a cada geração, tempo de duração estimado pelos organismos obtido, ponderação para teste de aptidão, etc.

O programa gerenciador deve ter a capacidade de trabalhar em tempo real e em dados históricos. Ou seja, deve receber informações do consumidor para adicionar dados atuais na atualização de organismos ou apenas concorrer com o atual vencedor. Ele também precisa ter a flexibilidade de usar dados de backtesting, transações e contas de moedas internas para avaliar a adequação.

O problema mais importante são os padrões de aptidão física. Isso pode ser julgado de várias maneiras: Previsão do mercado para baixo ou para cima em um tempo predeterminado, previsão de um balanço sobre dimensões X, previsão de continuação de uma moda passageira, etc. O problema, se eu tiver qualquer conhecimento de negociação em tudo , é no caso de você não conseguir criar pontos de entrada e saída, que entender que o mercado atual vai descer ou subir não garante rentabilidade. Há uma solução de exercício natural e simples que engloba pontos de saída e entrada: lucratividade. O organismo que é o saudável é o que gera. Isso levantará o problema de exatamente que período de tempo julgar a elevação ao longo do dia, da semana ou do mês anterior para obter sistemas de daytrading? O ano que é passado? A existência deste organismo? A adição de restrições de redução nos padrões de exercício provavelmente lida com essa questão. Tecnicamente, pode-se desejar que o organismo elimine uma conta no tempo médio, embora possa gerar o lucro máximo até o final do ano.

Os organismos de sub-rotina são intrigantes. A leitura que fiz no GA empregado para previsão anteriormente usou-os para encontrar parâmetros para uma função. Ou seja, afinar os fatores em uma equação ou conjunto de equações já reconhecidas como funcionando. No entanto, o desenvolvimento mostrou uma capacidade de tornar os organismos capazes de enormes habilidades de reconhecimento de padrões (atenção humana, como uma instância), e não vejo razão para que um GA destinado a mercados econômicos não deva ter pelo menos uma perspectiva razoável de encontrar padrões em que eles podem existir.

Uma vez que sistemas reconhecidos parecem ser baseados em um conjunto de regras condicionais (SE um gt; b, E SE um gt; avg (b, c, d) ... ENTÃO ...), eu acho que seria um bom idéia de manter essa característica de previsão de mercado. Eu não sinto um par de funções que são por partes e declarações poderiam ser resumidas SE xyz ^ abcdef-ghi THEN trade.
As ações que um organismo pode tomar em um mercado que é muito simples são dimensão de mercado, compra e posição para cada um. Em mercados que são bidirecionais, você tem situações de curtalonga duração, por isso, insira breves entradas, insira departamentos e posicione dimensões. Assim, a estrutura simples de uma sub-rotina de organismo seria provavelmente quatro conjuntos de condicionais, cada um usando uma ação uma vez preenchidas as condições (entrada breve, entrada longa, partida breve e partida longa), juntamente com um padrão para calcular o tamanho da posição para cada atividade. A rotina de posicionamento deve considerar o tamanho da conta e os limites do consumidor a serem utilizados. Moeda em drama pode ser distinguida em dinheiro completo em jogo no mercado atual e em dinheiro já em jogo porque o mercado em particular (resultando em aumentar ou diminuir a dimensão da posição). Essa rotina de posição deve ter permissão para fazer resultados que sejam diferentes para atividades de entradasaída e curtalonga, portanto, pode ser uma parte de cada declaração - um cálculo.

O arquivo de configuração é bastante auto-expliivo, mas implementá-lo pode levar alguma consideração. A primeira barreira está atualmente controlando os tipos de fatores que o próximo está determinando e o próximo está atualmente averiguando a taxa de mutação.

Há abundância de cálculos feitos em informações de mercado além de marcos que talvez as sub-rotinas do organismo GA devem ser alimentadas à força, como intervalos, elevações, aberturas, fechamentos, médias ou cálculos precedentes, médias autênticas, médias móveis etc. Ou você pode permitir a função de algoritmo em informação bruta sem precisar olhar para instâncias particulares (abre, fecha) ou trabalha (máximos, mínimos, médias, etc.). Acredito que a melhor maneira para a diversidade GA seria usar um mix ... alguns organismos simplesmente utilizam índices de mercado atuais, alguns usam informações brutas de custo e quantidade, outros usam um mix. As preferências de configuração podem garantir que uma porcentagem de cada criação permaneça em todos os gerenciamentos puros, se desejáveis.

A mutação é apenas outra questão complexa. As definições de configuração que controlam o número de organismos são mantidas de cada Produção (top% de atores ou todos dentro de um determinado disperso no vencedor), o número de cópias mutadas é feito de cada, e também o nível de mutação é bastante simples de delinear . Tipos de mutação estão envolvidos. A questão é qual tipo será se um contraste estiver envolvido em cada linha de uma instrução? Eu acredito que é claro que cada linha deve ter acesso a todas as variáveis, então a consulta é restrita às funções que estão disponíveis para uso. Funções padrão são multiplicação e adição, juntamente com a capacidade de reverter e reavaliar termos para gerar divisão e subtração. As operações de matriz e construção de matriz devem ser ativadas? Provavelmente sim. E quanto a logs, expoentes, derivativos, integrais, etc.? Se é permitido aos organismos encontrar cálculo (aproximações de derivadas usando gap finito, etc.) ou se essas ferramentas matemáticas são codificadas intencionalmente? No caso de poder ser tratado pelo palco, acredito que as cirurgias acessíveis quanto mais diversidade gerada, e quanto maior a probabilidade de localizar os princípios do sistema.

Depois que esses blocos de construção estiverem em vigor, você deverá especificar os tipos de mutações permitidas. O cruzamento de programas é uma ideia fantástica, já que atualmente está incorporando mutações. Mas graus? O primeiro nível será trocar conjuntos de estados (input breve, input long, ect.) Em um organismo e entre organismos. O nível poderia estar trocando, adicionando linhas de linhas eliminatórias entre organismos, um dos conjuntos dentro de um organismo e dentro de um conjunto. Por meio de expressões de outros 14, o nível poderia estar mudando uma única linha. Ao ocupar as variáveis ​​em um 12, o quarto será a mutação de um lineup. Quinta será a mutação de uma linha trocando, adicionando variáveis ​​e funções eliminadas. Serão necessárias configurações para controlar quantas crianças nascem em todos os níveis e qual o nível de trocaadiçãoremoção permitido em todos os níveis (quantas novas linhas podem ser inseridas em um estado definido em uma criação ... apenas quantos novos fatores ou funções adicionais a alguma linha ... etc.). Configurações conservadoras podem produzir apenas algumas crianças em cada nível, cada uma compreendendo apenas um switch, configurações agressivas podem produzir cerca de cem crianças (ou mais) em todos os níveis, cobrindo a propagação de 1 switch para apenas 1 coisa deixada inalterada. E, claro, duplias de terras de qualquer criação.

O arquivo de configuração também precisará gerenciar limites rígidos de sofisticação do organismo (não pode adicionar linhas ou funções além de um determinado tamanho ...), limites de risco permitidos e possivelmente variáveis ​​para manobrar alguns organismos em um intervalo especificado (de escalpelamento a extenso negociação de swing prazo). Você teria que restringir a ponderação de fitness. Por exemplo, se o objetivo de um programa é maximizar os ganhos e minimizar o rebaixamento, você deseja posicionar a prioridade de cada um. Além disso, como todos os organismos sobreviventes alcançaram conquistas nas gerações anteriores, você quer avaliar a importância do sucesso e do fracasso como uma função do período (sucessos mais recentes são signifiivos, obviamente, mas quanto {}? ... até sistemas quase perfeitos irá criar transações ruins ocasionalmente e você não deseja matar um vencedor estabelecido). Esses princípios podem se tornar muito complicados, como isenções de remoção para qualquer vencedor direto de uma criação para as seguintes produções X, isenção de qualquer alta colocação de 5% para as seguintes produções Y, e carregar a metade superior de suas produções. remanescentes de acordo com uma escala de desempenho em que as reduções na produção final contam A%, produção anterior Bpercent, duas gerações após o Cpercent etc. Como os organismos se adaptam às modificações na informação, seria eficaz permitir que os organismos entrem no momento atual através dele e para iniciar o backtesting junto com os dados disponíveis.



O que um organismo irá parecer? Bem, tome entre os princípios de para obter um exemplo de barra alta. Na seção do estado certo (breve, certo?
) você pode ver algo semelhante a:

E SE:
1:00 a 2:00 grande - 12:00 a 1:00 grande = lt; dois pips
E SE:
1:00 próximo - 2:00 próximo = gt; XX pips
E SE:
.........
E SE:
..........
ENTÃO:
entrada


você pode ver mesmo neste exemplo de pseudocódigo muito espaço para mutações fáceis. Muitos falharão, suas regras podem não funcionar tão bem ou até melhores que algumas.

Quanto tempo leva para criar uma produção depende da quantidade de organismos, da sofisticação que eles têm, da eficácia do código, para não mencionar o poder de computação acessível. O que é realmente intrigante é a possibilidade de que, como o apliivo GA recebe informações em tempo real e toma decisões comerciais, aprimore e continue a sobrecarregar as gerações. Isso é o que realmente parece que os distribuidores técnicos precisam ... regras de sistema que não dão errado, mas que se adaptam às flutuações do mercado e permanecem lucrativas. O pensamento é que todos os organismos imitam os negócios em conjunto com o programa de gerenciamento, observando como cada um deles fez isso e tendo acesso a informações em tempo real. Se a máquina estivesse viva enquanto todos os organismos acreditassem que estão fazendo transações e funcionassem nos dados, apenas a pessoa lidaria com a real. Seria necessário tomar uma decisão sobre se os princípios usados ​​para averiguar os sobreviventes (e, consequentemente, gerar uma adequação) seriam exatamente como aqueles usados ​​para escolher qual sobrevivente conseguirá criar as escolhas comerciais reais (se realmente usar a máquina residir). a geração atual. Você precisaria do seu vencedor passado, com uma linhagem de atores, ou você precisaria de um fabricante de dinheiro e sua média de tempo? Acredito que essa pergunta pode ser respondida imitando o aumento desta colônia em períodos extensos de dados com princípios para negociação e sobrevivência.

Um problema persistente é a maneira de gerenciar eventos mundiais. Ganho de previsões e relatórios de ganhos, taxas de juros, inflação, etc. podem ser inseridos no arquivo de configuração diariamente como variáveis ​​adicionais que os organismos podem utilizar. Possivelmente um estoque de organismos particulares da situação pode ser mantido que se provou particularmente bem adaptado para certas condições, como durante um naufrágio, um grande desastre natural, uma guerra, etc. O consumidor limita somente o grau de sofisticação desta colônia.

Uma vez montada, a porta se abre para questões ainda mais fascinantes. O que estão em competição uns com os outros? De cada imitação que ele tinha controle sobre as ferramentas de conta para o ajuste ter controle e qualquer mercado em particular, suponha que mais ou dois dos que se encaixam tiveram que lutar pelo corte do perigo? Eles podem criar abordagens para controlar? As coleções de organismos que trabalham nos mercados seriam recompensadoras cumulativamente do que a quantidade de cada operação? Essa é a lacuna entre o cálculo do tamanho do local levando em consideração o que os organismos do mercado estão fazendo no momento ou as configurações. Flutuação difícil com base no dinheiro em drama ou no máximo para cada negociação?



Pensamentos suficientes para esta noite. Computador simplesmente cuspiu efeitos ... de volta ao trabalho.