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: 3820
Beiträge: 36898
Benutzer: 6.067
Aktive Benutzer: 491
Links: 80
Wir begrüßen unseren neuesten Benutzer: POCJonah7
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 8 Stunden
- POCJonah7
vor 15 Stunden
- flowi88
vor 15 Stunden
- dealtycoon
vor 19 Stunden
- VicenteWuc
vor 22 Stunden
- sazaron

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 59
Gesamt: 61
Team: 0
Team:  
Benutzer:  kohout83, Stier
Freunde anzeigen

Empfehlungen

Werbung

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 27.02.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard MagicNo integrieren & Mehrfachtrades verhindern

Hallo!

Nachdem ich mich nun ein bißchen hier und anderweitig im Netz nach EAs umgesehen habe, die zu meinen Ansichten und meinem Stil passen, habe ich zwar an vielen Stellen große Augen gemacht (und wäre am liebsten an 20 Stellen gleichzeitig reingesprungen! ), aber entweder habe ich nicht so richtig kapiert, was die tun, oder ich wurde beim Lesen der Beschreibungen skeptisch ob der Ertragsaussichten.

Einen habe ich gefunden, der meinen Grundvorstellungen schon recht gut entspricht, den ich aber gerne um so einige Funktionen anpassen und erweitern würde. Allerdings bin ich mit der EA-Programmierung noch gänzlich unbeleckt...

Habe mich durch den (kurzen und übersichtlichen) Code gegraben und verstehe nun Zeile für Zeile, was das Ding tut. Soweit schon mal stolz!

Genug gesabbelt, hier die Fragen:

MagicNumber
Momentan hat er keine Magic Number. Habe ihn aufm Demo in EURUSD und GBPUSD laufen. Die MaxTrades will ich beibehalten, allerdings zählt er so aktuell auf beiden Paaren zusammen und sperrt dann, wenn die Summe (bsp. 20) im Gesamten erreicht ist. Ich will aber, dass er 20 PRO Paar aufreisst!? Wie könnte ich eine Magic integrieren und dann entsprechend mit abfragen?

Mehrfachorders
Aktuell ist gegeben: "X Pips von Wert Y = Order raus"...
Daher: Schwankt der Wert dann mehrmals über diese Stelle, wird jedes Mal eine Order aufgerissen. Wie könnte ich das vermeiden? Kann ich irgendwie die offenen Trades nach diesem Einstiegswert durchsuchen und falls vorhanden den Trade unterbinden?

Danke für eure Hilfe und Geduld.
  #2 (permalink)  
Alt 28.02.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Hallo Forexcrawler,

da braucht man keine MagicNumber, sondern es müßte die Stelle abgeändert werden, die die Trades zusammenzählt. D.h. Am besten in der Routine des Checks der offenen Orders müßte dann in die Anzahl des einen WP und er des anderen WP separiert werden und evtl. noch ein bis zwei andere Anpassungen vorgenommen werden.

Zu den Mehrfachorders:
Das hört sich so an, als wäre der EA ein Grid-Trader. Einstiegspunkte kann man am besten mit Flags kennzeichnen. Das sind Variablen des Typs bool, für die nur der Zusandte existiert true oder false. D.h. existiert der Trade an der Stelle dann ist die Variable true usw.
Aber das ist aus der Ferne etwas kompliziert zu erklären, zumal Du geschrieben hattest, nicht programmieren zu können. Da wundert es mich schon, dass Du nunmehr Zeile für Zeile verstehst.

traderdoc
  #3 (permalink)  
Alt 28.02.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Forexcrawler Beitrag anzeigen
Momentan hat er keine Magic Number. Habe ihn aufm Demo in EURUSD und GBPUSD laufen. Die MaxTrades will ich beibehalten, allerdings zählt er so aktuell auf beiden Paaren zusammen und sperrt dann, wenn die Summe (bsp. 20) im Gesamten erreicht ist. Ich will aber, dass er 20 PRO Paar aufreisst!? Wie könnte ich eine Magic integrieren und dann entsprechend mit abfragen?
Du könntest auch nach Währungspaar filtern. Macht aber m.E. auch nur Sinn wenn auf dem Konto NUR der EA arbeitet.
Mein Vorschlag: Nach MagicNumber UND nach Währungspaar filtern, so solltest Du auf der sicheren Seite sein.

Zitat:
Zitat von Forexcrawler Beitrag anzeigen
Aktuell ist gegeben: "X Pips von Wert Y = Order raus"...
Daher: Schwankt der Wert dann mehrmals über diese Stelle, wird jedes Mal eine Order aufgerissen. Wie könnte ich das vermeiden?
Da dürfte es mehrere Möglichkeiten geben. Spontan würde ich folgendes präferieren: Entweder nach Zeit/Bar filtern (bspw. letzter trade muß mindestens xyz bars vorher eröffnet worden sein). Das macht aber bei grid-Dingern wenig sinn da es hier mehr um pipabstände geht.
Hier könnte man nach Preis filtern. Bspw. Öffnugnspreis der letzten order mjß mindestens xyz pips entfernt sein.

Zum Thema "wie baut man das ein"? -> Hänge den EA (mq4-Datei) hier mit dran, ggf. wird sich dann jemand darum kümmern ...
  #4 (permalink)  
Alt 28.02.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Talking

Hallo ihr beiden,

vielen Dank für die Antworten!

Habe zwischendurch weiter gemacht und eine Magic eingebaut. Von außen einstellbar, schreibt sich bei Ordererteilung mit in den Kommentar und die nächste Stelle. So weit, so gut.

Auch auf die Ideemit dem WP bin ich mittlerweile gekommen. :P

Das mit den Flags verstehe ich zwar, aber in der Tat noch keinen Dunst für die Umsetzung. Habe im Netz einen EA zum abgucken gefunden, der macht eine Schleife mit Orderselect über alle Trades und last sich die Einstiegszeit ausgeben. Wollte das so abwandeln, dass er die Einstiegspreise nimmt und nur ordert wenn kein gleicher Preis gefunden?

Zu deiner Frage, Traderdoc: Ich habe mal vor rund 15 Jahren Anwendungsentwicklung gelernt und habe bis vor 8 Jahren Programme geschrieben. Allerdings für Industriesteuerungen (SPS). Das gundlegende Verständnis ist also wohl schon da, aber die Syntax muss ich mühsam nachschlagen... Mit C(++) war ich nur in der Berufsschule in Berührung
  #5 (permalink)  
Alt 28.02.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Forexcrawler Beitrag anzeigen
Wollte das so abwandeln, dass er die Einstiegspreise nimmt und nur ordert wenn kein gleicher Preis gefunden?
In der theorie gut, in der Praxis dürfte das u.U. nicht funktionieren da Du nicht wissen kannst ob Du denselben entryprice erhältst. Das braucht ja nur einen pip Unterschied zu machen und der EA denkt alles wäre i.O. und öffnet einen trade.

Ich würde mal testen mit kalkuliertem einstiegspreis und der hälfte der gridpips oder ähnlich, müsstest mal testen.

Also (entweder keiine order offen) ODER (es sind orders offen UND um kalkulierten einstiegspreis +- (gridpips/2) befindet sich aktuell keine offene order) ...
  #6 (permalink)  
Alt 28.02.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard

Kleine Schritte...

Was haltet ihr für die Zählung von aktuell in diesem WP offenen Orders davon?

Code:
   if(OrdersTotal()>0){
      for(int oc =0;oc<=OrdersTotal();oc++){
         OrderSelect(oc,SELECT_BY_POS,MODE_TRADES);
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic){
            CurrentTrades = CurrentTrades++;
         }
      }
   }
CurrentTrades wurde zuvor als int definiert und initialisiert.
  #7 (permalink)  
Alt 28.02.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Code:
int GetOpenTrades() {
 int CurrentTrades=0;
 for (int cnt=OrdersTotal()-1; cnt>=0; cnt--) {
  if (!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) continue;
  if (OrderSymbol()!=symbol) continue;
  if (OrderMagicNumber()!=magicnumber) continue;
  {
   CurrentTrades++;
  }
 return(CurrentTrades)
}
und dann lässt sich simpel abfragen bspw.
if (GetOpenTrades()==0) öffne order etc. pp.
Forexcrawler likes this.
  #8 (permalink)  
Alt 28.02.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard

Super, danke!!!!

Habe noch ein paar Zeichen wie } und ; eingestreut, nun lässt es sich kompilieren.

Zum Verständnis:

Du nimmst alle Orders, ziehst die ab, die nix mit uns zu tun haben und erhöhst für jede relevante den CurrentTrade? Der geht dann am Ende an die Globale zurück, die dann die Anzahl der offenen Trades enhält, wodurch is sie mit Globale < maxTrades als Bedingung nutzen kann?
  #9 (permalink)  
Alt 28.02.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

hehe, jo, flüchtigkeitsfehler.
Auch die vorhandenen variablen magicnumber und symbol mußt durch Deine ersetzen ...

Ja, es wird durch alle offenen trades gelooped und addiert (wobei hier alle diejenigen gefiltert werden wo symbol und MagicNumber nicht passen).

global ist die currenttrade-variable nicht, sie besteht nur innerthalb der funktion.
Die Funktion gibt einen Inegerwert zurück (0 wenn keine offenen trades vorhanden sind), ansonsten die Zahl der offenen trades.

Ach ja, das ist "old mql4-syntax", inwieweit daß jetzt mit dem aktuellen build anders läuft weiß ich nicht, noch nicht.
Ich habe mich mit dem neuen style noch nicht befasst, mir steht der Kopf aktuell auch woanders, bzw. liegen meine Prioritäten anders sodaß ich derzeit wenig bis gar nicht progge.
  #10 (permalink)  
Alt 28.02.14
Mitglied
 
Registriert seit: Feb 2014
Beiträge: 101
Forexcrawler befindet sich auf einem aufstrebenden Ast
Standard

Ja, habe ich schon angepasst.

Ich danke dir, dass du dir trotzdem die Zeit nimmst, und hier hilfst! Das ist nicht selbstverständlich!

Jetzt muss ich noch die Mehrfachtrades verrammeln, dann ist das Tagesziel erreicht.
Thema geschlossen

Lesezeichen

Stichworte
magic id, magicnumber, mehrfachorder, mehrfachorders, mql4, order, 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 10:44 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 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.
-----------------------------------------------------------------------------------------------------------------------------