Antwort

Abspielen einer benutzerdefinierten Audiodatei im Signalanzeiger

5 Antworten

TJ#

Kunde, bbp_participant, Gemeinschaft, 144 Antworten.

Profil besuchen

vor 9 Jahren #112772

Hallo Admin,

 

Unter der Signalanzeige. Wie kann ich eine benutzerdefinierte Audiodatei abspielen?

 

Zum Beispiel: PlaySound("Starwars.wav"), während die Standard ist PlaySound("alert.wav"). 

 

Grüße,

 

TJ

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 9 Jahren #127291

Hallo,

 

Leider zeichnen die Signalindikatoren im EA-Assistenten nur Signale auf dem Chart, sie führen keine benutzerdefinierten Aktionen aus, die Sie im Abschnitt DANN angegeben haben.

Aber Sie können es mit einem EA kombinieren - lassen Sie denselben Signalindikator als EA exportieren, der einen Ton abspielt, und dann als Signalindikator, der die Punkte anzeigt.

 

Ja, Sie sollten den Dateinamen der Audiodatei in der PlaySound-Funktion verwenden. Laut MT4-Hilfe sollte sich die Audiodatei im terminal_directory\Sounds befinden.

Mark
StrategyQuant Architekt

0

TJ#

Kunde, bbp_participant, Gemeinschaft, 144 Antworten.

Profil besuchen

vor 9 Jahren #127314

Hallo Mark,

 

Ich habe die Starwars.wav als Preisalarm, es funktioniert perfekt, aber wenn ich versuche, es in EA zu verwenden Assistenten (Signalanzeige) wird nicht die Starwars.wav abgespielt, sondern der Standardton (alert.wav). Gibt es irgendwo einen Fehler in meiner Version? 

 

Die Audiodatei ist gespeichert unter, 

C:\Programmdateien (x86)\OANDA MT4\Sounds

 

Herzliche Grüße,

 

TJ

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 9 Jahren #127371

Das liegt daran, dass im Signalindikatormodus überhaupt keine DANN-Aktionen verwendet werden, sondern die Alert()-Funktion von MT4, die von dem Standardton begleitet wird.

 

Sie müssen den Code des Signalanzeigers bearbeiten - suchen Sie die Stelle, an der Alert() verwendet wird, und fügen Sie dort die Funktion zum Abspielen des Tons ein.

Mark
StrategyQuant Architekt

0

TJ#

Kunde, bbp_participant, Gemeinschaft, 144 Antworten.

Profil besuchen

vor 9 Jahren #127657

Lieber Mark,
 

Ich bin kein Programmierer daher nicht sicher, was und wo für die Warnung zu suchen, aber ich habe die Suchfunktion auslösen und markierte alle das Wort "alert" und unten sind die Abschnitte, die das Wort "alert" hat, so welche Zeile sollte ich ändern, um die "starwars.wav" Datei zu spielen? 

 

Vielen Dank 🙂 . 




 
extern bool MT4Alarmierung = wahr;
extern bool EmailAlarmierung = wahr;
externer String EmailSubject = "Signal Alarmierung : “;
extern int LookBackForWarnungen = 5;


 
void processSignal(int signalIndex, int i) {
   if(getSignal(signalIndex, i)) {
      drawSignal(signalIndex, i, getDrawOffset(signalIndex, i));
 
      bool previousSignal = getSignal(signalIndex, i+1);
      if(previousSignal == false && i<=LookBackForWarnungen && (lastSignalDisplayed == 0 || lastSignalDisplayed < Time[i]))) {
         // Warnungen senden
         lastSignalDisplayed = Time[i];
 
         String AlarmText = getAlertText(signalIndex, i);
 
         wenn(MT4Alarmierung) {
            Alarmierung(AlarmText);
         }
         if(E-MailAlarmierung) {
            SendMail(StringConcatenate(EmailSubject, "Ind_M1_V4"), AlarmText);
         }
      }
   } sonst {
      drawSignal(signalIndex, i, 0);
   }
}
 
//+——————————————————————+
 
Zeichenkette getAlarmierungText(int signalIndex, int i) {
   string text = Symbol() + "/" + getPeriodAsString() + " - " + TimeToStr(Time[i]);
   text = StringConcatenate(text, " Signal Alarmierung :”);
 
if(signalIndex == 1) {
      text = StringConcatenate(text, " Long (#1, Unknown) : ");
      text = StringConcatenate(text, Signal1Text);
   }
if(signalIndex == 2) {
      text = StringConcatenate(text, " Short (#2, Unknown) : ");
      text = StringConcatenate(text, Signal2Text);
   }
 
   zurück(text);



 

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 9 Jahren #127908

ok, Sie können den Code bearbeiten und Fügen Sie den Code für die Tonwiedergabe in diesen Block ein:

 

wenn(MT4Alarmierung) {
   Alarmierung(AlarmText);
   
PlaySound("Starwars.wav"); // hinzugefügt

}

 

 

Ich bin nicht sicher, ob es funktionieren würde, weil ich nicht sicher bin, ob MT4 erlaubt Indikatoren zu spielen Töne, aber wahrscheinlich ja.

Mark
StrategyQuant Architekt

0

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)