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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36910
Benutzer: 6.077
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Batangenyo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 8 Minuten
- Batangenyo
vor 20 Stunden
- Spitzmaus
vor 22 Stunden
- juleslesqu...
vor 2 Tagen
- hmf44
vor 2 Tagen
- Crossa

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gäste: 62
Gesamt: 66
Team: 0
Team:  
Benutzer:  Batangenyo, Domke01, fxnoob, JJ-FX
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 20.01.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hoschie Beitrag anzeigen
Moin,

bei meinem eigenen EA verwende ich folgenden Code-Snippet und prüfe ob mein Trade( in diesem Fall immer nur einer) offen oder schon geschlossen ist:
PHP-Code:

void checkOpenOrders
()
      {
      
int count=0;
          for(
int pos OrdersTotal()-1pos >= pos--) if (
              
OrderSelect(posSELECT_BY_POS)                 // Nur meine Auftraege w/
          
&&  OrderMagicNumber()  == MAGICNUMBER            // Meine Magic Nummer
          
&&  OrderSymbol()       == Symbol())
          {
// und mein Paar
              
count++;
                  
          }
    
    
      if ( !
count)//<---:confused:
         
// Keine offene Order
       
SendMail("",""); 
         }        
      } 
Carpe Diem,
Hoschie
PHP-Code:
void checkOpenOrders()
      {
        if(
OrdersTotal()<1SendMail("",""); 
         } 
  #12 (permalink)  
Alt 20.01.14
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pako Beitrag anzeigen
PHP-Code:
void checkOpenOrders()
      {
        if(
OrdersTotal()<1SendMail("",""); 
         } 


Moin,

ich würde empfehlen nie ohne Magic-Nr zu arbeiten, weil sonst nie unterschieden werden kann ob manuelle Trades oder Trades mit EA(s).

Carpe Diem,
Hoschie
  #13 (permalink)  
Alt 20.01.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hoschie Beitrag anzeigen
Moin,

ich würde empfehlen nie ohne Magic-Nr zu arbeiten, weil sonst nie unterschieden werden kann ob manuelle Trades oder Trades mit EA(s).

Carpe Diem,
Hoschie
Zitat:
Zitat von Hoschie Beitrag anzeigen
Moin,

bei meinem eigenen EA verwende ich folgenden Code-Snippet und prüfe ob mein Trade( in diesem Fall immer nur einer) offen oder schon geschlossen ist:
PHP-Code:

void checkOpenOrders()
{
int count=0;
for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
OrderSelect(pos, SELECT_BY_POS) // Nur meine Auftraege w/
&& OrderMagicNumber() == MAGICNUMBER // Meine Magic Nummer
&& OrderSymbol() == Symbol())
{// und mein Paar
count++;

}


if ( !count)
{ // Keine offene Order
SendMail("","");
}
}
Carpe Diem,
Hoschie
wenn 1 trade wozu magic???
  #14 (permalink)  
Alt 20.01.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

@Jacky,

@fxdaytrader hat es bereits geschrieben, das kann kein Script sein, weil dieses nur einmal nach Installation auf den Chart läuft. Das wäre unbrauchbar für Dein Anliegen.
Die hier angebotenen Codelösungen von @Hoschi und @pako sind eigentlich auch nicht recht zu gebrauchen, weil damit ständig mit jedem Tick eine Mail gesendet werden würde und nicht einmalig nach dem Schließen.

Das Problem kann man u.a. mit der TicketNumber lösen. Also etwa der Art:
Code:
//vorher global deklarieren als
int TN;

//Z.B. nach dem Senden der Order wird TN der Wert der TicketNumber zu gewiesen.
TN = OrderSend(................);

//und in der Funktion der Überwachung geschlossener Trades nach der TN suchen

void*checkHistoryOrders() {
  *for(int*pos*=*OrdersHistoryTotal()-1;*pos*>=*0*;*pos--)*{
      if *(OrderSelect(pos,*SELECT_BY_POS, MODE_HISTORY)*{
         if (OrderSymbol() == Symbol()
             && OrderMagicNumber() =*MAGICNUMBER) {
            if (OrderTicket() == TN) {
*******        SendMail("","");
               TN = 0;
               break;
*********   }********
****     }
      }
   }
}

traderdoc
  #15 (permalink)  
Alt 20.01.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Sorry, ich kann derzeitig mein letztes Post nicht editieren und habe keine Ahnung wie die * Zeichen in den Code kommen.
Die sollten einfach ignoriert werden!

traderdoc
  #16 (permalink)  
Alt 20.01.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
@Jacky,

@fxdaytrader hat es bereits geschrieben, das kann kein Script sein, weil dieses nur einmal nach Installation auf den Chart läuft. Das wäre unbrauchbar für Dein Anliegen.
Die hier angebotenen Codelösungen von @Hoschi und @pako sind eigentlich auch nicht recht zu gebrauchen, weil damit ständig mit jedem Tick eine Mail gesendet werden würde und nicht einmalig nach dem Schließen.

Das Problem kann man u.a. mit der TicketNumber lösen. Also etwa der Art:
Code:
//vorher global deklarieren als
int TN;

//Z.B. nach dem Senden der Order wird TN der Wert der TicketNumber zu gewiesen.
TN = OrderSend(................);

//und in der Funktion der Überwachung geschlossener Trades nach der TN suchen

void*checkHistoryOrders() {
  *for(int*pos*=*OrdersHistoryTotal()-1;*pos*>=*0*;*pos--)*{
      if *(OrderSelect(pos,*SELECT_BY_POS, MODE_HISTORY)*{
         if (OrderSymbol() == Symbol()
             && OrderMagicNumber() =*MAGICNUMBER) {
            if (OrderTicket() == TN) {
*******        SendMail("","");
               TN = 0;
               break;
*********   }********
****     }
      }
   }
}

traderdoc
Code:
if(OrderClose(param)) SendMail("","");
wie und wo eingebaut
  #17 (permalink)  
Alt 20.01.14
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pako Beitrag anzeigen
wenn 1 trade wozu magic???
Er schreibt ja nicht von einem Trade, sondern von einem EA, der selten handelt. Jeder EA, wenn er professionel erstellt wurde, arbeitet mit Magic-Nr.

"ich verwende einen EA, der nur sehr selten handelt. Gibt es eine Möglichkeit, mir eine E-Mail senden zu lassen bei einem geschlossenen Trade? Bin dankbar über jede Hilfe"
  #18 (permalink)  
Alt 20.01.14
Mitglied
 
Registriert seit: Jan 2012
Beiträge: 142
Hoschie befindet sich auf einem aufstrebenden Ast
Standard

Warum soll das nicht zu gebrauchen sein?
Ich habe Ihm nur eine Methode gegeben, und keinen vollständigen EA. Natürlich muss er eine globale Variabel wie auch bei dir mit der TicketNr. TN definieren.






Gruss,
Hoschie
  #19 (permalink)  
Alt 20.01.14
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hoschie Beitrag anzeigen
Er schreibt ja nicht von einem Trade, sondern von einem EA, der selten handelt. Jeder EA, wenn er professionel erstellt wurde, arbeitet mit Magic-Nr.
Code:
void checkOpenOrders()
{
int count=0;// int
for(int pos = OrdersTotal()-1; pos >= 0 ; pos--) if (
OrderSelect(pos, SELECT_BY_POS) // Nur meine Auftraege w/
&& OrderMagicNumber() == MAGICNUMBER // Meine Magic Nummer
&& OrderSymbol() == Symbol())
{// und mein Paar
count++;

}


if ( !count)// bool
{ // Keine offene Order
SendMail("",""); 
} 
}
  #20 (permalink)  
Alt 20.01.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hoschie Beitrag anzeigen
Warum soll das nicht zu gebrauchen sein?
Ich habe Ihm nur eine Methode gegeben, und keinen vollständigen EA. Natürlich muss er eine globale Variabel wie auch bei dir mit der TicketNr. TN definieren.

Gruss,
Hoschie
Na ja, weil Deine Methode eben nicht zum Ziel führt. Immer, wenn keine Order offen ist (wobei ich das !count für eine bool-Variable mal einfach so stehen lasse), wird eine Mail gesendet. Meinst Du etwa im Ernst, dass das sein Anliegen wäre? Ich glaube nicht.
Und deshalb muß nach der Orderöffnung die Ticketnummer gespeichert werden und dann in der Abfrage der Orderhistory!!! nach dieser Ticketnummer gesucht werden. Und nur wenn die Order geschlossen wurde, kann sie auch über die Orderhistory wieder identifiziert werden und zwar als geschlossene Order!
Dann wird die e-Mail gesendet und TN = 0 gesetzt, damit beim nächsten Tick die e-Mail nicht wieder gesendet wird.

So, das sollte nun aber ganz klar sein.

@pako
if(OrderClose(param)) SendMail("","");

Das würde nur funktionieren, wenn die Order per EA geschlossen wird.
Und was wird mit den Orders, die per ordergebundenen TP und/oder SL geschlossen wurden?

traderdoc
Thema geschlossen

Lesezeichen

Stichworte
alert, email, geschlossen, mql4, nachricht, order, programmierung, programmierung metatrader, trade


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 +1. Es ist jetzt 17:06 Uhr.



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