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

 
Artyom Trishkin:

In diesem Fall ist es nicht "besser", sondern genau das, was Sie brauchen - es ist eine Wrapper-Klasse für Standard-Handelsfunktionen. Es können nicht mehrere Assistenten gespeichert werden. Daher muss er jedes Mal eine Magie setzen, bevor und wenn er eine Position mit einer neuen Magie öffnen muss.

Im Allgemeinen ist die Reihenfolge wie folgt:

  • Positionen sollten mit Magie 1 eröffnet werden - wir setzen Magie 1 und nachfolgende Positionen werden Magie 1 haben,
  • ist es notwendig, Positionen mit einem Magier 2 zu eröffnen - wir richten Magier 2 ein und alle folgenden Positionen werden einen Magier 2 haben,
  • es ist notwendig, Positionen mit magischer 3 zu eröffnen - wir werden magische 3 einrichten und jede nächste Position wird magische 3 haben,

usw...

Ich habe es so formuliert, weil manche Leute vielleicht eine andere Meinung haben und es auch funktioniert.

 
Artyom Trishkin:

In diesem Fall ist es nicht "besser", sondern genau das, was Sie brauchen - es ist eine Wrapper-Klasse für Standard-Handelsfunktionen. Es können nicht mehrere Assistenten gespeichert werden. Daher muss er jedes Mal eine Magie setzen, bevor und wenn er eine Position mit einer neuen Magie öffnen muss.

Im Allgemeinen ist die Reihenfolge wie folgt:

  • Positionen sollten mit Magie 1 eröffnet werden - wir setzen Magie 1 und nachfolgende Positionen werden Magie 1 haben,
  • ist es notwendig, Positionen mit einem Magier 2 zu eröffnen - wir richten Magier 2 ein und alle folgenden Positionen werden einen Magier 2 haben,
  • es ist notwendig, Positionen mit magischer 3 zu eröffnen - wir werden magische 3 einrichten und jede nächste Position wird magische 3 haben,

usw...

Es war folgendermaßen:

if(BuyCount()>0)
        {
         Print("Уже есть позиция на покупку !!!");
         return; // не добавлять к открытой позиции на покупку
        }
         SL=NormalizeDouble(latest_price.ask - STP*_Point,_Digits);
         TP=NormalizeDouble(latest_price.ask + TKP*_Point,_Digits);
         m_trade.SetExpertMagicNumber(Magic);
         m_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");
         m_position.Select(_Symbol);
           {
            ulong myMagic=m_position.Magic();
            Print(" Открыта поза Бай с магиком № ",myMagic,", И спредом ",SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));
           }

m_trade.SetExpertMagicNumber(Magic); vor der Eröffnung einer Position oder nachm_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");

 
Vladimir Karputov:

Da es in der CTrade-Klasse keineGetExpertMagicNumber-Methode gibt, drucken Sie diesen Code nach der Handelsoperation aus:

Auf diese Weise können Sie überprüfen, ob beide EAs unterschiedliche Magie haben.

Vielen Dank, das ist sehr praktisch. Ich brauche die CPositionInfo-Klasse nicht, ich muss die Position nicht auswählen. In der Testversion funktioniert es, aber Sie müssen auf die Entwicklung des Kontos warten.

 

Bitte erklären Sie mir den Unterschied zwischen SymbolInfoSessionQuote undSymbolInfoSessionTrade?
Oder auch: Was ist der Unterschied zwischen einer Kurssitzung und einer Handelssitzung?

Heiliger Strohsack
! Und was ist session_index,// Sitzungsnummer
Haben wir nummerierte Sitzungen? Nach welchem Prinzip werden sie nummeriert, wo steht das geschrieben?

 

Bitte beraten Sie, wie man void Ignore(long value) { m_ignore=value; } Methode der Standard-CExpertSignal-Klasse in benutzerdefinierten Trailing-Klasse bei der Programmierung in MQL5 verwenden? Wie kann ich darauf zugreifen?

Ich habe eine benutzerdefinierte Signalklasse, die mir Methoden zum Öffnen und Schließen von Positionen bietet. Aber beim Trailing wollte ich die Position mit einer anderen Methode halten. Wenn Sie die Klassen MySignal und MyTrailing separat schreiben, wird eine Position durch die Bedingung geschlossen, die zuerst ausgelöst wurde. Wenn die Trailing-Bedingung früher ausgelöst wurde, ist alles in Ordnung. Aber manchmal kommt ein neues (Umkehr-)Signal von MySignal und die Position wird umgedreht, und ich brauche es, um von Trailing nach der Eröffnung begleitet zu werden, nicht zu schließen und nicht eine neue zu eröffnen. Ich habe mir die Basisklassen angesehen und habe das Gefühl, dass m_ignore aus der Basisklasse signals dafür verantwortlich ist. Wenn ihm im entsprechenden Filter der Wert 1 zugewiesen wird, scheint es zu funktionieren, wie es sollte. Ich habe filter0.Ignore(0) der Klasse Expert Advisor in OnInit hinzugefügt. Aber ich bin neu in OOP und verstehe nicht, wie ich diesen Wert in der Klasse MyTrailing ändern kann, die nicht von der Klasse CExpertSignal geerbt wurde, sondern deren "Cousin" ist (sagen wir filter0.Ignore(1) ). Bitte teilen Sie mir mit, wie ich dies tun kann.

Eigentlich mehr allgemeine Frage: wie man Informationen zwischen zwei Klassen, die nicht Nachkommen sind übergeben? Wie überträgt man Informationen von der Nachlaufklasse zur Signalklasse? Wahrscheinlich können Sie eine globale Variable erstellen und über sie kommunizieren. Aber das sieht im Vergleich zur Logik geschützter Mitglieder in OOP ziemlich pervers aus.


 
User_mt5:

Bitte erklären Sie mir den Unterschied zwischen SymbolInfoSessionQuote undSymbolInfoSessionTrade?
Oder auch: Was ist der Unterschied zwischen einer Kurssitzung und einer Handelssitzung?

Heiliger Strohsack
! Und was ist session_index,// Sitzungsnummer
Haben wir nummerierte Sitzungen? Nach welchem Prinzip werden sie gezählt, wo steht das geschrieben?

In einfachen Worten.

Quotierungssitzung - die Quotierung findet statt (aber es kann ein Handelsverbot bestehen).

Handelssitzung (innerhalb oder zeitgleich mit der Börsensitzung) - Sie können handeln.

Sitzungsindex - die Indexnummer der Sitzung von 00:00:00-23:59:59 Serverzeit (wenn es Pausen gibt, dann ist die Sitzung größer als 1).

Siehe die Spezifikation für jedes Symbol in der Marktübersicht.

 
Kirill Belousov:

In einfachen Worten

Notierungssitzung - Notierungen finden statt (aber es kann ein Handelsverbot bestehen).

Handelssitzung (innerhalb oder zeitgleich mit der Kurssitzung) - Sie können handeln.

Sitzungsindex - die Indexnummer der Sitzung von 00:00:00-23:59:59 Serverzeit (wenn es Lücken gibt, ist die Sitzung größer als 1).

Siehe Spezifikation für jedes Symbol in der Marktübersicht.

Danke für die Klarstellung. Sie haben mir geholfen.

 
Vladimir Karputov:

Cent-Signale können nur noch kostenlos sein.

Warum kann ich den Namen in meinem Profil nicht ändern?

 
tsd Tsepkov:

Warum kann man den Namen im Profil nicht ändern?

Ich habe es gerade überprüft: Der Signalname lässt sich problemlos bearbeiten.

 
Vladimir Karputov:

Ich habe soeben überprüft, dass der Signalname durchaus editierbar ist.

Ich meine den Vornamen, da steht, dass man ihn in einen echten Namen ändern soll, aber das funktioniert nicht.

Grund der Beschwerde: