Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4535
Beiträge: 41764
Benutzer: 6.930
Aktive Benutzer: 234
Links: 80
Wir begrüßen unseren neuesten Benutzer: Fusselliene
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Fussellien...
vor einem Tag
- ZHannes82
vor einem Tag
- LigthofGod
vor 2 Tagen
- mellower
vor 5 Tagen
- medallion

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 139
Gesamt: 140
Team: 0
Team:  
Benutzer:  traderdoc
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 10.05.20
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 30
janbuk63 befindet sich auf einem aufstrebenden Ast
Standard Push Notifications

Hallo!
wie man eine Push Benachrichtigung bei Metatrader aktiviert weiß ich inzwischen aber es kommen zu viele Nachrichten nähmlich auch dann wenn es ein Pendingorder lediglich modifiziert wird!
In meinem EA folgt der Pendingorder den aktuellen ASK-BID in vorgegebenen Abstand und es kommt zwangsweise zu vielen Modifikationen fast bei jedem Tick manchmal und jedes mal wird eine Push Nachricht aufs Handy versendet!
Diese Funktion versendet bei jedem Ereigniss d.h. bei öffnen, schliessen und das ist auch schön , leider aber auch bei modifizieren!
In meinem Fall löst das zu oft diese Art von Meldung was sehr stören kann!
Natürlich kann man die Modifizieren-Funktion verändern aber das würde die Funktion des ganzen EA und wie es auf Chartveränderungen reagiert beeinflussen und das eben will ich nicht!
Ich habe es noch nicht probiert aber evt. ist es möglich die Funktion: PushNotification() zu nutzen?
- und dann selber zu bestimmen wann es eine Nachricht senden soll !
Was passiert aber wenn ich die Push Benachrichtigung bei MetaTrader/Optionen/Benachrichtigung aktiviere?
Welche Nachrichten werden dann versendet?
Die von mir programmierte oder beide auch die von Metatrader d.h. bei jedem Ereigniss eine Nachricht!
Wenn beide dann wie kann man es lösen? Ich will ja nur die von mir selber programmierte Nachrichten empfangen und keine anderen!
Gruß:
  #2 (permalink)  
Alt 10.05.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.415
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Handelstransaktions-Nachrichten können doch nur gesendet werden wenn bei "Über Handelstransaktionen benachrichtigen" (2) ein Häkchen gesetzt und eine gültige MetaQuotes-ID hinterlegt wurde. Und auch dann wird nur gesendet, wenn überhaupt ein Häkchen bei "Push-Benachrichtigungen einschalten" (1) gesetzt wurde.

Also, woher stammen die vielen Push-Nachrichten bzw. wodurch?

Die notwendige Funktion heißt nicht PushNotification() sondern SendNotification(). Erstere existiert im MQL-Umfang nicht.

D.h. wird nur bei (1) das Häkchen gesetzt, werden auch nur dann Push-Nachrichten gesendet, wenn im Programm die Funktion SendNotification() angesprungen wurde. Würde bei (1) kein Häkchen sein würde trotz Benutzung von SendNotification keine Nachricht gesendet werden.

Und bevor SendNotification() angesprungen wird, würde ich nun per Code auswählen, was gesendet werden soll.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 10.05.20
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 30
janbuk63 befindet sich auf einem aufstrebenden Ast
Standard

Danke für die schnelle Antwort!
Vieleicht habe ich was durcheinander gebracht!
Ich meinte das Häkchen bei Optionen/Benachrichtigungen
gesetzt zu haben neben dem "Push-Benachrichtigungen einschalten!":
Dadurch kamen die vielen Push Nachrichten die man auch noch bei iPhone nicht ändern kann!Immer der gleich Ton!

Also wenn ich es leer lasse und nur der untere Häkchen setzte dann kommen nur die SendNotification Nachrichten die aus den Code meiner EA kommen?
Dann wäre es super! Dann kann ich selbst bestimmen was da gesendet wird und wann!
Danke!
LG
  #4 (permalink)  
Alt 10.05.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.415
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nein, Du musst das obere Kästchen setzen und das untere leer lassen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 12.05.20
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 30
janbuk63 befindet sich auf einem aufstrebenden Ast
Standard

Ja genau, oben setzten und unten leer lassen!
Jetzt ist Ruhe da!
Außerdem habe ich die Modifizieren-Funktion verbessert und es ist auch weniger los!
Jetzt habe ich mir so eine Push Funktion gebastelt und es werden nur Nachrichten also SendNotification gesendet wenn eine Position von Pending auf Aktiv wechselt mit "Instrument, Order Ticket , Kommentar: activeted" !
Wenn die Position geschlossen wird dann "Instrument, Order Ticket, Kommentar: closed, Profit: xx,xx"
das wars also, es kommen keine unnötige Sachen mehr!
Leider ich schaffe es nicht das die Funktion nur einmal diese Nachricht sendet!
Bei jedem Tick kommt die gleiche Nachricht!
Wie löst man elegant so was? Zeitstempel für jeden Ticket und dann vergleichen in einer Schleife?
-oder gibt es einfachere Lösung?
Gruß
  #6 (permalink)  
Alt 12.05.20
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.415
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das kommt drauf an, warum die Nachricht erteilt wurde.
Das OrderMofify() wird angesprungen, daraufhin wird die Order geändert, die Änderungen werden mit der Nachricht mitgeteilt - fertig. Beim nächsten Tick wird sicherlich die OrderModify()-Funktion nicht wieder gleich angesprungen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 12.05.20
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 30
janbuk63 befindet sich auf einem aufstrebenden Ast
Standard

wie schon in 1 Post geschrieben: bei meinem EA habe ich Buylimit und Selllimit und in einem bestimmten Fall folgt der Pending dem ASK-BID in einem vorher angelegtem Abstand.
Die ModifyOrder Funktion stellt nur sicher dass der Abstand nicht grösser wird aber darf natürlich kleiner werden und irgendwann aktiviert werden.
Also Pending folgt den Preis!
das bedeutet wenn der Preis "weglaufen" will wird korrigiert und sofort modifiziert! - andersrum natürlich nicht!
wie man sich denken kann: gibt es manchmal viele modify, modify,modify
und so weiter...
  #8 (permalink)  
Alt 13.05.20
Neues Mitglied
 
Registriert seit: Apr 2020
Beiträge: 14
TraumExperte befindet sich auf einem aufstrebenden Ast
Standard

wenn Du die Anzahl der Notifications weiter senken möchtest könntst Du mit einem Boolean Flag arbeiten. Ja den könntest Du dann über einen Zeitstempeln, einer Anzahl von Ticks, neuer Kerze oder einer anderen Bedingung ändern, so dass er wieder Notifcations sendet oder auch nicht.

also z..B.

if (!noNotification && orderModified) { SendNotification ("Ich will gesendet werden.");
noNotification=true;
}


Gruß

TraumExperte
  #9 (permalink)  
Alt 13.05.20
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 30
janbuk63 befindet sich auf einem aufstrebenden Ast
Standard

Hallo Traum Experte!
mit einem bool Schalter geht es nicht!
Es wird zwar nach dem Eischalten des EA tatsächlich einmal gesendet
der Schalter auf "aus = 0" gestellt und das wars!
Dann kommen keine Nachrichten mehr weil der Schalter bei nächsten Ereignis müsste irgendwie wieder eingeschaltet werden!
Ich habe ein bisschen gegoogelt und auf englishen Seiten eine Antwort gefunden allerdings nur Beschreibung und wie ich es verstanden habe :
man legt eine zwei dimensionale Array mit z.B. Ticket, Aktivierung,Schliessung !
Da wo Ticket steht ist natürlich Order Nummer gespeichert und da wo Aktievierung und Schliessung die booleanichen Schalter als 0 oder 1.
Ich bin kein Experte wie Du sich denken kannst aber ich verstehe das so dass es eine Tabelle ist wo neben dem Ticket Nummer notiert wird der jeweilige Zustand für den Schalter und wenn eine Nachricht gesendet wird wird der entsprechende Schalter auf 0 also auf "aus" gestellt.
Beim nächsten mal wenn wieder gesendet werden soll wird zuerst in diese Tabelle geprüft was neben dem Ticket Nummer steht.
Wenn da schon 0 steht wird nicht mehr gesendet - wenn 1 dann wird gesendet und der Wert auf 0 gesetzt.
Diese Werte müssen dann bleiben damit beim nächsten mal alles stimmt.
Ist zwar alles logisch aber es richtig zu programmieren ist eine andere Sache!
Soll Arrays schon am Anfang deklariert werden und wenn ja wie groß
wenn man doch nicht weiß wie viele Order in der Zukunft kommen?
Wenn man es in der Funktion macht dann bei jedem aufrufen der Funktion darf nicht alles wieder gelöscht werden sonder muss in der Funktion bleiben bis nächsten Aufruf!
Vermeintlich einfache Sache aber praktisch sehr schwer umzusetzen
Gruß
janbuk63
  #10 (permalink)  
Alt 13.05.20
Neues Mitglied
 
Registriert seit: Apr 2020
Beiträge: 14
TraumExperte befindet sich auf einem aufstrebenden Ast
Standard

Hallo janbuk63,

Du musst halt den Schalter wieder umlegen, wenn Du ihn ausgeschaltet hast ;-)

Bei meinem Bsp. z.B.

sagen wir nach 100 Ticks

in


OnTick() {

ticks++;

if (ticks==100) noNotification=false;

}

klar müsstest Du dann "ticks" rücksetzten wenn Du den Schalter wieder umlegst. Also

if (!noNotification && orderModified) { SendNotification ("Ich will gesendet werden.");
noNotification=true;
ticks=0;
}
Thema geschlossen

Lesezeichen

Stichworte
push notification

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 20:58 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2020 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2020 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------