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: 3364
Beiträge: 34415
Benutzer: 5.354
Aktive Benutzer: 612
Links: 79
Wir begrüßen unseren neuesten Benutzer: thaiquocbao
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 16 Minuten
- thaiquocba...
vor 23 Minuten
- patte
vor 7 Stunden
- boomo
vor 18 Stunden
- swiftusa
vor 21 Stunden
- Heres

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gäste: 48
Gesamt: 52
Team: 0
Team:  
Benutzer:  MA-EA, patte, thaiquocbao, UForex
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 30.08.16
Neues Mitglied
 
Registriert seit: Jun 2014
Beiträge: 8
Hasenfuss befindet sich auf einem aufstrebenden Ast
Standard Bei mehreren gleichzeitig geöffneten Long- und Shortorder einen Teilverkauf vornehmen

Hallo Superprogrammierer,

ich hätte da mal ein Problem. So fangen vermutlich hier die meisten Sätze an!

Ich würde gerne meinen EA um eine Funktion erweitern. Es werden mehrere Orders eröffnet:

1. Order Long 1 Lot
2. Order Short 2 Lot
3. Order Long 3 Lot
4. Order Short 6 Lot

Gesamtgröße Long = 4 Lot
Gesamtgröße Short = 8 Lot

Überhang Short = 4 Lot

Der Überhang auf der Shortseite sorgt dafür, dass alle Verluste irgendwann ausgeglichen sind, wenn der Kurs fällt. Bin ich im Gewinn, dann möchte ich die schlechten Longorders loswerden. Einfach verkaufen geht nicht, weil dann die Positionsgröße auf der Shortseite zu groß wird. Ich müsste also 4 Lot Long loswerden und 4 Lot Short. Aber ich habe keine 4 Lot Short.

Ok, ein Teilverkauf könnte das Problem lösen, aber weil meine Wünsche mal wieder größer sind, als mein Gehirn und meine Programmierkünste, wird die Sache nicht ganz so einfach. Als erstes möchte ich die Shortorder loswerden, die den geringsten Abstand zum aktuellen Kurs hat und erst wenn diese nicht groß genug ist, dann soll die nächste Order verkauft (oder teilverkauft) werden. usw., usw.... bis nur noch der Überhang übrig bleibt.

Jetzt kämpfe ich schon ein paar Wochen mit dem Problem und komme auf keine Lösung. Vermutlich geht das nur mit einem Array und davon habe ich null Ahnung. Ich weiß nicht, wie man ein Array befüllt und die Daten wieder auslesen kann. Auf den Englischen Hilfeseiten komme ich nicht weiter. Kann mir jemand erklären, wie man so ein Array erstellt und wieder auslesen kann und wie man so eine Programmierung aufbauen muss? Ich sage schon mal DANKE für eure Hilfe!
Mit Zitat antworten
  #2 (permalink)  
Alt 30.08.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Kann dieses einfache Problem etwa kein EA-Builder lösen?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #3 (permalink)  
Alt 30.08.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 411
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hasenfuss Beitrag anzeigen
Ich würde gerne meinen EA um eine Funktion erweitern. Es werden mehrere Orders eröffnet:

1. Order Long 1 Lot
2. Order Short 2 Lot
3. Order Long 3 Lot
4. Order Short 6 Lot

Gesamtgröße Long = 4 Lot
Gesamtgröße Short = 8 Lot

Überhang Short = 4 Lot

Der Überhang auf der Shortseite sorgt dafür, dass alle Verluste irgendwann ausgeglichen sind, wenn der Kurs fällt. Bin ich im Gewinn, dann möchte ich die schlechten Longorders loswerden. Einfach verkaufen geht nicht, weil dann die Positionsgröße auf der Shortseite zu groß wird. Ich müsste also 4 Lot Long loswerden und 4 Lot Short. Aber ich habe keine 4 Lot Short.

Ok, ein Teilverkauf könnte das Problem lösen, aber weil meine Wünsche mal wieder größer sind, als mein Gehirn und meine Programmierkünste, wird die Sache nicht ganz so einfach. Als erstes möchte ich die Shortorder loswerden, die den geringsten Abstand zum aktuellen Kurs hat und erst wenn diese nicht groß genug ist, dann soll die nächste Order verkauft (oder teilverkauft) werden. usw., usw.... bis nur noch der Überhang übrig bleibt.
Also willst Du letztendlich mit den Longs Gewinn machen? Und wenns nach unten geht, mit den Shorts die Verluste ausgleichen? Und nach welchen Kriterien sollen überhaupt Orders geöffnet werden?
Mit Zitat antworten
  #4 (permalink)  
Alt 30.08.16
Neues Mitglied
 
Registriert seit: Jun 2014
Beiträge: 8
Hasenfuss befindet sich auf einem aufstrebenden Ast
Standard

das sollte doch nur ein Beispiel sein. Was hat jetzt die Eröffnung der Orders mit dem Verkauf von eröffneten Orders zu tun?

@Traderdoc
Hier sind die Grenzen von EATree auf jeden Fall erreicht. In dem Programm lassen sich nur eine Long- und eine Shortorder gleichzeitig eröffnen.
Mit Zitat antworten
  #5 (permalink)  
Alt 30.08.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Hasenfuss Beitrag anzeigen
@Traderdoc
Hier sind die Grenzen von EATree auf jeden Fall erreicht. In dem Programm lassen sich nur eine Long- und eine Shortorder gleichzeitig eröffnen.
Ja, davon rede ich doch die ganze Zeit, dass schon bei einfachsten Aufgabenstellungen die Builder versagen.

Was man "gut" mit den Builders realisieren kann - irgendwelche scheinbar sinnvollen Kreuzungen allermöglichen Indikatoren mir dem aktuellen Preis oder dem der letzten geschlossenen Kerze.

Lernt das Programmieren!!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #6 (permalink)  
Alt 30.08.16
Neues Mitglied
 
Registriert seit: Jun 2014
Beiträge: 8
Hasenfuss befindet sich auf einem aufstrebenden Ast
Standard

Ich versuche seit 2 Jahren das Programmieren zu lernen. Wenn das Ganze nur nicht so einfach wäre

Aber jetzt mal im Ernst. Gib mir doch lieber mal einen Tipp, wie man mein Programmproblem lösen könnte, als über Sinn und Unsinn von EA-Builder uns auszutauschen.

So werde ich nie Programmieren lernen und für immer dumm und unwissend bleiben. Da lerne ich nichts dazu. Wie befülle ich ein Array und kann dann die Daten wieder abrufen?

Du programmierst doch auch im Auftrag. Was würde sowas kosten?
Mit Zitat antworten
  #7 (permalink)  
Alt 30.08.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

int MeinArray[10];
...
int x = 0;
if (int i = 0; i<=9; i++) {
MeinArray[i] = x * 2;
x++;
}

Und wenn dann über das Auslesen:
if (int i = 0; i<=9; i++) {
Print("i: ", MeinArray[i]);
}

der Reihe nach die Zahlen
0
2
4
6
8
10
12
14
16
18

erscheinen, dann hast Du alles richtig gemacht.
Aber auch hier gilt, Beispiele anschauen, die selber ausprobieren, mal eine Veränderung programmieren und schauen, was sich tut und weitere Beispiele studieren!

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #8 (permalink)  
Alt 30.08.16
Neues Mitglied
 
Registriert seit: Jun 2014
Beiträge: 8
Hasenfuss befindet sich auf einem aufstrebenden Ast
Standard

Danke Traderdoc!

kann man auch mehrere Werte gleichzeitig in einem Array speichern? Ich bräuchte zumindest Positionsgröße und Eröffnungskurs.

Könnte man auch schreiben:

MeinArray[i] = x * 2, y +1;

Wie gebe ich dann die Werte wieder aus?

Print("i von x: ", MeinArray[i]);????
Print("i von y: ", MeinArray[i]);???? wie kann x und y unterschieden werden?

Bei der Ausgabe hätte ich keine Idee, wie das mit 2 Werten gehen soll???

Macht man dann einfach 2 Array? Eins für Kurs und eins für Lotgröße. Aber wie bekomme ich dann die Orders wieder richtig zueinander geordnet?

Programmieren lernen besteht nur aus Millionen von Fragen!
Mit Zitat antworten
  #9 (permalink)  
Alt 30.08.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

double MeinArray[10][2];
...
if (int i = 0; i<=9; i++) {
MeinArray[i][0] = Positionsgröße;
MeinArray[i][1] = Eröffnungskurs;
}

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
mehrere order, mql4, order anpassen, order auslesen, order close, 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:14 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2016 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2016 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------