Documentação
Aplicações
Última atualização em 25. 6. 2015 por Mark Fric
Adicionar nova coluna Monte Carlo
Conteúdo da página
Um exemplo de como agregar novo valor no método Monte Carlo.
De que se trata a tarefa?
Por padrão, quando você executa a simulação Monte Carlo, você obterá resultados de simulação para determinados níveis de confiança.
A simulação MC calcula os resultados calculados como lucro líquido, lucro líquido %, retorno / DD etc. para um determinado nível de confiança.
O usuário no fórum solicitou o cálculo de um novo valor personalizado - número de negócios perdidos consecutivos.
Como muitas outras coisas, os valores (colunas ) no relatório Monte Carlo são computados usando trechos, portanto é possível estendê-los e adicionar seus próprios valores.
Neste artigo mostraremos como adicionar novo valor MC que calcula o número de negócios perdidos consecutivamente para todos os níveis de confiança de Monte Carlo.
Passo 1 - Criar novo snippet de valor Monte Carlo
Como todos os outros trechos, os trechos de Monte Carlo são editáveis no QuantEditor, por isso vamos iniciá-lo:
Agora vamos criar um novo snippet que irá computar nossas ordens de perda consecutiva:
Isto criará um esqueleto de um fragmento que podemos estender para fazer o que quisermos. Passaremos pelas funções do trecho um a um.
No construtor, temos que definir o nome da coluna e o pedido. Se os melhores valores são os mais altos, então devemos ajustá-lo para MAXIMIZAR.
Em nosso caso, os melhores valores são os mais baixos (o menor número possível de negócios perdidos consecutivos), por isso vamos definir a ordem para MINIMIZAR.
Isto é importante para que o programa saiba como ordenar os resultados quando serão computados os resultados para cada nível de confiança.
encomendas públicas ConsecutiveLosingOrders() {super("ConsecutiveLosingOrders", FitnessFunction.MINIMIZE);
setColumnName(L.t("Consecutive Losing Orders"));
setColumnWidth(100);
setTooltip(L.t("Ordens de Perda Consecutiva"));
}
método compute() é o coração de nosso snippet, ele contém o código que faz o cálculo real da perda máxima de ordens consecutivas.
O algoritmo para calcular isto é bastante simples, ele simplesmente passa pelo conjunto de ordens e se lembra da maior série de perda de ordens.cálculo protegido duplo (MonteCarloStatValues statValues, duplo capital inicial, duplo [] ordens, duplo avgTradesPerMonth) lança Exceção { int maxConsecLosingOrders = 0; int consecLosingOrders = 0;for(int i=0; i<order.length; i++) {
if(ordena[i] > 0) {
// está ganhando ordem, zere o contador
ConsecLosingOrders = 0;
{} else {
// está perdendo a ordem
ConsecLosingOrders++;if(consecLosingOrders > maxConsecLosingOrders) {
maxConsecLosingOrders = ConsecLosingOrders;
}
}
}retornar maxConsecLosingOrders;
}E a última função é para formar o valor computado
formato público StringValue(valor duplo) { retornar String.valueOf((int) value); }É tudo, podemos atingir o Compilação e nosso novo snippet deve ser compilado sem nenhum erro.
Passo 2 - agregar nosso novo valor à visão
Se olharmos a mesa de Monte Carlo no Quant Analyzer, veremos que nossa nova coluna ainda não está visível lá. É porque as colunas visíveis são gerenciadas em Views.
Temos que clicar em Configurar vista link no canto superior direito da tabela para adicionar uma nova coluna à vista:
Aqui temos que adicionar a coluna de Ordens de Perda Consecutiva à lista de colunas exibidas à direita.
Uma vez feito isso, podemos ver que nossa tabela de resultados de Monte Carlo agora contém também a coluna de pedidos perdidos consecutivos com valores computados:
Isto é tudo o que foi necessário para agregar novo valor aos resultados de Monte Carlo.
Você pode ver que foi simples, o único verdadeiro desafio é implementar corretamente o compute() funcionar de forma a computar o que você quer.
Este artigo foi útil? O artigo foi útil O artigo não foi útil