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: 4973
Beiträge: 43253
Benutzer: 7.219
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: Hopfen&Malz
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor einem Tag
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107
vor 2 Wochen
- rg-trader

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 692
Gesamt: 692
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.733
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
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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: 238
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.733
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: 1.178
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
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
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: 238
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 +1. Es ist jetzt 19:41 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.
-----------------------------------------------------------------------------------------------------------------------------