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: 4258
Beiträge: 39562
Benutzer: 6.577
Aktive Benutzer: 255
Links: 80
Wir begrüßen unseren neuesten Benutzer: festus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Tagen
- festus
vor 4 Tagen
- lovetradin...
vor 4 Tagen
- schwarz
vor 4 Tagen
- viethommy
vor 4 Tagen
- earasa

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard OrderModify Problem !!! Hilfeeee!!!

Hi Freunde des (oft widerspenstigen) MQL4,
ich möchte eine Order nach dem Öffnen mit OrderModify verändern.
Es soll ein StoppLoss auf einer EMA gesetzt werden und der soll sich mit der EMA verändern.
Nun habe ich alles versucht, in die OrderModify die zuvor ausgelesene Ticketnummer reinzubringen - ohne Erfolg.
Vielleicht könnt ihr mit mal helfen?
Hier der Code (Natürlich sind die Variablen definiert):
Code:
   for(i=0;i<=OrdersTotal();i++)
   OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
          bool res=OrderModify(OrderTicket(),0,EMA50,0,0,clrBlue);
          if(!res)
                     Alert("Error in OrderModify. Error Code = ",GetLastError());
                     else
                     Alert("Order modified successfully!");
Als Fehlercode wird 4051 angezeigt (Invalid function parameter value)
Wäre echt toll, wenn ich hier weiterkommen würde...! Danke!!!
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #2 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Apr 2018
Beiträge: 58
daybyter befindet sich auf einem aufstrebenden Ast
Standard

Du willst den Preis auf 0 setzen? Wie soll das funktionieren?
  #3 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard

Würdest Du mir die Stelle zeigen, wo ich den Preis auf 0 setze?
Falls Du die rot markierte Stelle meinst
Code:
bool res=OrderModify(OrderTicket(),0,EMA50,0,0,clrBlue);
dann sei Dir versichert, dass diese 0 zwar für den Preis steht, aber KEINE PREISÄNDERUNG signalisiert / fordert / veranlasst.
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #4 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Apr 2018
Beiträge: 58
daybyter befindet sich auf einem aufstrebenden Ast
Standard

OK, ich hab halt noch nirgendwo gesehen, dass das gehen soll.
  #5 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard

Man kann den Preis einer Pending-Order verändern. Den Preis einer laufenden (Open-) -Order kann man naturgemäß nicht verändern. Den bestimmt der Markt.
HIER geht es um laufende, also "open" orders. Daher wird der Wert auf 0 gesetzt. Aber bitte, ich bin um jede Art des Wissen dankbar - kann ja sein, dass ich falsch liege - in dem Fall gib mir doch ein funktionierendes Beispiel...?!
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #6 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Apr 2018
Beiträge: 58
daybyter befindet sich auf einem aufstrebenden Ast
Standard

In meinem Framework nahm ich halt OrderOpenPrice () usw für Preis, StopLoss usw. Bei mir funktioniert das dann.
  #7 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 117
Angel befindet sich auf einem aufstrebenden Ast
Standard

Ok... nachdem ich den Code ein wenig modifizierte und die verfluchten , berühmt-berüchtigten Drecksklammern eingefügt habe, funktioniert es. Vielleicht für andere, die so einen Fehler suchen:

Code:
   total=OrdersTotal();
   for(i=0;i<=OrdersTotal();i++)
      {OrderSelect(i,SELECT_BY_POS, MODE_TRADES);
       ordernrticket[i]=OrderTicket();
       OrderModify(ordernrticket[i],0,EMA50,0,0,clrBlue);
      }
Wie gesagt, der Code ist für Open-Orders, nicht für Pending-Orders.
Und das Array von ordernrticket nicht vergessen, am Programmanfang zu definieren!

So, @Admin, vielleicht auch für die Rubrik Codeschnipsel?!
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang
  #8 (permalink)  
Alt 08.02.19
Mitglied
 
Registriert seit: Apr 2018
Beiträge: 58
daybyter befindet sich auf einem aufstrebenden Ast
Standard

Ach so...Du kommst von Python? Da macht man die Klammern nicht...stimmt...

Aber prima, dass es nun klappt!
Thema geschlossen

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 07:10 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2019 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.
-----------------------------------------------------------------------------------------------------------------------------