Discussão do artigo "Algoritmos genéticos - é fácil!" - página 19

 
Andrey Dik:
Você está planejando otimizar algo, não está? Então, você precisa apresentar esse "algo" na forma de FF, que pode ser, por exemplo, o número de pontos de lucro nos sinais do indicador. Esse é o FF.
Eu tenho algo a perguntar, sobre FF, por exemplo, se é como o conselho dado, onde é que a otimização importa, se este UGA pode salvar a possibilidade de lucro que foi dito ou algo mais, e se ao definir o parâmetro indicador ideal se deve ser Eu faço testes virtuais como o exemplo EA que eu vejo, e desculpe se isso ofende, Algoritmos Genéticos são aleatórios, como podemos ter certeza de que é ideal, e se possível, entramos em uma boa condição para fazer algoritmos genéticos otimizar indicadores de parâmetros, Por exemplo, podemos pegar as condições históricas de compra e lucro com quantos pontos e os algoritmos genéticos usam dados semelhantes no futuro e executam a otimização, é uma boa maneira de usá-lo, não consigo pensar em mais nada, se estiver errado, por favor, me diga um bom exemplo de uso, se sem porque e quando é executado, então os resultados ideais saem, como inserir números aleatórios, u Felizmente agora, insira o número aleatório novamente e depois perca, e assim por diante, não é mais uma adivinhação.
 
SALEH:
Eu tenho algo a perguntar, sobre FF, por exemplo, se é como o conselho dado, onde a otimização importa, se este UGA pode salvar a possibilidade de lucro que foi dito ou algo mais, e se ao definir o parâmetro indicador ideal se deve ser Eu faço testes virtuais como o exemplo EA que eu vejo, e desculpe se isso ofende, Algoritmos Genéticos são aleatórios, como podemos ter certeza de que é ideal, e se possível, entramos em uma boa condição para fazer algoritmos genéticos otimizar indicadores de parâmetros, Por exemplo, podemos pegar as condições históricas de compra e lucro com quantos pontos e os algoritmos genéticos usam dados semelhantes no futuro e executam a otimização, é uma boa maneira de usá-lo, não consigo pensar em mais nada, se estiver errado, por favor, me diga um bom exemplo de uso, se sem porque e quando é executado, então os resultados ideais saem, como inserir números aleatórios, u Felizmente agora, insira o número aleatório novamente e depois perca, e assim por diante, não é mais uma adivinhação.

Os algoritmos genéticos usam números aleatórios não por si mesmos, mas por meio de uma distribuição de probabilidade. Como ninguém sabe o futuro, as pessoas sempre usam a distribuição de probabilidade para tomar QUALQUER decisão. Você pode usar a iteração completa dos parâmetros, mas não usará todos eles. Você precisará decidir qual opção usar, não é mesmo? - O resultado da aplicação dessa seleção manual no futuro é incerto de antemão, ou seja, não é determinístico.

 
Andrey Dik:

Os algoritmos genéticos usam números aleatórios não por si mesmos, mas por meio de uma distribuição de probabilidade. Como ninguém sabe o futuro, as pessoas sempre usam a distribuição de probabilidade para tomar QUALQUER decisão. Você pode usar a iteração completa dos parâmetros, mas não usará todos eles. Você precisará decidir qual opção usar, não é mesmo? - O resultado da aplicação dessa seleção manual no futuro é incerto de antemão, ou seja, não é determinístico.

Se for o caso, me dê um conselho sobre qual deles é bom para otimizar, se for uma questão de indicadores de parâmetros, eu discordo um pouco porque os parâmetros mudam com frequência. é melhor aplicar em takeprofit e stoploss ou há outra maneira melhor. Obrigado por sua resposta e, se tiver alguma sugestão, agradeço. Gostaria de compartilhar os resultados do experimento e, talvez, uma pequena ajuda para tentar usar esse UGA ainda mais.
 
SALEH:
Em caso afirmativo, me dê um conselho sobre qual deles é bom para otimizar, se for uma questão de indicadores de parâmetros, eu discordo um pouco porque os parâmetros mudam com frequência. é melhor aplicar em takeprofit e stoploss ou há outra maneira melhor. Obrigado por sua resposta e, se tiver alguma sugestão, agradeço. Gostaria de compartilhar os resultados do experimento e, talvez, uma pequena ajuda para tentar usar esse UGA ainda mais.

É difícil dar conselhos sem saber nada sobre o sistema de negociação

 
Congratulations on the content! However, I was unable to compile the codes or the example mentioned. The error appears to be on the line "ServiceFunction ();"
 
Rafael Ladeia:
Congratulations on the content! However, I was unable to compile the codes or the example mentioned. The error appears to be on the line "ServiceFunction ();"

Muito obrigado pelo feedback em 11 anos!))) infelizmente, podem ocorrer erros. Parece que é hora de eu atualizar os códigos quando eu só tenho tempo para isso...

 

No momento, tenho um problema de otimização e estou fazendo experiências com essa biblioteca para ver se ela pode me ajudar. Infelizmente, não tenho certeza de como configurar a biblioteca corretamente.

No meu exemplo, quero calcular a melhor composição (máxima) de tamanhos de lote para ter o menor risco para mim mesmo.

Para fazer isso, simplesmente peguei 6 caracteres para o teste e, para esses caracteres, os melhores tamanhos de lote devem ser encontrados. Na função de aptidão, calculei o ROI esperado para esses ativos e o risco esperado com os tamanhos de lote sugeridos pela UGA...

Se o risco for menor que meu limite, armazeno o ROI esperado para maximizar em Colony[0][chromos].....

Aqui está meu código:

void CPortfolioRiskMan::GetOptimalWeights()
  {

   double ReplicationPortion_P  = 100.0;
   double NMutationPortion_P    = 10.0;
   double ArtificialMutation_P  = 10.0;
   double GenoMergingPortion_P  = 20.0;
   double CrossingOverPortion_P = 20.0;
   double ReplicationOffset_P   = 0.5;
   double NMutationProbability_P= 5.0;
//-----------------------Variables-------------------------------------
//Preparação de variáveis globais para UGA
   ChromosomeCount=6; /Número de cromossomos na colônia
   GeneCount      =6;       /Número de genes
   RangeMinimum   =0.01;    //Mínimo do intervalo de pesquisa
   RangeMaximum   =1;    /Máximo do intervalo de pesquisa
   Precision      =0.01;       /Etapa de pesquisa
   OptimizeMethod =2;  //1-mínimo, qualquer outro máximo

   ArrayResize(Chromosome,GeneCount+1);
   ArrayInitialize(Chromosome,0);
   Epoch=50;                     //Número de épocas sem aprimoramento




/Início da função principal da UGA
   UGA
   (
      ReplicationPortion_P, //Porção de replicação.
      NMutationPortion_P,   //Porção de mutação natural.
      ArtificialMutation_P, /Porção de mutação artificial.
      GenoMergingPortion_P, //Porção de adoção de genes.
      CrossingOverPortion_P,//Porção da travessia.
      ReplicationOffset_P,  //Taxa de deslocamento dos limites do intervalo
      NMutationProbability_P//Probabilidade de mutação de cada gene em %
   );



  }



void FitnessFunction(int chromos)
  {
//-----------------------Variables-------------------------------------

   double weight=0.0;
   double ClosePrices[]= {1.21,0.98,1.31,1.22,0.99,0.86};
   string symbols[]= {"EURUSD","GBPUSD","AUDNZD","EURAUD","NZDJPY","GBPJPY"};
   double tickvalues[]= {0.94,0.78,0.56,0.76,0.45,0.94};
   double tickstep=0.00001;
   double Lotsizes[6];
   double av_return=0;

//----------------------------------------------------------------------


   for(int u=1; u<=GeneCount; u++)
     {
      Lotsizes[u-1]=Colony[u][chromos];
      av_return+=Lotsizes[u-1]*tickvalues[u-1]*tickstep*ClosePrices[u-1];
     }

   double risk=CalculateVaR(symbols, Lotsizes);

   if(risk>50)
      Colony[0][chromos]=-10000000.0;
   else
      Colony[0][chromos]=NormalizeDouble(av_return,2);


   AmountStartsFF++;
  }
 
Filip #:

No momento, tenho um problema de otimização e estou fazendo experiências com essa biblioteca para ver se ela pode me ajudar. Infelizmente, não tenho certeza de como configurar a biblioteca corretamente.

No meu exemplo, quero calcular a melhor composição (máxima) de tamanhos de lote para ter o menor risco para mim mesmo.

Para fazer isso, simplesmente peguei 6 caracteres para o teste e, para esses caracteres, os melhores tamanhos de lote devem ser encontrados. Na função de aptidão, calculo o ROI esperado para esses ativos e o risco esperado com os tamanhos de lote sugeridos pela UGA...

Se o risco for menor que meu limite, mantenho o ROI esperado para maximizar em Colony[0][chromos].....

Aqui está meu código:

Não entendi o ponto da pergunta, por favor, explique melhor.

Em geral, essa é uma versão muito antiga do algoritmo, ela (a versão) não adere ao esquema de algoritmo mais amigável ao aplicativo nos artigos atuais de "Algoritmos de otimização de população".

Posso recomendar o uso do algoritmo SDS ou outro da tabela, ou esperar por uma versão atualizada do UGA (não sei se é apropriado publicar um novo visual em um artigo sobre esse algoritmo antigo, mas muito poderoso).

Em geral, eu reescreveria esse artigo de uma nova maneira, com a inclusão do UGA na tabela de classificação, mas não sei se é possível e necessário fazer isso.

ZY: Acho que não é possível reescrever o artigo existente, pois ele já foi traduzido para vários idiomas.

 
não compila. Muitos erros.
 
gardee005 #:
não compila. Muitos erros.
Por favor, mostre-me a lista de erros.O código é muito antigo, mas não há nada para quebrar mesmo após 14 anos.