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: 43251
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: 643
Gesamt: 643
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 12.08.22
Neues Mitglied
 
Registriert seit: Nov 2021
Beiträge: 10
Frank2404 befindet sich auf einem aufstrebenden Ast
Standard Summe der einzelnen Währungspaare im Chart anzeigen

Hallo liebe Gemeinde,

mir kam da so eine Idee und ich weiß nicht wie ich sie umsetzten kann.

Beispiel. Ich habe zwei Order im Währungspaar EUR/USD, beides Buy Positionen. Dazu habe ich 4 Order offen im Währungspaar EUR/AUD. Davon 3 Sellpositionen und eine Buyposition. Die Trades stehen im Moment wie folgt.

EUR/USD Buy +2.50€
EUR/USD Buy +1.30€

EUR/AUD Sell + 1.50€
EUR/AUD Sell + 0.80€
EUR/AUD Sell + 0.50€
EUR/AUD Buy - 1.00€

Wie stelle ich es jetzt an, dass mir im Chart
EUR/USD +3.80€
EUR/AUD +1.80€
angezeigt wird? Ich hoffe Ihr versteht was ich meine.

Ich wäre hier für einige Programmiertechnische Denkanstösse dankbar. Ich bin im Moment auf der Arbeit und konnte daher noch nichts selber ausprobieren. Im Netz bin ich nicht wirklich auf hilfreiche Denkanstösse gestoßen.

Schönes und hoffentlich klimatisierte Wochenende wünsche ich Euch
  #2 (permalink)  
Alt 12.08.22
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 Frank2404 Beitrag anzeigen
mir kam da so eine Idee und ich weiß nicht wie ich sie umsetzten kann.

Beispiel. Ich habe zwei Order im Währungspaar EUR/USD, beides Buy Positionen. Dazu habe ich 4 Order offen im Währungspaar EUR/AUD. Davon 3 Sellpositionen und eine Buyposition. Die Trades stehen im Moment wie folgt.

EUR/USD Buy +2.50€
EUR/USD Buy +1.30€

EUR/AUD Sell + 1.50€
EUR/AUD Sell + 0.80€
EUR/AUD Sell + 0.50€
EUR/AUD Buy - 1.00€

Wie stelle ich es jetzt an, dass mir im Chart
EUR/USD +3.80€
EUR/AUD +1.80€
angezeigt wird? Ich hoffe Ihr versteht was ich meine.
- Du machst einen Loop über alle laufenden Orders
- speicherst das OrderSymbol in einer Hilfsvariablen
- siehst nach ob die letzten 3 Buchstaben USD oder AUD sind:
- dazu mußt Du in Deinem Fall den Separator "/" bestimmen
- Du holst Dir die Position des Separators
- und vergleichst, ob der SubString ab der Separatorposition bis Ende
- z.B. =="USD" ist, wenn ja addierst Du die OrderProfit (+Commission+Swap)
- Am Ende hat Du das Ergebnis für Deine EUR/USD
! Vorsicht, wenn Du mal beabsichtigst, GBP/USD zu handeln, dann mußt Du zusätzlich noch die ersten 3 Buchstaben untersuchen (bei vielen verschieden Paaren ist das Speichern von Ergebnissen in Arrays besser).

Ich hoffe, die Wegbeschreibung reicht auf die Schnelle (hab schon alles zu).
Schönes Wochenende. AVT
  #3 (permalink)  
Alt 13.08.22
Neues Mitglied
 
Registriert seit: Nov 2021
Beiträge: 10
Frank2404 befindet sich auf einem aufstrebenden Ast
Standard

Hi,

danke erst mal für die schnelle Antwort. Klingt komplizierter als ich gedacht habe aber immerhin ein kleiner Ansatz.
Mein Gedanke war halt, wenn ich viele offene Orders in unterschiedlichen Währungspaaren habe, dann wäre das eine schöne Möglichkeit direkt auf dem Chart zu sehen bei welchen Währungspaaren ich in Summe im Plus liege um dann zu entscheiden, ob ich alle Trades dieses Währungspaares schließe.

Ich versuche mir mal was zusammen zu wurschteln
Für weitere Vorschläge/Ideen wäre ich natürlich immer zu haben
  #4 (permalink)  
Alt 14.08.22
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 Frank2404 Beitrag anzeigen
Ich versuche mir mal was zusammen zu wurschteln
Leihe Dir meinen Wurschtel Werkzeugkoffer, fröhliches Werkeln
Und Testen nicht vergessen, falls irgendwo ne Schraube fehlt.
AVT
Angehängte Dateien
Dateityp: mq4 WurschtelWerkzeug.mq4 (15,0 KB, 2x aufgerufen)
  #5 (permalink)  
Alt 14.08.22
Neues Mitglied
 
Registriert seit: Nov 2021
Beiträge: 10
Frank2404 befindet sich auf einem aufstrebenden Ast
Thumbs up

Zitat:
Zitat von AVT Beitrag anzeigen
Leihe Dir meinen Wurschtel Werkzeugkoffer, fröhliches Werkeln
Und Testen nicht vergessen, falls irgendwo ne Schraube fehlt.
AVT
Cool Dank Dir. Werde ich mir mal anschauen und testen.

Ich hatte jetzt so mit dem Gedanken gespielt, die OrdersTotal auszulesen und die Werte in Arrays zu speichern. Danach dann die Arrays miteinander zu vergleichen und bei identischen Währungspaaren die OrderProfit miteinander zu addieren. War aber auch nur so ein erster Einfall. Ob das funktionieren würde, weiss ich nicht.
  #6 (permalink)  
Alt 22.08.22
Neues Mitglied
 
Registriert seit: Nov 2021
Beiträge: 10
Frank2404 befindet sich auf einem aufstrebenden Ast
Standard

Hier mal mein gewurschtel. Ist nicht die tollste Lösung, funktioniert für mich aber wunderbar.

Code:
//+------------------------------------------------------------------+
//|                                          frank-test-auslesen.mq4 |
//|                        Copyright 2022, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+

int trade = 0;
int wmax = 13;
string wah ="";
int x = 19;
int a = 0;

input int Schriftgroesse = 10;
string waehrung[] ={"EURUSD","USDCHF","EURGBP","NZDCAD","EURAUD","GBPUSD","AUDCAD","AUDUSD","CADCHF","EURNZD","GBPCHF","USDCAD","EURCHF","XAUUSD"};
struct STradeBSum {
   int countb;
   double profitb;
   double trailPriceb;
   double profitab;
   
};

void OnTick()
  {
  STradeBSum  sumB;
   
   ObjectCreate ("Bid",OBJ_LABEL,0,0,0);
   ObjectSet ("Bid",OBJPROP_CORNER,4);
   ObjectSet ("Bid",OBJPROP_XDISTANCE,10);
   ObjectSet ("Bid",OBJPROP_YDISTANCE,18);
   ObjectSetText ("Bid","Währungspaar      offene Trades       Profit",Schriftgroesse,"Arial",Red);
    x = 19;
    a = 0;
 for ( a = 0; a <= wmax; a++ ){
 
   wah = waehrung[a];
   GetSumB(sumB);
   
   x = x +30;
   
   ObjectCreate ("test"+a,OBJ_LABEL,0,0,0);
   ObjectSet ("test"+a,OBJPROP_CORNER,4);
   ObjectSet ("test"+a,OBJPROP_XDISTANCE,14);
   ObjectSet ("test"+a,OBJPROP_YDISTANCE,x);
   ObjectSetText ("test"+a,"   "+wah+"                   "+trade+"               "+DoubleToString(sumB.profitb,2),Schriftgroesse,"Arial",Red);
   
              }
   
  }
//+------------------------------------------------------------------+
//////////////// PROFIT BUY berechnen
void  GetSumB(STradeBSum &sumB) {
 
   sumB.countb      =  0;
   sumB.profitb     =  0.0;
   sumB.trailPriceb =  0.0;
  sumB.profitb = 0.0;
  
    
   int   z    =  OrdersTotal();
   trade = 0;
 
   for (int i = z-1; i>=0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (  OrderSymbol()==wah){
         trade = trade+1;
        
               
            sumB.countb++;
            sumB.profitb  += OrderProfit()+OrderSwap()+OrderCommission();
               if (sumB.trailPriceb ==0 || OrderOpenPrice()<sumB.trailPriceb) {
                  sumB.trailPriceb =  OrderOpenPrice();
               }
                      } 
          
           } }
      return;
    
}
Das ganze ziehe ich mir als EA in ein leeres Chart und bekomme angezeigt wie viele Trades von den einzelnen Währungspaaren offen sind und wieviel Profit das jeweilige Währungspaar gerade in Summe abwirft (oder eben nicht )
Als nächstes bastel ich mir noch einen Close-Button hinter jedes Währungspaar, so dass ich alle Trades dieses Währungspaares mit einem Klick schließen kann.
Wie gesagt, nicht die schönste Lösung. Aber funktioniert und reicht für meine Zwecke
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 20:10 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.
-----------------------------------------------------------------------------------------------------------------------------