WOGO Posted October 11, 2010 Report Share Posted October 11, 2010 ... ob es die gewünschte Position ist: Symbol, MagicNumber etc.Genau!Ich benutz bei einem EA, der gleichzeitig mehrere Positionen öffnet die letzten 4 Bits der MagicNumber um die Signale durchzunummerieren. So kannst du die einzelnen Positionen sauber separieren. Quote Link to comment Share on other sites More sharing options...
sill3000 Posted October 12, 2010 Author Report Share Posted October 12, 2010 Es gibt zwei Möglichkeiten (siehe auch Post von Wogo):1. automatisch durch Erreichen von SL/TP2. per OrderClose Im zweiten Fall musstest du ja selber vorher per OrderSelect die Position wählen (Ticketnummer) und daher wird genau diese geschlossen. Nach dem OrderSelect würdest du in deinem EA prüfen, ob es die gewünschte Position ist: Symbol, MagicNumber etc. Jetzt nehmen wir an, ich habe drei offene Positionen, jede hat eine andere Ticketnummer. Wie komme ich denn an die richtige Nummer ? Quote Link to comment Share on other sites More sharing options...
WOGO Posted October 12, 2010 Report Share Posted October 12, 2010 Jetzt nehmen wir an, ich habe drei offene Positionen, jede hat eine andere Ticketnummer. Wie komme ich denn an die richtige Nummer ?Das hängt jetzt ganz von deiner Strategie ab.Nehmen wir mal an, du hast für jedes dieser 3 Tickets einen eigenen Stop-Loss und einen eigenen Take-Profit, die du über den EA verwaltest, dann mußt du dir im Programm selber merken, welches Ticket zu welchem SL/TP gehört. Das Ticket bekommst du ja, wie bekannt, per OrderSend() geliefert. Liest du die offenen Positonen zyklisch vom Server aus, so kannst du über die MagicNumber die Orders durchnummerieren z.B. der ersten ....1, der 2. ....2 usw. dann kannst du im Progamm leicht zuordnen, welche Position was ist... Bei mehreren offenen Positionen gleichzeitig kann ein EA schon etwas komplizierter werden. Quote Link to comment Share on other sites More sharing options...
RAiNWORM Posted October 12, 2010 Report Share Posted October 12, 2010 Jetzt nehmen wir an, ich habe drei offene Positionen, jede hat eine andere Ticketnummer. Wie komme ich denn an die richtige Nummer ?Gegenfrage: woran würdest du bei den drei Positionen deine eine gewollte (zu schließende) Position erkennen? Nur du als Mensch mit deinen Augen. Ist es der SL oder der TP, die vergangene Zeit seit Eröffnung etc.? Quote Link to comment Share on other sites More sharing options...
sill3000 Posted October 12, 2010 Author Report Share Posted October 12, 2010 Es geht mir darum, ich habe Schwierigkeiten mit dem Trailing-Stop, der wird für 2 gemacht und dann wird gestoppt und die dritte Position wird nicht verändert. Quote Link to comment Share on other sites More sharing options...
sill3000 Posted October 12, 2010 Author Report Share Posted October 12, 2010 Wie hoch ist eigentlich die maximale Anzahl an Trailing-Stops, die MT4 verarbeiten kann, ich habe mal ca. 480 Trades geöffnet und kann nur maximal 100 bearbeiten, gibt es da eine Begrenzung oder ? Im Voraus besten Dank Quote Link to comment Share on other sites More sharing options...
Vola Posted October 12, 2010 Report Share Posted October 12, 2010 Nur 480 Stück ?? Das MUSS doch funzen. Habe ja null Ahnung von EAs aber die Zahl liesst sich heftigund ich möchte in deinem Leben echt keine Festplatte sein. Quote Link to comment Share on other sites More sharing options...
sill3000 Posted October 13, 2010 Author Report Share Posted October 13, 2010 War nur so ne Ideee um herauszufinden, was man so alles machen kann mit einem EA, ich denke aber, dass die "Start()-Funktion", immer wieder dazwischenfunkt, oder wie seht ihr das ? Quote Link to comment Share on other sites More sharing options...
RAiNWORM Posted October 15, 2010 Report Share Posted October 15, 2010 Wie hoch ist eigentlich die maximale Anzahl an Trailing-Stops, die MT4 verarbeiten kann, ich habe mal ca. 480 Trades geöffnet und kann nur maximal 100 bearbeiten, gibt es da eine Begrenzung oder ?Ich wüsste nicht, dass es eine Beschränkung bei der Anzahl der offenen Trades gibt. Zumindest sollten die geöffneten Positionen auch alle zu bearbeiten sein.Und wenn dein EA bei 3 offenen Positionen nur drei bearbeitet, klingt das für mich nach einem Problem in der Abfrage-Schleife, in der du die Posis durchgehst. Hier wäre mal der aktuelle EA-Quellcode hilfreich. edit: Oder zielt dein anderes eröffnetes Topic auf die Beantwortung der Frage ab? Quote Link to comment Share on other sites More sharing options...
sill3000 Posted November 12, 2010 Author Report Share Posted November 12, 2010 Hallo Community, jetzt habe ich eine weitere Schwierigkeit, nämlich irgendwie scheint die Order-Funktion nicht zu fkt. bzw ich denke ich mache was falsch. Ich möchte den Stop/Loss für Long und für Short flexibel machen, d.h. von aussen einstellbar. Mit:extern double StopLossLongEntry=300;// weil 5 Digit -Broker entsprechen 30 Pips Abstandextern double StopLossShortEntry=300; Wenn ich die Orders aufrufe da geht nix( ) ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLossLongEntry*Point,0,"my 33",01234,Yellow); ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLossLongEntry*Point,0,"my 33",01234,Green); Ich verstehe nicht ganz warum das nicht funzt. Danke für eure Hilfe. Quote Link to comment Share on other sites More sharing options...
Quickbeam2k1 Posted November 12, 2010 Report Share Posted November 12, 2010 (edited) gibts denn eine fehlermeldung? MBT als 5 digit broker erlaubt meines wissens nach keine stop limits bei ner order. Edited November 12, 2010 by Quickbeam2k1 Quote Link to comment Share on other sites More sharing options...
sill3000 Posted November 12, 2010 Author Report Share Posted November 12, 2010 gibts denn eine fehlermeldung? MBT als 5 digit broker erlaubt meines wissens nach keine stop limits bei ner order. Eine Fehlermeldung gibt es weder beim Compilieren noch beim "Journal", das ist ja das verwirrende für mich. Quote Link to comment Share on other sites More sharing options...
WOGO Posted November 12, 2010 Report Share Posted November 12, 2010 Eine Fehlermeldung gibt es weder beim Compilieren noch beim "Journal", das ist ja das verwirrende für mich.Die Funktion OrderSend() hat 11 Parameter. Wenn ich bei dir nachzähle , dann komm ich nur auf 10.So wie es aussieht, hast du das Gültigkeitsdatum vergessen.Probiers mal so! OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLossLongEntry*Point,0,"my 33",01234,0,Yellow); ^^ Quote Link to comment Share on other sites More sharing options...
sill3000 Posted November 13, 2010 Author Report Share Posted November 13, 2010 Die Funktion OrderSend() hat 11 Parameter. Wenn ich bei dir nachzähle , dann komm ich nur auf 10.So wie es aussieht, hast du das Gültigkeitsdatum vergessen.Probiers mal so! OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLossLongEntry*Point,0,"my 33",01234,0,Yellow); ^^ Danke, werde ich gleich am Sonntag Abend ausprobieren, wenn ich wieder Daten vom Server bekommen kann. Quote Link to comment Share on other sites More sharing options...
Vola Posted November 13, 2010 Report Share Posted November 13, 2010 Danke, werde ich gleich am Sonntag Abend ausprobieren, wenn ich wieder Daten vom Server bekommen kann.Bin ja kein Progger, aber kann man das nicht mit einem Simulator auch am WE testen ?Nur so rein informativ, bin doch immer so neugierig... Quote Link to comment Share on other sites More sharing options...
sill3000 Posted December 1, 2010 Author Report Share Posted December 1, 2010 Hallo zusammen, ich habe da ein Problem mit der Close-Order Fkt. irgendwie fkt. das nicht so sehr, habe im Internet nachgesehen, aber der Fehlerteufel Hier ist mein code: OrderSelect(ticket,SELECT_BY_TICKET); if(OrderCloseTime()==0&&OrderType()==OP_SELL) { CloseLots=OrderLots(); ClosePrice=Ask; Closed=OrderClose(ticket,CloseLots,ClosePrice,UseSlippage,Red); } ticket wird bei der Order-Send () Fkt. global in einer Variablen gespeichert. UseSlippage habe ich int =20; Habe da Probleme, danke schonmal im Voraus. Quote Link to comment Share on other sites More sharing options...
WOGO Posted December 1, 2010 Report Share Posted December 1, 2010 Habe da Probleme, danke schonmal im Voraus.Welche Probleme hast'n da?Wenn es der Error 129 ist, dann mach mal NormalizeDouble(Ask,Digits)! Quote Link to comment Share on other sites More sharing options...
sill3000 Posted December 1, 2010 Author Report Share Posted December 1, 2010 Welche Probleme hast'n da?Wenn es der Error 129 ist, dann mach mal NormalizeDouble(Ask,Digits)! Eher so Quelltextprobleme, so pauschal eben. Quote Link to comment Share on other sites More sharing options...
WOGO Posted December 1, 2010 Report Share Posted December 1, 2010 Eher so Quelltextprobleme, so pauschal eben. Aha, Meinst du also, wie man die OrderClose()-Funktion generell in einen EA einbaut, oder compiliert dein Code nicht...? Quote Link to comment Share on other sites More sharing options...
sill3000 Posted December 1, 2010 Author Report Share Posted December 1, 2010 (edited) ist denn mein Code korrekt ??? order-close() fkt. generell Edited December 1, 2010 by sill3000 Quote Link to comment Share on other sites More sharing options...
WOGO Posted December 1, 2010 Report Share Posted December 1, 2010 ist denn mein Code korrekt ???Prinzipiell ja. Du solltest aber noch berücksichtigen, was du machst, wenn das Schliessen nicht gleich funktioniert.z.B. so: int Retries=5; double Price=NormalizeDouble(Ask,Digits); while(Ans==false && Retries>0) { RefreshRates(); Ans=OrderClose(Ticket,Lots,Price,Slip,Red); Retries--; } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.