Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 140

 
DC2008:

1. Se omitir os cheques, pode ir desta forma:

2. Sim

3. A questão não é clara.

1. Para que servem os controlos? Se sem eles se desperdiçassem menos recursos?

2. Por exemplo, em mql4 há nomes variáveis:

int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip=-1,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   MA_1_t,                          // Значен. МА_1 текущее
   MA_2_t,                          // Значен. МА_2 текущее 
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool 
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell

Em que secção de mql5 se deve listar estas variáveis que estão acima no código que está em mql4 no início int?

As variáveis globais são definidas antes do início do int. Todo o código EA é retirado do tutorial aquihttps://с.mql4.com/book

 
forexman77:

1. Para que servem os controlos? Se sem eles se desperdiçassem menos recursos?

2. Em mql4 há nomes variáveis, por exemplo:

Em que secção de mql5 se deve listar estas variáveis que estão acima no código que está em mql4 no início int?

As variáveis globais são definidas antes do início do int. O código completo do Conselheiro Especialista é retirado do tutorial aquihttps://с.mql4.com/book.

1. Para garantir que o conselheiro trabalha de forma fiável numa conta real.

Estas são variáveis locais e pode copiá-las para a função OnTick, que substitui o início() do 4.

No entanto, gostaria de vos avisar: as funções comerciais NÃO devem ser transpostas uma a uma!

 
DC2008:

1. Para um funcionamento fiável da EA no real.

2. Estas são variáveis locais e pode copiá-las para a função OnTick, que substitui a função start() dos quatro.

No entanto, gostaria de vos avisar que as funções comerciais NÃO devem ser copiadas de uma para outra!

Quer dizer que algumas variáveis são contadas de forma diferente em cinco? Desculpe, ainda não sei nada sobre o mql5, por isso não consigo compreendê-lo completamente. Pode dar-me um exemplo de porque não podem transferir funções de mql4 uns para os outros? Existe uma filial do fórum para manequins?)

Estou a tentar inserir o código:

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

Vejo erros no vazio OnTick():

TFMigrate' - função não definida

conversão enum implícita

Tentei os mesmos erros no OnInit(). O que é que estou a fazer mal?

Em mql5, colocamos bandeiras, bilhetes, paragens e lotes de lucro, etc. em variáveis globais que precisam de ser armazenadas fora do código principal, ou seja, o princípio é o mesmo que em mql4.

 
forexman77:

Quer dizer que algumas variáveis são contadas de forma diferente em 5? Lamento, mas não sei nada sobre o mql5 e não consigo entendê-lo bem. Poderia dar-me um exemplo de porque é que as funções mql4 não podem ser transferidas umas para as outras? Existe uma sucursal neste fórum para os bonecos completos?)

Deve desistir do mql4 e não traduzir "estupidamente" linha por linha, mas começar a "dançar do fogão"! Há muitos exemplos e Conselheiros Peritos prontos a usar em kodobase e na entrega padrão MQ para os cinco. Se isto é "matemática superior" para si, então encomende um EA na secção "Trabalho".

Agora as respostas às suas perguntas:

  1. Copiar a função TFMigrate do artigo, está no início.
  2. Quanto às variáveis, o princípio é o mesmo.
 
DC2008:

Não se pode simplesmente começar a "dançar do fogareiro" em vez de "dumbly" a traduzir linha por linha! Há muitos exemplos e EAs prontos a usar em kodobase e no pacote MQ padrão para cinco. Se isto é "matemática superior" para si, então encomende um EA na secção "Trabalho".

Agora as respostas às suas perguntas:

  1. Copiar a função TFMigrate do artigo, está no início.
  2. Quanto às variáveis, o princípio é o mesmo.
Estou a tentar colocar a sua função
int HourMQL4(){MqlDateTime tm;TimeCurrent(tm);return(tm.hour);};
no vazio OnTick(), pede para o colocar no 'HoraMQL4' global - a função só pode ser declarada no âmbito global. É realmente necessário colocá-lo lá? Se o fizer, não haverá erro. É necessário um ponto-e-vírgula depois de um parêntese encaracolado?
 
Como determinar a hora actual em minutos desde o início do dia?

Pensei nisso desta forma:

datetime  vrema=TimeCurrent(MqlDateTime{int hour;});
int tek_vrema= vrema*60;
Não tenho a certeza sobre a primeira linha se o código está correcto.
 
forexman77:
Tento colocar a sua função no OnTick() vazio, pede para a colocar no 'HourMQL4' global - a função só pode ser declarada no âmbito global. É realmente necessário colocá-lo lá? Se o fizer, não haverá erro. É necessário um ponto-e-vírgula depois de um parêntese encaracolado?

A função não pode ser incluída numa função.

 
forexman77:
Como determinar a hora actual em minutos desde o início do dia?

Pensei nisso desta forma:

Não tenho a certeza sobre a primeira linha se o código está correcto.

Isto é correcto:

   MqlDateTime tm;
   TimeCurrent(tm);
   int tek_vrema=tm.hour*60;
 
Boa tarde, pode dizer-me por favor o indicador ou consultor especializado que notifica com um bip após a formação de um padrão de candelabro, como na imagem. O sinal sonoro foi após 7 velas opostas, ou 6 velas, pelo que este número pode ser alterado. Obrigado.
 
DC2008:

É assim que é feito:

Muito obrigado! Funciona.

Explicar a lógica do mql5. Em mql4, int Hora() é usado para determinar o tempo em horas. Em mql5, não existe tal constante, tanto quanto eu entendi.

1.Como é que o programa reconhece que estamos a pedir o tempo em horas? Presumo deMqlDateTime?

2.Para adicionar a hora actual em minutos à hora actual em horas, ou seja, para descobrir a hora actual em minutos, a construção seria assim

 MqlDateTime tm;
 TimeCurrent(tm);
 int tek_vrema=tm.hour*60+tm.min;

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