Bibliotecas: MT4Orders QuickReport - página 8

 
Edgar Akhmadeev #:

Os gerenciadores de arquivos gráficos são para amadores, é claro. É uma questão de hábito. Certa vez, mudei do NortonCommander baseado em texto para o FarCommander com vários plug-ins.

Eu usava com prazer os análogos do NC no DOS. Entretanto, o FAR causou imediatamente uma terrível aversão, sem que eu entendesse o motivo. Experimentei o TC sem entusiasmo (uma versão melhorada, não fiz nenhum ajuste) e ele funcionou perfeitamente.

Ainda me lembro bem do NC e do FAR com um estremecimento. Embora todos os programadores que conheci usem apenas o FAR.

 
fxsaber #:

No TotalCommander, comparo as fontes com o pressionar de uma tecla. Qualquer codificação pode ser facilmente comparada com qualquer outra codificação existente.

Sim, eu também o utilizo localmente. Mas há softwares e serviços de terceiros mais convenientes. Não é em todo lugar que a codificação "não importa".

 

Atualização: adicionei algumas coisas.

1) O gráfico TurnOver foi substituído por um gráfico com P/L para compras, vendas e seus valores. Dessa forma, você pode entender se sua estratégia é de alta ou de baixa. Você pode decidir desativar uma das direções de negociação se ela não for lucrativa.


2) Gráficos de lucros e perdas por horas e dias da semana.

Diferentemente do testador de MQ, os lucros e as perdas são exibidos não no momento de sua ocorrência, mas no momento em que se entra em uma negociação. Isso facilita a compreensão de que as entradas em uma determinada hora são, em sua maioria, não lucrativas e simplesmente desativa essa hora para entradas.
Além disso, foram criados gráficos de compras e vendas.


Se você clicar em qualquer um desses gráficos, verá tabelas com valores exatos por horas e dias. Há também caixas de seleção que podem ser usadas para desativar as horas e os dias das entradas - os gráficos e as tabelas serão reconstruídos e você poderá avaliar o resultado sem testes adicionais. É um análogo do BestInterval do Fxsaber, mas mais grosseiro (com uma etapa de 1 hora) e sem automação. O intervalo M10 foi adicionado para reduzir a etapa.

Algumas explosões de lucro por hora ou por dia nesses gráficos podem ser vistas em pequenos períodos de teste. Nos gráficos acima, o teste é de 5 meses com uma tendência de alta. Portanto, a compra dá lucro e a venda dá prejuízo. Se você aumentar o teste para um ano ou mais, quando várias tendências grandes em ambas as direções passarão, tudo ficará uniformemente manchado e geralmente não será lucrativo, portanto, é improvável que você consiga desativar algo e obter uma mudança significativa no lucro.

Aqui está o que aconteceu com a mesma estratégia com o teste de 1 ano: (você deve desligar quase tudo).

Portanto, é improvável que isso se torne a base de sua estratégia.

BestInterval
BestInterval
  • www.mql5.com
Вычисление лучшего интервала торговли.
 

Sugiro fazer as seguintes alterações no código.

// void QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=0, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){//
bool QuickReport(string file_name, bool is_open_file_in_browser=true, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){//
// ....
    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID="+(string)VIRTUAL::GetNumber(VIRTUAL::GetHandle()) + " " + VIRTUAL::GetID() +";");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID=0;");
    #endif // #ifdef __VIRTUAL__ #else
// ....
   return(f!=INVALID_HANDLE);
}


Em seguida, o exemplo do cabeçalho.

 for (int v = 1 ; v <= VIRTUAL::Total(); v++)
   _VI(v, QuickReport("report_"+(string)v, true));
 
Forester #:

Atualização: Alguns itens foram adicionados.

Adicionada uma seleção de seu tipo de relatório ao CustomReport. Tentei ver os Backtests/Sinais por meio dele - às vezes é útil, obrigado.

Возможности анализа не только своей торговой истории.
Возможности анализа не только своей торговой истории.
  • 2022.07.11
  • www.mql5.com
Семейство терминалов MetaTrader позволяет штатно визуализировать историю торговли открытого счета, бэктестов и Сигналов (мониторинг огромного числа торговых счетов). Ниже пойдет речь об использовании
 
fxsaber #:

Proponho fazer as seguintes alterações no código.

Em seguida, o exemplo do cabeçalho.

Eu fiz

    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)virtual_number+" " + VIRTUAL::GetID() +"';");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)virtual_number+" ';");
    #endif // #ifdef __VIRTUAL__ #else

...
return(f!=INVALID_HANDLE);
}

Deixei a chamada da função inalterada, para compatibilidade com a versão antiga, de modo que os códigos de trabalho não fossem interrompidos. Ou seja, o número da virtualização é obtido da variável virtual_number como antes, e a função adicionará VIRTUAL::GetID() a ele por si só.

 
fxsaber #:

Proponho fazer as seguintes alterações no código.


Em seguida, o exemplo do cabeçalho.

Criei uma nova variante

bool QuickReport(string file_name, bool is_open_file_in_browser=true, int virtual_number=-1, bool hide_account_and_name=false, bool common_path=false, bool fileANSI=true){
    #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)(virtual_number<0?VIRTUAL::GetNumber(VIRTUAL::GetHandle()):virtual_number)+" " + VIRTUAL::GetID() +"';");
    #else // #ifdef __VIRTUAL__
      FileWrite(f,"VIRTUAL_ID='"+(string)(virtual_number<0?0:virtual_number)+" ';");
    #endif // #ifdef __VIRTUAL__ #else
...
return(f!=INVALID_HANDLE);
}

virtual_number - número do testador virtual (-1 - será determinado automaticamente, 0 - testador MT5, >0 - testadores virtuais)

Agora, por padrão (se virtual_number não for especificado), como neste exemplo

QuickReport("report_"+(string)v, true))

então o virtual_number será definido automaticamente.
Se virtual_number for especificado e >=0, ele será mostrado.

 
Atualização. Filtros adicionados.

Filtragem de pedidos.

Muitos filtros foram adicionados para exibir pedidos por diferentes parâmetros.


Buy, Sell, Buy limit, Sell limit, Buy stop, Sell stop, Balance - você pode remover qualquer tipo de ordem do relatório.
Symbols - mostra a lista completa de instrumentos usados, você pode selecionar apenas os necessários.
Magic - é possível mostrar ordens apenas com o Magic especificado
Min Lot, Max Lot - é possível selecionar ordens com os lotes necessários
Negative Slippage - é possível mostrar ordens com slippage negativo separadamente para abertura de ordens ou para fechamento
Swap - mostra ordens com swaps > 0
Min LengthTime - ordens com duração maior que o tempo especificado (especificado pelo número de dias, horas, minutos e segundos)
Max LengthTime - ordens com duração menor que o tempo especificado
Open Time - horário de abertura da ordem de e para datas especificadas
Close Time - horário de fechamento da ordem de e para datas especificadas
TP, SL - ordens que terminaram com TP ou SL acionados
Profits, Losses - ordens com lucro ou prejuízo (comissões e swaps não estão incluídos, pois podem tornar o lucro final negativo)
Rejects - ordens não executadas

O botão Reset (Redefinir) permite redefinir os filtros para os valores padrão e mostrar todas as ordens sem filtragem.


Ordens pendentes executadas do MT5

A ordem pendente, cujo acionamento causou essa ordem/posição, é indicada em azul escuro na mesma linha acima. São indicados o tempo de configuração da ordem pendente, o tempo desde a configuração até o acionamento da ordem e o tipo de ordem pendente (Buy limit, Sell limit, Buy stop ou Sell stop). Essas informações são mostradas apenas para o terminal ou testador MT5; os testadores virtuais ou o MT4 não fornecem essas informações.

 
Forester #:

Ordens pendentes MT5 executadas

A ordem pendente, cujo acionamento causou essa ordem/posição, é indicada em azul escuro na mesma linha acima. A hora da definição da ordem pendente, o tempo entre a definição e o acionamento da ordem e o tipo da ordem pendente (Buy limit, Sell limit, Buy stop ou Sell stop) são especificados.

Permita que essas informações não sejam exibidas. Elas não têm utilidade. Principalmente se a ordem tiver sido modificada antes da execução.
 
fxsaber #:
Por favor, dê a opção de não mostrar essas informações. Ela não tem utilidade. Especialmente se a ordem tiver sido modificada antes da execução.
Ela fica oculta por padrão. Ativado por #define ORDER_PARENT