Función de adecuación de la cartera principal
4 respuestas
Marcello Vieira
hace 4 años #256134
Hola, quiero cambiar la función de aptitud para el maestro de cartera.
En el Monte Carlo Sim quiero añadir más simulaciones, y quiero optimizar Ret/DD en lugar de beneficio neto.
C:\QuantAnalyzer4\extend\Snippets\com\strategyquant\extend\FitnessFunctions\MonteCarloSim.Java
He editado este archivo, pero no ha pasado nada.
Entonces sólo para probar si estaba editando el archivo correcto hice esto:
public synchronized double computeFitness(SQResultsGroup resultsGroup, String sampleType) throws Exception { return 1; }
Y aún así, nada ha cambiado. Portfolio Master funcionaba perfectamente como si no hubiera cambiado nada.
¿Qué tengo que hacer para que los cambios en el código sean efectivos? Cada vez que cierro QuantAnalyzer y abrir de nuevo para probar.
tomas262
hace 4 años #256144
Marcello Vieira
hace 4 años #256159
Sí, compilé y reinicié QA.
Pude hacer que hiciera algo. En lugar de editar MonteCarloSim.java, he creado un nuevo archivo CustomMonteCarloSim.java y luego mis cambios estaban allí.
Lo que me bloquea ahora es que no encuentro documentación sobre las funciones. No sé qué funciones están disponibles y cuáles son los parámetros y tipos.
¿Dónde puedo encontrar documentación?
En lugar de obtener el montecarlo por NetProfit, quiero opmizarlo en base al ratio Return to DD. Así que hice esto
ConfidenceLevelResults confidenceLevelResults = (ConfidenceLevelResults) Program.get("MonteCarloConfidenceLevels").call("run", settings);
MonteCarloStatValues result = confidenceLevelResults.get(90);
return result.getDouble(MCStatsConst.RET_DD_RATIO);
Pero esto parece devolver siempre 0. Porque eso es lo que se imprime además de cada cartera que se crea. Siempre imprimir el resultado de la función de aptitud, además de la cartera, sólo obtengo cero con este código.
Tamas
hace 4 años #256181
Los fragmentos predefinidos no pueden modificarse. La forma correcta es crear un fragmento personalizado como has hecho tú.
Devuelve 0 porque hay un error en el snippet MCRetDDRatio (debería calcularse a partir de MCStatsConst.MAX_DD, MCStatsConst.NET_PROFIT en lugar de PCT_NET_PROFIT. Se corregirá en la próxima versión).
Por favor, utilice el fragmento adjunto donde RetDDRatio se calcula directamente en la aptitud MC.
Tamas
hace 4 años #256183
Aquí hay un enlace a la api doc https://strategyquant.com/qa_api/
Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)