Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1249

 

Hallo.

Sie müssen einen der Standardanzeiger, die im Terminal hängen, anpassen. Ich konnte nicht herausfinden, wie man auf den Code zugreift, und wo liegen sie überhaupt?

 
Sergey:

Hallo.

Benötigt, um eine der Standardanzeigen, die im Terminal hängen, anzupassen. Ich kann nicht herausfinden, wie ich auf ihren Code zugreifen kann, und wo gibt es sie überhaupt?

Sie erhalten keinen Zugriff auf den Code von Standardindikatoren. Aber es gibt Beispiele:

\MQL5\Indikatoren\Beispiele\

 
Artyom Trishkin:

Sie werden keinen Zugang zum Code der Standardindikatoren haben. Aber es gibt Beispiele:

\MQL5\Indikatoren\Beispiele\

Danke für den Hinweis.

 
Hallo zusammen. Ist es möglich, in mql5 einen bestimmten Zeitraum für das Studium der Statistik zu wählen? Oder wird es ausschließlich während der gesamten Laufzeit des Kontos geführt?
 

Bei der Einstellung des Alarms

Wie kann ich die Standardwarnung auf etwas anderes als "alert" einstellen, zum Beispiel"alert2"?

Welche Datei muss ich bearbeiten?


 
Vitaly Muzichenko:

Bei der Einstellung des Alarms

Wie kann ich die Standardwarnung auf etwas anderes als "alert" einstellen, zum Beispiel"alert2"?

In welcher Datei müssen Änderungen vorgenommen werden?


Offenbar im Ordner Sounds. Ich habe es dort gefunden, wo das Terminal installiert ist. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

Und nach der alphabetischen Reihenfolge zu urteilen, benennen Sie alert2 so um, dass es alphabetischer ist als alert

 
Valeriy Yastremskiy:

Offenbar im Ordner Sounds. Ich habe es dort gefunden, wo das Terminal installiert ist. НЕ в папке C:\Users\yastremskiiva\AppData\Roaming\MetaQuotes\Terminal\99193835FC75DE8874B99F9A3B93F15E

Und nach der alphabetischen Reihenfolge zu urteilen, benennen Sie alert2 so um, dass es alphabetischer ist als alert

Ja, das ist eine Option, aber nicht ganz das, was ich möchte.

Ich danke Ihnen!

 

Sie müssen den Gewinn des letzten geschlossenen Auftrags ermitteln. Ich habe eine Funktion geschrieben:

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

Solange die Aufträge über ein "Portlet" in OnTick() geöffnet wurden (MqlTick latestPrice;MqlTradeRequest request; ... etc.), funktionierte die Funktion. Sobald ich anfing, Aufträge zu öffnen, indem ich #include <Trade\Trade.mqh> verwendete und eine separate Funktion schrieb:

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

die Funktion zur Gewinnermittlung funktioniert nicht mehr (obwohl die Aufträge korrekt geöffnet wurden). Ich habe das "TypoScript" zurückgegeben - es funktioniert wieder. Warum so ein ***? Worin besteht der Unterschied? Ich habe nichts gefunden, was einen Gewinn bei geschlossenem Auftrag ergeben würde. Zum Beispiel enthält #include <Trade\HistoryOrderInfo.mqh> alles, aber ich habe den Auftragsgewinn nicht gefunden.

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

Solange die Aufträge über einen "Spoiler" in OnTick() geöffnet wurden (MqlTick latestPrice;MqlTradeRequest request; ... etc.), funktionierte die Funktion. Als ich anfing, Aufträge mit #include <Trade\Trade.mqh> zu öffnen, schrieb ich eine separate Funktion:

Vergessen Sie nicht,die Kennung des Expert Advisors festzulegen

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

Vergessen Sie nicht,die Experten-ID einzustellen

Ich danke Ihnen. Ich habe keine solchen Labyrinthe in mql5. Statt geradewegs zum Ziel zu kommen, muss man einige Umwege machen, durch eine Reihe von Abzweigungen, Sackgassen und Hindernissen. Sprache um der Sprache willen.