Discussão do artigo "Algoritmos de otimização populacionais: Algoritmo de mudas, semeadura e crescimento (SSG)" - página 6

 
Andrey Dik #:
Aqui, estou apenas tentando mostrar que é possível evitar cinco otimizações e entrar na região verde de uma só vez, em uma única otimização. Para isso, é necessário introduzir o FF principal em vez do FF secundário. O FF principal deve descrever a região verde e é o máximo global.
Portanto, o FF na imagem não é o que precisamos, precisamos de um FF no qual precisamos procurar o máximo global.
É difícil explicar isso nos dedos, mas você pode, no artigo))))

Está claro que, com uma abordagem competente, ninguém otimiza pelo mesmo critério de equilíbrio. Eles tentam levar em conta a ausência de excessos, o número estatisticamente significativo de transações, etc.

Escrevi um pouco sobre o assunto aqui.

Você deve obter uma imagem semelhante das transações em cada passagem. Aqui você pode ver as transações desonestas e os tijolos TC.


Para formar o critério de otimização, é desejável descartar as transações que são discrepantes.

Mas esse é o tópico da formação de um FF conveniente. Mesmo que ele seja completamente sem picos e tenha uma natureza montanhosa, essas colinas não serão encontradas em uma única passagem completa. É por isso que faço dessa forma.

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Discussão do artigo "Algoritmos de otimização de população: Algoritmo de semeadura e crescimento de mudas (SSG)"

fxsaber, 2023.03.22 00:32

Eu encontro indiretamente locais por meio da interrupção forçada da otimização quando um grande número de núcleos está envolvido. Grosso modo, há 20 agentes no Tester e eu interrompo a otimização após 2000 passagens.

Mas isso é muito rudimentar. É mais confiável descartar a melhor colina e repetir a otimização.
Уменьшаем выборку - увеличиваем стат. значимость?
Уменьшаем выборку - увеличиваем стат. значимость?
  • 2022.01.28
  • www.mql5.com
Торговый робот должен (условно) удовлетворять следующим условиям: Совершать достаточно много сделок на интервале настройки (оптимизации). Показывать столь же стабильный результат вне интервала
 
fxsaber critério de otimização).

Se você realizar uma otimização completa para um TC com dois parâmetros todos os dias durante um ano ou dois para obter um quadro semelhante e, em seguida, formar um vídeo a partir desses quadros, obterá algo assim:


Seria ingênuo presumir que a superfície permanecerá estática.
Portanto, a pergunta é:
Qual é o objetivo?

 
Andrey Dik grupo que cresceu demais é expulso do grupo, que é forçado a formar grupos em extremos separados.

Falando francamente, esse não é um desejo específico, mas uma ferramenta que deve ser incluída em um software sério para negociação de algo - o Tester.

Mas é realista ajustá-lo você mesmo.

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.

Discussão do artigo "Algoritmos de otimização de população: Algoritmo de semeadura e crescimento de mudas (SSG)"

fxsaber, 2023.03.23 19:51

Se você tiver os dados da área a ser cortada, poderá facilmente (mesmo no Tester comum) fazer a otimização sem essa localização de espaço.

Mas não tenho a menor competência para definir a área ao redor do máximo global encontrado nos resultados do GA.

Os algoritmos de AG são bem diferentes. Presumo que se um máximo for encontrado em 1.000 passagens e o algoritmo parar, então as últimas 100 passagens são pontos em torno do máximo encontrado. Então, pegamos esses 100 pontos e formamos imediatamente a área a ser descartada em otimizações futuras.

Em princípio, se o mesmo GA regular for executado apenas uma vez, então as últimas 100 entradas no arquivo opt devem ser esses pontos. Entretanto, não tenho certeza se esse é o caso de uma abordagem com vários núcleos. É por isso que é necessário algum tipo de agrupamento. Há vários artigos sobre esse tópico, você deveria estudá-lo.

 
Nikolai Semko #:

Seria ingênuo supor que a superfície permaneceria estática.

Preciso de um ponto relativamente estático nessa superfície borbulhante. Já os encontrei.

E, no entanto, não devemos reduzir o tópico à habilidade e ao significado de cozinhar. Você precisa de uma panela para cozinhar.

 
fxsaber #:

Ainda assim, não reduza o assunto à habilidade e ao significado de cozinhar. Você precisa de uma panela para cozinhar.

+++

 
fxsaber #:

Falando francamente, esse não é um desejo específico, mas uma ferramenta que deve ser incluída em um software sério de comércio de algo - o Tester.

Mas você mesmo pode ajustá-la

Os algoritmos GA são bem diferentes. Suponho que se um máximo for encontrado em 1.000 passagens e o algoritmo parar, então as últimas 100 passagens são pontos em torno do máximo encontrado. Então, basta pegar esses 100 pontos e formar imediatamente uma região a ser descartada em otimizações futuras.

Em princípio, se o mesmo GA regular for executado apenas uma vez, então as últimas 100 entradas no arquivo opt devem ser esses pontos. Entretanto, não tenho certeza se esse é o caso de uma abordagem com vários núcleos. É por isso que é necessário algum tipo de agrupamento. Há vários artigos sobre esse tópico, preciso pesquisar.


Acredito que as últimas 100 entradas serão notavelmente diferentes para algoritmos diferentes. Por experiência própria, posso me dar ao luxo de pensar assim, portanto, é razoável observar que a escolha de algoritmos para tarefas faz sentido, e não apenas escolher o melhor da tabela....
Portanto, considero útil a ideia de criar essa tabela de classificação.
Tarefa específica - eu me referia especificamente a essa tarefa, não a uma tarefa rara. há uma necessidade, portanto, ela deve ser levada em conta na plataforma, de preferência.

 
Os últimos 100 registros não corresponderão a picos diferentes, todos eles estarão centrados em torno de um último pico encontrado
 
Andrey Dik #:

Acredito que os últimos 100 registros serão notavelmente diferentes para algoritmos diferentes. Por experiência, posso me dar ao luxo de acreditar nisso, portanto, é razoável observar que a escolha de algoritmos para tarefas faz sentido, e não apenas escolher o melhor da tabela...

Portanto, considero útil a ideia de criar essa tabela de classificação.

Um brinde à classificação! Mais objetividade. Mas ainda estou um pouco confuso. Ainda estou analisando os problemas práticos que estou enfrentando.

Tarefa específica - quis dizer especificamente tal tarefa, não rara. Há uma necessidade, portanto ela deve ser levada em conta na plataforma, de preferência.

No Tester, eu adicionaria a opção "throw away areas of found maxima of previous optimisations" (descartar áreas de máximos encontrados em otimizações anteriores).

Então, a primeira execução seria sem essa opção, e as demais, com ela ativada. Faça 20 otimizações - obtenha 20 picos.

Em seguida, carregue-as no OOS-check (20 execuções individuais) e avalie-as, ao mesmo tempo em que avalia todo o TS/FF.

 
fxsaber #:

Preciso de um ponto relativamente estático nessa superfície borbulhante. Encontrei estes...

mas, ainda assim, acho que encontrar esses pontos tinha um caráter probabilístico.
Minha mensagem é que não deve haver parâmetros de entrada que exijam "otimização" na entrada do TC. Tais parâmetros transformam o TS em uma moeda.
Até mesmo a auto-otimização interna de parâmetros internos também é um auto-engano.

 
fxsaber #:

No Tester, eu adicionaria uma caixa de seleção "descartar áreas de máximos encontrados de otimizações anteriores".

Implementação independente:

  1. Li o último arquivo de opções e gerei uma região a partir das últimas 100 passagens (compreensivelmente, isso não é muito correto).
  2. Adicionei essa área ao arquivo comum.
  3. O Expert Advisor lê essas áreas do arquivo comum no OnInit. E também há uma verificação de que, se a entrada atingir essas áreas, faremos INIT_FAILED.
Tudo está pronto! É importante apenas formar corretamente a área no ponto 1.