Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1249

 

Salve.

È necessario adattare uno degli indicatori standard che sono appesi nel terminale. Non ho potuto trovare come accedere al loro codice e dove si trovano?

 
Sergey:

Salve.

È necessario adattare uno degli indicatori standard che sono appesi nel terminale. Non riesco a trovare come accedere al loro codice e dove esistono?

Non avrete accesso al codice degli indicatori standard. Ma ci sono esempi:

\MQL5 \Indicatori \Esempi\

 
Artyom Trishkin:

Non avrete accesso al codice degli indicatori standard. Ma ci sono esempi:

\MQL5 \Indicatori \Esempi\

Grazie per il suggerimento.

 
Ciao a tutti. È possibile scegliere un periodo specifico in mql5 per studiare le statistiche? O è conservato esclusivamente per tutto il periodo di vita del conto?
 

Quando si imposta l'allarme

Come posso impostare l'avviso di default per essere qualcosa di diverso da alert, per esempioalert2?

In quale file devo modificare?


 
Vitaly Muzichenko:

Quando si imposta l'allarme

Come posso impostare l'avviso di default per essere qualcosa di diverso da alert, per esempioalert2?

In quale file è necessario apportare modifiche?


Apparentemente nella cartella Sounds. L'ho trovato dove è installato il terminale. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

E a giudicare dall'ordine alfabetico, rinominare alert2 per essere più alfabetico di alert

 
Valeriy Yastremskiy:

Apparentemente nella cartella Sounds. L'ho trovato dove è installato il terminale. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

E a giudicare dall'ordine alfabetico, rinominare alert2 per essere più alfabetico di alert

Sì, come opzione, ma non proprio quello che vorrei.

Grazie!

 

Ho bisogno di trovare il profitto dell'ultimo ordine chiuso. Ho scritto una funzione:

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);
}

Finché gli ordini erano aperti tramite un "portlet" in OnTick() (MqlTick latestPrice;MqlTradeRequest request; ... etc.), la funzione funzionava. Appena ho iniziato ad aprire gli ordini usando #include <Trade\Trade.mqh> e ho scritto una funzione separata:

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(),")");
   }
}

la funzione di trovare un profitto ha smesso di funzionare (anche se gli ordini si aprivano correttamente). Ho restituito il "TypoScript" - funziona di nuovo. Perché un tale ***? Qual è la differenza? Non ho trovato nulla in include che possa dare un profitto di ordine chiuso. Per esempio, #include <Trade\HistoryOrderInfo.mqh> contiene tutto ma non ho trovato il profitto dell'ordine.

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

Finché gli ordini erano aperti tramite uno "spoiler" in OnTick() (MqlTick latestPrice;MqlTradeRequest request; ... etc.), la funzione funzionava. Una volta che ho iniziato ad aprire ordini usando #include <Trade\Trade.mqh>, ho scritto una funzione separata:

Non dimenticare diimpostare l'ID dell'Expert Advisor

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

Non dimenticare diimpostare l'ID dell'esperto

Grazie. Non ci sono tali labirinti in mql5. Invece di arrivare direttamente alla meta, bisogna fare delle deviazioni, attraverso un mucchio di rami, vicoli ciechi e ostacoli. Il linguaggio per il bene del linguaggio.