Documentação
Aplicações
Última atualização em 14. 5. 2015 por Mark Fric
Introdução ao Scripter
Nota! A funcionalidade do scripter é experimental por enquanto, e a hierarquia de classes e seus nomes podem estar mudando!
Além disso, a documentação do Scripter e da interface do Programa está em andamento, e será estendida nas próximas semanas.
O que é Scripter
Geralmente, o Scripter oferece ao usuário do Quant Analyzer uma maneira de usar as características do programa sem usar a interface do usuário. É algo como a funcionalidade Macro no Excel.
Scripter é para usuários avançados, porque você precisará fazer alguma programação lá. O script é um simples código Java que chama várias características do programa.
Você quer fazer uma simulação Monte Carlo? Você pode fazê-lo usando Scripter, definindo todos os parâmetros e armazenando o resultado no banco de dados ou exibindo os valores chave no campo de saída.
Por que usar o Scripter
O Scriper permite a automação. Ele permite automatizar coisas que você normalmente teria que fazer na interface do usuário à mão.
Por exemplo, digamos que você queira:
- carregar algum relatório
- usar o que- se para criar variantes do sistema - com relatórios, onde apenas as negociações de segunda-feira são removidas, ou onde apenas as terças-feiras, as negociações são removidas, etc.
- executar a simulação monte carlo em cada variação e obter seus resultados a um determinado nível de confiança
- escolher a melhor simulação MC e executar simulação de gerenciamento de dinheiro com várias methds
Você pode fazer tudo isso manualmente, clicando para frente e para trás com o programa, mas se você planeja fazer este processo com freqüência, então poderia fazer sentido escrever um roteiro para ele.
Exemplo
Faremos um roteiro de amostra que carregará o relatório, exibirá seu Lucro Líquido, depois executará a simulação de Monte Carlo e exibirá o Lucro Líquido MC no nível de confiança 90%.
importação org.slf4j.Logger; importação org.slf4j.LoggerFactory; import com.strategyquant.lib.results.SQResultadosGrupo; importar com.strategyquant.lib.scripter.Program; importar com.strategyquant.lib.snippets.MonteCarloSim.ConfidenceLevelResults; importar com.strategyquant.lib.snippets.MonteCarloSim.MonteCarloSimulationResults; importar com.strategyquant.lib.snippets.MonteCarloSim.MonteCarloStatValores; importar com.strategyquant.lib.utils.ExtendableStorage; import com.strategyquant.lib.utils.SQConst; import com.strategyquant.lib.result.SQResult; importar com.strategyquant.lib.resultados.SQStats; importar com.strategyquant.lib.resultados.SQStatsConst; implementos da classe pública MonteCarloSample2 Executáveis { logger final estático público = LoggerFactory.getLogger("MonteCarloSample"); @Override execução pública nula() { tente { SQResultadosEstratégia do grupoResultados = (SQResultadosGrupo) Program.get("Loader").call("loadFile", "./tests/dados/loaders/SQ_Portfolio1.stp"); // exibir lucro líquido original SQResultado resultado = estratégiaResultados.getResultado(SQConst.SYMBOL_PORTFOLIO); SQStats stats = resultado.getStats(SQConst.DIRECTION_ALL, SQConst.PL_IN_MONEY, SQConst.KEY_SAMPLE_ALL); SQStats statsPct = resultado.getStats(SQConst.DIRECTION_ALL, SQConst.PL_IN_PCT, SQConst.KEY_SAMPLE_ALL); System.out.println("Original NetProfit="+stats.getDouble(StatsConst.NET_PROFIT)); System.out.println("Original PctNetProfit="+statsPct.getDouble(StatsConst.NET_PROFIT)); // executar Monte Carlo e exibir lucro líquido no nível de confiança 90% ExtendableStorage settings = (ExtendableStorage) Program.get("MonteCarlo").call("getSettings", nulo); settings.set("NumberOfSimulations", 10); settings.set("Result", StrategyResults); settings.set("Methods.SkipTradesRandomly.Use", true); MonteCarloSimulationResultados de simulaçãoResultados = (MonteCarloSimulationResultados) Program.get("MonteCarlo").call("run", settings); System.out.println("# simulations="+simulationResults.simulationsList.size())); //compute os níveis de confiança settings = (ExtendableStorage) Program.get("MonteCarloConfidenceLevels").call("getSettings", nulo); settings.set("SimulationResults", simulaçãoResultados); settings.set("Result", estratégiaResultados); ConfidenceLevelResults confidenceLevelResults = (ConfidenceLevelResults) Program.get("MonteCarloConfidenceLevels").call("run", settings); MonteCarloStatValues mcResultado = confidenceLevelResults.get(90); System.out.println("MC 90% NetProfit="+mcResult.netProfit); System.out.println("MC 90% PctNetProfit="+mcResult.pctNetProfit); } catch(Exceção e) { e.printStackTrace(); Log.error("Exceção :", e); } } }
Este artigo foi útil? O artigo foi útil O artigo não foi útil