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: 43270
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: 264
Gesamt: 264
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 07.07.21
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard Trendbar

wieso zeigt er nicht die Bezeichnung an ?

RSI CCI ?

Code:
//////////////////////////////////////////////////////////////////////
//
//
//
//////////////////////////////////////////////////////////////////////
#property copyright "Antonuk Oleg"
#property link      "antonukoleg@gmail.com"

#property indicator_chart_window


extern int scaleX=20, // Das horizontale Intervall, mit dem die Quadraten erstellt werden
           scaleY=20, // Das vertikale Intervall
           offsetX=35, // der horizontalen Einzug aller Quadraten
           offsetY=20, // der vertikale Einzug
           fontSize=20, // Die Schriftgröße
           corner=0;

int period[]={1,5,15,30,60,240,1440,10080,43200};
string periodString[]={"M1","M5","M15","M30","H1","H4","D1","W1","MN1"};
string signalNameString[]={"RSI","CCI","X"};
//+------------------------------------------------------------------+


int init()
{
   // Die Tabelle der Signalen
   for(int x=0;x<9;x++)
      for(int y=0;y<3;y++)
      {
         ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal"+x+y,OBJPROP_CORNER,corner);
         // Wir ändern den Winkel der Verankerung
         ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*scaleX+offsetX);
         ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*scaleY+offsetY);
         ObjectSetText("signal"+x+y,CharToStr(110),fontSize,"Wingdings",Gold);
      }

   // Der Name der Timeframes
   for(x=0;x<9;x++)
   {
      ObjectCreate("textPeriod"+x,OBJ_LABEL,0,0,0,0,0);
      ObjectSet("textPeriod"+x,OBJPROP_CORNER,corner);
      // Wir ändern den Winkel der Verankerung
      ObjectSet("textPeriod"+x,OBJPROP_XDISTANCE,x*scaleX+offsetX);
      ObjectSet("textPeriod"+x,OBJPROP_YDISTANCE,offsetY-10);
      ObjectSetText("textPeriod"+x,periodString[x],8,"Tahoma",Gold);
   }

   // Der Name der Indikatoren
   for(y=0;x<2;y++)
   {
      ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);
ObjectSet("textSignal"+y,OBJPROP_CORNER,corner);// Wir ändern den Winkel der Verankerung
      ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,offsetX-25);
      ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*scaleY+offsetY+8);
      ObjectSetText("textSignal"+y,signalNameString[y],8,"Tahoma",Gold);
   }
  
   return(0);
}
 
int start()
{
   for(int x=0;x<9;x++)
   {
      if(iRSI(NULL,period[x],14,PRICE_CLOSE,x+1)> 70 && iRSI(NULL,period[x],14,PRICE_CLOSE,x)< 70)
         ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",clrFireBrick);
      else
      if(iRSI(NULL,period[x],14,PRICE_CLOSE,x+1)< 30 && iRSI(NULL,period[x],14,PRICE_CLOSE,x)> 30)
         ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",clrForestGreen); 
   }
 
   return(0);
}

so müsste das aussehen
  #2 (permalink)  
Alt 07.07.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Na ja, ich würde statt

for(y=0;x<2;y++)

for(y=0;y<2;y++)

schreiben, dann klappt es auch mit dem Namen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 07.07.21
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard Kann gelöscht werden ist erledigt

Code:
//////////////////////////////////////////////////////////////////////
//
//
//
//////////////////////////////////////////////////////////////////////
#property copyright "Antonuk Oleg"
#property link      "antonukoleg@gmail.com"

#property indicator_chart_window


extern int scaleX=20, // Das horizontale Intervall, mit dem die Quadraten erstellt werden
           scaleY=20, // Das vertikale Intervall
           offsetX=35, // der horizontalen Einzug aller Quadraten
           offsetY=20, // der vertikale Einzug
           fontSize=20, // Die Schriftgröße
           corner=0;

int period[]={1,5,15,30,60,240,1440,10080,43200};
string periodString[]={"M1","M5","M15","M30","H1","H4","D1","W1","MN1"};
string signalNameString[]={"RSI","CCI","X"};
//+------------------------------------------------------------------+


int init()
{
   // Die Tabelle der Signalen
   for(int x=0;x<9;x++)
      for(int y=0;y<3;y++)
      {
         ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal"+x+y,OBJPROP_CORNER,corner);
         // Wir ändern den Winkel der Verankerung
         ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*scaleX+offsetX);
         ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*scaleY+offsetY);
         ObjectSetText("signal"+x+y,CharToStr(110),fontSize,"Wingdings",Gold);
      }

   // Der Name der Timeframes
   for(x=0;x<9;x++)
   {
      ObjectCreate("textPeriod"+x,OBJ_LABEL,0,0,0,0,0);
      ObjectSet("textPeriod"+x,OBJPROP_CORNER,corner);
      // Wir ändern den Winkel der Verankerung
      ObjectSet("textPeriod"+x,OBJPROP_XDISTANCE,x*scaleX+offsetX);
      ObjectSet("textPeriod"+x,OBJPROP_YDISTANCE,offsetY-10);
      ObjectSetText("textPeriod"+x,periodString[x],8,"Tahoma",Gold);
   }

   // Der Name der Indikatoren
  for(y=0;y<3;y++)
  {
      ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);        
      ObjectSet("textSignal"+y,OBJPROP_CORNER,corner);
      ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,offsetX-25);
      ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*(scaleY)+offsetY+8);
      ObjectSetText("textSignal"+y,signalNameString[y],8,"Tahoma",Gold);      
  }
  
   return(0);
}
 
int start()
{
   for(int x=0;x<9;x++)
   {
      if(iRSI(NULL,period[x],14,PRICE_CLOSE,x+1)> 70 && iRSI(NULL,period[x],14,PRICE_CLOSE,x)< 70)
         ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",clrFireBrick);
      else
      if(iRSI(NULL,period[x],14,PRICE_CLOSE,x+1)< 30 && iRSI(NULL,period[x],14,PRICE_CLOSE,x)> 30)
         ObjectSetText("signal"+x+"0",CharToStr(110),fontSize,"Wingdings",clrForestGreen); 
   }
 
   return(0);
}
  #4 (permalink)  
Alt 30.07.21
Mitglied
 
Registriert seit: Feb 2014
Ort: Berlin
Beiträge: 42
Sirocool befindet sich auf einem aufstrebenden Ast
Standard Brauche wieder Hilfe

und zwar gehen die Signale nur bis Zeile 2 also Moving Average 10 die anderen Moving Average Signale kommt garnichts könnte mal bitte einer drüber schauen danke.

Die Berchnung habe ich so gemacht wenn das Ergbnis größer als Null ist soll Rot sein und kleiner als Null dann Grün kommen keine Signal dann gleich Grau


Code:
//+------------------------------------------------------------------+
//|                     SHARK_TRENDBAR_CLASSIC_V.21                  |
//|                         Copyright 2018                           |
//|                      www.companyname.net                         |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2021, SIROCOOL"
#property link      "Streitmarcel82@gmail.com"


#property indicator_chart_window



extern color FontColor   = C'237,252,255';


extern int scaleX=20, // Das horizontale Intervall, mit dem die Quadraten erstellt werden
           scaleY=20, // Das vertikale Intervall
           offsetX=30, // der horizontalen Einzug aller Quadraten
           offsetY=20, // der vertikale Einzug
           corner=0;// Die Schriftgröße

int period[]= {1,5,15,30,60,240,1440,10080,43200};
string periodString[]= {"M1","M5","M15","M30","H1","H4","D1","W1","MN1"};
string signalNameString[]= {"MA5","MA10","MA20","MA50","MA100","MA200" };
//+------------------------------------------------------------------+


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
  int Zeilen = 6; // max. Zeilen 9
// Die Tabelle der Signalen
   for(int x=0; x<9; x++)
      for(int y=0; y < Zeilen; y++) //Y< Zeilen max 9
        {
         ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal"+x+y,OBJPROP_CORNER,corner);
         // Wir ändern den Winkel der Verankerung
         ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*scaleX+offsetX);
         ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*scaleY+offsetY);
         ObjectSetText("signal"+x+y,CharToStr(110),20,"Wingdings",C'237,252,255');
        }

// Der Name der Timeframes
   for(x=0; x<9; x++)
     {
      ObjectCreate("textPeriod"+x,OBJ_LABEL,0,0,0,0,0);
      ObjectSet("textPeriod"+x,OBJPROP_CORNER,corner);
      // Wir ändern den Winkel der Verankerung
      ObjectSet("textPeriod"+x,OBJPROP_XDISTANCE,x*scaleX+5+offsetX); //Schrift verschieben Vertikal
      ObjectSet("textPeriod"+x,OBJPROP_YDISTANCE,offsetY-5);
      ObjectSetText("textPeriod"+x,periodString[x],6,"Courier New",FontColor);
     }

// Der Name der Indikatoren
   for(y=0; y < Zeilen; y++) //y < 3 Max.9
     {
      ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);
      ObjectSet("textSignal"+y,OBJPROP_CORNER,corner);
      ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,offsetX-25);
      ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*(scaleY)+offsetY+8);
      ObjectSetText("textSignal"+y,signalNameString[y],6,"Courier New",FontColor);
     }

   return(0);
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   ObjectsDeleteAll();
   return(0);
  }


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
{
 // Wir machen die erste Reihe an
   for(int x=0;x<9;x++)
   {
      if((iMA(Symbol(),period[x],5,0,0,0,0)-Ask) < 0)
         ObjectSetText("signal"+x+"0",CharToStr(110),20,"Wingdings",YellowGreen);
      if((iMA(Symbol(),period[x],5,0,0,0,0)-Ask) > 0)
         ObjectSetText("signal"+x+"0",CharToStr(110),20,"Wingdings",Tomato);
     // Sonst, wenn es keine Signale gibt, dann färben wir die Quadraten in die graue Farbe   
      else
      ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",DarkGray);  
   }
   // Wir machen die zweite Reihe an
   for(x=0;x<9;x++)
   {
     if((iMA(Symbol(),period[x],10,0,0,0,0)-Ask)<0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",YellowGreen);  
      
     if((iMA(Symbol(),period[x],10,0,0,0,0)-Ask)>0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",Tomato);
     else
      ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",DarkGray);       
           
   }
   
      // Wir machen die dritte Reihe an
   for(x=0;x<9;x++)
   {
      if((iMA(Symbol(),period[x],20,0,0,0,0)-Ask)<0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",YellowGreen);  
      
      if((iMA(Symbol(),period[x],20,0,0,0,0)-Ask)>0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",Tomato);       
   }
   
   // Wir machen die vierte Reihe an
      for(x=0;x<9;x++)
   {
 
      if((iMA(Symbol(),period[x],50,0,0,0,0)-Ask)<0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",YellowGreen);  
      
      if((iMA(Symbol(),period[x],50,0,0,0,0)-Ask)>0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",Tomato);       
   }
   // Wir machen die fünfte Reihe an
    for(x=0;x<9;x++)
   {
 
      if((iMA(Symbol(),period[x],100,0,0,0,0)-Ask)<0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",YellowGreen);  
      
      if((iMA(Symbol(),period[x],100,0,0,0,0)-Ask)>0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",Tomato);  
      // Sonst, wenn es keine Signale gibt, dann färben wir die Quadraten in die graue Farbe
      else
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",DarkGray);      
   }
      // Wir machen die sechste Reihe an
    for(x=0;x<9;x++)
   {
 
      if((iMA(Symbol(),period[x],200,0,0,0,0)-Ask)<0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",YellowGreen);  
      
      if((iMA(Symbol(),period[x],200,0,0,0,0)-Ask)>0)
         ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",Tomato);       
   } 

  return(0);
}
//+------------------------------------------------------------------+
  #5 (permalink)  
Alt 30.07.21
Benutzerbild von Indikator-Trading
Premium Mitglied
 
Registriert seit: May 2020
Ort: Bielefeld
Beiträge: 345
Indikator-Trading befindet sich auf einem aufstrebenden Ast
Standard

Hallo Marcel,

ich sehe da ein Problem mit der Funktion, welche unter "int start()" die erste, zweite und fünfte Reihe "anmachen soll"

Vereinfacht geschrieben machst du ja folgendes:
if(Bedingung1)
//AnweisungA
if(Bedingung2)
//AnweisungB
else
//AnweisungC

Bei deiner Implementierung kann Bedingung1 nicht zeitgleich mit Bedingung2 erfüllt sein.
Ist Bedingung1 erfüllt, wird "AnweisungA" durchgeführt. Bedinung2 ist nicht erfüllt, somit wird also auch "AnweisungC" durchgeführt, welche wiederum in deinem Code nicht mit der Durchführung von "AnweisungA" im Einklang ist.

Oh, das habe ich jetzt etwas verkompliziert erklärt, aber ich hoffe du hast verstanden worauf ich hinauswollte.

Wenn du ein else vor die zweite If-Abfrage setzt wird der Code das machen, was du zumindest laut deinen Kommentaren damit vorzuhaben scheinst.

Code:
   for(int x=0;x<9;x++)
   {
      if((iMA(Symbol(),period[x],5,0,0,0,0)-Ask) < 0)
         ObjectSetText("signal"+x+"0",CharToStr(110),20,"Wingdings",YellowGreen);
      else if((iMA(Symbol(),period[x],5,0,0,0,0)-Ask) > 0)
         ObjectSetText("signal"+x+"0",CharToStr(110),20,"Wingdings",Tomato);
     // Sonst, wenn es keine Signale gibt, dann färben wir die Quadraten in die graue Farbe   
      else
      ObjectSetText("signal"+x+"1",CharToStr(110),20,"Wingdings",DarkGray);  
   }
Zwei weitere Punkte fallen mir noch auf:
1)
für die erste Reihe setzt du die Farbe Grau für ein anderes Objekt, da ("signal" + x + "0") nicht ("signal" + x + "1") ist. Dort wirst du wohl noch die "1" gegen eine "0" austauschen müssen, oder anderes rum.

2)
In allen anderen Reihen setzt du jeweils ebenfallst nur die Zeile "1", auch wenn du in den Kommentaren von "Reihen" sprichst.

Hier ein korrigiertes Beispiel für die sechste Reihe:

Code:
    for(x=0;x<9;x++)
   {
 
      if((iMA(Symbol(),period[x],200,0,0,0,0)-Ask)<0)
         ObjectSetText("signal"+x+"5",CharToStr(110),20,"Wingdings",YellowGreen);  
      
      if((iMA(Symbol(),period[x],200,0,0,0,0)-Ask)>0)
         ObjectSetText("signal"+x+"5",CharToStr(110),20,"Wingdings",Tomato);       
   }
Mit freundlichen Grüßen
Timo
Thema geschlossen

Lesezeichen

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 13:58 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.
-----------------------------------------------------------------------------------------------------------------------------