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: 43248
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 9 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 19.02.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard Trendlinien im EA

Hallo allerseits,

hier wurde schon öfters von verschiedenen Leuten nach Code für Trendlinien gefragt, ab da kam nie was bei raus.

Wenn man eine im Chart befindliche Trendlinie in einem EA verwenden will, benötigt man den Wert dieser Trendlinie auf der aktuelle Kerze.

Ich habe diesbezüglich mal was geschrieben. Anregungen sind herzlich willkommen. Wenn jemand Lust hat, noch den Buffer zu definieren, über den der Wert ausgegeben werden kann, dann wäre es als Indikator zu gebrauchen...

Dieser Code findet und selektiert eine im Chart befindliche Trendlinie und berechnet diesen Wert: (es darf sich nur eine Trendlinie im Chart befinden, man kann diese aber auch bei laufendem Betrief zeichnen oder verändern)

Code:
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 bereits_verwendete_Kerze_TL;
    if (bereits_verwendete_Kerze_TL != iTime(NULL, 0, 0))
      {
       string Aktuelle_Trendlinie;
       int Anzahl_Trendlinien = ObjectsTotal(NULL, 0, OBJ_TREND);
       Alert ("Anzahl Trendlinien  ", Anzahl_Trendlinien);
       if (Anzahl_Trendlinien == 0) Alert("keine Trendlinie vorhanden");
       if (Anzahl_Trendlinien > 1)  Alert("mehr als 1 Trendlinie vorhanden");
       if (Anzahl_Trendlinien == 1)
         {
          int Anzahl_Objekte = ObjectsTotal(); 
          Alert ("Anzahl Objekte  ", Anzahl_Objekte);
          for (int i=0; i < Anzahl_Objekte; i++) 
            {
             string Aktuelles_Objekt = ObjectName(i);
             if (ObjectType(Aktuelles_Objekt) != OBJ_TREND) continue;
              else
               {
                Aktuelle_Trendlinie = Aktuelles_Objekt;
                Alert ("Aktuelle Trendlinie: ",Aktuelle_Trendlinie); 
               }
            }

             datetime Trendlinie_Time1       = ObjectGet(Aktuelle_Trendlinie, OBJPROP_TIME1);
             double   Trendlinie_Price1      = ObjectGet(Aktuelle_Trendlinie, OBJPROP_PRICE1);
             datetime Trendlinie_Time2       = ObjectGet(Aktuelle_Trendlinie, OBJPROP_TIME2);
             double   Trendlinie_Price2      = ObjectGet(Aktuelle_Trendlinie, OBJPROP_PRICE2);
   
             int      Shift_Trendlinie_Time1 = iBarShift(NULL, 0, Trendlinie_Time1);
             int      Shift_Trendlinie_Time2 = iBarShift(NULL, 0, Trendlinie_Time2);
             int      Shift_Abstand          = Shift_Trendlinie_Time1 - Shift_Trendlinie_Time2;
             double   Preis_Schritt          = (Trendlinie_Price2 - Trendlinie_Price1) / Shift_Abstand;
   
             double Aktueller_Preis_Trendlinie = NormalizeDouble (Trendlinie_Price2 + Preis_Schritt * Shift_Trendlinie_Time2, Digits);
   
             Comment
              (
               "Anzahl Objekte  ",Anzahl_Objekte,"\n"
               "Trendlinie Time1  ",Trendlinie_Time1,"\n"
               "Trendlinie Price1  ",DoubleToStr(Trendlinie_Price1,5),"\n"
               "Trendlinie Time2  ",Trendlinie_Time2,"\n"
               "Trendlinie Price2  ",DoubleToStr(Trendlinie_Price2,5),"\n"
               "Aktueller Preis Trendlinie  ",Aktueller_Preis_Trendlinie,"\n"
              );
         }
       bereits_verwendete_Kerze_TL = iTime(NULL, 0, 0);
      }
//--- return value of prev_calculated for next call
    return(rates_total);
   }
  #2 (permalink)  
Alt 19.02.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Adlerauge Beitrag anzeigen
es darf sich nur eine Trendlinie im Chart befinden
Warum?
  #3 (permalink)  
Alt 19.02.17
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 136
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

...weil die dann berechnet wird. Wenn mehr als eine Trendlinie im Chart ist, berechnet er nichts.
Thema geschlossen

Lesezeichen

Stichworte
code, programmierung, programmierung metatrader, programmierung mql4, trendlinie, trendlinien

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 07:04 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.
-----------------------------------------------------------------------------------------------------------------------------