Alle Inhalte von Mythos
-
EA soll nur am ersten Tick eines Bars traden
Hi, muss ehrlich sagen ich find die 2 Varianten nicht optimal: //--- Trading nur auf den erste Tick der neuen Bar if(Volume[0]>1) return;Diese Variante geht davon aus das der erste Tickt genau 1 Volume auslöst. Sollte meist passen, aber garantiert wird es nirgends, außerdem übersieht man so bars, wenn der erste Tick übersehen wurde. Sprich wenn start() noch busy war. int BarCount; --- int start() { if (BarCount<iBars(Symbol(),0)) { **** Hier steht dann alles, was zur Kerzeneröffnung abgearbeitet werden soll! *** } BarCount = iBars(Symbol(),0); return(0); }Hier geht man davon aus das zwischen den Bars der BarCount gleichbleibt bzw. eben um 1 mehr wird. Ist vermutlich noch stabiler als Variante 1, aber rein vom Prinzip her prüft die Bedingung auf einen Nebeneffekt der aber nicht in direktem Zusammenhang mit "neuer Bar" steht. (Falls MT im Hintergrund Bars nachlädt, ändert sich der Barcount auch oder? Detto: was passiert wenn die maximale Anzahl an Bars im Chart erreicht ist?) Meine Variante: bool isNewBar() { static datetime lastTime= 0; if(Time[0] == lastTime) return(false); else { lastTime= Time[0]; return(true); } } int start() { if(isNewBar()) { //code der nur am ersten bearbeiteten Tick des Bars gemacht werden soll } //code der bei jedem Tick ausgeführt werden soll, zB Trailingstop... } //bzw. int start() { if(!isNewBar()) return; //code der nur am ersten bearbeiteten Tick des Bars gemacht werden soll } Hier wird die Berechnung ausgeführt wenn der aktuelle Bar einen anderen Timestamp hat als der zuletzt bearbeitete Bar. Also ein neuer Bar ist. Egal ob Bars nachgeladen wurden, oder der erste Tick übersehen wurde. Was du bei jeder Version beachten musst: bei den Indis solltest du offset auf 1 setzen. Denn du betrachtest ja eigentlich am ersten Tick des neuen Bars, die Werte des letzten Bars. Der neue Bar besteht ja gerade aus 1 Tick und ist somit noch weit weg von fertig. hth
- Mein erster EA
- Raumplanungstool Roomle
-
PFT Capital Wealth Management
Leider machen das manche. Vor allem vor dem Crash haben es viele gemacht. Kannst dir vorstellen wo die jetzt stehen. Man muss immer bedenken: There is no free lunch. Zahlen die zu gut sind um wahr zu sein, sind meist auch nicht wahr. Vielleicht für eine gewisse Zeit (wenn überhaupt), aber wer denkt er kann mit dermaßen minimalem Aufwand (also Kredit bei der Bank holen und einzahlen) 5 stellige Einkünfte im Jahr erhalten, hat eine ziemlich schmerzhafte, aber hoffentlich schnelle Lernkurve.
-
Mein erster EA
Nochmal ich. Hab jetzt mal die Änderungen, wo ich vermute das du es so gemeint hast, eingebaut. Macht die Performance leider deutlich schlechter... vielleicht hast es doch nicht so gemeint :D Also der Close bei Cross sorgt für einen ziemlichen Dämpfer, dafür ist die Anzahl der Positionen dann deutlich geringer und der offene Drawdown defakto nicht vorhanden.
-
Mein erster EA
Nochwas: in den CrossedX ist ein Fehler: Beim ersten Ausführen wird immer ein Cross angezeigt, weil er von 0 auf Richtung kreuzt. Du solltest die Bedingung: if(current_direction != last_direction) auf if(current_direction != last_direction && last_direction != 0) ändern und im else trotzdem die last_direction setzen. btw. ist es eigentlich absicht das du auf Tickebene arbeitest? damit kannst du ja innerhalb der Kerze einen Cross angezeigt bekommen der am ende der Kerze nicht mehr da ist...
-
Mein erster EA
Hi, ich schau mir gerade den EA an und schreib einfach mal was mir auffällt. Zuerst mal was "kosmetisches": Das ist zugegebenermaßen großteils Geschmackssache, aber manche Dinge erhöhen die Fehleranfälligkeit enorm vor allem bei Änderungen. Ich würde dir empfehlen bei Blockanweisungen (if's etc.) zwischen dem If und der geschwungenen Klammer keine Leerzeilen einbauen, und die Blöcke klarer sichtbar unterscheiden (Einrückung , neue Zeile nach der Klammer etc.) Vor allem wenn man viele if's ineinander schachtelt wo manche Blöcke haben und manche nicht, führt es sonst schnell zur Verwirrung. Ein kleines Bsp aus deinem EA: if(isCrossed1 == 2) if(isCrossed2 == 4) {ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"Zahn EA",12345,0,Red); if(ticket>0) {if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ",OrderOpenPrice());} else Print("Error opening Sell Order : ",GetLastError()); return(0);} return(0);Hier "fehlt" zusätzlich die geschwungene Klammer um das 2. if. Es ist syntaktisch korrekt und tut (vermutlich) auch was du willst, aber hier muss man genau schaun um zu erkennen um was es geht. Und zb "in welchem if steht das letzte return(0)?" ist sehr schwer zu beantworten. Die Frage zu welchem if das else gehört, hätte ich zB beim ersten Hinschauen falsch beantwortet. wenn du es zB so schreibst: if(isCrossed1 == 2) { if(isCrossed2 == 4) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"Zahn EA",12345,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ",OrderOpenPrice()); } else { Print("Error opening Sell Order : ",GetLastError()); } return(0); } } return(0);ist der zusammenhang was in welchem Block ist klarer. Ich hab nur die Einrückung geändert und die "fehlenden" Klammern eingefügt. Außerdem hilft es für die Lesbarkeit nicht soviele verschachtelte If's zu machen und stattdessen die Bedingungen in eine abfrage zu packen. Wieder zu dem Beispiel, das könnte zB auch so aussehen: if(isCrossed1 == 2 && isCrossed2 == 4) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"Zahn EA",12345,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Sell order opened : ",OrderOpenPrice()); } else { Print("Error opening Sell Order : ",GetLastError()); } return(0); } return(0);Ist in dem Fall nicht viel, aber vereinfacht es doch ein bissl. Stärker wirkt es sich bei der Exitlogik aus, wo du 3 verschachtelte ifs hast die du in eine Bedingung packen könntest. Und als letzter Punkt würde ich für konstante Werte die eine "Bedeutung" haben, wie in deinem Fall die 2 und 4 hier Precompilerkonstanten verwenden. Beispiel #define CROSSED_UP 1 #define CROSSED_DOWN 2 // Crosslogic------------------------------------------------- int Crossed1 (double line1 , double line2) { static int last_direction = 0; static int current_direction = 0; if(line1>line2)current_direction = CROSSED_UP; // buy if(line1<line2)current_direction = CROSSED_DOWN; // sell if(current_direction != last_direction){ last_direction = current_direction; return (last_direction); } else { return (0); } } int Crossed2 (double line1 , double line3) { static int last_direction = 0; static int current_direction = 0; if(line1>line3)current_direction = CROSSED_UP; if(line1<line3)current_direction = CROSSED_DOWN; if(current_direction != last_direction) { last_direction = current_direction; return (last_direction); } else { return (0); } } damit sind die if Abfragen sofort klar, ohne das man nachschauen muss was die Zahlen bedeuten: if(isCrossed1 == CROSSED_UP && isCrossed2 == CROSSED_UP) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"Zahn EA",12345,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice()); } else { Print("Error opening BUY Order : ",GetLastError()); } return(0); } Aber wie gesagt, das sind nur Empfehlungen aus meiner Erfahrung. Es macht den Code für andere leichter lesbar und reduziert die Fehleranfälligkeit, ist aber in vielen Bereichen eher Geschmackssache. Funktionell: Dein EA hat derzeit 2 Modi: - Noch nicht maximale Anzahl an Orders offen: versuche neue Order zu öffnen - Maximale Anzahl Orders offen: Überprüfe auf Trailingstop und Cross-Bedingung für Close weiters kann ein Cross genau eine Position schließen, die anderen bleiben offen. Ich vermute das ist so nicht gewollt, aber durch die ganzen return(0) tritt der Effekt auf. Die Crossed-Methode wie du sie verwendest zeigt den Cross nur exakt am nächsten Tick an (was an sich ja ok ist). Wenn du jetzt mit return(0) die bearbeitung dieses Ticks nach dem ersten Schließen einer Order beendest, merken die anderen Orders nichts mehr von dem Cross. Wenn du das return(0) beim OrderClose wegtust wäre die for-schleife "falsch": Du läufst die Orders von 0 bis total (Nehmen wir an total ist 5). Wenn du jetzt die Order an Position 3 schließt, rückt die vorige Nummer 4 auf Nummer 3 nach und die Gesamtanzahl reduziert sich auf 4. Die Schleife inkrementiert aber normal weiter und du betrachtest als nächstes Order Nummer 4 (die neue Nummer 4) und hast somit die alte Nummer 4 (die jetzt Nummer 3 ist) übersprungen. Und da du nicht jedesmal mit OrdersTotal() vergleichst sondern den gespeicherten Wert nimmst, würdest du am schluss versuchen auf Nummer 5 zuzugreifen, die es aber nicht mehr gibt. Einfache Abhilfe für das Problem: Zähl von oben nach unten: for(cnt= total-1;cnt >= 0;cnt--)Wenn du jetzt Nummer 3 löscht, rückt die alte Nummer 4 (die du bereits bearbeitet hast) auf Nummer 3 nach, du dekrementierst und bearbeitest als nächstes Nummer 2. Hmm wenn ich diese Änderungen einbaue stimmt was nicht. Ist es absicht das du bei Cross_up kaufst, und bei Cross_up auch die Order schließt? Den Candlerangefilter finde ich jetzt auch nirgends, was genau soll der tun?
-
Raumplanungstool Roomle
Sind beides gute Ideen, darf ich dich bitten sie über den offiziellen Feedback-Kanal zu schicken? Dann kommts bei den richtigen Leuten als Feedback aus der Community an ;) Das Hochladen Feature wurde bereits gewünscht und ist in der Pipe ;) bzgl. Notizen: es gibt bereits die Möglichkeit einzeilige Labels beliebig am Plan zu positionieren. Ist nicht ganz das was du meinst, aber wäre vielleicht eine Übergangslösung.
- Raumplanungstool Roomle
-
Raumplanungstool Roomle
Natürlich nicht ;) Also abgesehen von den Daten die an den Glasfaserknoten abgezweigt werden. Wir geben auf jedenfalls nix weiter, das wär ja noch schöner. Hmm stimmt, daran hab ich nicht gedacht. Mal sehen ob ichs im nachhinein dazutun kann. Edit: done, jetzt muss Roomle nur noch an die Börse das ich einen Stock auch noch angeben kann . Ja Marketingabteilung haben wir. Es geht auch demnächst ein Newsletter an alle registrierten Roomleuser raus (sind auch schon über 170k). Ich glaub Tom-Next User müssen wir nicht mit Roomle im Newsletter belästigen, is ja doch recht weit weg von klassischen Tom-Next Themen, aber danke. Für alle die Pressetexte suchen oder sich informieren wollen: http://press.roomle.com/
-
Raumplanungstool Roomle
Hi Leute, wiedermal ein Thread in eigener Sache, dafür diesmal komplett tradingfremd: Meine Firma betreibt schon länger das online Raumplanungstool Roomle und seit letzter Woche gibt es den Roomle endlich auch fürs iPad. Da ich selbst an der App mitgebaut hab, nutz ich Tom-Next jetzt einfach ganz plump für ein bissl Werbung ;) Besonders stolz sind wir auf die einfache Zeichenlogik und die Möglichkeit die Möbel mittels Augmented Reality (man beachte: OHNE Marker!) sofort im Raum zu betrachten. Ich freu mich wenns der eine oder andere ausprobieren würde und natürlich immer über positive Bewertungen ;) Hier noch ein schöner Artikel dazu: http://etailment.de/thema/tools/Roomle-Mit-dieser-App-wollen-Sie-gleich-die-ganze-Wohnung-umraeumen---und-nie-mehr-in-den-Moebelladen--2188 und natürlich der App-Store Link: https://itunes.apple.com/at/app/roomle/id732050356 so, Werbung Ende ;)
- Mein erster EA
-
Mein erster EA
Ohje, da scheint beim absenden des Beitrags irgendwas böse durcheinander gekommen zu sein. Leider ist es so durcheinander das ich es nicht einfach so ändern kann. @Zahnstocher: wenn du mir den Code nochmal ggf. in PN schickst, passe ich deinen Beitrag so an das der Code stimmt. Derzeit is es eine wilde Mischung aus Text und Code, und der Code ist sicher nicht komplett und somit leider etwas unlesbar :(
-
Relativ profitable EA verbessern Backtest vorhanden, Hilfe erbeten
Hi Zahnstocher und herzlich willkommen bei uns. Zum Thema MQL lernen und die Grundlagen gibt es bereits einen Thread der vermutlich ein guter Einstiegspunkt ist: http://www.tom-next.com/community/topic/32996-einstieg-zu-mt4-programmierung/ Zum EA etc. (im deutschen sagt man glaub ich "der" EA, weil "der" Advisor): Hast du den Source von dem EA den du verändern könntest, oder möchtest du ihn nachbauen/einen eigenen selber bauen? Ganz allgemein find ich es wunderbar das du MQL lernen willst. Vor allem wenn man EAs einsetzen will sollte man unbedingt verstehen was MQL macht/kann/darf und damit dann auch was der jeweilige EA genau tut. Wir helfen natürlich gerne während des gesamten Lernprozesses bei Fragen und Problemen. Falls du den Source des EAs (oder später deiner Eigenentwicklung) öffentlich machen darfst/willst können wir dir auch gerne direkt bei der Entwicklung helfen. Ansonsten gerne allgemein mit Codesnippets oder generellen Fragestellungen. bzgl. dem Problem "1 Pip vor dem TP gedreht": Das ist so ein klassisches Thema. Wenn man sagt man schließt auch wenn der Kurs 1 Pip vorm TP ist, bedeutet das in der Praxis den TP einen Pip tiefer zu legen und man hat das nächste Level das man um 1 Pip verfehlen kann. Hier helfen womöglich Ansätze, das die Position geschlossen wird, wenn der Kurs eine gewisse Zeitspanne knapp unter dem TP pendelt. Konkret müssen diese Logiken aber natürlich immer an die Gesamtlogik des EAs angepasst werden. lg Mythos
-
Chartausrichtung CFD-Broker
Das was du beschreibst sagen keine bösen Zungen, sondern das ist die offizielle Formulierung was MMs machen. Böse Zungen behaupten das der MM davon ausgeht das die unerfahrenen Trader sowieso verlieren und deswegen das Ungleichgewicht eben nicht im Markt hedged und somit deinen Verlust 100% als Gewinn einstreift...
-
ECN Dukascopy (Schweiz) jetzt mit MT4 + (nur) $ 5.000
Hi Jacky, erstmal herzlich willkommen bei uns. Reines Interesse, diese zweistelligen Pipgewinne des robots: entstehen die auf Demokonto oder real? Falls Demo musst du erstmal den generellen Unterschied zwischen Demo und Realkonto bedenken. Die realen Ausführungen sind bei defakto allen Brokern (bei manchen mehr bei manchen weniger) in real schlechter als auf Demo. Das muss nicht an der "bösartigkeit" des Brokers liegen sondern ist teils auch einfach systembedingt und muss somit von vornherein miteinkalkuliert werden. bzgl. Bridge etc: Ich kenn das konkrete Plugin nicht selbst aber generell kann man glaub ich sagen das eine solche Bridge (sofern sie nicht total grottenschlecht ist, und dann wär sie nicht mehr am Markt) keinen relevanten Performancenachteil bringt. Vor allem in Anbetracht der Netzwerklatenz und Ausführungszeiten auf realkonten. Falls sich niemand meldet der Erfahrung mit dem Plugin im realbetrieb hat, kannst du es sicher auf einem Demokonto testen oder? Ich weiß jetzt überhaupt nichts über deinen Background, aber für den Fall das du gerade erst mit Trading beginnst und jetzt einen Broker suchst wo du den robot erstmals real testen kannst, gibt es vorher sicher noch andere Themen die wichtiger sind als die Performancefrage der Bridge. Edit: hab grad ein bissl auf deren Seite geschmöckert. Wenn stimmt was sie schreiben, hat es Potential das die Ausführung sogar schneller geht als bei "herkömmlichen" MT4-ECN-Brokern.
-
Powerpoint Upload ?
Das das File "Kopie von ..." heißt passt ins Gesamtbild :D
-
Ich kauf mir eine Drohne
Es gibt so Kühlvitrinen ohne Tür. Problem solved :D Aber wozu die Drohne, stell den Kühlschrank neben die Wanne... oder mach eine Kreuzung aus Kühlschrank und Staubsaugerroboter... Möglichkeiten über Möglichkeiten...
-
TradAc.de Performanceprobleme
Also allein wegen der ehrlichen Geschichte ist Koko in meinem Ranking gerade extrem hochgeschossen. Vor allem weil er die Geschichte dann nicht ausschlachtet ala "hätte er bei mir gelernt wär er jetzt reich".
-
[ Presse/TV ] Bitte ein Bitcoin!
Ja, staatliches Zahlungsmittel ist auch nur das gedruckte/geprägte Geld. Bankomatkarte etc. ist rechtlich was anderes. Und selbst für das digital erzeugte Geld: Wie sieht es denn derzeit mit den nötigen Goldreserven aus? Es wird den Bitcoins ja immer vorgeworfen das sie, im Gegensatz zu "echtem" Geld, rein virtuell sind.
-
[ Presse/TV ] Bitte ein Bitcoin!
Klingt für sich betrachtet viel. Aber wenn man sich den Energieverbrauch der Googleserver allein für "sinnfreie" Suchabfragen etc. anschaut (von Facebook und Twitter ganz abgesehen) dann darf man Bitcoin nicht überwerten. Die Schlagzeile klingt halt reißerisch ("Environmental Disaster"), aber demnach wäre zB Facebook ein umwelttechnischer SuperGAU. Edit: und wo wir gerade dabei sind: Wie umweltfreundlich ist denn eigentlich "echtes" Geld? Angefangen von dem Energiebedarf die Rohmaterialien zu erhalten über das drucken, transportieren, Verpackung und schließlich Recycling... Ich tippe mal in Summe dürften Bitcoins sogar noch umweltfreundlicher sein. Ist aber nur eine Vermutung.
-
Warum das Internet kollabieren wird
weils so schön passt: DE-CIX hat gerade auf 12 Terabit/s Kapazität aufgerüstet http://www.heise.de/newsticker/meldung/Internet-Knoten-DE-CIX-startet-in-Frankfurt-weltweit-groesste-Interconnection-Plattform-2067966.html
-
Yukons Tradingjournal
Nur noch eine kleine Anmerkung dazu, dann zieh ich mich zurück und lese nur mehr mit: Grundsätzlich ist so ein Tradingjournal absolut zu befürworten. Wenn du aber keine Interaktion und nur wenig Reaktionen haben willst, wäre es vermutlich als Blog (natürlich gerne hier bei Tom-Next) besser aufgehoben. Ein Forumsthread lädt grundsätzlich sehr stark zur Interaktion und dem gegenseitig Austausch ein. Das aber nur als Hinweis am Rande.
-
Yukons Tradingjournal
Ehrlich gesagt werd ich aus dem Post nicht ganz schlau. Was meinst du mit "beobachtet" wenn du nicht weißt obs Mann oder Frau war? In einem Forum? So Berichte sind ja spannend, aber warst du live dabei oder hast du es nur aus 2./3. Hand gehört/gelesen? Außerdem versteh ich überhaupt nicht was das Thema der sexuellen Orientierung damit zu tun hat. Ich gehe rein vom geschriebenen her davon aus das es nicht beleidigend (oder überhaupt wertend) gemeint war, bitte dich aber das der Form halber kurz zu bestätigen. In Zukunft wäre es (wie Vola richtig sagt) sicher besser solche Seitenbemerkung zu unterlassen. Sowas kann einfach viel zu schnell bei einem Leser falsch aufgenommen werden und zu Streit führen. Außerdem hat es ja wie gesagt nicht das geringste mit dem Thema zu tun, also bitte einfach weglassen. Danke mythos btw: der Satz am Anfang eines langen Posts erhöht den Symphatielevel leider nicht wirklich. Willst du jetzt im Forum aktiv sein oder nicht?
-
Fundstück des Tages
I hoff nit, vor meinem Fenster bauns grad mit so einem megakran, einen baukran auf...