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: 4482
Beiträge: 40704
Benutzer: 6.863
Aktive Benutzer: 251
Links: 80
Wir begrüßen unseren neuesten Benutzer: Anja
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 13 Stunden
- Anja
vor 2 Tagen
- ThaScorp
vor 6 Tagen
- Guido
vor einer Woche
- danilo
vor einer Woche
- alex2012

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 30.08.19
Gesperrter Benutzer
 
Registriert seit: Mar 2019
Beiträge: 34
MIMO befindet sich auf einem aufstrebenden Ast
Standard History Select

Hallo,

ich versuche aus der History, Order mit bestimmenten Comment zu selektieren.
Es gibt genau 2 Positionen, welche im Profit geschlossen wurden, aber es werden keine Ergebnisse angezeigt.
Es soll das Ergebnis (+/-) von Profit, Loss, Swap, Commission ausgegeben werden

Habe es mit allen Varianten durch probiert.
Jemand eine Idee die mich weiterbringt, besten Dank

Mimo

HTML-Code:
  double PairHistoryProfitLossCalc(){
   double bapairprofitloss=0,babuyprofit=0,basellprofit=0;
   for(cnt=0;cnt<OrdersTotal();cnt++){
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
     if(OrderSymbol()==Symbol() && OrderMagicNumber()==111 && StringFind(OrderComment(),"111",0))
       if(OrderType()==OP_BUY )babuyprofit=babuyprofit+OrderProfit()+OrderSwap()+OrderCommission();
       if(OrderType()==OP_SELL)basellprofit=basellprofit+OrderProfit()+OrderSwap()+OrderCommission();
        bapairprofitloss=babuyprofit+basellprofit;
   }
   return(bapairprofitloss);
 }
  #2 (permalink)  
Alt 30.08.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.374
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nun, dann schreibe mal statt:

for(cnt=0;cnt<OrdersTotal();cnt++){

die Zeile:

for (cnt = 0 ; cnt < OrdersHistoryTotal(); cnt++) {

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 30.08.19
Gesperrter Benutzer
 
Registriert seit: Mar 2019
Beiträge: 34
MIMO befindet sich auf einem aufstrebenden Ast
Standard

Du hast vollkommen recht! Danke! Zuviel Arbei, zuwenig Schlaf...

Aber die Summe die nun rauskommt entspricht nicht der Summe in der History für das Symbol + Magic,
erschwerend kommt hinzu wenn ich statt 111 z.B. 777 (ist nirgendwo im Einsatz) kommt die selbe Summe raus, eigentlich müßte es "0", denn es gibt weder als Magic noch im Comment die "777".

Mimo
  #4 (permalink)  
Alt 30.08.19
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 375
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MIMO Beitrag anzeigen
Aber die Summe die nun rauskommt entspricht nicht der Summe in der History für das Symbol + Magic,
erschwerend kommt hinzu wenn ich statt 111 z.B. 777 (ist nirgendwo im Einsatz) kommt die selbe Summe raus, eigentlich müßte es "0", denn es gibt weder als Magic noch im Comment die "777".
So auf die Schnelle fehlt mir ne Klammer um die beiden if OrderType()==xxx.
AVT
  #5 (permalink)  
Alt 24.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
ich bin an dem selben Problem. Gibt es eine Lösung zu dem Ansatz hier?
Code:
 
void Historie()
{
     
   double bapairprofitloss=0,babuyprofit=0,basellprofit=0;
   int cnt;
   for(cnt=0;cnt<OrdersHistoryTotal();cnt++)
   {
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
     if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnummer)
       if(OrderType()==OP_BUY )babuyprofit=babuyprofit+OrderProfit()+OrderSwap()+OrderCommission();
       if(OrderType()==OP_SELL)basellprofit=basellprofit+OrderProfit()+OrderSwap()+OrderCommission();
        bapairprofitloss=babuyprofit+basellprofit;
Print("Gewinn fuer Magicnr",Magicnummer,": ",bapairprofitloss);
   } 
 }
  #6 (permalink)  
Alt 24.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.374
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Was soll denn gelöst werden?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 24.09.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 949
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Fehlen da nicht ein paar { und } ?

https://docs.mql4.com/trading/orderselect
  #8 (permalink)  
Alt 24.09.19
AVT AVT ist offline
Premium Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 375
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen
Hallo,
ich bin an dem selben Problem. Gibt es eine Lösung zu dem Ansatz hier?
Ein TestScript, wir haben hier keine MagicNummer, darum habe ich Deine Zeile geändert
Code:
// ===================================================================
void OnStart()
{
  Historie();
}
// ===================================================================
void Historie()
{
     
   double bapairprofitloss=0,babuyprofit=0,basellprofit=0;
   int cnt;
   for(cnt=0;cnt<OrdersHistoryTotal();cnt++)
   {
    if(OrderSelect(cnt,SELECT_BY_POS,MODE_HISTORY))
     //if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magicnummer)
     if(OrderSymbol()==Symbol() )                                                // FürAlleOrdersDisesSymbols
     { 
       if(OrderType()==OP_BUY ) 
          babuyprofit=babuyprofit+OrderProfit()+OrderSwap()+OrderCommission();   //AlleBuysSummieren
       if(OrderType()==OP_SELL) 
          basellprofit=basellprofit+OrderProfit()+OrderSwap()+OrderCommission(); //AlleSellsSummieren
     }
   } 
   bapairprofitloss=babuyprofit+basellprofit;                                    //SummenAddieren
   Print("Gewinn gesamt: ",DoubleToStr(bapairprofitloss,2)," €");                //UndMelden
}
Du hast 2 Operationen auf dem OrderSymbol durchzuführen: die Buys und die Sells zu summieren, also müssen die in Klammern gefaßt werden. AVT
  #9 (permalink)  
Alt 25.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 139
Max2018 befindet sich auf einem aufstrebenden Ast
Smile

Danke - werde ich gleich mal testen. Wenn Du nix mehr hörst hat´s geklappt


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 05:14 Uhr.





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