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

 
ulong  HistoryDealGetTicket(
   int  index      // номер сделки
   );

Was ist eine Transaktionsnummer?

Wie wähle ich den letzten Handel aus? Index 0?

Ich habe ein Konto mit einer offenen Position und einer Historie von Geschäften. Ich möchte den letzten Handel auswählen:

#include <Trade\DealInfo.mqh>  

CDealInfo deal;  

   for(int n=20;n>=0;n--)
     {
      deal.SelectByIndex(n);
      Print("Тикет сделки=",deal.Ticket()," n=",n);
     }


Alle Ticks 0...
 
tor4en:
ulong  HistoryDealGetTicket(
   int  index      // номер сделки
   );

Was ist eine Transaktionsnummer?

Siehe die Beschreibung der Funktion HistoryDealGetTicket(). Es gibt auch ein Beispiel dafür, wie man mit einer Liste von Geschäften arbeiten kann.
 
Yedelkin:
Siehe Beschreibung der Funktion HistoryDealGetTicket(). Es gibt auch ein Beispiel dafür, wie man mit der Liste der Geschäfte arbeiten kann.
Es ist nicht klar, wie man mit der Funktion SelectByIndex() aus der Standardbibliothek arbeitet.
 
tor4en Es ist nicht klar, wie die Funktion SelectByIndex() aus der Standardbibliothek zu behandeln ist.
Ich habe versucht, eine Antwort auf Ihre Frage "Was ist eine Transaktionsnummer?" zu finden. Können wir davon ausgehen, dass Sie sich mit dieser Frage beschäftigt haben?
 
Yedelkin:
Ich habe versucht, eine Antwort auf Ihre Frage "Was ist eine Transaktionsnummer? Können wir davon ausgehen, dass Sie sich mit dieser Frage beschäftigt haben?
Sie dürfen, danke. Können Sie mir sagen, ob es möglich ist, das letzte Angebot auf einer Position auszuwählen, ohne die Angebote durchzugehen und die Zeiten oder die Tickets zu vergleichen?
 
tor4en: Wissen Sie, ob es möglich ist, das letzte Geschäft einer Position auszuwählen, ohne die Geschäfte durchzugehen und Zeiten oder Ticks zu vergleichen?

1. Leider versuche ich nicht, die Standardbibliothek zu verwenden, so dass ich keine richtigen Ratschläge geben kann, wie man mit der SelectByIndex()-Methode arbeitet. Ich kann nur anmerken, dass die CDealInfo-Klasse selbst als Klasse für die Arbeit mit Transaktionseigenschaften positioniert ist, d.h. die Fragen des Erhaltens der Liste von Transaktionen scheinen ausgelassen zu werden.

2. Wie Sie wissen, verwendet die Methode SelectByIndex() einfach die Funktion HistoryDealGetTicket(). Aus der Beschreibung dieserFunktion ergibt sich, dass vor dem Zugriff auf das Geschäft die Liste aller Geschäfte abgerufen werden muss . Im Besonderen,

//--- запросим историр ю сделок в указанном интервале
   HistorySelect(from_date,to_date);
//--- общее количество в списке сделок
   int deals=HistoryDealsTotal();
//--- теперь обработаем каждую сделку
   for(int i=0;i<deals;i++)
     {
      deal_ticket=HistoryDealGetTicket(i);
      ...
     }

Vor etwa einem Jahr habe ich im Forum gefragt, ob es möglich ist, dass das letzte Geschäft in der Liste immer einen Index von HistoryDealsTotal()-1 hat , aber ich habe keine Antwort erhalten (oder ich habe es nicht bemerkt, was unwahrscheinlich ist). Mit der Methode des wissenschaftlichen Beweises habe ich keine Widerlegung dieser These gefunden. Logischerweise müsste also jedes neue Geschäft, über das das Basis-Terminal Informationen erhält, die Liste der Geschäfte einfach um eins erhöhen, und die Indizes in der Liste der Geschäfte würden jedem neuen Geschäft in aufsteigender Reihenfolge zugewiesen. Wie es in Wirklichkeit ist - weiß ich nicht.

3. Ich schlage auch vor, den ArtikelOrders, Positions and Trades in MetaTrader 5 und (habe ihn selbst nicht gelesen) - How to use the Standard Library trade classes when writing an Expert Advisor zu lesen.

Das ist alles :)

 
HistoryDealsTotal()-1
Das scheint eine gute Idee zu sein. Wenn wir nach Geschäften nach einer bestimmten Position suchen, ist es besser , HistorySelectByPosition(position_ID) zu verwenden. Ich danke Ihnen.
Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Торговые функции / HistorySelectByPosition - Документация по MQL5
 
tor4en: Wenn wir nach Geschäften an einer bestimmten Position suchen, ist es besser, HistorySelectByPosition() zu verwenden.
Genau richtig :)
 
Hallo!!!

Experten, Hilfe, bitte. Ich habe zwei EAs gebaut, um sozusagen einen Synergieeffekt zu erzielen, die einfacheren scheinen sich zu verbinden, aber dieser hier lässt sich nicht kompilieren, obwohl ich alles richtig gemacht habe, wie bei dem vorherigen. Das sind die Informationen, die er ausgibt

Supervisor' - Funktion kann nur im globalen Bereich deklariert werden 20_200_pips_MQL5_v1.mq5 360 18

'Perceptron' - Funktion kann nur im globalen Bereich deklariert werden 20_200_pips_MQL5_v1.mq5 418 8

basicTradingSystem' - Funktion kann nur im globalen Bereich deklariert werden 20_200_pips_MQL5_v1.mq5 434 6

Die Funktion kann nur im globalen Bereich deklariert werden

Ich bin wirklich verwirrt, wo ist der globale Geltungsbereich?

 
chipo: Ich habe zwei EAs für eine Art Synergieeffekt verbunden, die einfacheren scheinen sich zu verbinden, aber dieser kompiliert nicht, obwohl ich alles richtig gemacht habe, wie mit dem vorherigen. Dies ist der Inhalt des Dokuments

Supervisor' - Funktion kann nur im globalen Bereich deklariert werden 20_200_pips_MQL5_v1.mq5 360 18

'Perceptron' - Funktion kann nur im globalen Bereich deklariert werden 20_200_pips_MQL5_v1.mq5 418 8

basicTradingSystem' - Funktion kann nur im globalen Bereich deklariert werden 20_200_pips_MQL5_v1.mq5 434 6

Die Funktion kann nur im globalen Bereich deklariert werden

Ich bin wirklich verwirrt, wo ist der globale Geltungsbereich?

Solche Meldungen erscheinen zum Beispiel, wenn eine Funktion innerhalb einer anderen deklariert wird. Sehen Sie nach, ob so etwas im Code vorkommt:

func_1()
   {
    void  func_2()...
   }
Grund der Beschwerde: