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: 4331
Beiträge: 39800
Benutzer: 6.660
Aktive Benutzer: 206
Links: 80
Wir begrüßen unseren neuesten Benutzer: amin233
Mit 1.311 Benutzern waren die meisten Benutzer gleichzeitig online (16.09.19 um 01:18).
Neue Benutzer:
vor 3 Tagen
- amin233
vor 3 Tagen
- foo
vor 4 Tagen
- ecollabora...
vor 6 Tagen
- karakar
vor 6 Tagen
- exesor

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 30.08.19
Mitglied
 
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);
 }
Mit Zitat antworten
  #2 (permalink)  
Alt 30.08.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.249
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.
Mit Zitat antworten
  #3 (permalink)  
Alt 30.08.19
Mitglied
 
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
Mit Zitat antworten
  #4 (permalink)  
Alt 30.08.19
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 237
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
Mit Zitat antworten
  #5 (permalink)  
Alt 24.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 138
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);
   } 
 }
Mit Zitat antworten
  #6 (permalink)  
Alt 24.09.19
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.249
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.
Mit Zitat antworten
  #7 (permalink)  
Alt 24.09.19
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 812
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Fehlen da nicht ein paar { und } ?

https://docs.mql4.com/trading/orderselect
Mit Zitat antworten
  #8 (permalink)  
Alt 24.09.19
AVT AVT ist offline
Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 237
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
Mit Zitat antworten
  #9 (permalink)  
Alt 25.09.19
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 138
Max2018 befindet sich auf einem aufstrebenden Ast
Smile

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


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 16:40 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.
-----------------------------------------------------------------------------------------------------------------------------