Discussão do artigo "Criando um Consultor Especialista, que negocia em um número de instrumentos" - página 2

 
gisip:
Tudo funciona bem na MQL4 sem um cronômetro.
Sua declaração não é muito aceitável, pois estamos falando de testes em várias moedas. Não há cronômetro no MT4, mas também não há testador de várias moedas. Ao trabalhar no MT4, o Expert Advisor depende, em qualquer caso, da intensidade do fluxo de cotações do instrumento no qual ele trabalha. Imagine uma situação como essa: digamos que você tenha um Expert Advisor para várias moedas no EURUSD e, se em algum momento não houver ticks nesse par, como você vai acompanhar a chegada de novos ticks em outros instrumentos?
 
Interesting:

Bem, isso não existe na MQL4, assim como as estruturas e classes não existem lá, você propõe abandoná-las aqui?


IMHO

Usar ou não usar a biblioteca padrão é uma questão de gosto de cada um (na pior das hipóteses, você pode usar apenas seu próprio código), mas abrir mão de todas as vantagens só porque elas não estão disponíveis no MT4 não é muito razoável.....

Eu não escrevi nada sobre isso.

Escrevi que a MQL5 apresenta falhas e produz dados errôneos em determinadas combinações de instrumentos.

Por exemplo: se EURJPY ou EURGBP for sobreposto no gráfico EURUSD, tudo estará bem.

Mas se você sobrepuser EURCAD, os dados no gráfico estarão errados, enquanto na MQL4 não havia esse erro.

[Excluído]  
gisip:

Eu não escrevi nada sobre isso.

Escrevi que a MQL5 apresenta falhas e produz dados errôneos com determinadas combinações de instrumentos.

Por exemplo: se EURJPY ou EURGBP for sobreposto no gráfico EURUSD, tudo estará normal.

Mas se você sobrepuser EURCAD, os dados no gráfico apresentarão um erro, enquanto na MQL4 esse não era o caso, não havia erro.

Eu entendi isso, mas Kos está certo (especialmente a bela postagem de 2010.07.02 14:57). Não consigo entender por que todos os desenvolvedores (incluindo o MQ ) ignoram persistentemente o cronômetro. Se levarmos em conta que não há exemplos oficiais de negociadores de várias moedas, então tudo está claro para o MQ nessa questão, mas por que outros ignoram persistentemente o OnTimer(), para mim, pessoalmente, continua sendo um GRANDE mistério....
 
gisip:

Eu não escrevi nada sobre isso.

Escrevi que a MQL5 apresenta falhas e produz dados errôneos com determinadas combinações de instrumentos.

Por exemplo: se EURJPY ou EURGBP for sobreposto no gráfico EURUSD, tudo estará normal.

Mas se você sobrepuser EURCAD, os dados no gráfico apresentarão um erro, enquanto na MQL4 esse não era o caso, não havia erro.

Por favor, forneça um exemplo com um erro.
 
Renat:
Dê-me um exemplo com um erro.
Bem, não vou escrever tudo aqui, parece claro o suficiente.
//--------- Opção com MQL4 ---------
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua

extern string InstrumentName = "EURCAD";
double Buffer[];
SetIndexBuffer(0,Buffer); // Atribuir matriz ao buffer
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Estilo de linha

while(i >= 0){//-- Movendo-se da direita para a esquerda (ou seja, da barra mais alta para a barra 0 que ainda está sendo formada) --
Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3;
i--;//-- next Bar
}//next (while)



//----------- Agora quase a mesma variante em MQL5 --------
#property indicator_separate_window // Indic. é desenhado em uma janela separada
#property indicator_buffers 1

#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 Aqua

input string InstrumentName = "EURCAD";
double Buffer[];
int handle1;

copied=CopyClose(InstrumentName,0,0,CountBars,Buffer);

//--Agora lançamos no EURUSD.

//--Não importa em qual instrumento colocamos o indicador, o gráfico não deve mudar.
 
Por favor, cole o código corretamente, pois isso facilita a compreensão.
MQL5.community - Памятка пользователя
MQL5.community - Памятка пользователя
  • 2010.02.23
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы недавно зарегистрировались и у вас возникли вопросы: Как вставить картинку в сообщение на форуме, как красиво оформить исходный код MQL5, где находятся ваши Личные сообщения? В этой статье мы подготовили для вас несколько практических советов, которые помогут быстрее освоиться на сайте MQL5.community и позволят в полной мере воспользоваться доступными функциональными возможностями.
 
Rosh:
Por favor, insira o código corretamente, pois isso facilita a compreensão.

//--------- Opção com MQL4 ---------
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Aqua

extern string InstrumentName = "EURCAD";
double Buffer[];
int init()
{
SetIndexBuffer(0,Buffer); // Atribuir matriz ao buffer
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Estilo de linha
}
int start()
{
while(i >= 0){
Buffer[i] = (iHigh(InstrumentName,0,i) + iClose(InstrumentName,0,i) + iLow(InstrumentName,0,i)) / 3;
i--;//-- next Bar
}//next (while)
}


//----------- Agora quase a mesma variante em MQL5 --------
#property indicator_separate_window // Indic. é desenhado em uma janela separada
#property indicator_buffers 1

#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 Aqua

input string InstrumentName = "EURCAD";
double Buffer[];
int OnInit()
{
{ IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
SetIndexBuffer(0,Buffer,INDICATOR_DATA);
}

int OnCalculate(....)
{
copied=CopyClose(InstrumentName,0,0,0,0,CountBars,Buffer);
}
//--Agora vamos lançá-lo no EURUSD.

//--Não importa em qual instrumento colocamos o indicador, o gráfico não deve mudar.
[Excluído]  
Gisip, você deve usar a inserção de código usando o botão "SRC"...
 

Por favor, crie um exemplo reproduzível. Ou seja, você precisa de um código pronto que possa ser compilado, colocado em um gráfico e obter resultados.

Sem isso, poucas pessoas entenderão do que estamos falando.
 

Eu ajudarei aqueles que estão privados de consciência.

//----------- Agora quase a mesma variante em MQL5 --------
#property  indicator_separate_window    // O indicador é desenhado em uma janela separada
#property indicator_buffers 1

#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  Aqua

input string InstrumentName = "EURCAD";
double Buffer[]; 
int OnInit() 
{
   IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
   SetIndexBuffer(0,Buffer,INDICATOR_DATA);
return(0);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime& time[],
                const double& open[],
                const double& high[],
                const double& low[],
                const double& close[],
                const long& tick_volume[],
                const long& volume[],
                const int& spread[])
{
int copied;
int CountBars=rates_total;
  copied=CopyClose(InstrumentName,0,0,CountBars,Buffer);
  return(copied);
}
//--Agora lance-o para o EURUSD.

//--Não importa em qual instrumento colocamos o indicador, o gráfico não deve mudar.

Idealmente, não deveria, mas eu o tenho rangendo com algoritmos que apareceram apenas em 1 TF e os outros mostraram categoricamente o vazio .....

mesmo após uma hora de testes.....

e tentativas de carregar o histórico