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: 3359
Beiträge: 33848
Benutzer: 5.342
Aktive Benutzer: 599
Links: 79
Wir begrüßen unseren neuesten Benutzer: maxi
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 5 Stunden
- maxi
vor 20 Stunden
- athaclena
vor einem Tag
- Naale
vor einem Tag
- csabi911
vor einem Tag
- Adlerflüge...

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 35
Gesamt: 38
Team: 0
Team:  
Benutzer:  fxnoob, Naale, SentiTrader
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor einer Woche
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 24
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ß
Mit Zitat antworten
  #2 (permalink)  
Alt vor einer Woche
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.518
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.
Mit Zitat antworten
  #3 (permalink)  
Alt vor einer Woche
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 24
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
Mit Zitat antworten
  #4 (permalink)  
Alt vor einer Woche
Neues Mitglied
 
Registriert seit: Feb 2016
Beiträge: 3
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, 10x aufgerufen)
Mit Zitat antworten
  #5 (permalink)  
Alt vor 5 Tagen
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 24
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
Mit Zitat antworten
  #6 (permalink)  
Alt vor 5 Tagen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.518
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.
Mit Zitat antworten
  #7 (permalink)  
Alt vor 3 Tagen
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 24
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);
Mit Zitat antworten
  #8 (permalink)  
Alt vor 3 Tagen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.518
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.
Mit Zitat antworten
  #9 (permalink)  
Alt vor 3 Tagen
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 24
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...
Mit Zitat antworten
  #10 (permalink)  
Alt vor 3 Tagen
Neues Mitglied
 
Registriert seit: Feb 2015
Beiträge: 24
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);
}
//+------------------------------------------------------------------+
Mit Zitat antworten
Antwort

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 +1. Es ist jetzt 15:11 Uhr.



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