Funzione Fitness del Master di Portafoglio
4 risposte
Marcello Vieira
4 anni fa #256134
Salve, voglio modificare la funzione di fitness per il portfolio master.
Nella simulazione Monte Carlo voglio aggiungere altre simulazioni e voglio ottimizzare Ret/DD anziché il profitto netto.
C:\QuantAnalyzer4\extend\Snippets\com\strategyquant\extend\FitnessFunctions\MonteCarloSim.Java
Ho modificato questo file, ma non è successo nulla.
Poi, per verificare se stavo modificando il file giusto, ho fatto così:
public synchronized double computeFitness(SQResultsGroup resultsGroup, String sampleType) throws Exception { return 1; }
E comunque non è cambiato nulla. Portfolio Master funzionava benissimo come se non avessi cambiato nulla.
Cosa devo fare perché le modifiche al codice siano efficaci? Ogni volta che chiudo QuantAnalyzer e lo riapro per testare.
tomas262
4 anni fa #256144
Marcello Vieira
4 anni fa #256159
Sì, ho compilato e riavviato QA.
Sono riuscito a fargli fare qualcosa. Invece di modificare MonteCarloSim.java, ho creato un nuovo file CustomMonteCarloSim.java e le mie modifiche erano lì.
Quello che mi blocca ora è che non riesco a trovare la documentazione sulle funzioni. Non so quali siano le funzioni disponibili e quali siano i parametri e i tipi.
Dove posso trovare la documentazione?
Invece di ottenere il montecarlo per NetProfit, voglio opmizzare in base al rapporto Return to DD. Quindi ho fatto così:
ConfidenceLevelResults confidenceLevelResults = (ConfidenceLevelResults) Program.get("MonteCarloConfidenceLevels").call("run", settings);
MonteCarloStatValues result = confidenceLevelResults.get(90);
restituire result.getDouble(MCStatsConst.RET_DD_RATIO);
Ma questo sembra restituire sempre 0. Perché è questo che viene stampato oltre a ogni portafoglio creato. Stampa sempre il risultato della funzione di fitness oltre al portafoglio, ma con questo codice ottengo solo zero.
Tamas
4 anni fa #256181
Gli snippet predefiniti non possono essere modificati. Il modo corretto è creare uno snippet personalizzato come avete fatto voi.
Restituisce 0 perché c'è un errore nello snippet MCRetDDRatio (dovrebbe essere calcolato da MCStatsConst.MAX_DD, MCStatsConst.PROFITTO_NETTO invece di PCT_NET_PROFIT. Verrà corretto nella prossima versione).
Utilizzare lo snippet allegato in cui RetDDRatio viene calcolato direttamente nel fitness MC.
Tamas
4 anni fa #256183
Ecco il link al documento dell'API https://strategyquant.com/qa_api/
Stai visualizzando 4 risposte - da 1 a 4 (di 4 totali)