Discussão do artigo "Algoritmos de otimização populacionais: evolução de grupos sociais (Evolution of Social Groups, ESG)"
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
fxsaber, 2024.01.26 08:52
Obrigado pelo artigo! Adicionei o algoritmo à lista geral.34: OPTIMIZATION_METHOD_AO_HS = 1 e-323 33: OPTIMIZATION_METHOD_AO_GSA = 0.11926002964619356 32: OPTIMIZATION_METHOD_AO_ABC = 0.4042085745674859 31: OPTIMIZATION_METHOD_AO_MA = 0.612338549995716 30: OPTIMIZATION_METHOD_AO_BFO = 0.6679763921514072 29: OPTIMIZATION_METHOD_AO_BFO_GA = 0.71308437578657 28: OPTIMIZATION_METHOD_AO_CSS = 0.7316626048819873 27: OPTIMIZATION_METHOD_AO_FSS = 0.7355579934372427 26: OPTIMIZATION_METHOD_AO_GWO = 0.7390576242470235 25: OPTIMIZATION_METHOD_AO_RND = 0.8155449913938271 24: OPTIMIZATION_METHOD_AO_PSO = 0.8222303819859975 23: OPTIMIZATION_METHOD_AO_SC = 0.8340939685401099 22: OPTIMIZATION_METHOD_AO_BA = 0.845763320077643 21: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.8528065344750899 20: OPTIMIZATION_METHOD_AO_SA = 0.8589854552563216 19: OPTIMIZATION_METHOD_AO_SFL = 0.8597046576708655 18: OPTIMIZATION_METHOD_AO_IWDm = 0.862259472275573 17: OPTIMIZATION_METHOD_AO_EM = 0.8779833807818905 16: OPTIMIZATION_METHOD_AO_SDS = 0.9027267066161594 15: OPTIMIZATION_METHOD_AO_NMm = 0.9076903894257041 14: OPTIMIZATION_METHOD_AO_FAm = 0.9111364322206529 13: OPTIMIZATION_METHOD_AO_ESG = 0.9128694208149278 12: OPTIMIZATION_METHOD_AO_SDOm = 0.9182612507465655 11: OPTIMIZATION_METHOD_AO_COAm = 0.9198698363722636 10: OPTIMIZATION_METHOD_AO_IWO = 0.923914294524697 09: OPTIMIZATION_METHOD_AO_SSG = 0.9304990658351672 08: OPTIMIZATION_METHOD_AO_BGA = 0.9389284935189659 07: OPTIMIZATION_METHOD_AO_ACOm = 0.944545536542497 06: OPTIMIZATION_METHOD_AO_DE = 0.9482478998933197 05: OPTIMIZATION_METHOD_AO_POES = 0.9528516011673952 04: OPTIMIZATION_METHOD_AO_SIA = 0.9540996483364099 03: OPTIMIZATION_METHOD_AO_MEC = 0.9574730447145243 02: OPTIMIZATION_METHOD_AO_SDSm = 0.9648638811101882 01: OPTIMIZATION_METHOD_PSO = 0.9653160312454183 00: OPTIMIZATION_METHOD_AO_P_O_ES = 0.9654152361899765
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
fxsaber, 2024.01.21 01:38 AM
De acordo com essa metodologia, teste com a função Hilly.
34: OPTIMIZATION_METHOD_AO_ABC = 0.42453133581346014 33: OPTIMIZATION_METHOD_AO_IWDm = 0.48360991828383987 32: OPTIMIZATION_METHOD_AO_SIA = 0.49114081735004017 31: OPTIMIZATION_METHOD_AO_EM = 0.49479704987697276 30: OPTIMIZATION_METHOD_AO_RND = 0.5085913649249508 29: OPTIMIZATION_METHOD_AO_MA = 0.5129110822292692 28: OPTIMIZATION_METHOD_AO_HS = 0.5129110822292692 27: OPTIMIZATION_METHOD_AO_CSS = 0.5138134842496185 26: OPTIMIZATION_METHOD_AO_SSG = 0.518468314742929 25: OPTIMIZATION_METHOD_AO_SC = 0.5243709181146918 24: OPTIMIZATION_METHOD_AO_SA = 0.532630712905892 23: OPTIMIZATION_METHOD_AO_FSS = 0.5405996550405998 22: OPTIMIZATION_METHOD_AO_PSO = 0.5430691869913079 21: OPTIMIZATION_METHOD_AO_FAm = 0.5629971666466362 20: OPTIMIZATION_METHOD_AO_BA = 0.5653828707497576 19: OPTIMIZATION_METHOD_AO_BFO = 0.5708620661833331 18: OPTIMIZATION_METHOD_AO_IWO = 0.5736967768562664 17: OPTIMIZATION_METHOD_AO_NMm = 0.5818790406200212 16: OPTIMIZATION_METHOD_AO_ESG = 0.5945790493029925 15: OPTIMIZATION_METHOD_AO_GWO = 0.6234871646160723 14: OPTIMIZATION_METHOD_PSO = 0.6256882439878475 13: OPTIMIZATION_METHOD_AO_GSA = 0.6735183680285166 12: OPTIMIZATION_METHOD_AO_SFL = 0.6885524892005978 11: OPTIMIZATION_METHOD_AO_DE = 0.7092034045816206 10: OPTIMIZATION_METHOD_AO_COAm = 0.7263185318109061 09: OPTIMIZATION_METHOD_AO_SDS = 0.7686064552778226 08: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.7722431882203732 07: OPTIMIZATION_METHOD_AO_SDOm = 0.7808430850753312 06: OPTIMIZATION_METHOD_AO_MEC = 0.7816647439743983 05: OPTIMIZATION_METHOD_AO_ACOm = 0.7830252357918316 04: OPTIMIZATION_METHOD_AO_POES = 0.8453008986622238 03: OPTIMIZATION_METHOD_AO_P_O_ES = 0.8523920887258357 02: OPTIMIZATION_METHOD_AO_SDSm = 0.9046058644799349 01: OPTIMIZATION_METHOD_AO_BGA = 0.9856063511804057 00: OPTIMIZATION_METHOD_AO_BFO_GA = 0.9880292622094636
Porque o maior resultado não é garantido. Vou lhe dizer mais: nenhum resultado é garantido na busca estocástica.
Você só pode estimar o resultado médio para algum número de testes. Nos artigos, usamos 10 testes, o que é suficiente para uma boa avaliação da comparação dos algoritmos entre si. É possível aumentar o número de testes ainda mais, é claro, por exemplo, 100 ou mais, mas isso deixa de fazer sentido devido à rápida diminuição da precisão da medição. Em resumo, 10 é o melhor, antes eu usava 5 testes - não era suficiente.
E alguns algoritmos mostram uma dispersão muito grande na convergência, essa é uma propriedade muito importante dos algoritmos de otimização - a repetibilidade dos resultados, que caracteriza a estabilidade do modelo probabilístico do algoritmo (a menos, é claro, que estejamos falando de estratégias de busca determinísticas, cujos resultados serão invariavelmente os mesmos, mas, como regra, esses algoritmos têm baixa convergência).
Em geral, é necessário fazer pelo menos 10 testes para poder comparar adequadamente os algoritmos que têm em sua base a natureza estocástica da estratégia de busca.
Grosso modo, podemos fazer uma analogia: qual das estratégias de enfiar uma lança em um palheiro é mais eficaz para encontrar uma maçã em um monte de palha? A comparação só pode ser feita em vários testes, caso contrário, há uma probabilidade diferente de zero de acertar a maçã com a lança na primeira vez se você espetar estritamente a partir do topo da pilha no centro, e é errado pensar que esse é um resultado natural de tal estratégia.
Além disso, as estratégias são fornecidas em sua forma absolutamente pura, pode-se dizer que é um elixir de estratégias, não encoberto pela aplicação de triagem de duplicatas e outras técnicas de aceleração de pesquisa para um número limitado de execuções de FF. Cada novo conjunto de duplicatas desperdiça uma execução, e os algoritmos nessa forma pura são muito fáceis de comparar.
Quando o espaço de pesquisa é pequeno, a exclusão de duplicatas pode fazer uma grande diferença, e até mesmo algoritmos muito fracos podem apresentar bons resultados. Porém, à medida que o espaço de busca aumenta, a exclusão de duplicatas se torna sem sentido mais rapidamente, e mais as diferenças nas habilidades das estratégias de busca se tornam aparentes.
Talvez eu tenha transmitido mal meu ponto de vista com esta postagem, algumas coisas são muito difíceis de explicar, infelizmente.
Considero lógico ter um parâmetro de entrada "número de repetições" para pesquisar o máximo global.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
fxsaber, 2024.01.21 01:38 AM
De acordo com essa metodologia, o teste é feito pela função Hilly.

34: OPTIMIZATION_METHOD_AO_HS = -1.7976931348623157 e+308 33: OPTIMIZATION_METHOD_AO_CSS = 0.49720358822818334 32: OPTIMIZATION_METHOD_AO_FSS = 0.5126268634117646 31: OPTIMIZATION_METHOD_AO_MA = 0.5456638212207142 30: OPTIMIZATION_METHOD_AO_SC = 0.5493573778417595 29: OPTIMIZATION_METHOD_AO_SFL = 0.5586288936731915 28: OPTIMIZATION_METHOD_AO_EM = 0.5622069376759021 27: OPTIMIZATION_METHOD_AO_BFO = 0.572272929264936 26: OPTIMIZATION_METHOD_AO_GWO = 0.576823172558009 25: OPTIMIZATION_METHOD_AO_BA = 0.5780620208551676 24: OPTIMIZATION_METHOD_AO_COAm = 0.6122501636921197 23: OPTIMIZATION_METHOD_AO_FAm = 0.6140389813209256 22: OPTIMIZATION_METHOD_AO_IWO = 0.668152749061326 21: OPTIMIZATION_METHOD_AO_RND = 0.6708834560036839 20: OPTIMIZATION_METHOD_AO_SDSm = 0.6949312990837662 19: OPTIMIZATION_METHOD_AO_ESG = 0.6998001260367949 18: OPTIMIZATION_METHOD_AO_DE = 0.7011196053256343 17: OPTIMIZATION_METHOD_AO_IWDm = 0.7021399692041209 16: OPTIMIZATION_METHOD_AO_GSA = 0.7220579685405103 15: OPTIMIZATION_METHOD_AO_PSO = 0.749441828773945 14: OPTIMIZATION_METHOD_AO_SA = 0.7682447940796119 13: OPTIMIZATION_METHOD_AO_MEC = 0.7861990306904714 12: OPTIMIZATION_METHOD_AO_ABC = 0.7907454297118246 11: OPTIMIZATION_METHOD_AO_SDS = 0.8196051951016118 10: OPTIMIZATION_METHOD_AO_SIA = 0.8221393904152611 09: OPTIMIZATION_METHOD_AO_SDOm = 0.8473736964247897 08: OPTIMIZATION_METHOD_PSO = 0.8554905139189528 07: OPTIMIZATION_METHOD_AO_BFO_GA = 0.9302287492114422 06: OPTIMIZATION_METHOD_AO_SSG = 0.9508929176886642 05: OPTIMIZATION_METHOD_AO_Micro_AIS = 0.9744230924005981 04: OPTIMIZATION_METHOD_AO_BGA = 0.9758026556865227 03: OPTIMIZATION_METHOD_AO_ACOm = 0.9842635986445009 02: OPTIMIZATION_METHOD_AO_P_O_ES = 0.9862393247408759 01: OPTIMIZATION_METHOD_AO_POES = 0.9939584765415376 00: OPTIMIZATION_METHOD_AO_NMm = 0.9992316949848764 inAmountCycles = 1000, inRepeats = 5
Repeats - o número de chamadas independentes para o algoritmo.
AmountCycles - o número de chamadas FF em cada tentativa (consulte Repetições).
Para cada algoritmo, o melhor resultado é gerado (consulte Repetições).
MathSrand ((int)GetMicrosecondCount ()); // reinicialização do gerador
Eu faria dessa forma.
Sleep(1); // aleatório GetMicrosecondCount (). MathSrand ((int)TimeLocal() + (int)GetMicrosecondCount ()); // reinicialização do gerador
Caso contrário, ele se repetirá toda vez que o script for executado.
Acho que é lógico ter um parâmetro de entrada "número de repetições" para buscar o máximo global. Por exemplo, otimizamos um TS no Tester padrão. Às vezes, é lógico executar o otimizador várias vezes seguidas para reduzir a probabilidade de ficar preso em extremos locais. Sim, a velocidade dos cálculos cairá pelo número correspondente de vezes, mas a probabilidade de atingir um pico global será maior.
Repetições - número de chamadas independentes do algoritmo.
AmountCycles - número de chamadas FF em cada tentativa (consulte Repeats).
Para cada algoritmo, o melhor resultado é exibido (consulte Repetições).
Sim, para aumentar a chance de encontrar uma solução global, se todas as outras coisas forem iguais, basta aumentar o número de testes e usar a melhor solução encontrada. Até mesmo o algoritmo RND tem uma chance diferente de zero de encontrar o que você precisa com essa abordagem.
Mas, como descrevi acima, somente o resultado médio permite comparar os algoritmos entre si.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Algoritmos de otimização populacionais: evolução de grupos sociais (Evolution of Social Groups, ESG) foi publicado:
Neste artigo, consideraremos o princípio de construção de algoritmos multipopulacionais e, como exemplo desse tipo de algoritmos, analisaremos a Evolução de Grupos Sociais (ESG), um novo algoritmo autoral. Analisaremos os conceitos principais, os mecanismos de interação entre populações e as vantagens desse algoritmo, bem como examinaremos seu desempenho em tarefas de otimização.
No campo da otimização, existe uma ampla gama de algoritmos populacionais destinados à busca de soluções ótimas em diversas tarefas. Contudo, apesar de sua importância, algoritmos multipopulacionais e de enxames não foram suficientemente abordados em meus artigos e pesquisas anteriores. Por isso, decidi abordar mais detalhadamente este tema fascinante e promissor.
Os algoritmos multipopulacionais são baseados na ideia de usar várias populações independentes para resolver problemas de otimização. As populações operam logicamente em paralelo e podem trocar informações sobre soluções ótimas, o que permite explorar simultaneamente diferentes regiões do espaço de parâmetros e encontrar diversos ótimos. Por outro lado, os algoritmos de enxames utilizam grupos sociais (enxames) compostos por múltiplas partículas interagentes, que também podem cooperar entre si e trocar informações para alcançar soluções ótimas.
[картинка]
Neste artigo, preencheremos essa lacuna e consideraremos como exemplo o algoritmo multipopulacional ESG, criado por mim especificamente para este artigo. Examinaremos os princípios básicos de funcionamento desses algoritmos. Além disso, discutiremos os resultados de estudos comparativos que permitirão avaliar a eficácia desses algoritmos em comparação com métodos de otimização monopopulacionais.
Autor: Andrey Dik