Seus símbolos e seus dados no Metatrader 5 - página 4

 
zaskok:

Existem métodos heurísticos que são mais adequados para otimizar os sistemas comerciais. É exatamente para isso que eles são desenvolvidos, ao contrário dos GAs universais. Você acha que seria possível substituir o único método heurístico no testador por seu próprio método escrito em MQL5? Se vamos melhorar drasticamente o testador em termos de personalização dos dados de entrada, então seria razoável personalizar os métodos de otimização (há muito tempo os critérios de otimização personalizados estão disponíveis) para dar-lhe o melhor desempenho.

Se você quiser algo diferente da GA, então especifique estes métodos exatamente pelo nome e dê argumentos com evidência direta de vantagens, por favor.

Mas a pergunta mais importante é - o que exatamente tem a GA que você não está satisfeito com ela? Não encontrou a área de solução para você? Mesmo com 10 vezes o método de apalpação sucessiva, você não tem uma idéia dos grupos com as características desejadas?

É claro que sim. Muito rápida e eficientemente. Dezenas ou centenas de milhares de vezes mais rápido do que a força bruta habitual.

Você obtém resultados mais rápidos ou melhores por outros métodos (monte carlo ou recozimento, por exemplo)? Não é um fato.

Mas aqui está o fato de que os próprios critérios de avaliação do nosso algoritmo genético dão a cada programador a liberdade de implementar suas próprias variações de seleção. Este mecanismo é essencialmente a chave para criar nossa própria heurística.

Além disso, temos funções de controle/sobreposição MQL5 para parâmetros de entrada, o que nos permite implementar a enumeração de parâmetros não numéricos/não lineares, virtualizando-os em contadores numéricos lineares especiais. Por exemplo, pegue 30 parâmetros não numéricos, incluindo dados de arquivos, converta-os em um contador de 64 bits[i] e torça-os como um parâmetro de trabalho. Cabe ao programador decidir o que está dentro. E a função de seu próprio critério de avaliação também ajuda a criar seu próprio método heurístico.

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
zaskok:

Existem métodos heurísticos que são mais adequados para otimizar os sistemas comerciais. É exatamente para isso que eles são desenvolvidos, ao contrário dos GAs universais. Você acha que seria possível substituir o único método heurístico no testador por seu próprio método escrito em MQL5? Se vamos melhorar drasticamente o testador em termos de personalização dos dados de entrada, seria razoável personalizar os métodos de otimização (há muito tempo os critérios de otimização personalizados estão disponíveis) para dar-lhe o melhor desempenho.

Eu aplico este método para procurar por extrema. Por exemplo, é assim que se parece a busca de máximos de função:

e esta é a busca em si:

 

Isto está no testador MT5, incluindo a visualização em 3D.

 
Renat:
Decidimos abrir interfaces para escrever nossos próprios datafeeds para o MT5.

Você será livre para escrever suas próprias fontes de dados, incluindo fontes de dados rltime. Isto permitirá que quaisquer dados sejam conectados, incluindo histórico detalhado e tumblers de nível 2.

Por padrão, forneceremos uma série de dados internos, incluindo os dados offline. Os caracteres virtuais também estarão disponíveis no testador.

Tudo isso é gratuito, é claro.

Aleluia! Quantos anos de perguntas e aqui estamos finalmente... Até lágrimas de alegria e de emoção fluem:)

Pessoalmente, sempre tive medo de usar o MT5 em toda a sua extensão, falta de história para ele. Eu tive que conduzir pesquisas em programas de terceiros como o Wealth-Lab e usar o MT5 para escrever robôs comerciais. Agora não haverá necessidade em programas de terceiros.

 
forexman77:

Quando há muitas variáveis a serem otimizadas, há uma alta probabilidade de adaptação à história.

À medida que as variáveis crescem, o tempo de otimização cresce exponencialmente e não há como fugir disso.

Há uma saída para isso, um computador super poderoso do tamanho de uma casa)

Estou familiarizado com este problema e elaborei um algoritmo para resolvê-lo. O que eu não entendo é que eles decidam forçosamente por mim novamente que a genética é melhor que a força bruta... Não creio e há razões e exemplos positivos, por exemplo, o Profinity foi criado exatamente por experimentar variantes, agora sua relevância está no passado. mas, mesmo assim, sua relevância está no passado.

Mais uma vez, não está claro porque um mercado tão grande de agentes remotos deve ser cortado, eles estão tão ocupados quanto querem estar.... não é assim, 80% (imho) dos existentes estão ociosos, e depois cortam sua frente potencial de trabalho.

 
Renat:

Isto está no testador MT5, incluindo a visualização em 3D.

Isso é ótimo, eu não sabia disso, só que não funcionou para mim, as posições do interruptor em 3D estão inativas, deveria haver algo especial no código?
 
IvanIvanov:
Ótimo, eu não sabia disso, mas não funcionou para mim, trocar de posição em 3D é inativo, há algo especial no código?
Visualização 3D do MetaTrader 5 Strategy Tester
 

О ! Bravo, Admins !

Entendo que a depuração dos dados históricos finalmente aparecerá ?

 
Renat:

Se você quiser algo diferente da GA, então declare estes métodos exatamente pelo nome e dê argumentos com evidência direta dos benefícios, por favor.

Mas a pergunta mais importante é: qual é exatamente o seu problema com a GA? Não encontrou a área de solução para você? Mesmo com 10 vezes o método de apalpação sucessiva, você não tem uma idéia dos grupos com as características desejadas?

É claro que sim. Muito rápida e eficientemente. Dezenas ou centenas de milhares de vezes mais rápido do que a força bruta habitual.

Você obtém resultados mais rápidos ou melhores por outros métodos (monte carlo ou recozimento, por exemplo)? Nem por isso.

É bastante problemático trazer uma prova só para você, já que você não responde corretamente à argumentação pública de sua miopia em alguns assuntos. E este fio, que você mesmo iniciou, serve como a prova culminante, infelizmente, dessa afirmação. É claro que não foram outros que chamaram e pediram por isto durante anos, e você supostamente foi repelido.... Mas o que era, é o que era. Entretanto, provar que você está errado parece ser um tanto inútil, pois é o fator humano, não a lógica, que faz a avaliação.

É por isso que vou dar argumentos lógicos a favor de métodos de otimização heurística que são um pouco diferentes da GA, não para você, mas para os usuários do fórum. Abaixo estão alguns trechos do artigo que citei anteriormente + minhas ênfases às quais você deve prestar atenção especial:

Todos os métodos de otimização estocástica têm uma desvantagem em comum - eles podem parar em algum extremo local e perder de vista o ideal. Para evitar isso, é necessário maximizar as áreas de amostra e o número de iterações. Mas isto prejudica a velocidade de cálculo. Portanto, devemos sempre procurar o meio dourado.


No entanto, se pensarmos nisso, não precisamos do próprio extremo global se não houver convergência para ele. Isto é, se não houver uma diminuição condicionalmente uniforme em torno do extremo, é muito provável que este extremo global seja aleatório e de pouca utilidade para nós, pois é inadequado e estragará nossos cálculos. É por isso que é tão importante estudar os parâmetros em torno do extremo. Se houver convergência, isso significa que existe um sistema e que esta estratégia pode ser estudada mais a fundo.

Como já mencionei acima, é importante estudar a área ao redor do extremo e por isso decidi convergir para o final e testar todas as estratégias vizinhas na última iteração. Não brinquei com os gradientes e tornei a convergência estática como porcentagem da amostra inicial. Isso significa que decidimos logo no início quanto cortar a matriz multidimensional em 1% ou 20% após cada iteração. Além disso, decidimos imediatamente, dadas as nossas limitações de tempo, quantas estratégias vamos tirar da matriz a cada iteração para testes. Assim, o tamanho da matriz não é nada importante para nós, sabemos exatamente quantas iterações e em que volume iremos iterar! Esta é a beleza dos métodos estocásticos.

Após a primeira iteração, quando o primeiro espaço tiver sido explorado, devemos de alguma forma reduzir a área de exploração para a próxima amostra. Mas ainda não sabemos quase nada sobre este espaço e me parece um poucoimprudente cortar áreas desconhecidas. Em geral, o algoritmo é projetado para encontrar o máximo global, e estamos interessados em todos os máximos locais e globais.

Precisamos conhecer todos os parâmetros onde a estratégia pode dar lucro. Talvez uma estratégia em alguns parâmetros produza bons lucros, mas mais arriscada, enquanto em outros parâmetros produz um lucro um pouco menor, mas acaba sendo mais estável e menos arriscada, e se seguirmos nosso algoritmo, podemos perdê-lo de vista.

Retiramos de forma significativa as piores estratégias do espaço de estudo. Assim, nas próximas iterações exploramos as áreas com as estratégias mais rentáveis e não perdemos tempo precioso de testes explorando as áreas de que não precisamos. Eventualmente, nossa área de estudo converge para todos os máximos do espaço.

Suponha que tenhamos explorado o espaço e tenhamos uma idéia aproximada de quantos agudos existem. Então, o que isso nos dá? Até agora quase nada...
Precisamos investigar esses máximos e descobrir se eles são de natureza aleatória ou sistêmica. Para este fim, o testador otimizador nos permite selecionar as melhores estratégias e investigar melhor as áreas ao seu redor. Investigue as estratégias que nos faltaram durante a otimização. Agora sabemos quase tudo sobre os extremos espaciais! Os dados obtidos podem ser mais bem investigados para agrupamento, otimização excessiva e assim por diante. Mas essa é outra história!

Não se trata deste artigo, mas dos princípios gerais de busca e otimização do TC que quase não são discutidos em nenhum lugar. Portanto, GA não é o que queremos ter no arsenal de otimização de TS.

Mas aqui está o fato de que o critério de avaliação de execução proprietária em nosso algoritmo genético dá a cada programador a liberdade de implementar suas próprias variações de seleção. Este mecanismo é essencialmente a chave para criar nossa própria heurística.

Além disso, temos funções de controle/sobreposição MQL5 para parâmetros de entrada, o que nos permite implementar a enumeração de parâmetros não numéricos/não lineares, virtualizando-os em contadores numéricos lineares especiais. Por exemplo, pegue 30 parâmetros não numéricos, incluindo dados de arquivos, converta-os em um contador de 64 bits[i] e torça-os como um parâmetro de trabalho. Cabe ao programador decidir o que está dentro. E a função de seu próprio critério de avaliação também ajuda a criar seu próprio método heurístico.

Nunca ouvi falar das "funções MQL5 para gerenciar/definir parâmetros de entrada" - me dê um link.
 
event:

Apliquei este método para encontrar o extrema. Por exemplo, isto é o que se parece ao encontrar os máximos de uma função:

Obrigado! Você poderia fornecer a fórmula de sua função aproximada para tentar encontrar seus extremos locais no OnTester com a AG regular - para comparação.

Seria interessante ouvir de você algumas palavras construtivas sobre o método (descrição, fontes, prós/cons).

Razão: