Alle Inhalte von conglom-o
-
Forexmillionär *reloaded*
... ohne Worte. Und dann tradet er noch mit 0,05 Lot und "Re-Orders". Darüber hinaus geht er ohne SL in den Markt (bzw. nur wenn er vorne liegt). Ganz typisches Anfängerverhalten.
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Ich habs gefunden!!! Nun wird es ganz tricky. Der Fehler liegt einfach darin, dass OrderClose im Gegensatz zu OrderSend vom Typ BOOL (und nicht INT) ist. Da soll mal einer drauf kommen... Nun klappt es einwandfrei!!! Danke an alle Mitdenkenden. Wieder was gelernt. Korrekt muss es also so aussehen: if (ShortTradesThisEA > MaxShortOrders) { for (j=OrdersTotal()-1; j>=0; j--) { if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber && OrderType()==OP_SELL) { if (OrderOpenTime() < OldestOpenTime) { OldestOrder = OrderTicket(); OldestOpenTime = OrderOpenTime(); } } } } if (OrderSelect(OldestOrder, SELECT_BY_TICKET)) { if (OrderType()==OP_SELL){ bool STicket=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE); while(STicket == false) { Sleep(200); loopcount++; if(loopcount > 1000) break; RefreshRates(); STicket=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE); } prevday = today; } } }
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Genau das habe ich mir auch gedacht - das "Problem" scheint zu sein, dass STicket nach dem ersten Versuch den Wert 0 annimmt. Er kommt also nie in die while-Schleife. Nun frage ich mich, was es bedeutet, wenn ein OrderClose den Wert 0 zurück liefert. Das OrderTicket ist korrekt - er findet also die älteste Order anstandslos und merkt sich auch das richtige Ticket.
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Nein, keine Fehlermeldungen. Der EA soll ja auch noch TP und SL der offenen Orders modifizieren. Das funktioniert auch einwandfrei. Auch die Routine, ob heute schon Orders geöffnet/geschlossen wurden, arbeitet er ohne Probleme ab (dies beides war auf allen Konten der Fall). Er schafft es nur nicht, die zu vielen Orders zu schließen - und selbst das, wo ich es derzeit nur noch mit einem Konto probiere. Er erkennt, dass er zu viele shorts hat ("Too much short Trades" wird auch ausgegeben) nur schließen tut er nix. Update Habe nun sogar noch eine weitere Testroutine eingebaut - er findet auch korrekterweise die älteste short Order und gibt mir das Ticket aus. Nur schließen will er nicht...
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
So, weiter gehts im Text. Habe das nun mal auf ein paar MT4 zum testen laufen gelassen. Nun habe ich das Problem, dass er auf ca. der Hälfte tatsächlich die Orders geschlossen hat, auf der anderen Hälfte nicht. Okay, das schiebe ich vielleicht auf "Server überlastet" oder sonst was. Das Problem, dass ich jetzt habe, ist, dass auch nach einem Neustart des MT die Orders nicht geschlossen werden. Richtig zählen tut er jedoch, der "Loopcount exceeded" ist es auch nicht. So langsam bekomme ich noch mehr graue Haare als ohnehin schon... //Close oldest Order int OldOrderClose (int MagicNumber, int MaxLongOrders, int MaxShortOrders) { int i, j, OldestOrder=2147483646, LongTradesThisEA = 0, ShortTradesThisEA = 0, loopcount=0; datetime OldestOpenTime=2147483646; for (i=OrdersTotal()-1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber && OrderType()==OP_BUY) LongTradesThisEA++; if (OrderMagicNumber() == MagicNumber && OrderType()==OP_SELL) ShortTradesThisEA++; Print ("Open Longs:" + LongTradesThisEA + " | Open Shorts:" + ShortTradesThisEA); } } // Long Seite zur besseren Übersichtlichkeit raus genommen if (ShortTradesThisEA > MaxShortOrders) { Print ("Too much short Trades"); for (j=OrdersTotal()-1; j>=0; j--) { if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber && OrderType()==OP_SELL) { if (OrderOpenTime() < OldestOpenTime) { OldestOrder = OrderTicket(); OldestOpenTime = OrderOpenTime(); } } } } if (OrderSelect(OldestOrder, SELECT_BY_TICKET)) { if (OrderType()==OP_SELL){ int STicket=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE); while(STicket == -1) { Sleep(200); loopcount++; if(loopcount > 1000) { Print ("Loopcount exceeded"); break; } RefreshRates(); STicket=OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, CLR_NONE); } prevday = today; } } } }
-
EURUSD - wie geht es weiter
Ich unterscheide da immer in Trend- und Swing-Status. So hatte ich am 12.01. einen Wechsel in Swing long im Daily, der auch trendmäßig durch die unteren Ebenen gestützt wurde. Ziel waren da zunächst die 1,3354 (erreicht am 13.01.). Derzeit stellt sich die Situation so dar, dass die mittleren Ebenen (H1 und H4) trendmäßig weiter long, aber im Swing recht weit oben sind. Daily ist der Swing noch long, Trend neutral mit leicht positiver Tendenz. Ziele nach oben wären 1,3560 und 1,3625. Ich vermute aber mal eher, dass er zunächst konsolidiert - den short suche ich aber erst, so bald die Stunde erste Trendwendetendenzen zeigt (dies wäre heute bei Kursen unter 1,3420/30 bzw. 1,3360/80 der Fall). Einstieg erfolgt dann mittels synchroner Projektion auf den kleinsten Ebenen.
-
Tagesreport 18.01.2011 - Zeitprojektionen EUR/USD
Sooooo, nach den beiden Free Cast Tagen letzte Woche und dem - bedingt durch den Martin-Luther-King-Day - eher langweiligen Montag gibt es heute wieder ein Chartbild vom EUR/USD. Der erfahrene Leser fragt sich nun, wo denn die Indikatoren hin sind. Einfache Antwort: man braucht eigentlich keine. Zumindest nicht in diesem Bild. Da einem der Pfeil nur sagt, suche nach long/short muss man dann eh alle Zeitebenen nochmal kurz nach deren Indikatoren und Kursmarken durchschauen. So geschehen war es heute wieder ein lukrativer Tag - der letzte short läuft im Übrigen noch... P.S.: Wer den Free Cast verpasst hat, kann ab sofort die Zeitprojektionen für FDAX und EUR/USD drei Tage lang kostenlos und unverbindlich testen. Einführung in das Thema inklusive.
-
Die Rudolf-Elmer-Story
@Ecart Eben drum - bis 1990 mochte die Schweiz uns noch .
-
Monte Carlo Simulation
Es gibt ihn zumindest hier auch als User, was zunächst mal für ihn spricht: http://www.tom-next.com/community/user/557-zentrader/
-
Kompletter Handelsansatz
Habs mal schnell durchgeklickt. Ähnelt sehr (sehr) stark dem, was Carlos Martins den Kunden von Activtrades in seinen Webinaren beibringt. Da die aber kostenlos sind, wollen wir das mal durchgehen lassen .
-
Ein freundliches Hallo!
Willkommen bei Tom-Next ! Hier wird Dir sicherlich geholfen, so dass Du bald nicht mehr kopflos durch die Gegend rennen musst .
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Muss wohl daran liegen - habe nun die OrderClose-Routine außerhalb der Schleife gelegt. Nun geht es überall mit dem -1. Danke nochmal an alle wachsamen Augen.
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Ja, und zwar die älteste. Und das klappt ja auch soweit. Das mit dem mehrfachen Schleifendurchlauf liegt daran, dass ich das System nach Ideen modular erweitert habe. Schön ist das sicherlich noch nicht .
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Ja, ist nur eine Variable - ich könnte auch OrdersTotal() schreiben. Nun nochmal zu dem -1. Ich verstehe eure Argumentation und sie erschließt sich mir auch. Das einzige, was dagegen spricht sind die Ergebnisse des Backtests. Aber auch das werde ich raus finden . Habe es mal blöckeweise probiert. Die Verzerrung tritt auf, wenn ich es im folgenden Block ändere. Kann es daran liegen, dass in ihm erneut eine Schleife (durch die Funktion OldOrderClose, siehe Posting #1) aufgerufen wird? for (k = Total; k >= 0; k--) { OrderSelect(k, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if (OrderType()==OP_SELL) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice()+StopLoss, OrderOpenPrice()-TPs, 0, CLR_NONE); if (OrderType()==OP_BUY) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice()-StopLoss, OrderOpenPrice()+TPl, 0, CLR_NONE); Sleep(2000); OldOrderClose (MagicNumber, MaxLongOrders, MaxShortOrders); } }
-
Forexmillionär *reloaded*
Dass (normalerweise) die Kunden auch eine dem Preis entsprechende Leistung erwarten können sollten. Manchmal frag ich mich auch, ob wir nicht zu günstig sind, aber das steht auf einem anderen Blatt.
-
Forexmillionär *reloaded*
Habe noch nicht in den Blog geguckt, aber wenn das tatsächlich so ist, bin ich mal gespannt was der Harald Weygand dazu sagt. Werde ihn ggf. mal auf der Invest ansprechen. Er ist ja ein ganz vernünftiger Typ und ich schätze das, was er aufgebaut hat, hoch ein. Dann wird man sicherlich offen über so etwas reden können. Kay gehört ja mit zu seinen teuersten Pferden im Stall, wenn es tatsächlich so gehandhabt und von Godmode mitgetragen wird, wirft das natürlich kein gutes Licht auf sie.
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Wie sehen das die anderen Profis denn hier? Ich weiß zumindest, dass er das bei mir richtig macht, wenn ich aber das mit -1 mache eben nicht.
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Das zeigt ja erst der Alltag - bin aber optimistisch. Im Backtest funktionierte es ja. Gleiches gilt im übrigen für das OrdersTotal. Meinst Du wirklich, dass es ein "schlimmer" Fehler ist? Ansonsten läuft er ja einfach nur die Schleife 1x mehr durch, oder sehe ich das falsch? Update Habe das mal mit dem -1 eingebaut. Das scheint dann eher fehlerhaft zu sein. So wie es ist, ist es also anscheinend richtig. Ist ja auch logisch. Wenn nur noch eine Order vorhanden ist, ist OrdersTotal eben 1 und nicht 0. Wenn ich bei also 1-1 machen würde, würde er die Schleife nicht mehr durchlaufen. Die Ordernummer ist irrelevant, nur die Anzahl ist wichtig.
-
Der Anfang ist schwer
In Hahnschen Dimensionen ist das quasi ein verkaufter EA .
-
Januarausgabe vom Traders: Zeitprojektionen
Wenn Du magst, kann man sich gerne mal näher austauschen. Das mit den Seiten ist vollkommen okay - viel mehr hätte ich eh nicht schreiben können .
-
Der Anfang ist schwer
Naja, wenn man sich die Seiten mal etwas näher anschaut, dann kann da keine große Investition erkennen. Das muss alles selbst gebaut sein, da jeder auch nur ansatzweise vernünftige Dienstleister in dem Bereich sich schämen würde, so etwas online zu stellen. Und so eine Domaine kostet ja quasi nix.
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Ja, ist MQL für den MT4. Bei Fragen zu den Variablen einfach fragen .
-
GFT - Spammails
Danke für den Hinweis, auch wenn ich kaum glaube, dass die Programmierer solcher Teile wirklich darüber nachdenken, ob es Sinn macht. Man denke nur mal an die ganzen gefakten E-Mails im Stile der Postbank.
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Oh, wie peinlich. Gleiches gilt natürlich auch für die Ordereröffnung. Da ist es nur nicht aufgefallen, weil ich mir in einer Schleife nochmal die Kurse hole und es dort richtig zugewiesen ist. Vielen Dank für den Hinweis. Weiß auch nicht, in welchem Rausch ich das falsch eingebaut habe...
-
Anzahl offener Trades begrenzen - Hilfe benötigt!
Moin Leute, ich verzeifel so langsam. Es ist also folgende Situation: ich möchte zu Handelsbeginn einen Trade eröffnen. Je nach Situation ist dass dann long oder short. Danach soll überprüft werden, ob die Anzahl der maximalen Trades überschritten ist. Wenn ja, soll der älteste gelöscht werden. Im Backtest funktioniert das einwandfrei. In der Praxis schafft er es jedoch nicht, den Trade zu schließen. Dabei dachte ich, ich hätte schon genug Schleifen eingebaut. Eventuell kann ja jemand helfen. Danke vorab . Hier der verkürzte Code (nur die short Seite): datetime today,prevday; today = iTime(NULL,PERIOD_D1,0); int MaxShortOrders = 3; if (today>prevday) OpenTrade(Symbol(), OP_SELL, Lots, Ask, Slippage, 0, 0, "Sell(#" + MagicNumber + ")", MagicNumber, 0, CLR_NONE); for (k = Total; k >= 0; k--) { OrderSelect(k, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { if (OrderType()==OP_SELL) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice()+StopLoss, OrderOpenPrice()-TPs, 0, CLR_NONE); Sleep(2000); OldOrderClose (MagicNumber, MaxLongOrders, MaxShortOrders); } } [...] //Close oldest Order int OldOrderClose (int MagicNumber, int MaxLongOrders, int MaxShortOrders) { int i, j, OldestOrder=2147483646, ShortTradesThisEA = 0, loopcount=0; datetime OldestOpenTime=2147483646; // Orders zählen for (i=OrdersTotal(); i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber && OrderType()==OP_SELL) ShortTradesThisEA++; } } if ((ShortTradesThisEA <= MaxShortOrders)) prevday = today; if (ShortTradesThisEA > MaxShortOrders) { for (j=OrdersTotal(); j>=0; j--) { if (OrderSelect(j, SELECT_BY_POS, MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber && OrderType()==OP_SELL) { if (OrderOpenTime() < OldestOpenTime) { OldestOrder = OrderTicket(); OldestOpenTime = OrderOpenTime(); } } } } if (OrderSelect(OldestOrder, SELECT_BY_TICKET)) { if (OrderType()==OP_SELL){ int STicket=OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE); while(STicket == -1) { Sleep(1000); loopcount++; if(loopcount > 100) break; STicket=OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, CLR_NONE); } prevday = today; } } } }