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: 3947
Beiträge: 37722
Benutzer: 6.242
Aktive Benutzer: 419
Links: 80
Wir begrüßen unseren neuesten Benutzer: Marcel83
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Tagen
- Marcel83
vor 5 Tagen
- Megaule
vor 5 Tagen
- faanx
vor 5 Tagen
- baldwinlol
vor 6 Tagen
- adaba

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 44
Gesamt: 45
Team: 0
Team:  
Benutzer:  traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 54
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
__________________
heute schon gelacht?
Mit Zitat antworten
  #2 (permalink)  
Alt vor 4 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.989
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.
Mit Zitat antworten
  #3 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 54
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
__________________
heute schon gelacht?
Mit Zitat antworten
  #4 (permalink)  
Alt vor 4 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.989
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.
Mit Zitat antworten
  #5 (permalink)  
Alt vor 4 Wochen
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 54
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
__________________
heute schon gelacht?
Mit Zitat antworten
Antwort

Lesezeichen


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 +2. Es ist jetzt 16:30 Uhr.



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