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: 4533
Beiträge: 41128
Benutzer: 6.925
Aktive Benutzer: 240
Links: 80
Wir begrüßen unseren neuesten Benutzer: Bonedreamer
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Bonedreame...
vor einem Tag
- Shusuke
vor 2 Tagen
- corvatis
vor 2 Tagen
- jafqe
vor 3 Tagen
- Flizy

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 149
Gesamt: 150
Team: 0
Team:  
Benutzer:  Indikator-Trading
Freunde anzeigen

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 05.08.20
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 30
janbuk63 befindet sich auf einem aufstrebenden Ast
Standard Hochs und Tiefs verbinden!

Hallo allerseits!
ich versuche mir ein Behelfsmittel für eine bestimmte Strategie zu basteln und bleibe an einem Problem stecken.
Der Script soll Linien zeichnen zwischen letzten Hoch und laufende Kerze wenn sie höher als die vorherige ist und das gleiche für Tief nur umgekehrt.

Jede Linie braucht 4 Variablen die im Arrays gespeichert werden sollen.
Das Problem ist dass ich es nicht fertig kriege den Code so zu schreiben dass nur 1 Linie zwischen dem letzten Hoch und der Laufender Kerze gezeichnet wird.
Nach Fertigstellung der Linie wird ein Index um 1 verkleinert damit jede Linie eine neue Variable bekommt.
Das Problem ist dass der index obwohl es eine Linie schon gibt - wird verkleinert und wieder eine Linie gezeichnet auf der gleicher Kerze und so habe ich nach ein Paar Minuten 100 Linien : völlig sinnlos!!
Ich habe schon alles probiert aber irgendwie wird die "alte" Linie nicht gesehen
und immer weiter gezeichnet!!
Wer weiß die Lösung?
Gruß

hier der Code:
Code:
      int kerze_highest_Nummer = iHighest(NULL,Period(),MODE_HIGH,Wieviel_Kerzen,2); // Kerzen Nr. wo der größte Preis
         kerze_highest_Preis[0]=iHigh(NULL,Period(),kerze_highest_Nummer);          // höchste Preis dieser bestimmten Kerze 
   double  kerze_highest_Preis_davor1  =iHigh(NULL,Period(),kerze_highest_Nummer+1);           // höchste Preis 1 Kerze davor
 //-----------------------------------------------

    //--Laufende Kerze
          high_current[0]=iHigh(NULL,Period(),0);// höchste Preis dieser bestimmten Kerze: KERZE NULL (current) 
   double high_1=iHigh(NULL,Period(),1);         // höchste Preis dieser bestimmten Kerze: KERZE Nr.1 
//-------überprüfe ob es ein Hoch gibt d.h. Kerze davor und danach ist kleiner
        if(kerze_highest_Preis_davor1<kerze_highest_Preis[0] 
           && high_current[0]>=high_1
          )     
   
   
   {                 // der Index: "indx1" fängt bei 100 und läuft nach unten bis 1
Sleep(2000);            
                   // Linien Name: "Div_hochs "+IntegerToString(indx1)     
   if( (ObjectFind("Div_hochs "+IntegerToString(indx1))<0))     // suchen nach Object "Linie" - wenn Eregebnis -1 bedeutet Keine Linie mit  dem Namen
     if( (ObjectFind("Div_hochs "+IntegerToString(indx1))<0))   // Wiederholung der Suche wenn beim ersten mal der Object nicht gesehen wurde obwohl er da ist!! 
     {//0.
      {//1.
       if(kerze_highest_Preis[indx1]==0       // Anfangspunkt ist noch leer (laufende Index: indx1)
          && div_hochs_time[indx1+1]!=Time[0] // Index : indx1+1 - Zeitpunkt wo Linie endet ist nicht gleich(!=) mit laufende Kerze   
          && TimeCurrent()>=Time[0]+250       // gezeichnet wird wenn die Laufende Kerze (5 Min) fast zu Ende ist
         )
           
         {//2.
         CreateTLine("Div_hochs "+IntegerToString(indx1),clrBlueViolet,Time[kerze_highest_Nummer],kerze_highest_Preis[0],Time[0],high_current[0],0,0,2,2); 
         
         kerze_highest_Preis[indx1] = kerze_highest_Preis[0]; // Anfangspunkt wird gespeichert
         high_current[indx1]=high_current[0];                 // Endpunkt wird gespeichert
         LiniaAnfangHochs_time[indx1]=Time[kerze_highest_Nummer]; //Anfangszeit
         div_hochs_time[indx1]=Time[0];                          // Endzeit
    
         // überprüfe ob Linie aufsteigend od fallend ist
         if (kerze_highest_Preis[0]<high_current[0]){div_hoch[indx1] =1;} else {div_hoch[indx1] =0;}// Linie Aufsteigend dann ist der Schalter auf "1"
             Sleep(2000);
             indx1=indx1-1;  // index für Arrays wird geändert 
                       if(indx1 ==1)
            {
             indx1=100; // wenn index 100 erreicht wird er zurückgesetzt und alle Objecte gelöscht
             for(int i=1;i<=100;i++)
              {ObjectDelete("Div_hochs "+IntegerToString(i));
              kerze_highest_Preis[i]=0;
              high_current[i]=0;                
              LiniaAnfangHochs_time[i]=0
              div_hochs_time[indx1]=Time[0];                          
              }
            }   
         }//2.
      }//1.
     }//0. 
   }//+------------------------------------------------------------------+
Mit Zitat antworten
  #2 (permalink)  
Alt 08.08.20
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 30
janbuk63 befindet sich auf einem aufstrebenden Ast
Standard

wie ich sehe hat keiner geantwortet aber ist nicht schlimm.
Mittlerweile hat sich das Problem selbst gelöst.
Der Code funktioniert genau wie in meinem Post dargestellt.
Die doppelte Überprüfung ob die Linie existiert hat es doch geholfen.
Jetzt werden die Linien gesehen und alles ist OK!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
hoch, tiefs

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 12:49 Uhr.





Die Suchmaschine - Der Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2020 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2020 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------