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: 4621
Beiträge: 41668
Benutzer: 6.995
Aktive Benutzer: 182
Links: 82
Wir begrüßen unseren neuesten Benutzer: Tbened
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 6 Tagen
- Tbened
vor einer Woche
- coinboy
vor 2 Wochen
- Kat34r
vor 2 Wochen
- Goldstream
vor 2 Wochen
- masila

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 42
berlin befindet sich auf einem aufstrebenden Ast
Standard OrderClose error 4051

moin zusammen,

ich nutze zum testen von indikatoren meist die selbe code struktur. jetzt ist der bollinger in kombi mit dem rsi dran.

ich habe verschiedene dinge probiert und komme dennoch nicht weiter. er eröffnet einen trade, schliesst ihn aber nicht mehr. bei long und short (einzeln getestet)

in der execute long funktion wird das ticket zurückgegeben, wonach dann in der else if anweisung gefragt wird. verstehe einfach nicht warum er nicht schliesst.hab den code verglichen mit den anderen indikatoren die ich getestet hab und konnte keine auffälligkeiten feststellen.

ich danke für erfolgreiche hinweise zur ergreifung des fehlers

lieben gruss,
berlin

hier ist der Teil der checkt ob ein long in frage kommt:
if(IsTradingAllowed())
if(iClose(Symbol(),TimeframeBB,0) > bbLower1){
if(iClose(Symbol(),TimeframeBB,2) < bbLower2 && rsi2 < RSIuntenLong
&& iClose(Symbol(),TimeframeBB,1) < bbUpper1 && rsi1 < RSIuntenLong)
if(orderTicket <= 0){
orderTicket = executeLong();
}
}

else if(iClose(Symbol(),TimeframeBB,0) >= bbUpper0){
if(OrderSelect(orderTicket,SELECT_BY_TICKET) == true){
if(OrderType() == OP_BUY){
bool res = OrderClose(OrderTicket(),OrderLots(),Ask,10000,clr NONE);
orderTicket = 0;
}
}
}

und hier der execute long teil.
int executeLong(){
double entry = Ask;

//double tp = entry + TP * Point;
double sl =entry - SL * Point;

int ticket;
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10000,sl,0,Komm entar,Magic,0,clrNONE);
return ticket;
}
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 42
berlin befindet sich auf einem aufstrebenden Ast
Angry mit tp und sl

lasse ich den else if teil weg (der soll ja beim gegensignal schliessen). und ich verwende stattdessen den tp und sl. funktioniert es...
mh...
Mit Zitat antworten
  #3 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 42
berlin befindet sich auf einem aufstrebenden Ast
Standard

hab jetzt versucht anstatt iClose den Ask kurs als signal zeitpunkt zu wählen:



@traderdoc @trading-indikator

könnt ihr mir bitte sagen woran das liegt?

vielen dank und lieben gruss,
berlin
Mit Zitat antworten
  #4 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.486
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von berlin Beitrag anzeigen
moin zusammen,

ich nutze zum testen von indikatoren meist die selbe code struktur. jetzt ist der bollinger in kombi mit dem rsi dran.

ich habe verschiedene dinge probiert und komme dennoch nicht weiter. er eröffnet einen trade, schliesst ihn aber nicht mehr. bei long und short (einzeln getestet)

in der execute long funktion wird das ticket zurückgegeben, wonach dann in der else if anweisung gefragt wird. verstehe einfach nicht warum er nicht schliesst.hab den code verglichen mit den anderen indikatoren die ich getestet hab und konnte keine auffälligkeiten feststellen.

ich danke für erfolgreiche hinweise zur ergreifung des fehlers

lieben gruss,
berlin

hier ist der Teil der checkt ob ein long in frage kommt:
if(IsTradingAllowed())
if(iClose(Symbol(),TimeframeBB,0) > bbLower1){
if(iClose(Symbol(),TimeframeBB,2) < bbLower2 && rsi2 < RSIuntenLong
&& iClose(Symbol(),TimeframeBB,1) < bbUpper1 && rsi1 < RSIuntenLong)
if(orderTicket <= 0){
orderTicket = executeLong();
}
}

else if(iClose(Symbol(),TimeframeBB,0) >= bbUpper0){
if(OrderSelect(orderTicket,SELECT_BY_TICKET) == true){
if(OrderType() == OP_BUY){
bool res = OrderClose(OrderTicket(),OrderLots(),Ask,10000,clr NONE);
orderTicket = 0;
}
}
}

und hier der execute long teil.
int executeLong(){
double entry = Ask;

//double tp = entry + TP * Point;
double sl =entry - SL * Point;

int ticket;
ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10000,sl,0,Komm entar,Magic,0,clrNONE);
return ticket;
}
Wahrscheinlich wurde orderTicket an der falsche Stelle deklariert. Wenn das lokal erfolgte ist beim nächsten else if orderTicket = 0.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 42
berlin befindet sich auf einem aufstrebenden Ast
Standard

vielen dank traderdoc,

eigentlich hab ich aber am orderTicket befehl nicht geändert.

ich fange nochmal bei null an und füge erstmal nur einen bezug auf den indikator hinzu.

ich melde ich
Mit Zitat antworten
  #6 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 42
berlin befindet sich auf einem aufstrebenden Ast
Standard jetzt ist der error bei 4108

hab ihn jetzt mal aufs minimum reduziert um dem fehler näher zu kommen.

er eröffnet und schliesst jetzt auch so wie es angedacht ist. nur taucht im journal jetzt der error 4108 auf.

ich habe jetzt versucht orderTicket mit shortOrder oder longOrder auszutauschen. orderTicket an verschiedenen stellen weggenommen usw.

selbst wenn ich den logischen ablauf durchgehe finde ich nicht die stelle wo der fehler sitzt.

in den anhang hab ich jetzt mal den code in den anhang reingepackt. vielleicht hilft es euch ja den übeltäter aufzuspüren.

vielen dank und lieben gruss,
berlin
Angehängte Dateien
Dateityp: mq4 OrderClose error 4108.mq4 (9,7 KB, 1x aufgerufen)
Mit Zitat antworten
  #7 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 42
berlin befindet sich auf einem aufstrebenden Ast
Standard

selbst wenn ich folgende zeilen direkt am anfang der on tick funktion platziere. ändert es nichts an dem fehler. die zeilen sind eigentlich auch nicht nötig da ja der code ansich an jeder stelle mit dem orderticket arbeitet um es auf 0 oder >0 zu setzen



if(OrderSelect(longOrder,SELECT_BY_TICKET) && OrderCloseTime() > 0) longOrder = 0;
if(OrderSelect(shortOrder,SELECT_BY_TICKET) && OrderCloseTime() > 0) shortOrder = 0;
Mit Zitat antworten
  #8 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2020
Beiträge: 42
berlin befindet sich auf einem aufstrebenden Ast
Standard tester mit blick aufs journal

ich wollte mal schauen bei welchem trade der fehler zuerst auftaucht.

für mich erstaunlich ist das er vom ersten trade an auftaucht. zu dem zeitpunkt sollte doch das orderticket eigentlich so und so auf 0 sein.

mysteriös....
Angehängte Grafiken
Dateityp: png Bildschirmfoto 2020-12-30 um 19.27.39.png (12,2 KB, 2x aufgerufen)
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 +1. Es ist jetzt 12:24 Uhr.





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