|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
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 |
|
|||
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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
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 } AVT |
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|