![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Na minha opinião, a pergunta está absolutamente correta. Antes de traçar uma estratégia, seria bom saber se ela funcionará.
Há duas maneiras de fazer isso.
1. Excel - escrevemos a estratégia lá e a verificamos. Quaisquer gráficos + boa matemática estão à sua disposição. Sim, e + VBA.
2. MatLab - carregamos as cotações no banco de dados, conectamos o banco ao MatLab e modelamos a estratégia lá. Mais fácil do que no Excel.
Não é mais fácil fazer tudo diretamente no MT4/5? Por que programas de terceiros se a pesquisa é sobre a otimização de um portfólio de estratégias? Embora eu não tenha certeza se essa foi a pergunta?
Toda vez que carrego variantes no testador automático, penso sobre isso. Aqui está o que estou pensando
1. O gerador de estratégias deve funcionar com base no princípio da árvore evolutiva, do simples ao complexo.
2. As variantes devem ser verificadas imediatamente no volking-forward e eliminadas
3. as funções devem ser preparadas manualmente, e o gerador deve trabalhar apenas com as variantes de sua interação, ou seja, criar interdependências.
A propósito, no tópico em inglês, encontrei uma menção a um software búlgaro com elementos semelhantes a esse. Mas como ele estava no MT4, não me interessei por ele.
E aqui está outro alemão, também no MT4 http://darwins-fx-tools.com/.
Nessa variante, o desenvolvimento está em andamento... Um gráfico de interação de funções é construído, o espaço de busca é infinito...
As conexões entre as funções serão mais "significativas", por exemplo, a expressão Open>Low faz sentido, mas Open>Volume não, e outras nuances....
Aqui está outro exemplo de uma expressão sem sentido: =High>(Open-Close), que também não passará despercebida.
Você se afogará em ninharias como essa. Por funções, quero dizer um determinado trecho de código internamente consistente preparado com antecedência, que, com a ajuda de indicadores ou de forma independente, é responsável por alguma propriedade do EA. Ou seja, por uma determinada ideia.
Por exemplo, uma parte que define fractais no histórico. Ou uma peça que conta tudo o que você não dá a ela. Ou que define taxas de mudança. Ou que determine níveis.
A tarefa do gerador é combinar essas diferentes partes em uma única solução de engenharia. Por exemplo, contar o número de fractais em um nível e, dependendo do resultado, priorizar a compra ou a venda. Ou determinamos a soma das acelerações no nível, comparamos com a mesma no histórico e criamos um fator de correção em outra função. etc. etc.
Ou seja, se fizermos uma analogia com a evolução da matéria viva, há dois tipos de mutações que fornecem material para seleção. A primeira são as mutações pontuais, que, de fato, constituem o número esmagador de alterações no genoma. O problema é que elas geralmente não levam a nada. Porém, como esse processo vem ocorrendo há bilhões de anos e com estatísticas enormes, há sempre os sortudos. Pessoalmente, não tenho um milhão de anos, ou cem, ou até mesmo uma dúzia, para fazer uma busca estúpida.
O segundo tipo de mutação é mais raro, porém mais interessante, é quando ocorre a recombinação, também espontânea, mas já com soluções prontas. Por exemplo, na formação de um novo organismo sexual, há um embaralhamento de diferentes genes do pai e da mãe. Ou há a incorporação de um vírus no genoma. Ou o genoma inteiro de um organismo alienígena independente é assumido. Ou há uma fusão de cromossomos inteiros para formar uma nova espécie (hominídeos, a propósito).
Portanto, a tarefa desse gerador é recombinar essas funções de acordo com um determinado algoritmo. Só então há uma chance de que surja algo novo
Ao liberar o operador da rotina, esse gerador lhe deixaria a parte criativa - a oportunidade de se concentrar em novas ideias. Além disso, a mecanização sempre reduz o risco de subjetividade e ajuda a se livrar dos carimbos.
Você se afogará em detalhes. Por funções, quero dizer um determinado trecho de código internamente consistente, preparado com antecedência, que, com a ajuda de indicadores ou de forma independente, é responsável por uma determinada propriedade do Expert Advisor. Ou seja, por uma determinada ideia.
Por exemplo, uma parte que define fractais no histórico. Ou uma peça que conta tudo o que você não dá a ela. Ou que define taxas de mudança. Ou que determine níveis.
A tarefa do gerador é combinar essas diferentes partes em uma única solução de engenharia. Por exemplo, contar o número de fractais em um nível e, dependendo do resultado, priorizar a compra ou a venda. Ou determinamos a soma das acelerações no nível, comparamos com a mesma no histórico e criamos um fator de correção em outra função. etc. etc.
Portanto, a tarefa de um gerador desse tipo é recombinar essas funções de acordo com um determinado algoritmo. Só então há uma chance de que algo novo apareça
E se um trecho de código (uma função) se oferecer para comprar e outro para vender? Como o gerador pode combinar essas partes em uma solução consolidada?
Ou, suponha que uma função A acredite que o preço cairá com probabilidade P(A) e outra função B acredite que o preço subirá com probabilidade P(B). Devemos aplicar as fórmulas da teoria da probabilidade?
Se estiver procurando por uma estratégia, não é mais fácil. Não sei sobre o resto, não pensei nisso. No entanto, qualquer modelagem é mais fácil em ambientes especiais, não na MT. O MT é um produto final, não foi projetado para pesquisa e não é muito adequado para isso
E se um trecho de código (função) se oferecer para comprar e outro para vender. Como o gerador pode combinar essas partes em uma solução consolidada?
Ou, suponha que uma função A acredite que o preço cairá com probabilidade P(A) e outra função B acredite que o preço subirá com probabilidade P(B), e daí? Devemos aplicar as fórmulas da teoria da probabilidade?
Você se afogará em detalhes. Por funções, quero dizer um determinado trecho de código internamente consistente, preparado com antecedência, que, com a ajuda de indicadores ou de forma independente, é responsável por uma determinada propriedade do Expert Advisor. Ou seja, por uma determinada ideia.
Por exemplo, uma parte que define fractais no histórico. Ou uma peça que conta tudo o que você não dá a ela. Ou que define taxas de mudança. Ou que determine níveis.
A tarefa do gerador é combinar essas diferentes partes em uma única solução de engenharia. Por exemplo, contar o número de fractais em um nível e, dependendo do resultado, priorizar a compra ou a venda. Ou determinamos a soma das acelerações no nível, comparamos com a mesma no histórico e criamos um fator de correção em outra função. etc. etc.
Ou seja, se fizermos uma analogia com a evolução da matéria viva, há dois tipos de mutações que fornecem material para seleção. A primeira são as mutações pontuais, que, de fato, constituem o número esmagador de alterações no genoma. O problema é que elas geralmente não levam a nada. Porém, como esse processo vem ocorrendo há bilhões de anos e com estatísticas enormes, há sempre os sortudos. Pessoalmente, não tenho um milhão de anos, nem cem, nem mesmo uma dúzia, para fazer uma busca estúpida.
O segundo tipo de mutação é mais raro, porém mais interessante, é quando ocorre a recombinação, também espontânea, mas já com soluções prontas. Por exemplo, na formação de um novo organismo sexual, há um embaralhamento de diferentes genes do pai e da mãe. Ou há a incorporação de um vírus no genoma. Ou o genoma inteiro de um organismo alienígena independente é assumido. Ou há uma fusão de cromossomos inteiros para formar uma nova espécie (hominídeos, a propósito).
Portanto, a tarefa desse gerador é recombinar essas funções de acordo com um determinado algoritmo. Só então há uma chance de que surja algo novo
Ao liberar o trader da rotina, esse gerador lhe deixaria a parte criativa - a oportunidade de se concentrar em novas ideias. Além disso, a mecanização sempre reduz o risco de subjetividade e ajuda a se livrar dos carimbos.
De fato, há muitas pequenas coisas.
Tentei criar um sistema universal para que pudesse acrescentar diferentes possibilidades de análise de indicadores, candlesticks etc. com o mínimo de esforço. Cada função tem informações sobre com quais dados ela pode trabalhar e quais dados serão gerados. Também serão descritos os indicadores e o tipo de dados que eles fornecem. Os dados são divididos em tipos, tanto simples quanto complexos, por exemplo, {double} e {int,double}. Eles são divididos em categorias, por exemplo, "preço" e "posições no gráfico", outro exemplo: "linha reta" (pode ser usada para definir canais) etc. Eles são divididos por "tipo de escala". Categorizadas por "tipo de escala", por exemplo, "constante" (parâmetro da estratégia), "índice" (há um mínimo e um máximo), "proporção" (há apenas um ponto de referência, por exemplo, preço, volume) etc. É necessário modificar a estratégia de forma consistente, pois há uma nuance: a modificação em um lugar pode afetar as condições de modificação em outro lugar.
É isso mesmo... Para reduzir o número de combinações da pesquisa e usar as restrições acima (tipo, escala, categoria), por enquanto será o suficiente e as alterações pontuais (adicionar/remover uma/algumas funções).
"Se a recombinação também é espontânea, mas de soluções prontas inteiras" - esse pensamento me veio à mente -, é difícil imaginar como ela pode ser realizada. Um grupo de funções combinadas provavelmente terá mais conexões com o "mundo externo" do que uma única função, portanto, haverá menos oportunidades de encaixar tudo. O algoritmo se torna muito complicado, vamos deixar isso para um momento melhor)).