Discussão do artigo "Apresentação personalizada do histórico de negociação e criação de gráficos para relatórios"

 

Novo artigo Apresentação personalizada do histórico de negociação e criação de gráficos para relatórios foi publicado:

O artigo descreve métodos personalizados, a fim de avaliar o histórico de negociação. Para fazer isso, são descritas duas classes para seu carregamento e análise. A primeira recolhe o histórico de negociação numa pequena tabela. Já a segunda está encarregada das estatísticas, uma vez que calcula vários indicadores e plota gráficos que ajudam a tornar mais conveniente a avaliação da eficácia da negociação.

No coração de qualquer sistema de trading está um algoritmo de negociação formando uma curva de Profit/Loss. Esse algoritmo pode ser comparado a um ativo sintético cujo valor é formado em relação a um ativo subjacente (instrumento negociado). Por exemplo, para opções, há uma fórmula (modelo BSM) que a qualquer momento calcula o valor do ativo sintético com base no preço do ativo subjacente. Mas para um algoritmo de negociação, essa fórmula não existe. Neste caso, consequentemente, a execução do algoritmo pode ser comparada a uma posição longa de um instrumento sintético cuja curva de PL é formada pela lógica programada nele. O lucro gerado por esse 'ativo' pode ser instável em diferentes períodos. Mesmo se estiver sujeito a avaliação por um único modelo econométrico, este modelo não pode ser unificado. Surge a pergunta: como rastrear tanto esse ativo quanto a fase de nossa negociação? Uma solução adequada parece ser realizar uma retrospetiva da negociação desse algoritmo e identificar desvios em relação aos resultados esperados.

Não darei conselhos sobre a análise de algoritmos, em vez disso, apresentarei um conjunto de métodos que ajudarão a dar uma visão completa do histórico de negociação. Com base nos dados obtidos, você pode construir modelos econométricos complexos, determinar perfis e fazer outros raciocínios.

Este artigo será dividido em duas seções. Na primeira seção, falarei sobre métodos de geração de relatórios de negociação a partir das informações armazenadas nos terminais. Quer dizer, esta seção tem a ver com os dados iniciais para análise. Na segunda seção, formaremos os principais indicadores que ajudarão a avaliar a retrospectiva dos dados de negociação selecionados. A amostragem de dados pode variar para todos os ativos, para um ativo, para todo o histórico disponível ou para um determinado período. Os resultados da análise serão apresentados num arquivo separado e brevemente mostrados no terminal.

Tirei os dados para análise do meu histórico de negociação real. Os exemplos de como implementar o código foram criados no período de teste, numa conta de demostração, especificamente com esse objetivo.


Autor: Andrey Azatskiy

 

Nos arquivos anexados ao artigo, não há instruções sobre o local do arquivo e o histórico de negociação, para os quais foram dados exemplos no artigo atual!

 
Alexander:

Nos arquivos anexados ao artigo, não há instruções sobre o local do arquivo e o histórico de negociação, para os quais foram dados exemplos no artigo atual!

Sim, você está certo, o arquivo foi encurtado. O histórico está no apêndice e como uma instrução:

Transfira a pasta do arquivo sem alterar os scripts. Nessa pasta, o projeto onde todos os arquivos descritos estarão localizados. Ao iniciar o projeto, você será solicitado a selecionar:
1) Caminho para o histórico de negociação anexado (ele deve estar em seu computador).

2) Pasta para carregar os resultados do histórico anexado

3) Pasta para carregar os resultados de seu próprio histórico.

Essas pastas devem ser diferentes, pois o script gera uploads com os mesmos nomes e eles simplesmente substituirão um ao outro se a pasta for a mesma. Se, por algum motivo, você não tiver parâmetros de entrada ao iniciar o script, altere os parâmetros no próprio script (arquivo Get_TradingHistory.mq5).

Arquivos anexados:
dealHistory.zip  12 kb
 
Alexander:

Nos arquivos anexados ao artigo, não há instruções sobre a localização de arquivos e histórico de negociação, para os quais foram dados exemplos no artigo atual!

O arquivo com os arquivos anexados ao artigo foi substituído. O arquivo para testar o script está localizado na pasta MQL5/Files/article_4803.

 

Tentei executar o script.

Aqui está o resultado

2018.09.01 18:17:58.442 Get_TradingHistory (Si-9.18,M1) Failed FindFirstFile ("C:\MQL5 test_1 para salvar o relatório") with error: 2
2018.09.01 18:18:06.008 Get_TradingHistory (Si-9.18,M1) Abnormal termination
2018.09.01 18:18:06.172 Get_TradingHistory (Si-9.18,M1) Error CopyFile C:\MQL5 тест сохранения истории\dealHistory.csv to C:\Users\***\AppData\Roaming\MetaQuotes\Terminal\Common\Files\temp.csv
2018.09.01 18:18:06.172 Get_TradingHistory (Si-9.18,M1) An error occurred while test_3 !
2018.09.01 18:18:06.172 Get_TradingHistory (Si-9.18,M1) An error occurred while test_4 !
2018.09.01 18:18:06.177 Get_TradingHistory (Si-9.18,M1) An error occurred while test_11 !
2018.09.01 18:18:23.346 Get_TradingHistory (Si-9.18,M1) zero divide in 'DealHistoryGetter.mqh' (432,60)

O MT5 no modo portátil funciona.

E eu não entendi muito bem: o script sabe como trabalhar com o histórico ou precisa preparar um arquivo de histórico de acordo com regras especiais?

 
Aleksey Vyazmikin:

Tentei executar o script.

Aqui está o resultado

Você tem um erro com caminhos de arquivo ou criação de arquivo e permissões de leitura. Tente percorrê-lo linha por linha. Quando fiz o teste, salvei todos os dados na unidade C e o arquivo com o histórico do teste estava localizado da mesma forma, talvez você não tenha permissões de gravação ou leitura.

 
Andrey Azatskiy:

Você tem um erro com os caminhos dos arquivos ou com as permissões de criação e leitura de arquivos. Tente examinar o arquivo linha por linha. Quando fiz o teste, salvei todos os dados na unidade C e o arquivo com o histórico do teste foi feito da mesma forma, talvez você não tenha permissões de gravação ou leitura.

Eu tenho todos os direitos.

Como preparar o arquivo de histórico para o script?

 
Aleksey Vyazmikin:

Tenho todas as licenças.

Como preparar um arquivo de histórico para o script?

A classe de teste pode lê-lo e carregá-lo (um método separado na classe de teste é escrito para essa finalidade). Você só precisa passar o caminho para o arquivo de teste.

 
Aleksey Vyazmikin:

Tenho todas as licenças.

Como preparar um arquivo de histórico para o script?

Percorra linha por linha e me diga em qual dos estágios você obteve um erro?

 
Andrey Azatskiy:

A classe de teste está pronta e sabe como lê-lo e carregá-lo (um método separado na classe de teste foi escrito para isso). Você só precisa passar o caminho para o arquivo de teste.

Talvez eu não esteja explicando da maneira correta, o arquivo "dealHistory.csv" foi baixado com o arquivo, ele já contém dados, entendo que o relatório será criado com base neles. Como posso fazer com que o relatório seja criado com base em meus dados?

 
Andrey Azatskiy:

Percorra linha por linha e me diga em qual das etapas você obteve o erro?

Como posso fazer isso? Não entendo muito bem a terminologia.