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: 3774
Beiträge: 36752
Benutzer: 5.957
Aktive Benutzer: 504
Links: 80
Wir begrüßen unseren neuesten Benutzer: jimydirektsaft
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 11 Stunden
- jimydirekt...
vor 21 Stunden
- Geri78
vor einem Tag
- Phil7
vor einem Tag
- daijiro051...
vor einem Tag
- bauerbi

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

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 25.11.16
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 28
nobtrade befindet sich auf einem aufstrebenden Ast
Standard High and Low für bestimmten Zeitraum

Hallo liebe Trader,
mein Broker hat jetzt den Nachthandel eingeführt.
Bisher habe ich immer durch einen Indikator die Tageshighs and Tageslows vom aktuellen und vorangegangenen Tag mir einzeichnen lassen.
Die möchte ich auch weiterhin tun, allerding nicht für die Zeit von 22.00 bis 8.00 Uhr.
Bisher habe ich mir einfach ein Objekt kreiert:
ObjectCreate ("Vortageshoch", OBJ,HLINE, 0 ,0, iHigh(Symbol(),PERIOD_D1,1);
Dann habe ich aber auch die nicht gewollten Zeiten dabei.
Wie kann ich MT4 sagen, dass er aus der Zeit z.B. von 8.00 Uhr bis 22.00 Uhr das High and Low einzeichnen soll?

Danke und Gruß
  #2 (permalink)  
Alt 25.11.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.848
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Über iHighest() und iLowest() werden die Kerzenpositionen zurückgegeben, wo sich das High bzw Low zwischen den beiden Zeiten befindet.
Das eigentliche High und Low dann über High[] bzw. Low[].

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 25.11.16
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 28
nobtrade befindet sich auf einem aufstrebenden Ast
Standard

Hallo Traderdoc,
vielen Dank für die super schnelle Antwort!!!
Kann Du mir kurz noch schreiben, wie ich das machen muss, wenn ich z.B. für die Zeit von 8.00 bis 9.00 Uhr das High und Low ermitteln möchte.
Das habe ich mit Deiner ersten Antwort noch nicht hinbekommen.

Danke
  #4 (permalink)  
Alt 25.11.16
Neues Mitglied
 
Registriert seit: Feb 2016
Beiträge: 5
einser34 befindet sich auf einem aufstrebenden Ast
Standard Hallo

mit,diesem kannst die Zeit einstellen,wie du willst,zeigt Hoch und Tief an.
Angehängte Dateien
Dateityp: mq4 Test.mq4 (9,2 KB, 27x aufgerufen)
  #5 (permalink)  
Alt 29.11.16
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 28
nobtrade befindet sich auf einem aufstrebenden Ast
Standard

Hallo Traderdoc,
könntest Du meine Frage noch beantworten oder ist dies Gebührenpflichtig?

Viele Grüße
nobtrade
  #6 (permalink)  
Alt 29.11.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.848
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das ist noch nicht gebührenpflichtig.

int shift8 = iBarShift(NULL, 0, StringToTime("08:00"));
int shift9 = iBarShift(NULL, 0, StringToTime("09:00"));
int highest = iHighest(NULL, 0, MODE_HIGH, shift8 - shift9 + 1, shift9);
int lowest = iHighest(NULL, 0, MODE_LOW, shift8 - shift9 + 1, shift9);

double high = iHigh(NULL, 0, highst);
double low = iLow(NULL, 0, lowest);

Viel Erfolg!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 01.12.16
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 28
nobtrade befindet sich auf einem aufstrebenden Ast
Standard

Hallo Traderdoc,

vielen, vielen Dank.

Es hat aber noch nicht 100%ig geklappt.

Zum einen wandert der OpenRange_unten_aktuell, wenn ich in andere Zeiteinheiten wechsel (z.B. vom 1Min Chart in den 15 Min Chart).
Desweiteren wird der OpenRange_oben_aktuell nicht vom Chartfenster gelöscht, wenn ich den Indicator entferne.
Und die letzte Frage, wie kann ich den OpenRange Bereich für den Vortag einzeichnen? Deine Antwort funktioniert ja nur für den laufenden Tag.

Hier mein Code:

int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Vortageshoch");
ObjectDelete("Vortagestief");
ObjectDelete("Schlusskurs");
ObjectDelete("Eröffnungskurs");
ObjectDelete("aktuelles Tageshoch");
ObjectDelete("aktuelles Tagestief");
ObjectDelete("OpenRange_oben_aktuell");
ObjectDelete("OpenRange_unten_aktuell");

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//----
ObjectDelete ("Vortageshoch");
ObjectDelete ("Vortagestief");
ObjectDelete ("Schlusskurs");
ObjectDelete ("Eröffnungskurs");
ObjectDelete ("aktuelles Tageshoch");
ObjectDelete ("aktuelles Tagestief");
ObjectDelete ("OpenRange_oben_aktuell");
ObjectDelete ("OpenRange_unten_aktuell");

int shift9 = iBarShift(NULL, 0, StringToTime("09:00"));
int shift10 = iBarShift(NULL, 0, StringToTime("10:00"));
int highest = iHighest(NULL, 0, MODE_HIGH, shift9 - shift10+1, shift10);
int lowest = iLowest(NULL, 0, MODE_LOW, shift9 - shift10+1, shift10);

ObjectCreate ("OpenRange_oben_aktuel", OBJ_HLINE, 0,0, iHigh(NULL, 0, highest));
ObjectSet ("OpenRange_oben_aktuel", OBJPROP_COLOR, clrOrange);
ObjectSet ("OpenRange_oben_aktuel", OBJPROP_WIDTH, 2);
ObjectSet ("OpenRange_oben_aktuel", OBJPROP_HIDDEN, true);

ObjectCreate ("OpenRange_unten_aktuell", OBJ_HLINE, 0,0, iLow(NULL, 0, lowest));
ObjectSet ("OpenRange_unten_aktuell", OBJPROP_COLOR, clrOrange);
ObjectSet ("OpenRange_unten_aktuell", OBJPROP_WIDTH, 2);
ObjectSet ("OpenRange_unten_aktuell", OBJPROP_HIDDEN, true);
  #8 (permalink)  
Alt 01.12.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.848
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Was verstehst Du denn unter "wandern"? Da das High und Low zwischen 8 und 9Uhr nicht vom Timeframe abhängt (die Differenz dieser Zeitgrenzen in Minuten sollte allerdings immer ohne Rest teilbar durch die Minuten des Timeframes sein!), müsste ja auch immer dasselbe High und Low ermittelt werden.

In Deinem Code fehlt überall ein l bei aktuel.

Einen Tag vorher:

int shift9 = iBarShift(NULL, 0, StringToTime("09:00")-86400);

86400 sind die Anzahl Sekunden pro Tag.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #9 (permalink)  
Alt 01.12.16
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 28
nobtrade befindet sich auf einem aufstrebenden Ast
Standard

Hallo Traderdoc,

mit dem vergessenen "l" ist das Problem gelöst, dass die horizontale Linie nicht gelöscht wird, wenn man den Indikator löscht. Vielen Dank

Wandern heißt, wenn ich im 1min Chart bin, zeigt er mir die Linien korrekt an, beim 5min Chart und höher nimmt er das low der ersten nächsten Kerze.

Den Vortag probiere ich gleich mal aus...
  #10 (permalink)  
Alt 01.12.16
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 28
nobtrade befindet sich auf einem aufstrebenden Ast
Standard

Hallo einser34,
hatte vergessen, mich auch bei Dir zu bedanken...

Hallo Traderdoc,

hier noch mal der komplette Code. Die Tageshigh und -lows klappen super.
Die Linien der OpenRange Horizontalen sind im Minutenchart korrekt, in jeder anderen Zeiteinheit falsch.

Was habe ich falsch genmacht??????

int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Vortageshoch");
ObjectDelete("Vortagestief");
ObjectDelete("Schlusskurs");
ObjectDelete("Eröffnungskurs");
ObjectDelete("aktuelles Tageshoch");
ObjectDelete("aktuelles Tagestief");
ObjectDelete("OpenRange_oben_aktuell");
ObjectDelete("OpenRange_unten_aktuell");
ObjectDelete("OpenRange_oben_Vortag");
ObjectDelete("OpenRange_unten_Vortag");

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//----
ObjectDelete ("Vortageshoch");
ObjectDelete ("Vortagestief");
ObjectDelete ("Schlusskurs");
ObjectDelete ("Eröffnungskurs");
ObjectDelete ("aktuelles Tageshoch");
ObjectDelete ("aktuelles Tagestief");
ObjectDelete ("OpenRange_oben_aktuell");
ObjectDelete ("OpenRange_unten_aktuell");
ObjectDelete ("OpenRange_oben_Vortag");
ObjectDelete ("OpenRange_unten_Vortag");

int shift9 = iBarShift(NULL, 0, StringToTime("09:00"));
int shift10 = iBarShift(NULL, 0, StringToTime("10:00"));
int highest = iHighest(NULL, 0, MODE_HIGH, shift9 - shift10+1, shift10);
int lowest = iLowest(NULL, 0, MODE_LOW, shift9 - shift10+1, shift10);

ObjectCreate ("OpenRange_oben_aktuell", OBJ_HLINE, 0,0, iHigh(NULL, 0, highest));
ObjectSet ("OpenRange_oben_aktuell", OBJPROP_COLOR, clrOrange);
ObjectSet ("OpenRange_oben_aktuell", OBJPROP_WIDTH, 2);
ObjectSet ("OpenRange_oben_aktuell", OBJPROP_HIDDEN, true);

ObjectCreate ("OpenRange_unten_aktuell", OBJ_HLINE, 0,0, iLow(NULL, 0, lowest));
ObjectSet ("OpenRange_unten_aktuell", OBJPROP_COLOR, clrOrange);
ObjectSet ("OpenRange_unten_aktuell", OBJPROP_WIDTH, 2);
ObjectSet ("OpenRange_unten_aktuell", OBJPROP_HIDDEN, true);

shift9 = iBarShift(NULL, 0, StringToTime("09:00")-86400);
shift10 = iBarShift(NULL, 0, StringToTime("10:00")-86400);
highest = iHighest(NULL, 0, MODE_HIGH, shift9 - shift10+1, shift10);
lowest = iLowest(NULL, 0, MODE_LOW, shift9 - shift10+1, shift10);

ObjectCreate ("OpenRange_oben_Vortag", OBJ_HLINE, 0,0, iHigh(NULL, 0, highest));
ObjectSet ("OpenRange_oben_Vortag", OBJPROP_COLOR, clrGreen);
ObjectSet ("OpenRange_oben_Vortag", OBJPROP_WIDTH, 2);
ObjectSet ("OpenRange_oben_Vortag", OBJPROP_HIDDEN, true);

ObjectCreate ("OpenRange_unten_Vortag", OBJ_HLINE, 0,0, iLow(NULL, 0, lowest));
ObjectSet ("OpenRange_unten_Vortag", OBJPROP_COLOR, clrGreen);
ObjectSet ("OpenRange_unten_Vortag", OBJPROP_WIDTH, 2);
ObjectSet ("OpenRange_unten_Vortag", OBJPROP_HIDDEN, true);

shift9 = iBarShift(NULL, 0, StringToTime("09:00")-86400);
int shift23 = iBarShift(NULL, 0, StringToTime("23:00")-86400);
highest = iHighest(NULL, 0, MODE_HIGH, shift9 - shift23+1, shift23);
lowest = iLowest(NULL, 0, MODE_LOW, shift9 - shift23+1, shift23);

ObjectCreate ("Vortageshoch", OBJ_HLINE, 0,0, iHigh(NULL, 0, highest));
ObjectSet ("Vortageshoch", OBJPROP_COLOR, clrDarkViolet);
ObjectSet ("Vortageshoch", OBJPROP_WIDTH, 2);
ObjectSet ("Vortageshoch", OBJPROP_HIDDEN, true);

ObjectCreate ("Vortagestief", OBJ_HLINE, 0,0, iLow(NULL, 0, lowest));
ObjectSet ("Vortagestief", OBJPROP_COLOR, clrDarkViolet);
ObjectSet ("Vortagestief", OBJPROP_WIDTH, 2);
ObjectSet ("Vortagestief", OBJPROP_HIDDEN, true);

ObjectCreate ("Schlusskurs", OBJ_HLINE, 0,0, iClose(Symbol(),PERIOD_D1,1));
ObjectSet ("Schlusskurs", OBJPROP_COLOR, clrDarkViolet);
ObjectSet ("Schlusskurs", OBJPROP_STYLE, STYLE_DASH);
ObjectSet ("Schlusskurs", OBJPROP_WIDTH, 1);
ObjectSet ("Schlusskurs", OBJPROP_HIDDEN, true);

ObjectCreate ("Eröffnungskurs", OBJ_HLINE, 0,0, iOpen(Symbol(),PERIOD_D1,0));
ObjectSet ("Eröffnungskurs", OBJPROP_COLOR, clrRed);
ObjectSet ("Eröffnungskurs", OBJPROP_STYLE, STYLE_DASH);
ObjectSet ("Eröffnungskurs", OBJPROP_WIDTH, 1);
ObjectSet ("Eröffnungskurs", OBJPROP_HIDDEN, true);

shift9 = iBarShift(NULL, 0, StringToTime("09:00"));
shift23 = iBarShift(NULL, 0, StringToTime("23:00"));
highest = iHighest(NULL, 0, MODE_HIGH, shift9 - shift23 + 1, shift23);
lowest = iLowest(NULL, 0, MODE_LOW, shift9 - shift23 + 1, shift23);

ObjectCreate ("aktuelles Tageshoch", OBJ_HLINE, 0,0, iHigh(NULL, 0, highest));
ObjectSet ("aktuelles Tageshoch", OBJPROP_COLOR, clrRed);
ObjectSet ("aktuelles Tageshoch", OBJPROP_WIDTH, 2);
ObjectSet ("aktuelles Tageshoch", OBJPROP_HIDDEN, true);

ObjectCreate ("aktuelles Tagestief", OBJ_HLINE, 0,0, iLow(NULL, 0, lowest));
ObjectSet ("aktuelles Tagestief", OBJPROP_COLOR, clrRed);
ObjectSet ("aktuelles Tagestief", OBJPROP_WIDTH, 2);
ObjectSet ("aktuelles Tagestief", OBJPROP_HIDDEN, true);



//----
return(0);
}
//+------------------------------------------------------------------+
Thema geschlossen

Lesezeichen

Stichworte
ihighest(), ilowest(), mql4, programmierung, programmierung metatarder, 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 +2. Es ist jetzt 07:45 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 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.
-----------------------------------------------------------------------------------------------------------------------------