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.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: 249
Gesamt: 249
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 23.05.13
Neues Mitglied
 
Registriert seit: Jan 2012
Beiträge: 24
skaterjo befindet sich auf einem aufstrebenden Ast
Standard Wie programmiere ich eine einfache horizontale Linie im Chart

Ich möchte gerne eine einfache horizentale Linie z. B.
EUR/US Wert gleich 1,2930
im Chart sehen
Ich bin Programmieranfänger.
Danke für Dien Hilfe!!!!
  #2 (permalink)  
Alt 23.05.13
Neues Mitglied
 
Registriert seit: Jun 2011
Beiträge: 10
joshuacoppins befindet sich auf einem aufstrebenden Ast
Standard

Mann kann über die Toolbar Linien im Metatrader einzeichen, programmieren brauch man das nicht.
Rechtsklick oben auf die Toolbar und dann auf "anpassen"
  #3 (permalink)  
Alt 23.05.13
Mitglied
 
Registriert seit: Apr 2011
Ort: Osnabrück
Beiträge: 103
Racki befindet sich auf einem aufstrebenden Ast
Standard

Programmatisch geht es wie folgt:
PHP-Code:
double value 1.2930;
ObjectDelete("HorizontaleLinie");
ObjectCreate("HorizontaleLinie"OBJ_HLINE,0,Time[0],value); 
ObjectSet("HorizontaleLinie"OBJPROP_COLORYellow); 
Gruss
Racki
  #4 (permalink)  
Alt 24.05.13
Neues Mitglied
 
Registriert seit: Jan 2012
Beiträge: 24
skaterjo befindet sich auf einem aufstrebenden Ast
Standard Danke für die Tipps

Mit der 2 Lösung funktioniert das schon.
Es wird eine horizontale kreirt, aber nur eine,
wenn ich eine weite ausgeben möchte.
funktioniert das nicht. Was mache ich falsch, oder was muss ich beachten.
Danke aber für die Tipps.
  #5 (permalink)  
Alt 24.05.13
Mitglied
 
Registriert seit: Apr 2011
Ort: Osnabrück
Beiträge: 103
Racki befindet sich auf einem aufstrebenden Ast
Standard

Du musst die Objekte unterschiedlich benennen.

PHP-Code:
double value1 1.2930
ObjectDelete("HorizontaleLinie1"); 
ObjectCreate("HorizontaleLinie1"OBJ_HLINE,0,Time[0],value1);  
ObjectSet("HorizontaleLinie1"OBJPROP_COLORYellow);  

double value2 1.2930
ObjectDelete("HorizontaleLinie2"); 
ObjectCreate("HorizontaleLinie2"OBJ_HLINE,0,Time[0],value2);  
ObjectSet("HorizontaleLinie2"OBJPROP_COLORBlue); 

s.l.
Racki
  #6 (permalink)  
Alt 25.05.13
Neues Mitglied
 
Registriert seit: Jan 2012
Beiträge: 24
skaterjo befindet sich auf einem aufstrebenden Ast
Standard Danke hat alles funktioniert

Hat soweit alles funktioniert!!!!!

Vielen Dank nochmal.
  #7 (permalink)  
Alt 07.03.17
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Standard Frage zum Programmieren einer Dynamischen Horizontale Linie

Hallo,
ich hatte mal einen alten Artikel gefunden wo es verständlich erklärt ist wie man eine Horizonttale Linie Programmiert.
Ich hatte vor mit dieser Horizontalen Linie im Chart zu Arbeiten. Bsp. Als Stoplinie um mir dann per Comment im Chart Pipwerte,Lotgröße etc. anzeigen zu lassen.
Wenn ich nun aber die Horizontale Linie einen Wert zuweise lässt sich diese zwar verschieben, aber springt auch wieder zum alten Wert zurück. Und im Commenttext wird auch nichts angezeigt. Habt ihr da eine Lösung parat??
Vielen Dank euch im vorraus!!!
  #8 (permalink)  
Alt 07.03.17
Mitglied
 
Registriert seit: Feb 2017
Beiträge: 31
ping befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Hallo,
ich hatte mal einen alten Artikel gefunden wo es verständlich erklärt ist wie man eine Horizonttale Linie Programmiert.
Ich hatte vor mit dieser Horizontalen Linie im Chart zu Arbeiten. Bsp. Als Stoplinie um mir dann per Comment im Chart Pipwerte,Lotgröße etc. anzeigen zu lassen.
Wenn ich nun aber die Horizontale Linie einen Wert zuweise lässt sich diese zwar verschieben, aber springt auch wieder zum alten Wert zurück. Und im Commenttext wird auch nichts angezeigt. Habt ihr da eine Lösung parat??
Vielen Dank euch im vorraus!!!
zeig doch mal den Code, dann kann man sehen wo der Fehler liegt.

ciao ping
  #9 (permalink)  
Alt 07.03.17
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
double Stoplinie Ask-SL
ObjectDelete("HorizontaleLinie1"); 
ObjectCreate("HorizontaleLinie1"OBJ_HLINE,0,Time[0],Stoplinie);  
ObjectSet("HorizontaleLinie1"OBJPROP_COLORRed);  

double TakeProfitlinie Ask+TP
ObjectDelete("HorizontaleLinie2"); 
ObjectCreate("HorizontaleLinie2"OBJ_HLINE,0,Time[0],TakeProfitlinie);  
ObjectSet("HorizontaleLinie2"OBJPROP_COLORBlue); 

Ich bekomme ja die Werte angezeigt... aber ich hatte vor die Horizontale Linie im Chart per Mausklick zu verschieben um mir die Differenz per Comment Links oben im Chart anzeigen zu lassen.
PHP-Code:
Comment("Lots:",DoubleToStr(Lots2)
             ,
"\nRisiko:",Risiko
             
,"\nGrösseStop :",StopLinie
             
,"\nGewinnchance:",TakeProfitlinie
             
,"\n------------------------------------------------"); 
  #10 (permalink)  
Alt 07.03.17
Mitglied
 
Registriert seit: Feb 2017
Beiträge: 31
ping befindet sich auf einem aufstrebenden Ast
Standard

@Tycoon,

sorry für die späte Antwort, hatte noch ein längeres Telefonat.
Ich habe dir mal schnell eine mögliche Lösung hingekritzelt.
Die Werte werden allerdings hier immer positiv dargestellt, sonst bräuchte man noch einen "long/short"-Button.

Code:
#property indicator_chart_window
#property strict
extern int SSL=50;  // SL Startabstand [Digits]
extern int STP=100; // TP Startabstand [Digits]
string     Tx="2Linien ";
double     SL,TP;
int init()
{ if(GlobalVariableCheck(Tx+"TFW"))
  { SL=GlobalVariableGet(Tx+"SL");
    TP=GlobalVariableGet(Tx+"TP");
    GlobalVariablesDeleteAll(Tx);
  }
  else
  { ObjectCreate(Tx+"LabelSL",OBJ_LABEL,ChartWindowFind(),0,0);
    ObjectSet(Tx+"LabelSL",OBJPROP_CORNER,0);
    ObjectSet(Tx+"LabelSL",OBJPROP_XDISTANCE,2);
    ObjectSet(Tx+"LabelSL",OBJPROP_YDISTANCE,12);
    ObjectSet(Tx+"LabelSL",OBJPROP_SELECTABLE,false);
    ObjectSet(Tx+"LabelSL",OBJPROP_HIDDEN,true);
    ObjectSetString(0,Tx+"LabelSL",OBJPROP_TOOLTIP,"\n");
    ObjectCreate(Tx+"LabelTP",OBJ_LABEL,ChartWindowFind(),0,0);
    ObjectSet(Tx+"LabelTP",OBJPROP_CORNER,0);
    ObjectSet(Tx+"LabelTP",OBJPROP_XDISTANCE,2);
    ObjectSet(Tx+"LabelTP",OBJPROP_YDISTANCE,27);
    ObjectSet(Tx+"LabelTP",OBJPROP_SELECTABLE,false);
    ObjectSet(Tx+"LabelTP",OBJPROP_HIDDEN,true);
    ObjectSetString(0,Tx+"LabelTP",OBJPROP_TOOLTIP,"\n");
    ObjectCreate(Tx+"LinieSL",OBJ_HLINE,0,0,Bid-SSL*MathPow(10,Digits*-1));
    ObjectSet(Tx+"LinieSL",OBJPROP_STYLE,STYLE_SOLID);
    ObjectSet(Tx+"LinieSL",OBJPROP_COLOR,Red);
    ObjectSet(Tx+"LinieSL",OBJPROP_HIDDEN,true);
    ObjectSetString(0,Tx+"LinieSL",OBJPROP_TOOLTIP,"\n");
    ObjectCreate(Tx+"LinieTP",OBJ_HLINE,0,0,Bid+STP*MathPow(10,Digits*-1));
    ObjectSet(Tx+"LinieTP",OBJPROP_STYLE,STYLE_SOLID);
    ObjectSet(Tx+"LinieTP",OBJPROP_COLOR,Blue);
    ObjectSet(Tx+"LinieTP",OBJPROP_HIDDEN,true);
    ObjectSetString(0,Tx+"LinieTP",OBJPROP_TOOLTIP,"\n");
    rechnen();
  }
  return(0);
}
void OnChartEvent(const int Id,const long &x,const double &y,const string &S)
{ if(Id==CHARTEVENT_OBJECT_DRAG)
    if(S==Tx+"LinieSL"||S==Tx+"LinieTP")
      rechnen();
}
int start()
{ rechnen();
  return(0);
}
void OnDeinit(const int R)
{ if(R!=REASON_CHARTCHANGE)
    ObjectsDeleteAll(0,Tx);
  else
  { GlobalVariableSet(Tx+"TFW",1);
    GlobalVariableSet(Tx+"SL",SL);
    GlobalVariableSet(Tx+"TP",TP);
  }
}
void rechnen()
{ SL=ObjectGet(Tx+"LinieSL",OBJPROP_PRICE1);
  if(Bid>SL)
    SL=Bid-SL;
  else
    SL-=Bid;
  ObjectSetString(0,Tx+"LabelSL",OBJPROP_TEXT,"SL-Abstand: "+DoubleToStr(SL,Digits));
   TP=ObjectGet(Tx+"LinieTP",OBJPROP_PRICE1);
  if(Bid>TP)
    TP=Bid-TP;
  else
    TP-=Bid;
  ObjectSetString(0,Tx+"LabelTP",OBJPROP_TEXT,"TP-Abstand: "+DoubleToStr(TP,Digits));
}
oder als Download: Anhang 2731


PS.: wie geht das hier, dass man den Dateinamen des Anhangs sieht und nicht die komische Nummer (2731)?
Thema geschlossen

Lesezeichen

Stichworte
horizontale linie, horizontale linie chart, linie, mql4, programmierung, programmierung chart, programmierung metatrader

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 14:25 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.
-----------------------------------------------------------------------------------------------------------------------------