Optimização no Testador de Estratégia - página 15

 
Urain:

Se utilizasse uma matriz dinâmica longa como esta, provavelmente mudaria muito. Assumindo a função FF mais lenta, não estragaria demasiado o algoritmo. Essa é a verdade, sem ter verificado o algoritmo em si, é difícil dizer quão complexa será a remodelação.
Já estamos a pensar em alargar a gama.
 
Renat:
Já a pensar em expandir a gama.

Encontrei isto, não é um mau artigo sobre a GA híbrida http://masters.donntu.edu.ua/2006/kita/bashev/library/hybrid.html

Em poucas palavras: GA binária + regras do método de optimização quasi-Newtoniano.

Интеллектуальные модели на основе гибридного генетического алгоритма с градиентным обучением лидера, Н.Б. Паклин, М.А. Сенилов, В.А. Тененев, ГОУ ВПО "Ижевский государственный технический университет", г. Ижевск, 2004
  • masters.donntu.edu.ua
Данный доклад в сентябре 2004 г. был опубликован в научно-теоретическом журнале "Искусственный интеллект" и апробирован на V Международной конференции "Искусственный интеллект-2004. Интеллектуальные и многопроцессорные системы" (20-25 сентября 2004 года, Крым, п. Кацивели, ссылка на печатный источник: Паклин Н.Б., Сенилов М.А., Тененев В.А...
 
Dmitriy2:

E seleccionei alguns parâmetros, cliquei no teste... de manhã, contei o número de corridas e quantas restaram. calculou que faltaram 50 dias para o fim da optimização. o meu computador tem 4 núcleos + 2 agentes centrais... Que se lixe esta optimização, desliguem-na...

Os parâmetros claramente não são 5-6 e o seu período não é de um ano :)))) E, em geral, o tempo que resta antes do fim da optimização é sempre errado (pelo menos era assim em MT4), quanto mais optimização diminui mais rapidamente o tempo até ao fim da optimização, escrevi originalmente 450 horas em MT5, mas na realidade gastei cerca de 100 horas.

 
Urain:

Aqui encontrei um bom artigo sobre a GA híbrida http://masters.donntu.edu.ua/2006/kita/bashev/library/hybrid.html

Em poucas palavras: GA binária + regras do método de optimização quasi-Newtoniano.

Boa ideia, mas os autores deixaram de lado uma pequena característica de métodos gradientes que leva a sérios problemas na implementação - cálculo da derivada parcial da função alvo para cada parâmetro adaptativo )))

Mas sim, é uma solução genial ))))

Supondo que este problema está resolvido, ainda há uma questão de escolher o degrau de mudança ao longo do declive

A mesma AG com elementos de "elitismo" e grande número de indivíduos na população encerra estes problemas num período de tempo razoável

Estamos a falar de um espaço de busca da ordem de algumas dezenas. Qualquer coisa maior é uma perda de tempo (por experiência pessoal, afirmo que a optimização de múltiplos TS com 30 parâmetros adaptativos sobre um histórico >100 mil barras estupidamente levou à requalificação).

 
Renat:
Já estamos a pensar em alargar a gama.
Isso seria óptimo. Tenho aplicações razoáveis para um grande número de parâmetros.
 

Optimizer não consegue lidar com 64 parâmetros, o máximo é 62, aos 63 já morre (n/a) :)

Verificar perito em reboque. Aí também se pode fazer o set-file. Tive de o gerar para evitar escrever.

Resolve o problema da geração de oito vectores ortogonais.

A função fitness calcula todos os produtos escalares em pares e soma os seus valores absolutos com sinal oposto.

Talvez eu tenha tido estupidamente sorte, mas um par de vezes em quatro obtive um resultado de pleno direito (correcto-zero).

Também é divertido fixar vários (2-3) vectores e observar os outros a tentar alinhar perpendicularmente... :)

Resolve-o rapidamente, o que é sem dúvida uma coisa boa.

Não gostei que exibisse no separador"Resultados da optimização" um máximo de 20 parâmetros a serem optimizados.

// O outro erro apareceu durante o trabalho - com 64 parâmetros de entrada já não são destacados no MetaEditor. São apenas apresentadas como variáveis habituais.

--

O gerador de guiões também está em reboque.

Gera Expert Advisor e set-file de "dimensionalidade" apropriada, a dimensionalidade é especificada no parâmetro durante a geração.

Encontra-se na pasta ...MetaTrader 5 MQL5 Ficheiros, claro.

Também se pode brincar com vectores de menor dimensão.

// Ainda sem sorte com as maiores. Estamos à espera. :)

A propósito, o optimizador não resolveu o problema para cinco vectores nem uma única vez. O melhor resultado para cinco vectores é CustomMax == -10

p.s. Mais tarde: bem, sim, sou burro, o resultado máximo para vectores estranhos == -n*(n-1)/2 nas condições especificadas no set-file,

para que tudo esteja correcto, o algoritmo do gene encontra sempre os máximos com sucesso. // bem, quase :)

Arquivos anexados:
 
Renat:
Já a pensar em expandir a gama.

Viva! Ainda bem que os programadores finalmente perceberam que as pessoas precisam de um testador sem limitações, se o mt5 está posicionado como uma nova etapa no comércio automático, então porque é que sistemas com grandes cálculos deixariam um obstáculo de 64, quer seja NS ou outra coisa qualquer.

Aguardo com expectativa uma construção com uma correcção e a capacidade de continuar os meus projectos no testador padrão. (porque é demasiado caro para escrever o seu próprio testador a partir do zero...).

 
yu-sha:

Ideia fixe, mas os autores deixaram de lado uma pequena característica de métodos gradientes que leva a sérios problemas na implementação - cálculo da derivada privada da função alvo para cada parâmetro adaptativo )).

Mas sim, é uma solução genial ))))

Supondo que este problema está resolvido, ainda há uma questão de escolher o degrau de mudança ao longo do declive

A mesma AG com elementos de "elitismo" e grande número de indivíduos na população encerra estes problemas num período de tempo razoável

...

Ao calcular um gradiente sem uma derivada parcial, serão necessários vários pontos de teste nas proximidades. Tendo-os FF pode também calcular o valor do passo mínimo para cada parâmetro. Depois o passo pode ser duplicado (começando pelo mínimo) até ao próximo ponto por FF será menor do que o anterior. Se o encontrarmos no anterior, calcularemos novamente o gradiente. E continue.

 

Todos são tão espertos - é horrível!

Oh, teria a gentileza de me dizer como adicionar mais Agentes ao meu dual-core.

Em algum lugar vi no teste (3D, ou algo assim) todos a voar e a esvoaçar e agentes em metade do ecrã.

Bem, é difícil para mim tolerar um teste de 2 cenários (algures por volta das 1200 passagens) durante meia hora ou mais. Obrigado.

 
artall:

Todos são tão espertos - é horrível!

Oh, teria a gentileza de me dizer como adicionar mais Agentes ao meu dual-core.

Em algum lugar vi num teste (3D ou algo parecido) tudo voou e vibrou e agentes em meio ecrã.

Bem, é difícil para mim tolerar um teste de 2 parâmetros (cerca de 1200 passes) durante meia hora ou mais. Obrigado.

Chat neste tópico --> Rede de testes multi-core para todos os participantes,

Há um número suficiente de pessoas que já estudaram esta questão em pormenor.