O backtest do Profit permite que usuários visualizem o relatório de performance de suas estratégias, programadas através do Editor de Estratégias do Profit utilizando a linguagem NTSL (Nelogica Trading System Language).
Atendendo à pedidos dos Investidores e Traders que hoje utilizam Backtest para análise de performance de Estratégias e Automações, a Nelogica realizará nos próximos dias algumas melhorias na ferramenta com foco em fornecer maior assertividade nos seus resultados e maior variedade de configurações.
Principais mudanças no Backtest
Operações de Saída
Do mesmo modo que nas Automações de Estratégias, agora o código é reexecutado para o candle quando houver aumento de posição, servindo para que as operações de saída (ToCovers) possam ser enviadas imediatamente assim que for realizada uma operação de compra ou venda. O usuário pode observar esse comportamento quando utilizar o modo de depuração (debug).
Por exemplo, o robô está executando o código e detectou que deve entrar em uma operação dado que a condição de compra da sua estratégia foi satisfeita. Após enviada a ordem de 1 quantidade no ativo WING23, sendo ela executada e a posição da carteira alterada para 1 Comprado (1C), nesse momento o código é reexecutado para envio das ordens de saída da operação, sendo essas: ordens limite (take profit) e ordens stop (stop loss). Dado que a estratégia prevê o envio de uma ordem de cada tipo, será enviada uma ordem OCO com duas pernas de acordo com os preços configurados no envio dessas ordens, como apresentado na imagem abaixo.
Uma novidade é que caso ambas as ordens estiverem contidas dentro do mesmo candle, agora existe uma heurística para determinar qual ordem teria executado e qual ordem teria sido cancelada (pelo funcionamento da OCO). Como explicado, essa estratégia de escolha é uma heurística e pode não ser verdadeira em 100% dos casos.
A heurística se baseia na movimentação de preço dentro do candle de acordo com a sua direção:
- A heurística do movimento do preço para candles positivos é: Abertura, Mínima, Máxima e Fechamento;
- A heurística do movimento do preço para candles negativos é: Abertura, Máxima, Mínima e Fechamento.
A melhoria impacta em qual ordem irá executar primeiro, se é uma ordem stop ou uma ordem limite.
O código de back-testing simula o mesmo comportamento da automação, isto é, as simulações de execução de ordens são processadas todas ao final do fluxo de execução do candle. A execução das ordens não é mais instantânea depois do processamento do código passar por aquela linha, sendo agora as intenções de envio de ordens armazenadas e avaliadas ao final da execução do código.
Por exemplo, em um mesmo fluxo de execução, caso a sua posição esteja zerada (0) e esse código for executado, o código não irá entrar na função Plot(Close) pois a execução da compra a mercado (BuyAtMarket) só será resolvida ao final do fluxo de execução.
Configurações de Execução
Configurações implementadas com foco em melhorar a experiência de back-testing e análise de relatório de performance de operações.
- Período de análise: O usuário poderá filtrar apenas operações que deseja calcular utilizando o período de análise. Agora essas operações também serão filtradas no gráfico e não somente na lista de operações das estatísticas;
- Quantidade Máxima: Informar a Exposição máxima que a estratégia pode atingir em uma operação;
Configurações de Abertura de Posição
- Tipo de Abertura: Selecionar o tipo de abertura de posição da estratégia (Compra, Venda ou Compra e Venda);
- Horário de Entrada: Horário de Entrada das operações nos pregões selecionados no período de análise;
Configurações de Risco
- Pausar e Zerar às: Ao chegar no horário configurado, as ordens serão canceladas e estratégias zeradas;
- Objetivo de Ganho: A estratégia será desativada ao atingir o ganho diário;
- Limite de Perda: A estratégia será desativada ao atingir a perda diária;
- Atingir objetivo de Ganho: Selecione Pausar ou Pausar e Zerar ao atingir o Objetivo de ganho.
Manual atualizado
Foi adicionado mais detalhes ao manual, explicando o funcionamento das variáveis globais e os arrays devido à realização de mais de um loop no mesmo candle. Confira o manual atualizado neste link.
Mudanças em Funções
Funções ClosePosition, CancelPendingOrders e ReversePosition agora já cancelam ordens que estão abertas e que foram enviadas antes de sua chamada dentro do fluxo de execução. Isso serve para evitar que o robô e o backtest possam ficar com posições fora da faixa (range) de exposição configurada.
Funções Price, BuyPrice, SellPrice agora retornam o valor do preço médio utilizando o mesmo cálculo de posição definido no Profit.
Novas funções
Inserimos novas funções para melhorar o desenvolvimento de estratégias no Profit.
- DailyResult(OpenResult : Boolean = True)
Ao chamar a função DailyResult(Verdadeiro), será retornado o resultado diário das operações. Ao chamar DailyResult(Falso), será retornado o resultado diário apenas das operações já encerradas.
-
ConsoleLog(Content : String, Color : Integer = clBlack)
Agora você pode utilizar a função ConsoleLog para imprimir dados no console de depuração e conseguir depurar melhor a sua estratégia.
Caso tenha interesse em automatizar suas ordens no Profit, desenvolvemos um curso gratuito de Automação de Estratégias que pode lhe ajudar.
Contrate o módulo de Automação de Estratégias clicando neste link e permita que o Profit opere por você.
Achou útil este conteúdo?
Não esqueça de nos avaliar abaixo.
Desejamos bons trades!
Comentários
0 comentário
Artigo fechado para comentários.