Função de adequação do Portfolio Master
4 respostas
Marcello Vieira
4 anos atrás #256134
Olá, quero alterar a função de adequação do mestre de portfólio.
No Simulador Monte Carlo, quero adicionar mais simulações e otimizar Ret/DD em vez de lucro líquido.
C:\QuantAnalyzer4\extender\Snippets\com\strategyquant\extend\FitnessFunctions\MonteCarloSim.Java
Editei esse arquivo, mas nada aconteceu.
Então, para testar se eu estava editando o arquivo correto, fiz o seguinte:
public synchronized double computeFitness(SQResultsGroup resultsGroup, String sampleType) throws Exception { return 1; }
E, mesmo assim, nada mudou. O Portfolio Master estava funcionando perfeitamente, como se eu não tivesse alterado nada.
O que devo fazer para que as alterações no código sejam efetivas? Toda vez que fecho o QuantAnalyzer e abro novamente para testar.
tomas262
4 anos atrás #256144
Marcello Vieira
4 anos atrás #256159
Sim, eu compilei e reiniciei o QA.
Consegui fazer com que ele fizesse alguma coisa. Em vez de editar o MonteCarloSim.java, criei um novo arquivo CustomMonteCarloSim.java e minhas alterações estavam lá.
O que está me bloqueando agora é que não consigo encontrar documentação sobre as funções. Não sei quais funções estão disponíveis e quais são os parâmetros e tipos.
Onde posso encontrar a documentação?
Em vez de obter o montecarlo para NetProfit, quero dimensionar com base na taxa de retorno para DD. Então, fiz o seguinte:
ConfidenceLevelResults confidenceLevelResults = (ConfidenceLevelResults) Program.get("MonteCarloConfidenceLevels").call("run", settings);
MonteCarloStatValues result = confidenceLevelResults.get(90);
return result.getDouble(MCStatsConst.RET_DD_RATIO);
Mas isso parece sempre retornar 0. Porque isso é o que é impresso além de cada portfólio criado. Ele sempre imprime o resultado da função de aptidão física além do portfólio, e só obtenho zero com esse código.
Tamas
4 anos atrás #256181
Os snippets predefinidos não podem ser alterados. A maneira correta é criar um snippet personalizado, como você fez.
Ele retorna 0 porque há um erro no snippet MCRetDDRatio (ele deve ser calculado a partir de MCStatsConst.MAX_DD, MCStatsConst.PROFEITO_LÍQUIDO em vez de PCT_NET_PROFIT. Isso será corrigido na próxima versão).
Use o snippet anexado em que o RetDDRatio é calculado diretamente na aptidão do MC.
Tamas
4 anos atrás #256183
Aqui está um link para o documento da API https://strategyquant.com/qa_api/
Visualizando 4 respostas - 1 até 4 (de um total de 4)