classificação de estratégia diferente entre as colunas de adequação personalizada e "adequação"
1 resposta
telemania
3 anos atrás #268310
Implementei uma função de adequação personalizada chamada PrfPct (que tem alta correlação com o lucro líquido) e a usei como a função de adequação do meu projeto. No entanto, no banco de dados, vi resultados muito diferentes entre as colunas "PrfPct" e "fitness". Parece haver um padrão: para a maioria das estratégias com PrfPct>0, a "adequação" correspondente é 0,3. As estratégias cujo "fitness" > 0,3 têm Prfpct negativo. Essa diferença é persistente quando uso configurações de dados diferentes.
Minha pergunta:
1). Pelo que entendi, a coluna "fitness" é o fitness usado no processo interno de GP do SQX. (embora essa coluna se aplique a todos os dados, enquanto na seleção de GP somente a adequação para os dados IS é usada). E também presumo que ela deva ter uma relação monotônica com a função de adequação que eu escolher em "weight fitness" (adequação do peso) - nesse caso, PrfPct. Estou correto nesse entendimento?
2). Se meu entendimento em 1) estiver correto, o PrfPct de aptidão física personalizado não está funcionando corretamente no GP, como pretendo (para ser usado na seleção do GP).
Marca Fric
3 anos atrás #268428
calcular a adequação a partir da coluna do banco de dados não é tão simples.
O intervalo do novo valor pode ser variado, inclusive negativo, e há um mecanismo para convertê-lo na escala de 0 a 1 necessária para a adequação.
Seria útil se você publicasse seu snippet aqui, mas em geral:
> As estratégias cuja "aptidão" > 0,3 têm Prfpct negativo.
Se esse for o caso, parece que seu snippet não está configurado corretamente. Você usa ValueTypes.Maximize no construtor? E quais são os valores médios mínimo e máximo?
Deveria ser o contrário - estratégias com Prfpct negativo deveriam ter aptidão abaixo de 0,3.
Quanto à sua pergunta 1) - não tenho certeza de como você calcula seu valor. Mas se quiser usá-lo na evolução genética, você deve calculá-lo somente a partir da parte de amostragem das negociações.
O método compute() de DatabankColumn é chamado várias vezes, para cada combinação possível de tipo de amostra. Portanto, se você o criou de forma semelhante a outros trechos, ele deverá funcionar corretamente.
Marcar
EstratégiaQuant arquiteto
Visualizando 1 resposta (de um total de 1)