Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43262
Benutzer: 7.222
Aktive Benutzer: 72
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

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

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 17.02.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard Klappt das so?

Hi, mir geht es um die erste Zeile. Der EA (noch lange nicht fertig;D) soll später mal die Eröffnung des Dax traden.

if(TimeCurrent()>=StrToTime("9:00") && TimeCurrent()<StrToTime("10:00") && iHigh(NULL,60,1) < Bid)
{
LongSignal = true;
}
else LongSignal = false;

Ist die Uhrzeitabfrage so richtig implementiert oder fehlt noch was?
  #2 (permalink)  
Alt 17.02.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das ist korrekt!

Sofern iHigh(NULL,60,1) < Bid true ist, liegt aber dann in der Stunde zwischen 09:00 und 10:00 evtl. permanent ein LongSignal an. Nicht dass das dann zu mehreren Öffnungen von Orders führt.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 17.02.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Ja, da hab ich grad dran gearbeitet, sieht jetzt so aus:

int OnInit()
{
//---
PeriodenStartZeit = Time[0];
Tag = TimeDay();
TradeOK = true;
NeuerTag = false;
//---
return(INIT_SUCCEEDED);
}

void OnTick()
{

//Überprüfen ob neuer Periodenbeginn vorliegt
if(PeriodenStartZeit != Time[0])
{
NeuePeriodeBegonnen = true;
PeriodenStartZeit = Time[0];
}
else NeuePeriodeBegonnen = false;

//Überprüfen ob neuer Tag vorliegt
if (Tag != TimeDay())
{
NeuerTag = true;
Tag = TimeDay();
}

//Nur 1 Trade pro Tag
if (LongOrder >= 1 || ShortOrder >= 1 && TradeOK == true)
{
TradeOK = false;
}

if (TradeOK == false && NeuerTag == true)
{
TradeOK = true;
}



//Handelssignale ermitteln
if(NeuePeriodeBegonnen == true) //In einer "if" Klause müssen 2 gleichzeichen gesetzt werden um eine Abfrage zu starten
{
//Buy Signal
if(TradeOK == true && TimeCurrent()>=StrToTime("9:00") && TimeCurrent()<StrToTime("10:00") && iHigh(NULL,60,1) < Bid)
{
LongSignal = true;
}
else LongSignal = false;
}


Auch OK??
  #4 (permalink)  
Alt 17.02.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das geht bedeutend kürzer, jedoch bereits mit der OrderSend()-Funktion ausgestattet:

Code:
bool Trade;
int Tag;

int OnInit() {
   Trade = false;
   Tag = TimeDay();
   return(INIT_SUCCEEDED);
} 

void OnTick() {
   //Überprüfen ob neuer Tag vorliegt
   if (Tag != TimeDay()) {
      Trade = false;
      Tag = TimeDay();
   }

   //Handelssignale ermitteln
   //Buy Signal
   LongSignal = false;
   if(!Trade && TimeCurrent()>=StrToTime("9:00") && TimeCurrent()<StrToTime("10:00") && iHigh(NULL,60,1) < Bid)  SendOrder(1);
}

void SendOrder(int dir) {
   int ticket;
   ...
   if (dir == 1) {   //BuyOrder
      ticket = OrderSend(....);
      ...
   }
   if (dir == -1) {   //SellOrder
      ticket = OrderSend(....);
      ...
   }
   if (ticket > 0) Trade = true;
}
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 17.02.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Ist "!Trade" das gleiche wie "Trade = false" ?
  #6 (permalink)  
Alt 17.02.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, das kann man damit abkürzen:

!Trade entspricht false
Trade entspricht true

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 17.02.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Ok, dank dir. Werde mich mal weiter durcharbeiten..
  #8 (permalink)  
Alt 17.02.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Bekomme jetzt den Fehler "TimeDay - wrong parameters count". Ne Idee, was da nicht stimmt?
  #9 (permalink)  
Alt 17.02.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Da haben wir was vergessen. Überall wo TimeDay() steht,
muss stehen:

TimeDay(TimeCurrent());

traderdoc
fxfaker likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #10 (permalink)  
Alt 18.02.17
Mitglied
 
Registriert seit: Dec 2016
Beiträge: 54
TTFM2016 befindet sich auf einem aufstrebenden Ast
Standard

Ok, aber ändert sich TimeDay dann nicht sekündlich?

Ich hab das ganze gestern noch mit DayOfWeek() probiert und es hat funktioniert. Sollte ich es trotzdem noch abändern?
Thema geschlossen

Lesezeichen

Stichworte
code, mql4, programmierung, programmierung metatrader, programmierung mql4


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 06:04 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.
-----------------------------------------------------------------------------------------------------------------------------