Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 5 > Programmierung MQL5

Programmierung MQL5 Hier gehts rund ums Programmieren in MQL5.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43827
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: 601
Gesamt: 601
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 05.03.21
Neues Mitglied
 
Registriert seit: Feb 2021
Beiträge: 8
Antomi18 befindet sich auf einem aufstrebenden Ast
Smile akustische Benachrichtigung MACD-Signal

Hallo,
würde sehr gerne eine akustische Benachrichtigung erhalten, wenn der MACD ein Kauf- bzw. Verkaufssignal gibt.
Gibt es da bereits etwas bzw. wie kann man das implementieren?
Grüße
Antomi
  #2 (permalink)  
Alt 05.03.21
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard Meinst du so was ?

Code:
extern bool   alerts.On        = false;
extern bool   alerts.OnCurrent = false;
extern bool   alerts.Message   = true;
extern bool   alerts.Sound     = false;
extern bool   alerts.Email     = false;






void doAlert(string doWhat)
{
   static string   previousAlert="nothing";
   static datetime previousTime;
   string message;
   
   if (previousAlert != doWhat || previousTime != Time[0]) {
       previousAlert  = doWhat;
       previousTime   = Time[0];

       //
       //
       //
       //
       //

       message =  StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS)," Aroon oscillator - ",doWhat);
          if (alerts.Message) Alert(message);
          if (alerts.Email)   SendMail("Arron oscillator",message);
          if (alerts.Sound)   PlaySound("alert2.wav");
   }
  #3 (permalink)  
Alt 05.03.21
Neues Mitglied
 
Registriert seit: Feb 2021
Beiträge: 8
Antomi18 befindet sich auf einem aufstrebenden Ast
Standard akustische Benachrichtigung MACD-Signal

Wahrscheinlich. Würde gerne einen eigenen Sound integrieren.
Bin leider völlig unerfahren bei der Programmierung der Indikatoren.
  #4 (permalink)  
Alt 05.03.21
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard Na dann

Schick mir dein Sound und den MACD wo der rein soll
  #5 (permalink)  
Alt 05.03.21
Neues Mitglied
 
Registriert seit: Feb 2021
Beiträge: 8
Antomi18 befindet sich auf einem aufstrebenden Ast
Standard Alarm für MACD

Das ist ja super, ganz herzlichen Dank!!
Zunächst der Indikator.
Sobald die Farbe der Punkte umspringt, soll das Signal abgespielt werden.
Jetzt mus sich noch versuchen die mp3-Datei rüber zuschicken.
Das System scheint mp3-Dateien nicht zu akzeptieren.
Ich spiele noch etwas damit herum, ob ich es irgendwie hin bekomme.
Angehängte Dateien
Dateityp: mq5 BB_MACD.mq5 (6,4 KB, 1x aufgerufen)
  #6 (permalink)  
Alt 05.03.21
Neues Mitglied
 
Registriert seit: Feb 2021
Beiträge: 8
Antomi18 befindet sich auf einem aufstrebenden Ast
Smile Alarm für MACD

Okay, musste die mp3-Dateien als ZIP-Datei verpacken.
Hoffe, dass es jetzt klappt.
Bin echt gespannt, wie Du das hin bekommst und wie es funktioniert.
DANKE!!
Angehängte Dateien
Dateityp: zip Sound.zip (98,5 KB, 5x aufgerufen)
  #7 (permalink)  
Alt 05.03.21
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Antomi18 Beitrag anzeigen
Okay, musste die mp3-Dateien als ZIP-Datei verpacken.
Hoffe, dass es jetzt klappt.
Bin echt gespannt, wie Du das hin bekommst und wie es funktioniert.
DANKE!!

Hoffe es klappt so kann ich nicht testen da es Mq5 ist bin nur Mq4


Code:
//+------------------------------------------------------------------+
//|                                                          BB MACD |
//|                                      Copyright © 2009, EarnForex |
//|                                        http://www.earnforex.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, EarnForex"
#property link      "http://www.earnforex.com"
#property version   "1.01"
#property description "BB MACD - Bollinger Bands with MACD mutation based on Moving Averages"
#property description "and Standard Deviation indicators."

//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 8
#property indicator_plots   3
#property indicator_color1  Lime, Magenta    //Up/down bullets
#property indicator_type1   DRAW_COLOR_ARROW
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
#property indicator_color2  Blue    //Upperband
#property indicator_type2   DRAW_LINE
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
#property indicator_color3  Red     //Lowerband
#property indicator_type3   DRAW_LINE
#property indicator_style3  STYLE_SOLID
#property indicator_width3  1

//---- indicator parameters
input int FastLen = 12;
input int SlowLen = 26;
input int Length = 10;
input int barsCount = 400;
input double StDv = 2.5;

//---- indicator buffers
double ExtMapBuffer1[];  // bbMacd
double ExtMapBuffer2[];  // bbMacd Color
double ExtMapBuffer3[];  // Upperband Line
double ExtMapBuffer4[];  // Lowerband Line
double ExtMapBuffer5[];  // Data for "iMAOnArray()"

double MABuff1[];
double MABuff2[];
double bbMacd[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
{
 	IndicatorSetString(INDICATOR_SHORTNAME, "BB MACD(" + IntegerToString(FastLen) + "," + IntegerToString(SlowLen) + "," + IntegerToString(Length) + ")");
   IndicatorSetInteger(INDICATOR_DIGITS, _Digits + 1);

//---- indicator buffers mapping
   SetIndexBuffer(0, ExtMapBuffer1, INDICATOR_DATA);
   SetIndexBuffer(1, ExtMapBuffer2, INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2, ExtMapBuffer3, INDICATOR_DATA);
   SetIndexBuffer(3, ExtMapBuffer4, INDICATOR_DATA);
   SetIndexBuffer(4, ExtMapBuffer5, INDICATOR_CALCULATIONS);
   SetIndexBuffer(5, MABuff1, INDICATOR_CALCULATIONS);
   SetIndexBuffer(6, MABuff2, INDICATOR_CALCULATIONS);
   SetIndexBuffer(7, bbMacd, INDICATOR_CALCULATIONS);

   //Set the correct order: 0 is the latest, N - is the oldest
   ArraySetAsSeries(ExtMapBuffer1, true);
   ArraySetAsSeries(ExtMapBuffer2, true);
   ArraySetAsSeries(ExtMapBuffer3, true);
   ArraySetAsSeries(ExtMapBuffer4, true);
   ArraySetAsSeries(ExtMapBuffer5, true);
   ArraySetAsSeries(MABuff1, true);
   ArraySetAsSeries(MABuff2, true);
   ArraySetAsSeries(bbMacd, true);
   
   PlotIndexSetInteger(0, PLOT_ARROW, 108);
   
//---- name for DataWindow and indicator subwindow label
   PlotIndexSetString(0, PLOT_LABEL, "bbMacd");
   PlotIndexSetString(2, PLOT_LABEL, "Upperband");
   PlotIndexSetString(3, PLOT_LABEL, "Lowerband");  
}

//+------------------------------------------------------------------+
//| Custom BB_MACD                                                   |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   int limit;

   int counted_bars = prev_calculated;
   if (counted_bars < 0) return(-1);
   if (counted_bars > 0) counted_bars--;
   if (barsCount > 0) limit = MathMin((rates_total - counted_bars), barsCount);
   else  limit = rates_total - counted_bars;
//----
   int myMA = iMA(NULL, 0, FastLen, 0, MODE_EMA, PRICE_CLOSE);
   if (CopyBuffer(myMA, 0, 0, rates_total, MABuff1) != rates_total) return(0);
   myMA = iMA(NULL, 0, SlowLen, 0, MODE_EMA, PRICE_CLOSE);
   if (CopyBuffer(myMA, 0, 0, rates_total, MABuff2) != rates_total) return(0);

   for (int i = 0; i < limit; i++)
       bbMacd[i] = MABuff1[i] - MABuff2[i];

//----
   CalculateEMA(limit - 1, Length, bbMacd);
   
   for (int i = 0; i < limit; i++)
   {
      double avg = ExtMapBuffer5[i]; // MA on Array
		double sDev = StdDevFunc(i, Length, bbMacd); //StdDev on Array
      
      ExtMapBuffer1[i] = bbMacd[i];     // bbMacd
      if (bbMacd[i] > bbMacd[i + 1]) ExtMapBuffer2[i] = 0; PlaySound ("LONG.mp3");       // Uptrend
      else if (bbMacd[i] < bbMacd[i + 1]) ExtMapBuffer2[i] = 1; PlaySound ("SHORT.mp3");  // Downtrend
      
      ExtMapBuffer3[i] = avg + (StDv * sDev);  // Upperband
      ExtMapBuffer4[i] = avg - (StDv * sDev);  // Lowerband
   }
   return(rates_total);
}

//+------------------------------------------------------------------+
//|  Exponential Moving Average                                      |
//|  Fills the buffer array with EMA values.									|
//+------------------------------------------------------------------+
void CalculateEMA(int begin, int period, const double &price[])
{
   double SmoothFactor = 2.0 / (1.0 + period);
	int start;
	
   //First time
   if (ExtMapBuffer5[ArrayMaximum(ExtMapBuffer5)] <= 0)
   {
   	ExtMapBuffer5[begin] = price[begin];
   	start = begin - 1;
   }
   else start = begin;

   for(int i = start; i >= 0; i--) ExtMapBuffer5[i] = price[i] * SmoothFactor + ExtMapBuffer5[i + 1] * (1.0 - SmoothFactor);
}

//+------------------------------------------------------------------+
//| Calculate Standard Deviation                                     |
//| Returns StdDev for the given position (bar).                     |
//+------------------------------------------------------------------+
double StdDevFunc(int position, int period, const double &price[])
{
   double dTmp = 0.0;
   for (int i = 0; i < period; i++)	dTmp += MathPow(price[position + i] - ExtMapBuffer5[position], 2);
   dTmp = MathSqrt(dTmp / period);

   return(dTmp);
}
//+------------------------------------------------------------------+
Angehängte Dateien
Dateityp: rar Sound + MQ5.rar (100,0 KB, 1x aufgerufen)
  #8 (permalink)  
Alt 05.03.21
Neues Mitglied
 
Registriert seit: Feb 2021
Beiträge: 8
Antomi18 befindet sich auf einem aufstrebenden Ast
Standard Alarm für MACD

Vielen Dank für die schnelle Bearbeitung.
Bin gerade bei der Installation.
Frage: wo muss ich die Sound-Dateien hinterlegen? MT5 muss ja irgendwie darauf zugreifen können.
  #9 (permalink)  
Alt 05.03.21
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Antomi18 Beitrag anzeigen
Vielen Dank für die schnelle Bearbeitung.
Bin gerade bei der Installation.
Frage: wo muss ich die Sound-Dateien hinterlegen? MT5 muss ja irgendwie darauf zugreifen können.
eEigendlich damit rein H:\Program Files (x86)\Admiral Markets MT4\Sounds
  #10 (permalink)  
Alt 05.03.21
Neues Mitglied
 
Registriert seit: Feb 2021
Beiträge: 8
Antomi18 befindet sich auf einem aufstrebenden Ast
Standard Alarm für MACD

Leider funktioniert es so nicht. MT5 startet nicht bzw. hängt sich auf.

Habe den BB_MACD zunächst ohne Sound installiert aber bei der Kompilierung treten zwei Fehler auf.
Erstens bei der Bezeichnung. In der zweiten Zeile muss der BB_MACD umbenannt werden.
Habe ihn mal BB_Sound_MACD getauft. Nehme an, dass dieser Name in Zeile 2 muss.

Den Fehler in Zeile 123 sehe ich nicht, habe Dir ein Image mitgeschickt.
Angehängte Grafiken
Dateityp: jpg Fehler.jpg (198,7 KB, 6x aufgerufen)
Thema geschlossen

Lesezeichen

Stichworte
akustisches signal, sound abspielen, sound alert

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 19:10 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.
-----------------------------------------------------------------------------------------------------------------------------