Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXI): Handelsklassen - Plattformübergreifendes Basis-Handelsobjekt" - Seite 3
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wenn Sie eine Handelsanfrage mit einer Position vergleichen müssen, ist es am einfachsten, die Positionskennung zu setzen (keine Magie). Jede Anfrage hat ihre eigene Kennung. Die Magie des Beraters kann für alle Positionen gleich gelassen werden. Anhand der Kennung (sie wird in die Magie einer Position oder eines Auftrags geschrieben und geht nie verloren) können Sie dann die Anfrage und die Position/den Auftrag jederzeit genau abgleichen.
Ist es etwas wie dieses?
Handelsanfrage:
Event Handler:
Problem: Die Methode CEvent::GetPendReqID(), die ich oben benötige, lautet protected!! Gibt es bessere Ideen, ohne dass ich den DoEasy-Quellcode ändern muss? Meiner bescheidenen Meinung nach, sollten diese Methoden öffentlich sein ;-)
Problem: Die Methode CEvent::GetPendReqID(), die ich oben benötige, lautet protected !! Gibt es bessere Ideen, ohne dass ich den DoEasy-Quellcode ändern muss? Meiner bescheidenen Meinung nach, sollten diese Methoden öffentlich sein ;-)
Sie müssen die Klasse CEngine im Auge behalten - nur sie gibt Benutzerprogrammen Zugriff auf die Bibliothek.
Alle anderen Klassen sind für die Bedürfnisse der Bibliothek und nicht für die Benutzer gedacht, mit Ausnahme der Bibliotheksdienstfunktionen, die im Programm verfügbar sind, nachdem die Bibliothek mit ihm verbunden wurde.
Sie müssen die CEngine-Klasse beobachten - nur sie gibt Benutzerprogrammen Zugriff auf die Bibliothek.
Alle anderen Klassen sind für die Bedürfnisse der Bibliothek und nicht für die Benutzer bestimmt, mit Ausnahme der Bibliotheksdienstfunktionen, die im Programm verfügbar sind, nachdem die Bibliothek mit ihm verbunden wurde.
Können Sie mir bitte ein Beispiel geben? Ich schaue mir die Klasse CEngine an und sehe, dass es möglich ist, eine Liste von Ereignissen zu extrahieren, ihren Typ zu überprüfen usw... Ich kann also auf jedes Ereignis zugreifen, finde aber keine offensichtliche Möglichkeit, spezifische Ereignisdetails, die in der magischen Zahl verpackt sind (Gruppen- und Anforderungs-ID), aus dem CEngine-Objekt zu lesen. So wie ich es sehe, muss ich diese Informationen immer noch direkt aus den CEvent-Objektinstanzen lesen, wie in meinem Event-Handler-Beispiel oben in der Even-Handler-Methode meines Roboters, d. h. CEvent:GetPendReq()
class CEngine { //... //... //--- Rückgabe (1) der Liste der Order-, Deal- und Positionsereignisse, (2) des Basis-Handelsereignisobjekts nach Index und der (3) Anzahl der neuen Handelsereignisse CArrayObj *GetListAllOrdersEvents(void) { return this.m_events.GetList(); } CEventBaseObj *GetTradeEventByIndex(const int index) { return this.m_events.GetTradeEventByIndex(index); } int GetTradeEventsTotal(void) const { return this.m_events.GetTradeEventsTotal(); } //--- Zurücksetzen des letzten Handelsereignisses void ResetLastTradeEvent(void) { this.m_events.ResetLastTradeEvent(); } //--- Rückgabe des (1) letzten Handelsereignisses, (2) des letzten Ereignisses in den Kontoeigenschaften und (3) des letzten Ereignisses in den Symboleigenschaften ENUM_TRADE_EVENT LastTradeEvent(void) const { return this.m_last_trade_event; } int LastAccountEvent(void) const { return this.m_last_account_event; } int LastSymbolsEvent(void) const { return this.m_last_symbol_event; } //--- Rückgabe des (1) Hedge-Kontos, (2) Arbeit im Tester, (3) Kontoereignis, (4) Symbol-Ereignis und (5) Handelsereignis-Flag bool IsHedge(void) const { return this.m_is_hedge; } bool IsTester(void) const { return this.m_is_tester; } bool IsAccountsEvent(void) const { return this.m_accounts.IsEvent(); } bool IsSymbolsEvent(void) const { return this.m_symbols.IsEvent(); } bool IsTradeEvent(void) const { return this.m_events.IsEvent(); } //... //... };Не могли бы вы привести мне пример? Я смотрю на класс CEngine и вижу, что можно извлечь список событий, проверить их тип и т. Д., Поэтому я могу получить доступ к каждому событию, но не нахожу очевидного способа прочитать конкретные детали события, упакованные в магическое число (группы и идентификатор запроса) из объекта CEngine - как я вижу, мне все еще нужно читать эту информацию непосредственно из экземпляров объекта CEvent, как в моем примере обработчика событий выше в методе обработчика четных событий моего робота, то есть CEvent :: GetPendReqID ()
Warten Sie bitte ein wenig. Der nächste Artikel im ru-Segment wird sich mit Beratern beschäftigen, und da werde ich versuchen, das zu erklären.
Warten Sie bitte ein wenig. Der nächste Artikel im ru-Segment wird sich mit Beratern befassen, und dort werde ich versuchen, das zu erklären.
OK, cool - danke...