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: 4973
Beiträge: 43291
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 936
Gesamt: 936
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree1Likes
  • 1 Post By traderdoc
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 06.12.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard Hit SL/TP sound einbinden

Ich will in meinen einen EA einen Sound einbinden: sobald ein SL oder TP getroffen wird (der Trade also beendet ist), soll ein Soundsignal gespielt werden. Ich brauche Eure Kommentare, wo ich das am besten mache.

Es gibt meines Erachtens 2 Möglichkeiten:
1. ich überwache die laufenden Trades MODE_TRADES und frage ab, ob Ask/Bid == SL oder TP ist, ist das der Fall, müßte der Trade eigentlich geschlossen werden.
2. ich überwache die letzte Position der History MODE_HISTORY, wenn dort eine neue Position erscheint, kann ich anhand des Kommentars ([sl] oder [tp]) sehen, ob es sich um einen Gerissenen handelt oder nicht.

Was meint Ihr, welche Lösung die bessere ist?
Danke. AVT
  #2 (permalink)  
Alt 06.12.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Die zweite Option ist die Bessere.
Und damit das Signal nicht permanent gegeben wird, sollte in eine Variable die Closezeit gespeichert werden, um beim nächstzen Aufruf nur ein Signal zuzulassen, welches von einer später geschlossenen Order im SL oder TP herrührt.

traderdoc
AVT likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 07.12.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank traderdoc

Code sieht so aus, falls jemand es braucht (oder es vielleicht noch was zu verbessern gibt):
Code:
// === head
#resource "\\Files\\Sounds\\HitSl.wav" // SL Treffer
#resource "\\Files\\Sounds\\HitTp.wav" // TP Treffer
datetime LastCloseTime=TimeCurrent();  // reicht hier

void OnTimer()
{
   GetExitHits(); // reicht hier, je nach Timereinstellung
}

void GetExitHits()
{
   string sl_subst="[sl]"; // Zeichen im Kommentar für SL
   string tp_subst="[tp]"; // Zeichen im Kommentar für TP
   int    res=EMPTY;       // Resultatnummer, -1 ist nicht gefunden

   // === 0 ist die 1. Position (früheste), wird hochgezählt bis zur letzten
   // === wir zählen runter von der letzten zur frühesten
   //     und stoppen nach dem ersten Fund mit break
   for(int i=OrdersHistoryTotal(); i>=0; i--)
   {
      if( OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) )
      {
         if(   OrderSymbol()==_Symbol   // unser Markt
            && OrderType()<=1         ) // Market Orders
         {

            // === SL Sound
            res=StringFind(OrderComment(),sl_subst,0);
            if(   res!=-1                          // [sl] im Kommentar
               && OrderCloseTime()>LastCloseTime ) // nach dem letzten Fund
            {
               FuncPlaySound("::Files\\Sounds\\HitSl.wav"); // Sound spielen
               LastCloseTime=OrderCloseTime();              // als letzten Fund merken
               break;                                       // stop, keine älteren mehr
            }

            // === TP Sound
            res=StringFind(OrderComment(),tp_subst,0);
            if(   res!=-1                          // [tp] im Kommentar
               && OrderCloseTime()>LastCloseTime ) // nach dem letzten Fund
            {
               FuncPlaySound("::Files\\Sounds\\HitTp.wav"); // Sound spielen
               LastCloseTime=OrderCloseTime();              // als letzten Fund merken
               break;                                       // stop, keine älteren mehr
            }

         } // Symbol, MarketOrders
      } // select MODE_HISTORY
   } // HistoryTotal
}
Die FuncPlaySound(string FileName) prüft ob SoundOn und wenn ja dann PlaySound(FileName).
AVT
Thema geschlossen

Lesezeichen

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 21:41 Uhr.





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