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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3946
Beiträge: 37722
Benutzer: 6.244
Aktive Benutzer: 417
Links: 80
Wir begrüßen unseren neuesten Benutzer: Mojo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 17 Stunden
- Mojo
vor 22 Stunden
- daybyter
vor 4 Tagen
- Marcel83
vor einer Woche
- Megaule
vor einer Woche
- faanx

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

Empfehlungen

Werbung

Like Tree5Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt vor 3 Wochen
Neues Mitglied
 
Registriert seit: Jun 2016
Beiträge: 23
sill3000 befindet sich auf einem aufstrebenden Ast
Standard

extern ENUM_LINE_STYLE Linien_Stil=STYLE_SOLID;
extern color Farbe_Linie=Yellow;
extern int Breite=5;

void OnTick()
{
for(int i=0;i<ObjectsTotal();i++)
{
string akt_Objekt = ObjectName(i);
if((ObjectType(akt_Objekt) == OBJ_VLINE)&&(ObjectGet(akt_Objekt,OBJPROP_SELECTED ) == FALSE)&&(ObjectGet(akt_Objekt,OBJPROP_COLOR) == Farbe_Linie)&&(ObjectGet(akt_Objekt,OBJPROP_STYLE) == Linien_Stil)&&(ObjectGet(akt_Objekt,OBJPROP_WIDTH) == Breite))
{
datetime date=(datetime)(ObjectGet(akt_Objekt, OBJPROP_TIME1));
double Eroeffnungskurs=iOpen(0,0,iBarShift(0,0,date,0));
Print("Eröffnungskurs der gelben Linie: ",Eroeffnungskurs);

//datetime date2=(datetime)(ObjectGet(akt_Objekt, OBJPROP_TIME1));

//Print("Eröffnungskurs der gelben Linie+1: ",date2);
//int Startwert=date;
//Print("Eröffnungskurs der gelben Linie+1: ",Startwert);
//Print("Openwert: ",Open[Startwert]);
}
}//Ende for(int i=0; i<ObjectsTotal();i++)
}//Ende OnTick()

Das ist mein Programm bis jetzt: Es wird die vertikale Linie abgefragt, aber jetzt weiss ich nicht wie ich die Werte links und rechts der vert. Linie überprüfe?

Geändert von sill3000 (vor 3 Wochen um 12:47 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.987
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sill3000 Beitrag anzeigen
Das ist mein Programm bis jetzt: Es wird die vertikale Linie abgefragt, aber jetzt weiss ich nicht wie ich die Werte links und rechts der vert. Linie überprüfe?
Welche Werte? Die Open-Kurse der einzelen Kerzen oder die Zeitwerte der einzelnen Linien? Ich tippe mal auf Ersteres:

Prinzipielles Vorgehen:
1. Ermittlung der Zeit der gelben Linie
2. Umrechnung dieser Zeit in den Index des entsprechenden Kerze mit iBarShift()
und dann
3.
Code:
//candle soll die Variable für den Kerzenindex der gelben Linie sein
int links = 20;  //Angabe der Anzahl von Kerzen, die nach links gecheckt werden sollen
for (int i = candle; i <= candle+links; i++) {
   double open = iOpen(NULL, 0, i);
   ...
   ...
}
for (int i = candle; i == 0; i--) {  //oder i > 0, wenn die akt. Kerze nicht mitgenommen werden soll
   double open = iOpen(NULL, 0, i);
   ...
   ...
}
traderdoc
sill3000 likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #13 (permalink)  
Alt vor 3 Wochen
Neues Mitglied
 
Registriert seit: Jun 2016
Beiträge: 23
sill3000 befindet sich auf einem aufstrebenden Ast
Standard

Danke traderdoc für diese extrem gute Hilfestellung.

Jetzt habe ich aber noch ein anderes Problem, die Syntax wie ich anhand von der Zeit, eine "HotPink" vertikale und der Breite von 5 Linie zeichne.

Mein erster Entwurf sieht folgendermassen aus.

#define PRICE_LINE1 "Hot Pink"

Print("Current bar time für rechts der gelben Linie: ",iTime(0,0,a));
Die Zeit wird korrekt ausgegeben. Mit Datum und Zeit.

Aber die Linie will nicht auf dem Bildschirm erscheinen

Hier mein erster NICHT-funktionierender Entwurf:

ObjectCreate(PRICE_LINE1, OBJ_VLINE, 0, 0, 0);
ObjectSet(PRICE_LINE1,OBJPROP_WIDTH,5);
ObjectSet(PRICE_LINE1, OBJPROP_COLOR, HotPink);
ObjectSet(PRICE_LINE1, OBJPROP_PRICE1,iTime(0,0,a))

Danke schonmal im Voraus
Mit Zitat antworten
  #14 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.987
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Als erstes würde ich mal schreiben:

ObjectSet(PRICE_LINE1, OBJPROP_TIME1,iTime(0,0,a));

traderdoc
sill3000 likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #15 (permalink)  
Alt vor 3 Wochen
Neues Mitglied
 
Registriert seit: Jun 2016
Beiträge: 23
sill3000 befindet sich auf einem aufstrebenden Ast
Standard

Vielen, vielen Dank, jetzt klappt es.

Danke traderdoc :
Mit Zitat antworten
  #16 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Jun 2016
Beiträge: 23
sill3000 befindet sich auf einem aufstrebenden Ast
Standard keine 2 Linienarten werden angezeigt

Hallo zusammen,

ich habe ein Problem, mit dem ich nicht weiterkomme.
Die vertikalen Linien werden hervorragend angezeigt. Siehe angehängte JPG's.

Aber leider nur getrennt voneinander. Wie schaffe ich es, die beiden Linienarten auf ein Chart zu legen.

Fkt. void navy_Linie_zeichnen(int Pos,int a)
{
ObjectCreate(a, OBJ_VLINE, 0, 0, 0);
ObjectSet(a,OBJPROP_WIDTH,5);
ObjectSet(a, OBJPROP_COLOR, Navy);
ObjectSet(a, OBJPROP_PRICE1,Pos);
ObjectSet(a,OBJPROP_STYLE,Linien_Stil);
ObjectSet(a, OBJPROP_TIME1,iTime(0,0,Pos));
}
void light_salmon_Linie_zeichnen(int Pos,int f)
{
ObjectCreate(f, OBJ_VLINE, 0, 0, 0);
ObjectSet(f,OBJPROP_WIDTH,5);
ObjectSet(f, OBJPROP_COLOR, LightSalmon);
ObjectSet(f, OBJPROP_PRICE1,Pos);
ObjectSet(f,OBJPROP_STYLE,Linien_Stil);
ObjectSet(f, OBJPROP_TIME1,iTime(0,0,Pos));
}


So werden die Linien aufgerufen:

for(int a=0;a<100;a++)
{
navy_Linie_zeichnen(navy[a],a);
light_salmon_Linie_zeichnen(light_salmon[a],a);
}

Aber es erscheint immer nur eine Farbe, nie beide zusammen.

Werden die irgendwie überschrieben ?

Im Voraus besten Dank Gruss sill3000
Angehängte Grafiken
Dateityp: jpg navy.jpg (142,7 KB, 7x aufgerufen)
Dateityp: jpg light_salmon.jpg (143,0 KB, 7x aufgerufen)
Mit Zitat antworten
  #17 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.987
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja klar!, weil beide farbigen Linien denselben Objektnamen haben.

Wenn man sich über F1 an die vorgegebenen Strukturen der Funktionen hält, dann kann man solche Fehler nahezu ausschließen.

Die relevante Funktionsstruktur sieht dann so aus:


bool ObjectCreate(
string object_name, // object name
ENUM_OBJECT object_type, // object type
int sub_window, // window index
datetime time1, // time of the first anchor point
double price1, // price of the first anchor point
datetime time2=0, // time of the second anchor point
double price2=0, // price of the second anchor point
datetime time3=0, // time of the third anchor point
double price3=0 // price of the third anchor point
);

Und dabei sind hier v.a. die ersten 5 Parameter existentiell!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #18 (permalink)  
Alt vor 2 Wochen
Neues Mitglied
 
Registriert seit: Jun 2016
Beiträge: 23
sill3000 befindet sich auf einem aufstrebenden Ast
Standard

Danke traderdoc,

vielen Dank
Mit Zitat antworten
Antwort

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 +2. Es ist jetzt 16:38 Uhr.



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