Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Enhanced-MQL4 ?
Nunca ouvi falar disso.
Nem eu desde ontem ;) E o nome correto parece ser"Updated MQL4". A MQ escreve:
(...) A partir do build 600, a linguagem de programação MQL4 foi completamente revista atingindo o nível de MQL5- agora você pode desenvolver robôs comerciais em MQL4/5 usando o ambiente de desenvolvimento unificado MetaEditor, estilo único, bibliotecas e ferramentas de depuração.
(...) Portanto, decidimos implementar nele a máxima quantidade possível de funções e recursos da linguagem MQL5, preservando totalmente a funcionalidade MQL4. Em outras palavras, todas as funções poderosas da MQL5, incluindo ООP e o compilador de código nativo, estarão disponíveis na MQL4. (...)
Para conseguir isso, desenvolvemos um compilador unificado que suporta automaticamente tanto a linguagem MQL4 como a MQL5(...)
O problema na definição é a palavra "idiomas". A linguagem é MQL, da mesma forma que C++ é uma linguagem e Basic é uma linguagem. Updated-MQL4/MQL5 é apenas uma plataforma específica de MQL, nem mais nem menos, onde a comparação de MQL4 (nativa) e Updated-MQL4 é praticamente a mesma que com C e C++. E a migração da MQL4.com para a MQL5.com acabou de tornar a confusão perfeita. Como estes lançamentos mostram, a maioria das pessoas não associa OOP com MQL4, como eu fiz. Para mim isto sempre foi a MQL5 que suporta ambas as plataformas, MT4 e MT5.
Mas de qualquer forma, funciona muito bem e a MQLWhatever que for de longe a melhor interface em comparação com todas as outras coisas ruins ao redor.
@Lorentzos Roussos
Alain can correct me on this but you may find gaps in instances where on the time horizon of a bar there where no ticks , so no bar will be in place
Upppsss ... Eu não vi tal conversa. (O que não significa nada).
Eu uso meu "NewBar-indicator" para puxar as paradas automaticamente no alto ou no baixo da barra anterior.
(Na verdade, é um pouco mais difícil, pois considero "Innenstaebe e Aussenstaebe" (eng. "movimentos internos e externos" ????). Não faço idéia de qual seja a tradução correta.
Mas vou usá-la apenas em mercados líquidos que tenham pelo menos vinte - até cerca de cem carrapatos por minuto.
Acho que não vou encontrar um período de dez minutos sem qualquer tiquetaque.
De qualquer forma, o programa deve ser capaz de lidar com isso.
Obrigado!
Willbur
@Lorentzos Roussos
Upppsss ... Eu não vi tal conversa. (O que não significa nada).
Eu uso meu "NewBar-indicator" para puxar as paradas automaticamente no alto ou no baixo da barra anterior.
(Na verdade, é um pouco mais difícil, pois considero "Innenstaebe e Aussenstaebe" (eng. "movimentos internos e externos" ????). Não faço idéia de qual seja a tradução correta.
Mas vou usá-la apenas em mercados líquidos que tenham pelo menos vinte - até cerca de cem carrapatos por minuto.
Acho que não vou encontrar um período de dez minutos sem qualquer tiquetaque.
De qualquer forma, o programa deve ser capaz de lidar com isso.
Obrigado!
Willbur
O que você quer dizer com "Você está usando o iTime"? Eu entendi que "iTime" é apenas uma variável em seu programa - você pode nomeá-lo "Bert" ou "Clarly" se você quiser ?!?
- - - - -
Hoje eu fiz alguns testes. E encontrei algumas das lacunas que você mencionou.
Por exemplo, S&P500 às 20:34 há uma barra, para 20:35 e 20:36 não tenho carrapatos e não tenho barras do servidor (ActiveTrades). Os próximos tiquetaques chegaram às 20:37.
Posteriormente, não há barras no gráfico para estes períodos (ver gráfico M1 em anexo)
Eu não chequei, mas acho que também não há barras dentro da função CopyRates() para este tempo.
Eu acho que você deve verificar seu código neste momento.
Eu adivinharia, vai indicar as três primeiras marcas da barra 20:37 como novas barras.
(TimeCurrent() salta de 20:34 para 20:37! Você precisa adicionar PeriodeSeconds() três vezes para chegar lá).
void OnTick()
{
//--- if(TimeCurrent()>=projection)
{Print("New Bar "+TimeToString(projection,TIME_DATE|TIME_MINUTES));
projection=projection+PeriodSeconds();
}
Willbur
Olá a todos,
Caso alguém ainda esteja procurando...aqui está um trecho do meu código para garantir que apenas uma profissão seja aberta por barra.
As ibars podem ser substituídas por barras e a desativação do comércio = 1 significa que não se faz nada. A parte das barras pode ser melhor compreendida usando o que é afixado normalmente. Coloque BarsCurr = 0 na parte de inicialização e BarsCurr = Bars na parte de compra/venda do seu código.
Mas tenho um problema, estou tentando implementar a ordem de fechamento por inversão de sinal... alguma idéia?
Como o debate sobre o reconhecimento da NewBars se tornou um pouco mais longo, resumirei os resultados em breve.
Ambiente técnico:Se uma mudança (novo comércio ou nova determinação de preço) for detectada pelo servidor, o servidor envia um sinal para o terminal. O programa do terminal aciona a rotina OnTick ().
Com este sinal, obtemos as seguintes informações:
Tempo atual () - o tempo do servidor quando o tick foi enviado.
Informações sobre o último tick - SymbolInfoTick()
- Tempo do servidor quando o tick surgir
- Pergunte
- Licitação
- Último preço (não com todos os fornecedores)
- uma bandeira que indica o que foi mudado.
Informações sobre a barra atual - CopyRates()
- "nome" para o bar, por exemplo, "10:20:00".
- Aberto-Alto-Baixo-Fechado
Reconhecendo uma nova barra (por exemplo, Período = M1)
Porque o servidor só envia um sinal se algo tiver mudado,
as barras com o nome "hh.mm:00" podem ser apreendidas mais tarde do que "hh:mm:00".
Isto pode causar situações especiais para símbolos com pouca liquidez.
Soluções que lidam com a duração do período não detectam isto:
TimeCurrent() barra "nome".
Último Tick 10:10:07 10.10:00
Próximo Tick 10:11:30 10:11:00
Nether com isso (Zero ticks em um período):
TimeCurrent() barra "nome".
Último Tick 10:10:30 10:10:00
Próximo Tick 10:13:40 10:13:00 O bar 10:12:00 está faltando!
Muito raramente eu vi situações (durante uma carga muito alta no servidor?) nas quais o tempo do servidor já está trocado para o próximo período enquanto as barras não estão.
TimeCurrent() barras "nome".
Último Tick 10:10:00 10:09:00
Próximo Tick 10:10:00 10:10:00
Conclusão:
Não há problema em ir com o TimeCurrent() a fim de suprimir as copyRates() desnecessárias.
Quando o TimeCurent() atinge o novo período, é preciso verificar se a barra também é trocada.
Isto me leva de volta ao código Alain trazido à discussão muito cedo:
https://www.mql5.com/en/forum/22983
Willbur
@emeka Mbanefo
meu manual não menciona uma função chamada "iBars".
Você tem certeza de que este é o código MQL5?
Willbur
@emeka Mbanefo
meu manual não menciona uma função chamada "iBars".
Você tem certeza de que este é o código MQL5?
Willbur
Ah, não é para mql5. é para mql4, eu acho. Ainda assim, o iBars sou eu a brincar. Suas barras como uma função geral, como eu já disse anteriormente.
Ainda à espera de assistência com o código de inversão de sinal.
Obrigado.
Ah, não é para mql5. é para mql4, eu acho. Ainda assim, o iBars sou eu a brincar. Suas Barras como uma função geral, como eu já disse anteriormente.
Ainda à espera de assistência com o código de inversão de sinal.
Obrigado.