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

 

Olá.

Necessidade de adaptar um dos indicadores padrão que se encontram pendurados no terminal. Não conseguiam encontrar como aceder ao seu código e onde é que eles sequer mentem?

 
Sergey:

Olá.

Necessidade de adaptar um dos indicadores padrão que se encontram pendurados no terminal. Não consigo encontrar como aceder ao seu código e onde é que eles sequer existem?

Não terá acesso ao código de indicadores padrão. Mas há exemplos:

\MQL5 Indicadores Exemplos

 
Artyom Trishkin:

Não terá acesso ao código dos indicadores padrão. Mas há exemplos:

\MQL5 Indicadores Exemplos

Obrigado pela dica.

 
Olá a todos. É possível escolher um período específico em mql5 para estudar estatísticas? Ou é mantido apenas durante todo o período de vida da conta?
 

Ao definir o alerta

Como posso definir o alerta padrão para ser algo diferente de alerta, por exemplo,alerta2?

Em que ficheiro preciso de editar?


 
Vitaly Muzichenko:

Ao definir o alerta

Como posso definir o alerta padrão para ser algo diferente de alerta, por exemplo,alerta2?

Em que ficheiro é necessário fazer alterações?


Aparentemente, na pasta Sounds. Encontrei-o onde o terminal está instalado. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

E, a julgar pela ordem alfabética, renomear alerta2 para ser mais alfabético do que alerta

 
Valeriy Yastremskiy:

Aparentemente, na pasta Sounds. Encontrei-o onde o terminal está instalado. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

E, a julgar pela ordem alfabética, renomear alerta2 para ser mais alfabético do que alerta

Sim, como opção, mas não é bem o que eu gostaria.

Obrigado!

 

Necessidade de encontrar o lucro da última encomenda fechada. Escrevi uma função:

double LastProfitOrder()
{
   int      i;
   int      total  = HistoryDealsTotal();
   ulong    ticket;
   datetime time; 
   long     type;
   string   symbol; 
   ulong    magic; 
   double   profit;
   double   profits = 0;
   datetime times   = 0;
   
   HistorySelect(0, TimeCurrent());
   
   for(i = total - 1; i >= 0; i--)
   {
      ticket = HistoryDealGetTicket(i);
      time   = (datetime)HistoryDealGetInteger(ticket, DEAL_TIME); 
      type   = HistoryDealGetInteger(ticket, DEAL_TYPE);
      symbol = HistoryDealGetString(ticket, DEAL_SYMBOL); 
      magic  = HistoryDealGetInteger(ticket, DEAL_MAGIC); 
      profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); 
         
      if(symbol == Symbol() && magic == Magic)
      {
         if(type == DEAL_TYPE_BUY || type == DEAL_TYPE_SELL)
         {
            if(time > times)
            {
               profits = profit;
               times   = time;
            }
         }
      }
   }
   return(profits);
}

Desde que as encomendas fossem abertas através de uma "portlet" em OnTick() (MqlTick latestPrice;MqlTradeRequest request; ... etc.), a função funcionava. Assim que comecei a abrir ordens usando #include <trade\Trade\Trade.mqh> e escrevi uma função separada:

void OpenOrderBuy()
{
   double open = NormalizeDouble(iHigh(NULL, 0,1) + (VO+sp)*_Point, _Digits);
   double sl   = NormalizeDouble(open - SL*_Point, _Digits);
   double tp   = NormalizeDouble(open + TP*_Point, _Digits);
   
   if(!m_trade.BuyStop(GetLots(), open, _Symbol, sl, tp, ORDER_TIME_SPECIFIED, DateExp()))
   {
      Print("Метод BuyStop() потерпел поражение. Код возврата = ", m_trade.ResultRetcode(),
            ". Описание кода: ", m_trade.ResultRetcodeDescription());
   }
   else
   {
      Print("Метод BuyStop() исполнен успешно. Код возврата = ", m_trade.ResultRetcode(),
            " (", m_trade.ResultRetcodeDescription(),")");
   }
}

a função de encontrar um lucro deixou de funcionar (embora as encomendas estivessem a abrir correctamente). Devolvi o "TypoScript" - funciona novamente. Porquê um ***? Qual é a diferença? Não encontrei nada em incluir que desse lucro a uma ordem fechada. Por exemplo, #include <Trade\HistoryOrderInfo.mqh> contém tudo mas ainda não encontrei o lucro da encomenda.

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Взаимодействие клиентского терминала и торгового сервера для проведения операций постановки ордеров производится посредством торговых запросов. Запрос представлен специальной предопределенной структурой MqlTradeRequest, которая содержит все поля, необходимые для заключения торговых сделок. Результат обработки запроса представлен структурой...
 
Youri Lazurenko:

Desde que as encomendas fossem abertas através de um "spoiler" em OnTick() (MqlTick latestPrice;MqlTradeRequest request; ... etc.), a função funcionava. Assim que comecei a abrir encomendas usando #include <Trade\Trade\mqh>, escrevi uma função separada:

Não se esqueça dedefinir o identificador do Expert Advisor

   m_trade.SetExpertMagicNumber(InpMagic);
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetExpertMagicNumber
Документация по MQL5: Стандартная библиотека / Торговые классы / CTrade / SetExpertMagicNumber
  • www.mql5.com
SetExpertMagicNumber(ulong) - CTrade - Торговые классы - Стандартная библиотека - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Não se esqueçade definir a identificação do perito

Obrigado. Não tenho tais labirintos em mql5. Em vez de se chegar directamente ao objectivo, é preciso fazer alguns desvios, através de um monte de ramos, becos sem saída e obstáculos. Linguagem por causa da linguagem.