Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

mh21

Addict
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von mh21

  1. Was ist mit totals wenn eine Limitorder noch nicht ausgeführt wurde? Falls totals dann = 1, wie kriege ich denn heraus, wieviele ausgeführte Orders und damit geöffnete Positionen ich habe? Ich habe immer totals geschrieben, aber totals ist ja nur die Variable in diesem EA, es muß OrdersTotal() heißen.
  2. Gut, daß Du das erwähnst, das hätte ich nämlich falsch gemacht. Jetzt muß ich nochmal auf das Order absetzen/ausführen kommen. Sorry, wenn ich darauf rumreite. Ich stell mir das jetzt so vor: Die OrderSend Funktion schickt eine Order zum Broker. Wenn die ankommt ist totals gleich 1 und ticket gleich der Ticketnummer. Jetzt ist es völlig egal, wie lange es dauert, bis die Order tatsächlich ausgeführt wird (bei Limit oder Einstopp kann das ja sehr lange dauern), es passiert nix, weil eben totals=1 und die if-anweisung nicht durchlaufen wird. (Es passiert natürlich schon etwas, denn der EA besteht ja nicht nur aus dieser if-Anweisung.) Das ist daher nicht die gleiche Situation, wie bei dem "blockieren" solange man auf Antwort vom Broker wartet. Wenn die Order jetzt ausgeführt wird, weil z.B. der Einstopp-Kurs erreicht wurde, ist aber immernoch totals =1, weil ja noch die Takeprofit-Order da ist. Der EA geht also weiterhin über die if-Anweisung hinweg. Also selbst wenn ein weiteres Einstiegssignal käme, würde es nicht zum Absetzen einer weiteren Order kommen, bis die vorhandene Position geschlossen wurde und die Takeprofitorder dadurch weg ist. Und damit erübrigt sich meine nächste Frage, denn, wenn ich mehrere Positionen aufbauen will, steuere ich das über if(total<Maximum zugelassene Positionen) Gerade gelesen: Ja, das ist eine Umgewöhnung für mich, die mir schwer fällt. In meinem Hirn ist eine geöffnete Order noch lange keine Position. Für mich ist war bisher eine Order mit Stopploss und Takeprofit = 3 Orders. Da werde ich jetzt mal länger drüber nachdenken und morgen weiterposten.
  3. Gibt es denn irgendwo historische Daten für Rohstoffe oder Futures? Habe auf schafe.de Daten für Gold gefunden, die sind aber kostenpflichtig.
  4. OK. Point hab ich verstanden. Wenn auch eine Stopplossorder mitgegeben werden soll würde man dann also "Ask+Stopploss*Point" statt der "0" schreiben. Es müsste dann natürlich die Variable Stopploss deklariert sein. Bei diesem EA gibt es aber eine Variable TraillingStop. Kann man mit der OrderSend Funktion auch gleich ein Traillingstopp mitgeben? Mal eine allgemeinere Frage zu der OrderSend Funktion: Wenn der EA die Order aufgibt, wartet er dann bis der Broker eine Ticketnummer oder -1 zurückschickt? Wenn ja: Wie lange wartet er? Falls er wartet: Was ist mit den reinkommenden Ticks während der Wartezeit, werden die einfach ignoriert, oder geht das so schnell, daß keine Ticks in dieser Zeit passieren? Wenn ich weiß, daß die Order aufgegeben wurde, weil ticket>0 ist, heißt das aber nicht, daß die Order auch ausgeführt wurde, oder doch? Wenn nein, wo wird in diesem MACD Sample EA denn abgefragt, ob die Order ausgeführt wurde? Überhaupt frage ich mich, warum vorher zwar mit OrdersTotal abgefragt wurde, ob es offene Orders gibt, es wird aber nicht abgefragt (oder ich habs noch nicht gefunden), ob es offene Positionen gibt. Je nachdem, welche Aus- und Einstiege der EA hat, könnte es doch passieren, daß mehrere Positionen geöffnet werden (Pyramidisieren) und das will man doch nicht dem Zufall überlassen.
  5. Nee, nicht 42, ich will dem Broker doch nicht die Antort auf ALLE FRAGEN mitteilen. Das soll der mal selbst rausfinden.
  6. Weiter im Text: Die if Anweisung mit mehreren "und" Verknüpfungen ist eigentlich klar. MathAbs hab ich nachgeschaut, einfach der Absolutwert. Point hab ich auch nachgeschaut, aber nicht kapiert. Da es aber wohl nur ein Faktor ist, mit dem der MACDOpenLevel multpliziert wird, scheint das nicht sooo wichtig zu sein. Falls doch wichtig, bitte erklären. Wichtiger scheint mir aber, daß man die ticket=... Zeile komplett versteht, da hier wohl die Order aufgegeben wird. Ich habe mir die Parameter der OrderSend Funktion angeschaut. Meine Ergebisse: Symbol() ist ja auch wieder eine Funktion, also ist hier eine Funktion ein Parameter einer anderen Funktion?? Symbol() gibt einen String zurück mit dem aktuellen Symbol, also das, was man handelt/handeln will. OP_BUY bedeutet man will long gehen. Erst dachte ich, es bedeutet auch, daß man eine Marketorder macht, aber dann hat mich der übernächste Parameter "Ask" verwirrt. Lots gibt an, wieviel man kaufen will. In unserem Fall also 0,1 * 100.000 Währung also 10.000 Währung. Ask, kann ich nur vermuten. Man muß der Funktion wohl noch mitteilen, ob der Ask-Kurs oder der Bid-Kurs verwendet werden soll. Und hier wird es für mich seltsam. Wenn es eine Marketorder ist, bekomme ich doch eh nur den Ask Preis von meinem Broker. Muß also was anderes sein. 3: Das ist die Slippage. Bedeutet wohl, daß die Order nur ausgeführt wird, wenn der Kurs max 3 Pips vom ask-Kurs (dann wird doch ein Schuh draus, wenn ask einfach nur als Ausgangswert für die Slippage dient) abweicht. 0: Stoploss, also wird mit der Order keine Stoplossorder mitgegeben. Ask+TakeProfit*Point: Takeprofitorder wird aber eine mitgegeben. Sch... hier ist ja wieder der "Point". Ist wohl doch wichtig. "macd sample": Die Order braucht einen Namen 16384: Magic number !? Ist das die magicnumber des EAs, oder warum 16384? 0: datetime ?? Green: Grün! Ist wohl die Farbe das Pfeil im Chart, der die Order darstellt. Damit sind die Parameter durch. Aber die Zeile bedeutet noch mehr: Die OrderSend Funktion gibt etwas zurück, (die Ordernummer, die der Broker der Order gibt glaub ich) und das ist dann der Wert der Variablen "ticket". Oder -1, falls die Order schief geht. Aber: Wird hier wirklich schon die Order aufgegeben? Eigentlich wird doch nur der Variablen "ticket" ein Wert zugewiesen. Grübel. Wow, das war für mich schon ein ganz schöner Brocken, bin mal gespannt, was davon richtig ist.
  7. Tatsächlich ist die F1 Taste im Editor in den letzten Tagen fast schon zu meinem Hobby geworden. Aber die Hilfefunktion des Editors kann natürlich eine Antwort eines erfahrenen Programmieres nicht ersetzen. Deshalb nochmal Danke an alle, die hier Ihre Erfahrung bereitstellen.
  8. Gerade ist mir aufgefallen, daß ganz am Anfang des Codes bei den extern Variablen Lots = 0,1 steht. Also ist 1000 * Lots wohl 100. Bedeutet, daß die free Margin größer als 100 sein muß. Euronen oder $ ??
  9. Ok, dann frag ich mal weiter, bzw. mach einfach mit dem Code das MACD EAs weiter. Das Zitat ist nicht die gesamte if Anweisung, aber ich wollte nicht zu viel auf einmal machen. Also, nur wenn keine Orders offen sind, wird die nächste if Anweisung abgearbeitet. Sonst geht es mit dem for (cnt=0 ...) weiter. Glaub ich. Da alle offenen Orders des Accounts gezählt werden, ist die Zeile aber wenig sinnvoll, außer man hat nur diesen EA laufen und macht auch sonst keine diskretionären Orders. Dann kommt die nächste if Anweisung, bei der die free margin abgecheckt wird. Ich habe gleich mal den Tipp mit Curser auf das farbige Wort und F1 drücken befolgt. Das ist die free Margin des Accounts. Bedeutet das, die Summe aus allen Unterkonten, falls man welche hat? Da die free margin größergleich 1000 x Lots sein muß, stellt sich die Frage, wieviel ist ein Lot. Ich dachte ein Lot wären 100.000 $, aber dann wäre das ja eine Abfrage nach größergleich 1 Mio . Schlußfolgerung von mir: 1 Lot muß weniger als 100.000 $ sein. Eigentlich sollte ich das auch alleine herausfinden, wieviel ein Lot ist, aber verratet Ihr es mir trotzdem? Das nächtemal schlage ich wieder selbst nach. Falls zu wenig Geld da ist, schreibt er in das experts log (Curser und F1 haben mir das verraten, aber es war auch schon mal in diesem Thread davon die Rede, was die print Funktion macht) und beendet wegen des return(0) die gesamte start Funktion. Da ich in diesem Thread schon gelernt habe, daß eine Variable, die in der Funktion definiert wird, immer wieder auf null gesetzt wird, habe ich mir über die Variable "total" Gedanken gemacht. Die bekommt doch vor der if Anweisung in der sie benutzt wird immer einen neuen/aktuellen Wert über die Funktion OrdersTotal () zugewiesen. Wäre es also auch möglich diese Variable außerhalb der start Funktion zu deklarieren und das Ergebnis wäre das selbe? Mal davon abgesehen, daß es wohl keinen Grund gibt, das zu tun, also nur für mein Verständnis.
  10. OK. langsam kapiere ich so ein paar Basics. Schade, daß ich im Monent hier der einzige Fragensteller bin. Ich fand die Vorgehensweise, den Code Stück für Stück von den Anfängern erklären zu lassen und dann von den Könnern die Antworten berichtigen zu lassen nämlich sehr gut. Ich mach einfach mal so weiter: Es wird der Variable mit Namen total ein Wert zugewiesen. Der Wert wird von der Funktion mit Namen OrdersTotal() übergeben. Meine Vermutung: Die Funktion OrdersTotal() ist eine Standardfunktion, da sie nirgends im Code deklariert wird. Sie gibt wohl die Anzahl der offenen Orders an. Wenn das stimmt: Sind das die offenen Orders nur für das Symbol, in dem ich diesen EA laufen lasse? Wenn ich andere EAs auch auf diesem Symbol laufen habe, die auch offene Orders erzeugt haben, was passiert dann? Oder kann man nur einen EA auf einem Symbol laufen lassen? Was passiert, wenn ich eine offene long Order habe und zwei davon abhängige short Order (z.B. SL und TP). Dann müsste doch der Wert 1 sein und erst wenn die long Order ausgeführt ist, müsste der Wert 2 sein. Stimmt das? Das bringt mich zu einer anderen Frage, über die ich mir eigentlich erst viel später Gedanken machen sollte: Ist es sinnvoll Stopporders zu verschicken und dem Broker zu verraten, oder sollte man nicht den EA warten lassen, bis der Kurs zu, dem man seine Stopporder gesetzt hätte, erreicht ist und dann eine Marketorder schicken?
  11. Danke für die Antworten. Etwas ist mir noch nicht klar, aber wahrscheinlich habe ich da einen grundlegenden Denkfehler: Wenn eine Funktion später im Code deklariert wird, also festgelegt wird, was sie macht, aber früher im Code schon aufgerufen wird, also das Ergebnis der Funktion benutzt wird, dann ist der Rückgabewert der Funktion doch beim Aufruf noch nicht bekannt. Zum MACD EA: Ich habe zwar verstanden, was beim abchecken der Bars und des Takeprofit geschieht, aber warum? Macht man das bei jedem EA? Den Takeprofit auf bestimmte Grenzen zu überprüfen ist ja o.k., aber warum die 100 Bars? Gibt es noch andere Sachen, die man am Anfang abchecken sollte? Jetzt noch etwas, das mir aufgefallen ist: Das heißt doch auf deutsch, daß an einem Chart mit weniger als 100 Bars der Takeprofit gechekt wird. Ich habe das so verstanden, daß Takeprofit gechekt wird, wenn der Chart mehr (nicht weniger) als als 100 Bars hat, oder? Denn hat er weniger wird durch das erste return(0) abgebrochen und eben nicht der Takeprofit gechekt. Hat er mehr, dann geht es mit der zweiten If-Anweisung weiter und der Takeprofit wird gechekt.
  12. mh21 antwortete auf mh21's Thema in Welcome @ tom-next
    Habe mich beim Spread leicht vertan: Manchmal ist der Spread bim DAX nur 2,5 Punkte, meistens aber 3 bis 3,5. Wenn man bei denen 100.000 Euro auf dem Marginkonto hat, soll der Spread kleiner sein. HaHa. Ich glaube natürlich auch nicht, daß 4x Herr Hahn ist. Das war nur ein Beispiel, wie ich Herrn Hahn einschätze. Ich kenne den Mann aber nicht wirklich, vieleicht ist er abseites der Roadshow ja sehr nett.
  13. mh21 antwortete auf mh21's Thema in Welcome @ tom-next
    Ja, die rufen einen öfter mal an und empfehlen einem Trades, aber ich befolge lieber meine eigenen Signale, außerdem sind deren Empfehlungen auch nicht das gelbe vom Ei. Man kann sich dadurch aber tatsächlich zu Trades gedrängt fühlen. Das ging mir am Anfang auch so, zumal die dann so ganz nebenbei erzählen, wie oft doch andere Kunden traden würden. Erst als ich mir dachte "Die können mich mal, sollen sie mich doch rausschmeißen, wenn ich zu wenig trade!" hatte ich kein Problem mehr damit. Aber: Ja, das nervt ein wenig. Die rufen aber auch mal an, um einem die Vorteile eines größeren Marginkontos aufzuzeigen. Natürlich haben die prinzipiell recht, daß ein zu kleines Konto schon oft das Aus für Trader war, trotzdem ist so ein Anruf schon grenzwertig. Ich habe beim zweiten Anruf dieser Art dann gesagt, daß ich auf keinen Fall mehr einzahle und daß ich nur dann die VIP Kunde-Grenze überschreiten werde, wenn ich das Geld mit CFDs verdiene. Da ich bei soetwas sehr deutlich sein kann, kam dann kein solcher Anruf mehr. Mit dem FEX-Trader, deren Plattform, komme ich gut zurecht. Orderticketfenster mit der Möglichkeit gleich abhängige Takeprofit und Stopploss zu setzen. Beides entweder als Geldbetrag, oder als Zielkurs, das jeweils andere wird automatisch berechnet und auch angezeigt. Die Charts sind flexibel. Orders sind im Chart zu sehen, aber nicht mit Maus verschiebbar. Man kann den FEX-Trader sehr gut auf die eigenen Bedürfnisse konfigurieren. Stopkurse wurden bisher immer eingehalten, aber Slipage bei Marketorder hat man auch immer und immer in die falsche Richtung. Das Fixing bei EUR/Dollar lief bisher auch oft gegen mich. Ich wurde noch nie durch einen "seltsamen" peak ausgestoppt. Spread beim DAX entgegen der Werbung mindestens 3,5 Punkte. Wenn man weniger als 50.000 Euro bewegt, also zu Zeit 10x Dax = 49.000 Euro, zahlt man Kommission. 10 Euro/Halfturn. Finanzierungskosten overnight hat man auch. Ich war neulich short über Nacht und habe trotzdem Fin-Kosten berechnet bekommen. Hab dann angerufen und bin mit der Erklärung nicht wirklich zufrieden. Sowas ärgert mich. Ja, das sehe ich auch so. Ich glaube die holen das über den Spread mit vielen Trades. Da die ja explizit automatisiertes Traden bewerben und man davon ausgehen kann, daß Handelssysteme öfter traden, als Menschen, verdienen die über diesen Weg. Aber das ist Spekulation, bin kein Kunde von denen, war nur auf der Roadshow. Die Tatsache, daß ich Herrn Hahn durchaus zutraue hier anonym als 4x zu posten und mich auszufragen. Sorry 4x, war nicht so gemeint, aber das beschreibt Herrn Hahn einfach gut. Er ist ein VERKÄUFER, er ist aalglatt. Nur meine Meinung. Das würde mich aber auch nicht von XTB abhalten, ich muß den Mann ja nicht heiraten. Hat denn jemand Erfahrung mit XTB?
  14. Ich habe jetzt das kleine Beispiel von FinGeR (Addieren von zwei Zahlen) kompiliert und in einen Chart geschoben. Der Text im Chart erscheint, aber die Alert und Print Anweisungen werden nicht ausgeführt und der Text im Chart wird auch nicht gelöscht, was ja nach der Berechnung (Addition der beiden mitgegebenen Parameter) passieren soll. Es scheint, als ob die start-Funktion nicht ausgeführt wird, aber im Chart tickt es. Ich habe zwar eine 30 Tage Testversion das Metatraders, die schon älter als 30 Tage ist, aber im Chart tickt es, wie gesagt, noch. Die Frage, woran kann das liegen ist aber zweitrangig. Meine eigentlichen Fragen: 1. Warum steht die Funktion double AddiereFürMich(int a, int b) { return(a+b); } nicht innerhalb der Start-Funktion 2. warum steht sie nicht wenigstens vor der deinit-Funktion? 3. Warum muß überhaupt eine Variable x definiert werden, die den Wert von einer Funktion erhält? Könnte man nicht statt double x = AddiereFьrMich(a, b); gleich die Addiere-Funktion double AddiereFürMich(int a, int b) { return(a+b); } schreiben und das, direkt in der Printanweisung benutzen? Ich anwtorte mal mir mal selbst, weil man dabei am meisten lernt, - mit der Bitte um Berichtigung. zu1. Die Addieremich Funktion steht nicht in der Startfunktion, weil nicht eine Funktion innerhalb einer anderen stehen kann. Die Antwort glaube ich mir eigentlich selbst nicht. zu2. Vor oder nach der deinit - habe keine eigene Antwort. zu3. Der Rückgabewert einer Funktion kann nicht direkt in einer Printanweisung benutzt werden, deshalb der Umweg über eine Variable x 4. Ich glaube, ich habe das mit dem return(0) am ende der Startfunktion noch nicht verstanden. Wenn void start() bedeutet, die Funktion gibt NIX zurück, warum soll sie dann doch "0" zurückgeben. 5. Und an wen gibt eine Funktion überhaupt etwas zurück? oder was heißt eigentlich "zurückgeben". zu4. Habe keine eigene Anwort zu5. Sie gibt nicht automatisch etwas zurück, deshalb ist die Frage "an wen" falsch gestellt. Es ist einfach das Ergebnis und wenn man z.B. durch eine Variable darauf zurückgreift, erhält die Variable das, was in den Klammern nach "return" steht. Wenn aber eine Funktion nicht wirklich etwas ausrechnet und auch sonst kein ein "Ergebnis" hat, welches man im Programm weiterverwenden möchte, beendet man sie mit return(0). Liege ich mit meinen Antorten wenigstens auf dem richtigen Weg? Meine Fragen zu dem MACD-EA kommen dann später, nachdem ich das verstanden habe.
  15. mh21 antwortete auf mh21's Thema in Welcome @ tom-next
    Hallo und danke an alle für die nette Begrüßung. Ja, das kenne ich. Ich werde selbst von Freunden, die mich schon jahrelang kennen, oft mit "k" geschrieben. Hab aufgehört mich daran zu stören. Habe ich auch schon drüber nachgedacht. Aber wenn ich auf deren Seite versuche herauszufinden, was mich was kostet, krieg ich nen Föhn. Das ist mir alles zu unübersichtlich, die Seite gefällt mir nicht und irgendwie hat sich dadurch eine Antipathie gegen IB gebildet. Das ist natürlich ein Vorurteil, weiß ich. Ich überlege jetzt, ob ich XTB versuchen soll, bin momentan bei der FXdirektBank. Ich war auf der Roadshow von XTB. Fiese Verkaufsveranstaltung! Der Herr Hahn könnte auch auf ner Kaffeefahrt Skateboards an Omas verkaufen. Aber null Kommission und null Finanzierungskosten sind ein Wort. Bin noch unentschieden.
  16. Hallo, nachdem ich bisher nur gelesen habe, möchte ich nun aktiver werden. Traden - mach ich schon lange. Ich fing vor über zwanzig Jahren mit Aktien an, bin dann über OS zu Zertifikaten und letztendlich zu CFDs gekommen. Vor einem guten halben Jahr bin ich über Tradesignal auf automatisierte Handelssysteme aufmerksam geworden. Obwohl ich nicht programmieren kann (ein wenig während des Studiums, aber das ist lange her und längst vergessen), bin ich mit der einfachen Sprache equilia recht schnell warm geworden und habe Blut geleckt. Vorhandene Systeme ändern ging ganz schnell, sehr einfache Systeme schreiben ging auch. Dann beschloss ich, daß es wohl sinnvoller ist, das ganze in MQL4 zu machen und stellte fest: Sch...e ist das schwer! Ich bin, wie gesagt, kein Programmierer. Als Ingenieur bin ich zwar mit Logig, Zahlen und Mathematik vertraut, aber MQL4? Null Ahnung. C++ kann ich auch nicht, als ich das gelernt habe gab es noch BASIC und Pascal. Während ich das hier schreibe wird mir mal wieder klar, daß mein Alter nicht erst seit Gestern mit einer 4 anfängt. Meine Suche im Netz war leider auch nicht so erfolgreich, da ich einen Anfängerkurs brauche und z.B. das MQL4 Forum mich überfordert. Ich dachte schon, ich muß doch weiter diskretionär traden (was ja auch nicht so schlimm wäre, macht ja Spaß) oder ein System kaufen. Die zweite Möglichkeit ist aber unbefriedigend für jemanden der selbst tradet und eigene Strategien hat. Auf meiner Suche nach MQL4-Hilfe und Wissen, bin ich dann auch auf euch gestossen. Das MQL-Einsteigerforum war mein erstes Ziel. Leider habe ich zuerst den Wald vor lauter Bäumen nicht gesehen und konnte mit den Posts zwar etwas anfangen, es war aber nicht das, was ich suchte. Dann sah ich die Pinned Topic: Einstieg zu MT4 Programmierung. Jetzt glaube ich doch, daß ich eine Chance habe, das zu lernen. Danke schon mal für den Lichtblick. Bin jetzt auf Seite 4 von 5 und habe natürlich schon Fragen zu den ersten Seiten dieses Threads. Ich werde jetzt erstmal den Rest durchackern, was etwas dauern kann, da ich das sehr genau nehme mit "Jede Zeile verstehen". Ich hoffe, es ist ok wenn ich in diesem Einsteigerthread dann ein paar Fragen stelle, zu Post, die schon etwas älter sind. Marcus

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.