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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43827
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.03.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Angry EA schließt ungewollt Positionen

Ja, ich weiß ein Programm tut nur das was man ihm sagt. Heute habe ihn angeschrien "wo zum Teufel hab ich Dir gesagt, Du sollst zumachen? Muß ich wieder Deine Sch.. manuell korrigieren!" Vielleicht ist der aber unschuldig, folgendes war sein Auftrag:
Code:
//====================== trading allowed 
DayOK=(DayOfWeek()>=DayStart && DayOfWeek()<=DayEnd); // 1-5
HourOK=(Hour()>=HStart && Hour()<=HEnd);              // 10-18 servertime
//======================= check allowed trading time 
if(DayOK && HourOK)
{  

//======================= exit conditions 
   ExitL=( TimeHour(TimeCurrent())>HEnd ); // trade time over, 18 server
   ExitS=( TimeHour(TimeCurrent())>HEnd ); 
//======================= monitoring account balance 
   if(EABalance>=DayProfit || EABalance<=-(DayLoss)) DayStop=true;
   else                                              DayStop=false;

//====================== no open orders by this EA 
   if( FuncCheckRunning()==-1   // nothing running
      && !DayStop               // money still ok
      && EnterL )               // long signal
   { long order instructions }
}  // == end if(DayOK && HourOK)

//====================== trading time over 
// == close all orders if there is still one running
else
{ closing order instructions }
und das hat er daraus gemacht:
Code:
1.) 10:00:00-10:12:15 EP 12.242,31 SL 12.286,30 TP 12.221,38 EX 12.253,82
2.) 10:00:01-10:14:51 EP 12.242,56 SL 12.286,30 TP 12.199,74 EX 12.255,94
Die einzige Anweisung zum Schließen im ganzen Code sind die ExitL und ExitS, sonst nix. DayStop erlaubt/verbietet nur neue Positionen zu eröffnen. Und die Exit Bedingungen selbst sind doch korrekt formuliert.
Ich bin ratlos. Habt Ihr eine Idee?
Danke. AVT
  #2 (permalink)  
Alt 20.03.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Hier werden aufgrund von
===================== exit conditions
ExitL=( TimeHour(TimeCurrent())>HEnd ); // trade time over, 18 server
ExitS=( TimeHour(TimeCurrent())>HEnd

ExitL und ExitS immer! 0 sein, weil
hier
if(DayOK && HourOK)
nur reingesprungen wird , wenn HourOK auch true ist. Und das ist nur true, nachdem
HourOK=(Hour()>=HStart && Hour()<=HEnd);
true ist.

D.h., wenn oben eingesprungen wird, dann muss die Stunde <= HEnd sein.
Und damit muss z.B. ExitL immer 0 sein, weil
TimeHour(TimeCurrent()>HEnd nie erfüllt sein kann.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 20.03.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
... wenn oben eingesprungen wird, dann muss die Stunde <= HEnd sein.
Und damit muss z.B. ExitL immer 0 sein, weil
TimeHour(TimeCurrent()>HEnd nie erfüllt sein kann.
traderdoc da hast Du vollkommen recht, überflüssig (kommt davon wenn man einen EA auf was anderes umstricken will), kann auskommentiert werden, das else !DayOK und !HourOK macht das ja schon.

Dennoch erklärt es nicht, warum der plötzlich aussteigt, denn egal ob's nun drin steht (und niemals eintrifft) oder gar nicht erwähnt wird, beides heißt doch: zur Tradingzeit kein Exit!
Und genau das war hier ja die Absicht: laß' laufen bis HEnd, entweder man wird ausgestoppt (durch TP oder SL) oder der Tag ist zuende, dann nehmen wir den Rest.

Das mit dem Lachen wird wohl momentan nix. AVT
  #4 (permalink)  
Alt 20.03.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Plötzlich aussteigen? Ja dann würde ich mal einige Print-Funktionen einbauen, um das zu überwachen, mit Ausgabe der Zeit, wann er in die Close-Funktion springt usw. Das muss doch eruierbar sein.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 20.03.18
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Talking gelöst, DeInit mit Zeitfensterwechsel

Zitat:
Zitat von traderdoc Beitrag anzeigen
Plötzlich aussteigen? Das muss doch eruierbar sein.
traderdoc, danke für Deine Hilfe. Ich weiß jetzt woran es liegt:

Ich habe im DeInit ein CloseAllRunnings, sicherheitshalber falls ich mal vergesse beim Zumachen nachzusehen, ob noch irgendwas an Positionen offen ist. Und dann habe ich in dem Chart kurz die Zeiteinheit geändert, um was nachzusehen - und bumms war ich draußen.

Und was lerne ich daraus?
1. DeInit mit Reason Code-Auswertung versehen, damit es leichter zu sehen ist.
2. EA in Fenster ziehen und das NICHT mehr anrühren!
Klappt doch
Thema geschlossen

Lesezeichen

Stichworte
ea, expert advisor, mql4, order schließen, posiitonen schließen, programmierung, programmierung metatrader, programmierung mql4

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 18:58 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.
-----------------------------------------------------------------------------------------------------------------------------