Aprender e escrever juntos em MQL5 - página 3

 
FlyAgaric   :

"A mim parece-me bastante simples...".

Utilizar gratuitamente o MS Visual Studio (ou qualquer análogo) como ambiente de desenvolvimento.

Lançaremos o "adaptador" padrão mql5.exe para permitir a compilação a partir de outras IDEs. Contudo, a depuração só funcionará a partir do MetaEditor.

No entanto, pessoalmente duvido que haja algum sentido em trabalhar com código MQL5 de outras IDEs.

O MetaEditor será ainda melhorado e será também directamente integrado com a MQL5.com e a sua Base de Código.

E a MQL4(MQL5) será implementada como biblioteca usando uma das línguas (VB, C++ e C#). Este último,

na minha opinião, é a mais expressiva. Agora tem um ambiente de desenvolvimento depurado e testado ao longo do tempo

com todos os atributos necessários. E o código compilado é o mais adequado para o Windows.

Se quiser escrever o código o mais rápido possível, pode fazer a sua própria DLL e chamá-los da MQL5.

Segundo os autores, tudo funcionará 4-20 vezes mais rápido em MQL5. Não notado. Um indicador simples

A média móvel com algumas pequenas alterações é muito mais lenta do que na MQL4.

Dei a minha opinião, se isso ofende alguém - por favor desculpem-me.

A MQL5 é de facto muitas vezes mais rápida do que a MQL4, embora a optimização do código esteja desactivada antes do lançamento.

Assim que nos aproximarmos do lançamento do sistema, publicaremos os testes de desempenho de código aberto para que qualquer pessoa possa verificar e ter a certeza.
 
Renat :


Se quiser escrever o código mais rápido possível, pode fazer as suas próprias DLLs e chamá-las da MQL5.


A MQL5 é realmente muitas vezes mais rápida do que a MQL4, embora a optimização do código esteja desactivada antes do lançamento.


Assim que nos aproximarmos do lançamento do sistema, publicaremos testes de desempenho abertos com fontes, para que qualquer pessoa possa verificar e ter a certeza.

Obrigado pela vossa atenção. Não pensei que alguém o lesse no seu dia de folga.

Renat, esses foram os meus pensamentos em voz alta. Ficarei muito feliz se tudo o que tem em mente correr bem.

Quanto à utilização de DLL, não consegui obtê-la em MT4 ou MT5. Escrevi-o em C++ e C#.

Parabéns pelas próximas férias e boa sorte à MetaQuotes Software Corp.

 
FlyAgaric   :

Quanto à utilização de uma DLL, não fui capaz de a prender nem no MT4 nem no MT5. Eu estava a escrever em C++ e C#.

Parabéns pelas próximas férias e boa sorte à MetaQuotes Software Corp.

Anexar o projecto DLL aparado com fontes no arquivo ZIP directamente ao Fórum - eles ajudarão com certeza.

Obrigado pelas felicitações!

 

Olá a todos!

Ajudem-me, rapazes.

Preciso de obter a hora da última citação no expresso. Talvez haja uma maneira simples de o fazer?

Até agora, estou a fazer isto:

      err=0;
      do
        {
         rates_total=CopyTime(NULL,PERIOD_CURRENT,0,1,iTime);
         err++;
        }
      while(rates_total<=0 && err<QUANTITY_OF_ATTEMPTS);
      if(err>=QUANTITY_OF_ATTEMPTS)
        {
         cur_time=TimeCurrent();
        }
      else
        {
         cur_time=iTime[0];
        } 

Existe uma forma mais simples?

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
vdv2001   :

Olá a todos!

Ajudem-me, rapazes.

Preciso de obter a hora da última citação no expresso. Talvez haja uma maneira simples de o fazer?

Até agora, estou a fazer isto:

Existe uma forma mais simples?

Ver Estrutura para preços correntes
 

Boa tarde.

O meu Expert Advisor está a calcularum perfil de mercado no M1, tudo funciona bem quando o coloco no gráfico, mas se eu desligar o terminal e o ligar após algumas horas, ocorre um erro e o Expert Advisor trava.

Suspeito que é devido ao histórico de trocas, a função de inicialização corre antes de os dados actualizados serem carregados (os cálculos principais são efectuados na inicialização) e, por conseguinte, falha.

Tenho uma pergunta, como posso determinar a partir do Init que os dados da ferramenta estão completamente carregados? Quando verifiquei se o terminal está ligado ao servidor nem sempre ajuda, ou seja, se os dados "frescos" não são demasiado, então funciona bem, se alguns dias, então falha com um erro ou não calcula os últimos dias.

Pode dizer-me como levantar a bandeira de que todos os dados estão actualizados?

Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
  • 2010.01.26
  • Dmitry
  • www.mql5.com
Рыночный профиль был разработан Питером Стидлмайером (Peter Steidlmayer), который предложил использовать альтернативное представление информации как о горизонтальном, так и о вертикальном движении рынка, что дает полностью отличный набор моделей. Он предположил, что у рынка существует основной рыночный пульс, или фундаментальная модель, которая называется цикл равновесия и неравновесия (cycle of equilibrium and disequilibrium). В данной статье я сделаю попытку дать общие понятия об упрощенной модели Рыночного профиля (Market Profile) – Ценовой Гистограмме (Price Histogram) и расскажу, как реализовал данный инструмент на MQL5.
 
vdv2001   :

Boa tarde.

O meu Expert Advisor está a calcular um perfil de mercado no M1, tudo funciona bem quando o coloco no gráfico, mas se eu desligar o terminal e o ligar após algumas horas, ocorre um erro e o Expert Advisor trava.

Suspeito que seja devido ao histórico de trocas, a função de inicialização corre antes de os dados actualizados serem carregados (os cálculos principais são efectuados na inicialização) e, por conseguinte, falha.

Tenho uma pergunta, como posso determinar a partir do Init que os dados da ferramenta estão completamente carregados? Quando verifiquei se o terminal está ligado ao servidor nem sempre ajuda, isto é, se os dados "frescos" não são demasiado, então funciona bem, se alguns dias, então falha com um erro ou não calcula os últimos dias.

Pode dizer-me como levantar a bandeira para que todos os dados sejam actualizados?

Mover a inicialização no histórico do OnInit() para OnTick() (tem de verificar se o código é executado apenas 1 vez) e todos os problemas com paginação desaparecem

 
 
alsu   :

Mover a inicialização no histórico de OnInit() para OnTick() (o código deve ser verificado para ser executado apenas uma vez) e todos os problemas de paginação desaparecerão.

Um problema desapareceu, mas após a transferência dos cálculos para OnTick() apareceu outro - os mercados que não estão a funcionar neste momento têm um gráfico vazio e a função OnTick() não é chamada.

 
Rosh   :
Ver também Organização do acesso aos dados


Obrigado por o resolver desta forma:

int OnInit()
  {
//---
   while(!(bool)SeriesInfoInteger(Symbol(),0,SERIES_SYNCRONIZED))
     {
      Sleep(20);
     }
   if(ExtExpert.Init())
      return(0);
   else
      return(-1);
  }
Razão: