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: 3367
Beiträge: 33887
Benutzer: 5.356
Aktive Benutzer: 613
Links: 79
Wir begrüßen unseren neuesten Benutzer: Mogelbaum
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor einer Stunde
- Mogelbaum
vor 16 Stunden
- romahanove...
vor einem Tag
- thaiquocba...
vor einem Tag
- patte
vor einem Tag
- boomo

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 29
Gesamt: 30
Team: 0
Team:  
Benutzer:  GenosseX
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 12.10.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 4
erakman befindet sich auf einem aufstrebenden Ast
Standard Return to Open

Hallo, hat jemand eine kleine Idee zu folgender Thematik?

Gesucht wird täglich die Anzahl der M5 Kerzen bis der Kurs nach Markteröffnung um 9:00 Uhr wieder das Open berührt.

Einziges Kriterium ist, dass vor der Kerze, welche das Open berührt/crossed, mindestens eine M5 Kerze das Open nicht berührt, somit oberhalb oder unterhalb des Open ist.

Beispiel :
if(TimeHour(TimeCurrent()==9)
1.M5 Kerze berührt das open logischerweise : Low(0)<=Open(Eröffnungskurs)<=High(0)
2.M5 Kerze beispielsweise auch: Low(0)<=Open(Eröffnungskurs)<=High(0)
3.M5 Kerze beispielsweise auch: Low(0)<=Open(Eröffnungskurs)<=High(0)
4 Kerze keine Berührung-- Kriterium erfüllt:
Low(0)>Open(Eröffnungskurs) && High(0)>Open(Eröffnungskurs) // Kerze oberhalb
oder
Low(0)<Open(Eröffnungskurs) && High(0)<Open(Eröffnungskurs) // Kerze unterhalb
5. Kerze entsprechend Kerze 4 -- oberhalb oder unterhalb wie 4
6. Kerze berührt EK
Low(0)<=Open(Eröffnungskurs)<=High(0)

Ergebnis 6

Hat jemand eine Codeidee dazu, komme leider nicht weiter!

Vielen Dank
Mit Zitat antworten
  #2 (permalink)  
Alt 13.10.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Kannst Du das mal grafisch darstellen?

Was soll das Ganze bringen?
Mit Zitat antworten
  #3 (permalink)  
Alt 13.10.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 4
erakman befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
vielen Dank für deine Antwort.
Als Beispiel ein Screenshot.
Ergebnis wäre demnach 7 und nicht 2.

Ich brauche den Output dieser Funktion um damit in meinem EA weiterarbeiten zu können.
Wäre cool, wenn du vielleicht eine Idee dazu hättest.

LG
Angehängte Grafiken
Dateityp: png Beispiel.PNG (12,9 KB, 13x aufgerufen)
Mit Zitat antworten
  #4 (permalink)  
Alt 13.10.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

So, mal schnell aus der Hüfte geschossen, ohne Überprüfung.

Code:
//global die Variablen deklarieren

if (TimeHour(TimeCurrent()>=9) {
   if (!stopcounting) {
      if (!timeflag) {
         OpenKurs = Open[0];
         touch = true;
         count = 0;
         candlecount = 0;
         OldBar = Time[0];
         timeflag = true;
      }
      if (OldBar != Time[0]) {
         candlecount++;
         if (!touch) count = 1;
            else count = 0;
         OldBar = Time[0];
      }
      if (Low[0] <= OpenKurs && High[0] >= OpenKurs)  touch = true;
         else touch = false;
      if (touch && count == 1) {
         //Aktion - candlecount stellt nun die Anzahl der Kerzen zwischen der
         //09:00 Kerze und dem ersten Berühren dieses OpenKurses dar, mit
         //der VorKerze der Unberührtheit
         stopcounting = true;
      }
   }
} else {
   timeflag = false;
   stopcounting = false;
}
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt 13.10.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 4
erakman befindet sich auf einem aufstrebenden Ast
Standard

Hey Traderdoc,
vielen Dank für deinen Input.
Ich checke das mal und gebe dir gerne Feedback.
LG
Mit Zitat antworten
  #6 (permalink)  
Alt 14.10.16
Neues Mitglied
 
Registriert seit: Sep 2016
Beiträge: 4
erakman befindet sich auf einem aufstrebenden Ast
Standard

Hi Traderdoc,
also laufen tut es , liefert nur keine Ergebnisse.
Woran kann das liegen? Der Code scheint logisch einwandfrei.
LG

extern bool stopcounting = false;
extern bool timeflag = false;
extern bool touch;
extern int OpenKurs;
extern int count;
extern int candlecount ;
extern int OldBar;

//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
//global die Variablen deklarieren

if (TimeHour(TimeCurrent()>=9)) {
if (!stopcounting) {
if (!timeflag) {
OpenKurs = Open[0];
touch = true;
count = 0;
candlecount = 0;
OldBar = Time[0];
timeflag = true;
}
if (OldBar != Time[0]) {
candlecount++;
if (!touch) count = 1;
else count = 0;
OldBar = Time[0];
}
if (Low[0] <= OpenKurs && High[0] >= OpenKurs) touch = true;
else touch = false;
if (touch && count == 1) {
Comment("Anzahl = " , candlecount);
//Aktion - candlecount stellt nun die Anzahl der Kerzen zwischen der
//09:00 Kerze und dem ersten Berühren dieses OpenKurses dar, mit
//der VorKerze der Unberührtheit
stopcounting = true;
}
}
}
else {
timeflag = false;
stopcounting = false;
}
}

//+------------------------------------------------------------------+
Mit Zitat antworten
  #7 (permalink)  
Alt 14.10.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun, so kann das auch nicht gehen, da die Variablen nicht als extern zu deklarieren sind. Außerdem muß unbeding die Variable OpenKurs double sein und nicht int, sonst wird der gesamte Kommateil ignoriert.

Also:

bool stopcounting = false;
bool timeflag = false;
bool touch;
double OpenKurs;
int count;
int candlecount ;
int OldBar;

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #8 (permalink)  
Alt 14.10.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Desweiteren habe ich hier eine Zeile von Dir falsch übernommen:

if (TimeHour(TimeCurrent()>=9)) {

Richtig:
if (TimeHour(TimeCurrent())>=9) {

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #9 (permalink)  
Alt 14.10.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Code überprüft, Ergebnisse werden angezeigt, läuft fehlerfrei!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
m5 kerzen, mql4, open count bars, programmierung, 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 01:01 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.
-----------------------------------------------------------------------------------------------------------------------------