Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 1662
- Avaliação:
- Publicado:
- 2014.01.15 08:27
- Atualizado:
- 2014.06.26 12:35
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
A classe CTradeStatistics contém todos cálculos dos parâmetros de enumeração ENUM_STATISTICS.
Nesta classe, todos os parâmetros, com exceção do levantamento patrimonial, podem ser calculados com base no histórico de negociações.
O principal objetivo da classe é remover a restrição da função TesterStatistics(), ou seja, para ser capaz de obter os dados estatísticos necessários em qualquer altura durante o teste, bem como fora do Strategy Tester.
Um exemplo de seu uso fora do Strategy Tester
Todos os parâmetros são calculados chamando a função CTradeStatistics::Calculate().
Após a execução bem sucedida dessa função, os resultados estarão disponíveis através das chamadas de vários métodos, sendo que seus nomes são semelhante aos nomes dos parâmetros estatísticos.
Exemplo de código:
CTradeStatistics m_stat; if(m_stat.Calculate()) PrintFormat("LR Correlation: %.2f",m_stat.LRCorrelation()); else Print(m_stat.GetLastErrorString());
Resultado:
2012.09.13 08:52:19 TradeStatistics (EURUSD,H1) LR Correlation: 0.97
A função CTradeStatistics::PrintStatistics() pode ser usada para imprimir todos os parâmetros para o log.
if(m_stat.Calculate()) PrintStatistics();
Um exemplo simples de trabalhar com a classe podem ser encontrada no script TradeStatistics.mq5.
O painel TradeStatisticsPanel é projetado para melhor visualização dos resultados.
Um exemplo do uso do Strtegy Tester
Para calcular corretamente o rebaixamento patrimonial, a função CTradeStatistics::CalculateEquityDD() deve ser usada.
Exemplo de código:
#include <CTradeStatistics.mqh> CTradeStatistics m_stat; //+------------------------------------------------------------------+ //| Função de inicialização do Expert | //+------------------------------------------------------------------+ int OnInit() { m_stat.CalculateEquityDD(CALC_INIT); return(0); } //+------------------------------------------------------------------+ //| Função desinicialização do Expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { m_stat.CalculateEquityDD(CALC_DEINIT); if(m_stat.Calculate())m_stat.PrintStatistics(); } //+------------------------------------------------------------------+ //| Função tick do Expert | //+------------------------------------------------------------------+ void OnTick() { m_stat.CalculateEquityDD(CALC_TICK); }
Deve se notar que os valores confiáveis de indicadores estatísticos podem ser obtidos em qualquer ponto do programa, e não apenas no fim dos testes utilizando os eventos OnTester() ou OnDeinit(). Os cálculos podem ser atualizados usando o evento OnTrade(), como mostrado no exemplo a seguir:
void OnTrade() { //--- Bloco de pedidos repetidos no mesmo segundo static datetime time_on_trade; if(time_on_trade==TimeTradeServer())return; time_on_trade=TimeTradeServer(); //--- Atualizar estatísticas if(!m_stat.Calculate())Print(m_stat.GetLastErrorString()); }
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/1081
![eKeyboardTrader](https://c.mql5.com/i/code/expert.png)
Expert Advisor que permite negociar através do teclado.
![TradeStatisticsPanel](https://c.mql5.com/i/code/indicator.png)
Painel para a visualização de parâmetros estatísticos calculados com base no histórico de negociação.
![Manipulador de eventos Multi Moedas OnTick(string símbolo)](https://c.mql5.com/i/code/expert.png)
Esta é uma implementação simplificada do modo multi moeda no MetaTrader 5. Não é necessário saber de seus detalhes de funcionamento. Ela possui uma configuração mínima e uma estrutura simples. Ela pode ser usada no Strategy Tester.
![BidAskChannel](https://c.mql5.com/i/code/indicator.png)
O indicador BidAskChannel indicador foi projetado para contabilizar o spread nas sombras das velas.