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: 3824
Beiträge: 36981
Benutzer: 6.077
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Batangenyo
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 4 Stunden
- Batangenyo
vor einem Tag
- Spitzmaus
vor einem Tag
- juleslesqu...
vor 2 Tagen
- hmf44
vor 2 Tagen
- Crossa

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 50
Gesamt: 52
Team: 0
Team:  
Benutzer:  fxnoob, traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 13.01.14
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Smile Frage zur Orderhistory!

Guten Abend Leute,
ihr habt mir letztens Wunderbar geholfen. ..Danke nochmals dafür. Ich habe heute ne frage,
wie ich eine Anfrage Starte um nach geiner Verlustserie von bsp. 5 trades die Lotgröße um die hälfte zu verringern. Um dann wieder wenns gut läuft, wieder mit voller Größe zu fahren. Sehe in den englischsprachigen Foren bei den Codes nicht so richtig durch. ..und wollte eigentlich nur was Programmieren was ich auch verstehe.
Danke euch im voraus. ..
  #2 (permalink)  
Alt 13.01.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

F9 drücken, andere lotgröße eingeben, order senden ...

Soll das für einen EA sein hänge ihn hier mit dran und ggf. baut Dir jemand eine entsprechende Funktion ein ...

Und wenn man richtig sucht dann findet sich auch vieles -> https://www.google.de/#q=get+last+tr...rofit+%2B+mql4
  #3 (permalink)  
Alt 13.01.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Tycoon Beitrag anzeigen
und wollte eigentlich nur was Programmieren was ich auch verstehe.
Dann muß man mal ein wenig googeln/die mql4-Dokumentation lesen (einzelne Befehle nachschlagen/Beispiel-Codes ansehen) ...
  #4 (permalink)  
Alt 13.01.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Hm, ich kann den obigen Beitrag nicht mehr editieren, deshalb ein neuer:

Auch die Forensuche kann ergiebig sein, bspw.
Wie die letzten Trades auslesen?
  #5 (permalink)  
Alt 14.01.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

In etwa so:
Code:
double GetLot()
 {
  int cnt=0;
  double profit;
  int ls = 1;
  double lotmod = Lot; //Lot - initiale LotSize
  if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.01) ls = 2;
 
  for(i=OrdersHistoryTotal(); i >=0;i--)
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
       {
        if (OrderSymbol() == Symbol())
           {
            profit = OrderProfit() + OrderSwap() + OrderCommision();
            if (profit < 0) cnt++;
                else break;
            if (cnt == 5) 
               {
                lotmode = NormalizeDouble(Lot/2, ls);
                return(lotmod);
               }
           }
       }
    }
  return(lotmod);
 }
traderdoc
  #6 (permalink)  
Alt 14.01.14
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Standard

Der Code ist Super....Prima Danke.
  #7 (permalink)  
Alt 14.01.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Da ich nicht mehr editieren kann:

for(i=OrdersHistoryTotal(); i >=0;i--)

muß korrekterweise lauten:

for(int i=OrdersHistoryTotal(); i >=0;i--) oder i wird in der Funktion vorher deklariert!

traderdoc
  #8 (permalink)  
Alt 15.01.14
Mitglied
 
Registriert seit: Apr 2013
Beiträge: 45
Tycoon befindet sich auf einem aufstrebenden Ast
Standard

Ja das mit dem deklarieren habe ich gesehen..wie mache aber dann den Befehl in der
Ordersend Funktion das jeweils mit vollem Lot oder nur mit halber Größe die Order geöffnet
wird? Hatte jetzt jeweils in meiner Logik nach der History abgefragt ob Profit >0 ...dann
Ordersend (..., Lots....) oder Profit <0 dann Ordersend (..., Lots/2,..).Irgendwie macht er jetzt garnichts mehr.
  #9 (permalink)  
Alt 15.01.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Als externe Variable müßte stehen:

extern double Lot = 0.1;

Irgendwo im Programm, wo die Lotzahl abgefragt werden soll, steht dann

lot = GetLot(); //Achtung auf die Schreibweise von lot! und vorher deklarieren mit double

Und dann wird in die Funktion

OrderSend() an der richtigen Stelle die Variable lot eingefügt.
Und auch auf die Variablenbezeichnungen achten. Wenn bei Dir Lots steht, dann mußt Du meinen Code mit dem s anpassen, oder Du passt Deine externe Variable an den Bezeichner Lot an!
Sonst läuft nix!

Fertig!

traderdoc
  #10 (permalink)  
Alt 15.01.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

So nun nochmal den Code ohne Fehlerchen:

Code:
double GetLot()
 {
  int cnt=0;
  double profit;
  int ls = 1;
  double lotmod = Lot; //Lot - initiale LotSize
  if (MarketInfo(Symbol(), MODE_LOTSTEP) == 0.01) ls = 2;
 
  for(int i=OrdersHistoryTotal(); i >=0;i--)
    {
     if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
       {
        if (OrderSymbol() == Symbol())
           {
            profit = OrderProfit() + OrderSwap() + OrderCommision();
            if (profit < 0) cnt++;
                else break;
            if (cnt == 5) 
               {
                lotmod = NormalizeDouble(Lot/2, ls);
                return(lotmod);
               }
           }
       }
    }
  return(lotmod);
 }
traderdoc
Thema geschlossen

Lesezeichen

Stichworte
historie, history, mql4, orderhistorie, orderhistory, programmierung, programmierung metatrader


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



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