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:
- 47
- Avaliação:
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Quando recentemente comecei a testar intensamente a funcionalidade de CopyTicksRange(), encontrei alguns problemas desfavoráveis ao lidar com tempos de milissegundos:
- Na verdade, eu queria usar o CDateTime, pois ele é derivado do MqlTimeStruct e você pode editar as diferentes unidades de tempo com muita facilidade usando os métodos de incremento e decremento incluídos.
- Ao mesmo tempo, eu precisava de uma maneira de traduzir suavemente os tempos em milissegundos (segundos desde 1º de janeiro de 1970 vezes 1000 no formato ulong) para frente e para trás.
Aqui me deparei com a dificuldade de que o número de milissegundos, por exemplo, é um número muito vago que não informa muito sobre a data exata. Entretanto, se você usar CDateTime ou TimeStruct, todas as unidades de tempo são fáceis de alterar, mas o formato as separa e o resultado também não é muito claro. Essa classe CDateTimeMsc foi criada para resolver esse problema.
#include <Tools\DateTime.mqh> struct CDateTimeMsc: public CDateTime { public: int msc; // additional variable for msc storage datetime check_datetime; // para uma observação conveniente, é necessário um pouco de sobrecarga. //--- Métodos CDateTimeMsc ulong MscTime(void) {return(ulong(double(CDateTime::DateTime()) * 1000) + msc);} void MscTime(ulong a_msc_time); // entrada (datetime*1000) void Msc(int value); //bool IsNumInt(const int num); void MscDec(int delta = 1); void MscInc(int delta = 1); void SecTime(int a_int_time); ulong SecTime(void); void UpdateDateTime(); // atualiza a variável de observação check_datetime void DateTime(datetime a_datetime) {CDateTime::DateTime(a_datetime); UpdateDateTime();} datetime DateTime(void) {return(CDateTime::DateTime());} };
Os novos métodos foram inseridos sob a herança da estrutura antiga.
Agora, a classe, que na verdade é uma estrutura (consulte Estruturas/Classes), também pode trabalhar com milissegundos, desde que esses horários exatos estejam disponíveis.
Além disso, os métodos de incremento e decremento foram estendidos para a propriedade msc.
Pode-se argumentar agora se a variável adicional "check_datetime" é realmente necessária, pois cria uma certa sobrecarga (para algumas pessoas isso é muito importante). No entanto, presumi que normalmente não são usados muitos objetos CDateTime, mas apenas alguns nos locais importantes em que as unidades de tempo, como horas, minutos, segundos ou dias, precisam ser alteradas. Também tive algumas dúvidas sobre o método UpDateTime(), que é chamado desnecessariamente a cada incremento/decremento.
Em suma, porém, o fator de manipulação foi o foco principal.
O teste
Você não precisa mais consultar a hora com uma variável datetime adicional se quiser saber a data exata, mas pode simplesmente colocar a variável "check_datetime" sob supervisão: (TestEA veja acima)
O tempo em milissegundos foi automaticamente traduzido para o formato datetime.
Traduzido do alemão pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/de/code/48156
Desempenho triplo intradiário
Defina três cruzamentos e monitore o desempenho percentual diário a partir de um determinado horário (que também pode ser definido).
Strong Historical Levels
Níveis históricos de S/Rs fortes
Caculater Margin
EA Tools tính toán Margin theo lotsize, có thể tùy chỉnh đòn bẩy
Open Range BreakOut Indicator for MetaTrader 5
O indicador Open Range Breakout (ORB) é uma poderosa ferramenta de análise técnica que identifica e rastreia rompimentos de preços a partir do intervalo de abertura das sessões de negociação. Esse indicador se baseia no conceito de que os preços altos e baixos estabelecidos durante os primeiros minutos de uma sessão de negociação geralmente servem como níveis significativos de suporte e resistência durante o restante do dia. O indicador calcula automaticamente a faixa de abertura com base em períodos de tempo definidos pelo usuário, traça várias metas de preço e fornece alertas visuais e sonoros para possíveis oportunidades de negociação. Ele foi projetado para ajudar os traders a identificar negociações de alta probabilidade de rompimento e cenários de reteste.
