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: 4100
Beiträge: 38680
Benutzer: 6.388
Aktive Benutzer: 221
Links: 80
Wir begrüßen unseren neuesten Benutzer: fynnfx
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 18:12).
Neue Benutzer:
vor 2 Tagen
- fynnfx
vor 5 Tagen
- Oppus...
vor 5 Tagen
- justme177
vor 5 Tagen
- DanielF
vor einer Woche
- haschmat

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

Empfehlungen

Like Tree1Likes
  • 1 Post By traderdoc
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 70
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
__________________
heute schon gelacht?
Mit Zitat antworten
  #2 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.134
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.
Mit Zitat antworten
  #3 (permalink)  
Alt vor einer Woche
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 70
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
__________________
heute schon gelacht?
Mit Zitat antworten
Antwort

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 +2. Es ist jetzt 00:28 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 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.
-----------------------------------------------------------------------------------------------------------------------------