Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43286
Benutzer: 7.224
Aktive Benutzer: 74
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 13 Stunden
- Sundaytrad...
vor 19 Stunden
- TS_6
vor 2 Tagen
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 392
Gesamt: 392
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: 126
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: 103
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: 126
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: 103
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: 126
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: 103
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: 126
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: 103
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


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:29 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.
-----------------------------------------------------------------------------------------------------------------------------