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: 43282
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 52 Minuten
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 24.11.21
Neues Mitglied
 
Registriert seit: Jun 2021
Beiträge: 29
droyo33 befindet sich auf einem aufstrebenden Ast
Standard Delay zwischen Orders einfügen?

Hallo Zusammen,

ich habe ein Problem mit meinem EA.
Es gibt eine if-Abfrage, die erfüllt sein muss, damit ein Trade geöffnet wird.
In dieser if-Abfrage, dürfen Maximal 5 unterschiedliche Paare getradet werden, soblad bereits 5 offen sind, kann kein neues Paar getradet/geöffnet werden.

Nun kommt es häufig vor, dass ich ein Signal für zwei unterschiedliche Paare zur exakt der selben Uhrzeit bekomme und somit zB. der EA zwei Paare öffnet, obwohl bereits 4 Paare geöffnet sind.
Somit habe ich 6 offene Paare, was eigentlich mit der if-Abfrage verhindert werden sollte.
Gibt es eine möglichkeit einen "DELAY" einzufügen, nachdem der EA mit der nächsten öffnenden Position wartet, oder wie fange ich dieses Problem ab?


Über Antworten freue ich mich!

MFG Dennis
  #2 (permalink)  
Alt 24.11.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Wenn die if-Abfrage nach 4 Paaren noch true ergibt, dann wäre doch eher die Frage, für welches der anderen beiden Paare, deren Signale exakt zum selben Zeitpunkt gegegebwn wurden, soll als erstes eine Order geöffnet werden.

Ist diese Order geöffnet wird zwangsweise das sechste Paar, per Abfrage, eben nicht geöffnet.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #3 (permalink)  
Alt 24.11.21
Neues Mitglied
 
Registriert seit: Jun 2021
Beiträge: 29
droyo33 befindet sich auf einem aufstrebenden Ast
Standard

es ist "eigentlich" egal welches der beiden Paare zuerst geöffnet werden soll, da für beide die if Abfrage True wäre und somit ein Trade nach den konditionen möglich ist.
Der EA könnte meinetwegen ein zufälliges Paar auswählen, nur soll er nicht beide Orders zeitgleich ausführen...
  #4 (permalink)  
Alt 24.11.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Werden denn beide unterschiedlichen Paare per einem EA geöffnet oder werden die in zwei separaten EAs (d.h. auf 2 Charts) geöffnet?

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #5 (permalink)  
Alt 24.11.21
Neues Mitglied
 
Registriert seit: Jun 2021
Beiträge: 29
droyo33 befindet sich auf einem aufstrebenden Ast
Standard

Beide Paare werden per unterschiedlichem EA geöffnet.
Also ein EA tradet nur ein Paar
  #6 (permalink)  
Alt 24.11.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Gut, dann sollte eine Globale Variable existieren, auf die beide EA schauen können. D.h. sobald die Signale gegeben werden (wer oder was geben diese Signale konkret?) muss vor der if-Abfrage diese Globale Variable mit den Währungspaarnamen gefüllt werden. Also z.B. EURUSD, USDJPY, NZDUSD, wenn für diese drei WP gleichzeitig ein Signal generiert worder war.
Nun sollte in der if-Abfrage zuerst diese Globale Variable abgefragt weden, ob nur 1 WP enthalten ist oder zwei oder mehrere. Bei 1 WP wird die Order geöffnet, sofern das WP in der Globalen Variablen mit dem des Charts übereinstimmt.
Sollten zwei oder mehrere WP in dieser GV enthalten sein, dann kann nach dem ersten in der GV abgespeicherten WP entschieden werden oder die Order des WP wird geöffnet, dessen WP-Symbol zuerst im Alphabet erscheint o.ä. Auswahlkriterien.

Nach dem Öffnen der einen Order muss die GV gelöscht werden oder mit dem Leerstring gefüllt wird.

traderdoc
droyo33 likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #7 (permalink)  
Alt 25.11.21
Neues Mitglied
 
Registriert seit: Jun 2021
Beiträge: 29
droyo33 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Gut, dann sollte eine Globale Variable existieren, auf die beide EA schauen können. D.h. sobald die Signale gegeben werden (wer oder was geben diese Signale konkret?) muss vor der if-Abfrage diese Globale Variable mit den Währungspaarnamen gefüllt werden. Also z.B. EURUSD, USDJPY, NZDUSD, wenn für diese drei WP gleichzeitig ein Signal generiert worder war.
Nun sollte in der if-Abfrage zuerst diese Globale Variable abgefragt weden, ob nur 1 WP enthalten ist oder zwei oder mehrere. Bei 1 WP wird die Order geöffnet, sofern das WP in der Globalen Variablen mit dem des Charts übereinstimmt.
Sollten zwei oder mehrere WP in dieser GV enthalten sein, dann kann nach dem ersten in der GV abgespeicherten WP entschieden werden oder die Order des WP wird geöffnet, dessen WP-Symbol zuerst im Alphabet erscheint o.ä. Auswahlkriterien.

Nach dem Öffnen der einen Order muss die GV gelöscht werden oder mit dem Leerstring gefüllt wird.

traderdoc
zunächt einmal Danke für die Antworten!
Die Signale werden durch mehrere Indikatoren ausgelöst die übereinstimmen müssen.
Welche GV nehme ich am besten zur Lösung des Problems?
Es gibt ja unzähliige:
-GlobalVariableCheck
-GlobalVariableDel etc.
Globale Variablen sind absolutes Neuland für mich....
  #8 (permalink)  
Alt 25.11.21
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Warum soll er nur 5 WP gleichzeitig traden?


GV deklariert man einfach vor OnInit().

Wie wärs mit sowas wie
Code:
Vor
OnInit():int OT;

Dann nach OnTick(){

 if( Handelssignal == true ){

  OT = 0; ( OrdersTotal Zähler-Startwert )

  for(i=OrdersTotal()-1;i>=0;i--){

   if(OrderSelect(i,SELECT_BY_POS)){

   OT++;} }

if( OT < (z.B.) 6 ){

  OrderSend(...UndSoWeiterUndSoFort...
So ungefähr müsste das eigentlich gehn.

Oder nach WP selektieren und schalten und walten...
  #9 (permalink)  
Alt 25.11.21
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Warum soll er nur 5 WP gleichzeitig traden?

Na weil er das so will!

GV deklariert man einfach vor OnInit().

Ne, das geht auch nicht.

Wie wärs mit sowas wie
Code:
Vor
OnInit():int OT;

Dann nach OnTick(){

 if( Handelssignal == true ){

  OT = 0; ( OrdersTotal Zähler-Startwert )

  for(i=OrdersTotal()-1;i>=0;i--){

   if(OrderSelect(i,SELECT_BY_POS)){

   OT++;} }

if( OT < (z.B.) 6 ){

  OrderSend(...UndSoWeiterUndSoFort...
So ungefähr müsste das eigentlich gehn.

Ne, so geht das eben gar nicht!

Oder nach WP selektieren und schalten und walten...
Globale Variablen haben den Vorteil, dass auf sie von allen Programmen des Accounts zugegriffen werden kann.
Gesetzt werden die GVs über GlobalVariableSet() und ausgelesen werden sie über GlobalVariableGet().
>es wäre hilfreich, wenn Du in der MQL4-Referenz über die verschiedenen Funktionen bzgl. der GV nachliest. Diese Funktionen sind eigentlich recht simpel.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #10 (permalink)  
Alt 25.11.21
Neues Mitglied
 
Registriert seit: Jun 2021
Beiträge: 29
droyo33 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Warum soll er nur 5 WP gleichzeitig traden?


GV deklariert man einfach vor OnInit().

Wie wärs mit sowas wie
Code:
Vor
OnInit():int OT;

Dann nach OnTick(){

 if( Handelssignal == true ){

  OT = 0; ( OrdersTotal Zähler-Startwert )

  for(i=OrdersTotal()-1;i>=0;i--){

   if(OrderSelect(i,SELECT_BY_POS)){

   OT++;} }

if( OT < (z.B.) 6 ){

  OrderSend(...UndSoWeiterUndSoFort...
So ungefähr müsste das eigentlich gehn.

Oder nach WP selektieren und schalten und walten...
traderdoc hat rechrtt, das würde nicht funkionieren, da er mir mit der OrdersTotal Funktion alle Orders zurück gibt und nicht nur die eines bestimmten Paares.
AUDNZD 3x
AUDCHF 1x
sind zwar 4 Orders aber nur 2 Paare.
5 Paare deshalb, um den Drawdown gering wie möglich zu halten > 10%.
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 22:53 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.
-----------------------------------------------------------------------------------------------------------------------------