|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|
|||
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? |
|
|||
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. |
|
|||
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?? |
|
|||
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; }
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Ist "!Trade" das gleiche wie "Trade = false" ?
|
Lesezeichen |
Stichworte |
code, mql4, programmierung, programmierung metatrader, programmierung mql4 |
|
|