Problem bei der Eingabe mehrerer Aufträge für ein Live-Konto bei einem bestimmten Broker - Seite 4

 
FinanceEngineer:

Hallo

ich weiß, es klingt seltsam. Wenn ich den zurückgegebenen Wert von OrderSend(request,result) im vorherigen Code überprüfte, bekam ich das Problem der Mehrfachbestellung. In meinem neuen Code überprüfe ich den zurückgegebenen Wert von OrderSend(request,result) nicht (aber ich habe den zurückgegebenen Wert immer noch einer Variablen zugewiesen, um Fehler bei einer neuen Version des Terminals zu vermeiden.


HalloFinanceEngineer, genau das, was ich Ihnen gesagt habe, Sie maskieren nur das wirkliche Problem, da Sie meiner Meinung nach diesen (###) bei Ihrem vorherigen Code (den 10008 zurückgegebenen Code) drucken und nicht die Unterbrechungssituation.

if(!OrderSend(request,result) || result.deal==0 )
      {
         Print("OrderSend Code: ",result.retcode); // You are printing this (###) -> 10008
         ...
 
figurelli:

Hallo Alain,

Es ist mir nicht klar, was Sie wissen müssen, da wir nur über den neuen Code von FinanceEngineer sprechen und einen Ratschlag zum Testen des Rückgabecodes von OrderSend(), der gegenüber dem ursprünglichen Code geändert wurde.

Beachten Sie, dass sowohl sein ursprünglicher Code als auch sein neuer Code keinen Test des Codes 10010 haben. Wenn es also für Sie relevant ist, warum haben Sie nicht schon im ersten Beitrag von ihm danach gefragt?

Wie auch immer, können Sie erklären, warum Sie den Code 10010-Test für eine FOK-Füllungspolitik benötigen?

Da dies nicht das erste Mal ist, dass ich sehe, wie Sie und andere Moderatoren darüber sprechen, kennen Sie einige Fälle, in denen es wirklich notwendig ist, diesen Code-Test für FOK (Fill Or Kill) Aufträge, die Sie mit uns teilen könnten?

Vielen Dank im Voraus.

Ich gehe davon aus, dass ich in diesem Forum auch Fragen stellen kann, und nicht immer nur antworten muss. Einfach so.

Wir sehen hier eine Menge Code, der den zurückgegebenen Code (MqlResult) gegen 10008 oder 10009 testet, aber kann jemand erklären, was die wirkliche Bedeutung dieser Codes ist, was der Unterschied zwischen "Order Placed" und "Request completed" ist? Es scheint, dass dies die einzigen 2 Codes sind, die keine Fehlercodes sind, richtig?

10010 ist fraglich, in der Dokumentation steht:

10008

TRADE_RETCODE_PLACED

Auftrag erteilt

10009

TRADE_RETCODE_DONE

Auftrag abgeschlossen

10010

TRADE_RETCODE_DONE_PARTIAL

Nur ein Teil der Anfrage wurde abgeschlossen

Aber was bedeutet das: "Nur ein Teil des Auftrags wurde abgeschlossen". Sie haben darauf hingewiesen, dass bei der FOK-Auffüllpolitik die Eröffnung von 0,5 Lots wahrscheinlich nicht möglich ist, wenn 1 Lot angefordert wird (zum Beispiel), aber ist das die einzige Bedeutung?

Zuvor haben Sie über den Code 10010 geschrieben:

Ich halte diesen Code nicht für zukunftssicher und sicher genug, und dies ist nur ein Beispiel für das Fehlen eines Rückgabecodes, also lesen Sie bitte noch einmal.

Welche Bedeutung kann dieser Satz haben? "Zukunftssicher" ? "Sicher genug" für ... ? "Fehlender Rückgabecode", was fehlt denn da ? (und nicht so wichtig, aber, "lesen Sie noch einmal" was ?).

 
angevoyageur:

Ich nehme an, ich kann auch in diesem Forum Fragen stellen, und muss nicht immer nur antworten. Einfach so.

Wir sehen hier eine Menge Code, der den zurückgegebenen Code (MqlResult) gegen 10008 oder 10009 testet, aber kann jemand erklären, was die wirkliche Bedeutung dieser Codes ist, was ist der Unterschied zwischen "Order Placed" und "Request completed" ? Es scheint, dass dies die einzigen 2 Codes sind, die keine Fehlercodes sind, richtig?

10010 ist fragwürdig, in der Dokumentation steht:

10008

TRADE_RETCODE_PLACED

Auftrag erteilt

10009

TRADE_RETCODE_DONE

Auftrag abgeschlossen

10010

TRADE_RETCODE_DONE_PARTIAL

Nur ein Teil der Anfrage wurde abgeschlossen

Aber was bedeutet das: "Nur ein Teil des Auftrags wurde abgeschlossen". Sie haben darauf hingewiesen, dass bei der FOK-Füllungspolitik dies wahrscheinlich nicht die Eröffnung von 0,5 Lots sein kann, wenn 1 Lot angefordert wird (zum Beispiel), aber ist das die einzige Bedeutung?

Zuvor haben Sie über den Code 10010 geschrieben:

Welche Bedeutung kann dieser Satz haben? "Zukunftssicher" ? "Sicher genug" für ... ? "Fehlender Rückgabecode", was fehlt denn da ? (und nicht so wichtig, aber, "lesen Sie noch einmal" was ?).

Wie die meisten Leute habe ich die MQL5-Programmierung gelernt, indem ich mir den Code anderer Leute angesehen habe. Seltsamerweise habe ich bisher noch keinen Code gesehen, der den 10010 Code überprüft. Es könnte sich jedoch lohnen, das zu überprüfen. Nur für den Fall der Fälle.

Wenn ich den Code 10008 allein prüfe, erhalte ich einen Auftrag mit doppelter Eingabe. Und wenn ich den Code 10009 prüfe, erhalte ich einen doppelten Auftrag. Wenn ich sowohl 10008 als auch 10009 prüfe, erhalte ich keinen doppelten Buchungsauftrag.

Aber ich bin nur neugierig, in Bezug auf die praktische Sicht, wenn Sie überprüfen 10010 Code in Ihrem EA? Wenn der Auftrag wurde wirklich teilweise abgeschlossen, dann, was wäre effizienter Weg, um mit dieser Art von Situation zu behandeln?

Ich denke wahrscheinlich, dass die meisten dieser Bestellung Senden Problem könnte mit der Überprüfung Volumen, indem Sie PositionGetDouble(POSITION_VOLUME) innerhalb unserer Schleife behandelt werden. Ich bin mir jedoch nicht sicher, ob dies effizienter ist als die Überprüfung des Codes 10008 oder 10009.

Wenn der Server des Brokers ausgelastet ist, dann ist die Wahrscheinlichkeit, nicht das richtige Volumen zu erhalten, genauso hoch wie die Wahrscheinlichkeit, nicht den 10008 oder 10009 Code zu erhalten.

Mit freundlichen Grüßen.

 
figurelli:

Hallo Alain,

Es ist mir nicht klar, was Sie wissen müssen, da wir nur über den neuen Code von FinanceEngineer sprechen und einen Ratschlag zum Testen des Rückgabecodes von OrderSend(), der gegenüber dem ursprünglichen Code geändert wurde.

Beachten Sie, dass sowohl sein ursprünglicher als auch sein neuer Code keinen Test des Codes 10010 haben. Wenn es also für Sie relevant ist, warum haben Sie nicht schon im ersten Beitrag von ihm danach gefragt?

Wie auch immer, können Sie erklären, warum Sie den Code 10010-Test für eine FOK-Füllungspolitik benötigen?

Da dies nicht das erste Mal, dass ich sehe, Sie und andere Moderatoren sprechen über, kennen Sie einige Fälle, in denen es wirklich notwendig ist, diesen Code-Test für FOK (Fill Or Kill) Aufträge, die Sie mit uns teilen könnte?

Vielen Dank im Voraus.

Nun, wenn wir im MQL5.com-Forum posten, gehen wir davon aus, dass wir mit Leuten sprechen, die verschiedene Arten von Bedürfnissen haben, während sie Expertenberater kodieren... also ist es in diesem Fall offensichtlich, dass Sie alles vereinfachen und den Benutzer bitten können, einen "einfacheren" Expertenberater zu kodieren, wenn seine Bedürfnisse nicht so "fortgeschritten" sind, wie Sie sich vielleicht vorstellen. Soweit ich weiß, gibt es jedoch mehrere Situationen, in denen man nicht mit der FOK-Füllungspolitik arbeiten kann.

Lassen Sie mich ein ganz einfaches Beispiel nennen: Nehmen wir an, Sie arbeiten mit Aktien und das gewählte Volumen beträgt 10.000 Aktien. Nehmen wir nun an, dass derselbe Expert Advisor mit "Umkehrungen" arbeitet, so dass Sie bei einem zufälligen Signal einen Auftrag mit einem Volumen von 20.000 Aktien an den Markt senden müssen, um die sogenannte "Umkehrung" auszuführen. In diesem Fall haben selbst sehr liquide Aktien (z. B. die brasilianischen Schwergewichtsaktien PETR4 oder VALE5) zu einem bestimmten Zeitpunkt kein Geld- oder Briefvolumen von 20.000 Aktien. Wie würden Sie in diesem Fall in Ihrem Expert Advisor vorgehen? Sind Sie wirklich davon überzeugt, dass die FOK-Politik in diesem Fall der beste Ansatz wäre? Oder würden Sie versuchen, diesen 10010-Code in Ihrem Expert Advisor zu berücksichtigen?

Wie gesagt, wenn Sie ständig mit kleinen Lots arbeiten, dann könnte die FOK-Füllungspolitik die beste Lösung für Sie sein. Manchmal haben die Leute aber auch"fortgeschrittenere" Bedürfnisse...

 
angevoyageur:

Ich nehme an, ich kann auch in diesem Forum Fragen stellen, und muss nicht immer nur antworten. Einfach so.

Wir sehen hier eine Menge Code, der den zurückgegebenen Code (MqlResult) mit 10008 oder 10009 vergleicht, aber kann uns jemand erklären, was die wirkliche Bedeutung dieser Codes ist, was der Unterschied zwischen "Order Placed" und "Request completed" ist? Es scheint, dass dies die einzigen 2 Codes sind, die keine Fehlercodes sind, richtig?

10010 ist fraglich, die Dokumentation sagt:

10008

TRADE_RETCODE_PLACED

Auftrag erteilt

10009

TRADE_RETCODE_DONE

Auftrag abgeschlossen

10010

TRADE_RETCODE_DONE_PARTIAL

Nur ein Teil der Anfrage wurde abgeschlossen

Aber was bedeutet das: "Nur ein Teil des Auftrags wurde abgeschlossen". Sie haben darauf hingewiesen, dass bei der FOK-Füllungspolitik dies wahrscheinlich nicht die Eröffnung von 0,5 Lots sein kann, wenn 1 Lot angefordert wird (zum Beispiel), aber ist das die einzige Bedeutung?

Zuvor haben Sie über den Code 10010 geschrieben:

Welche Bedeutung kann dieser Satz haben? "Zukunftssicher" ? "Sicher genug" für ... ? "Fehlender Rückgabecode", was fehlt denn da ? (und nicht so wichtig, aber, "lesen Sie noch einmal" was ?).

Alain, kein Problem, Sie brauchen nicht zu antworten, da Sie wahrscheinlich nie einen Fall finden werden, da dies in jedem guten OMS-Protokoll obligatorisch ist.

Auch brauchen Sie nicht zu sagen, warum Sie nicht nach dem ersten Beitrag gefragt haben, da dies wahrscheinlich off-topic ist.

Wie auch immer, beachten Sie, dass FOK ist eine alte Füllung Politik, die MQ wahrscheinlich eingeführt, um die Kommunikation mit OMS-Adresse, so finden Sie es in allen guten OMS-Protokoll, wie FIX, zum Beispiel(wie dieses Forum Thema aus dem Jahr 2009, vor MT5 existiert).

Meiner Meinung nach gibt es also keinen Grund, nach dem Rückgabecode 10010 für eine Fill- oder Kill-Order zu fragen, und das ist der Punkt, denn diese Regel ist obligatorisch, und Broker und OMS-Anbieter müssen sie respektieren.

FIX Trading Community: // Fill or Kill Order
FIX Trading Community: // Fill or Kill Order
  • General Q/A
  • www.fixtradingcommunity.org
Have doubt regarding FoK order type. In my view if order is not filled a reject message should be sent by an exchange instead of cancel. Can someone confirm this? No, rejections are to convey that the requested action was not carried out. A FoK order not being filled does not fall in this category, it is rather "works as designed". It is...
 
Malacarne:

Nun, wenn wir im MQL5.com-Forum posten, nehmen wir an, dass wir mit Leuten sprechen, die verschiedene Arten von Bedürfnissen haben, während sie Expertenberater kodieren... also ist es in diesem Fall offensichtlich, dass Sie alles vereinfachen und den Benutzer bitten können, einen "einfacheren" Expertenberater zu kodieren, wenn seine Bedürfnisse nicht so "fortgeschritten" sind, wie Sie sich vorstellen könnten. Soweit ich weiß, gibt es jedoch mehrere Situationen, in denen man nicht mit der FOK-Füllungspolitik arbeiten kann.

Lassen Sie mich ein ganz einfaches Beispiel nennen: Nehmen wir an, Sie arbeiten mit Aktien und das gewählte Volumen beträgt 10.000 Aktien. Nehmen wir nun an, dass derselbe Expert Advisor mit "Umkehrungen" arbeitet, so dass Sie bei einem zufälligen Signal einen Auftrag mit einem Volumen von 20.000 Aktien an den Markt senden müssen, um die sogenannte "Umkehrung" auszuführen. In diesem Fall haben selbst sehr liquide Aktien (z. B. die brasilianischen Schwergewichtsaktien PETR4 oder VALE5) zu einem bestimmten Zeitpunkt kein Geld- oder Briefvolumen von 20.000 Aktien. Wie würden Sie in diesem Fall in Ihrem Expert Advisor vorgehen? Sind Sie wirklich davon überzeugt, dass die FOK-Politik in diesem Fall der beste Ansatz wäre? Oder würden Sie versuchen, diesen 10010-Code in Ihrem Expert Advisor zu berücksichtigen?

Wie gesagt, wenn Sie ständig mit kleinen Lots arbeiten, dann könnte die FOK-Füllungspolitik die beste Lösung für Sie sein. Manchmal haben die Leute aber auch"fortgeschrittenere" Bedürfnisse...

Die Erklärung ist eingängig. Ich habe mir das Gleiche gedacht, denn die meisten von uns handeln wahrscheinlich weniger als 1 Million US-Dollar pro Handel. Auf einem hochliquiden Markt wie dem Devisenmarkt ist eine teilweise Erfüllung des Auftrags eine seltene Sache. Aber man soll nie nie sagen. Wir leben in einer wahrscheinlichkeitsorientierten Welt. Nichts ist sicher. Irgendein verklemmter Makler könnte 1 Lot in 0,5 Lots aufteilen. Wenn ein Makler nicht in der Lage ist, 1 Lot jederzeit zu erfüllen, werde ich mir lieber einen anderen Makler für den Handel suchen.

Mit freundlichen Grüßen.

 
Malacarne:

Nun, wenn wir im MQL5.com-Forum posten, nehmen wir an, dass wir mit Leuten sprechen, die verschiedene Arten von Bedürfnissen haben, während sie Expertenberater kodieren... also ist es in diesem Fall offensichtlich, dass Sie alles vereinfachen und den Benutzer bitten können, einen "einfacheren" Expertenberater zu kodieren, wenn seine Bedürfnisse nicht so "fortgeschritten" sind, wie Sie sich vorstellen könnten. Soweit ich weiß, gibt es jedoch mehrere Situationen, in denen man nicht mit der FOK-Füllungspolitik arbeiten kann.

Lassen Sie mich ein ganz einfaches Beispiel nennen: Nehmen wir an, Sie arbeiten mit Aktien und das gewählte Volumen beträgt 10.000 Aktien. Nehmen wir nun an, dass derselbe Expert Advisor mit "Umkehrungen" arbeitet, so dass Sie bei einem zufälligen Signal einen Auftrag mit einem Volumen von 20.000 Aktien an den Markt senden müssen, um die sogenannte "Umkehrung" auszuführen. In diesem Fall haben selbst sehr liquide Aktien (z. B. die brasilianischen Schwergewichtsaktien PETR4 oder VALE5) zu einem bestimmten Zeitpunkt kein Geld- oder Briefvolumen von 20.000 Aktien. Wie würden Sie in diesem Fall in Ihrem Expert Advisor vorgehen? Sind Sie wirklich davon überzeugt, dass die FOK-Politik in diesem Fall der beste Ansatz wäre? Oder würden Sie versuchen, diesen 10010-Code in Ihrem Expert Advisor zu berücksichtigen?

Wie gesagt, wenn Sie ständig mit kleinen Lots arbeiten, dann könnte die FOK-Füllungspolitik die beste Lösung für Sie sein. Manchmal haben die Leute aber auch"fortgeschrittenere" Bedürfnisse...

Hallo Malacarne,

Sorry, aber das ist off-topic, da wir als Moderatoren nicht die Realität (was der Benutzer wirklich postet) und die "Was wäre wenn"-Bedingungen verwechseln dürfen.

Mit anderen Worten, wenn der Benutzer etwas fragt und den Code veröffentlichen, und der Code hat die Zeile unten (wie die erste und alte), als Moderatoren unsere Denkweise muss er betrachten ist mit FOK.

request.type_filling=ORDER_FILLING_FOK;

Meinst du nicht auch? Wenn nein, muss ich wohl meine Vorstellungen von der Suche nach Codefehlern und der Problemanalyse überdenken.

Wenn Sie FOK nicht verwenden, wie in Ihren brasilianischen BM&FBovespa-Fällen, wird sich meine Denkweise ändern, und der Rückgabecode 10010 muss in Betracht gezogen werden, aber das ist absolut off-topic und vielleicht eine bessere Diskussion im portugiesischen Forum.

Wie auch immer, danke für die Mitteilung.

 
FinanceEngineer:

Die Erklärung ist eingängig. Ich habe dasselbe gedacht, denn die meisten von uns handeln wahrscheinlich weniger als 1 Million US-Dollar pro Handel. Auf einem hochliquiden Markt wie dem Devisenmarkt ist eine teilweise Erfüllung des Auftrags eine seltene Sache. Aber sagen Sie niemals nie. Wir leben in einer wahrscheinlichkeitsorientierten Welt. Nichts ist sicher. Irgendein verklemmter Makler könnte 1 Lot in 0,5 Lots aufteilen. Wenn ein Makler nicht in der Lage ist, 1 Lot jederzeit zu erfüllen, werde ich mir lieber einen anderen Makler für den Handel suchen.

Mit freundlichen Grüßen.

In meinem Beispiel ging es um ein Volumen von rund 200.000 USD... Soweit ich weiß, handeln einige von uns mit mehr als 200.000 USD pro Handel... :-)
 
FinanceEngineer:

Wie die meisten Leute habe ich die MQL5-Codierung gelernt, indem ich mir den Code anderer Leute angesehen habe. Seltsamerweise habe ich bisher noch keinen Code gesehen, der den 10010-Code überprüft. Es könnte sich jedoch lohnen, das zu überprüfen. Nur für den Fall der Fälle.


HalloFinanceEngineer, Sie sehen nicht, weil wahrscheinlich diese Fälle sind in Bezug aufORDER_FILLING_FOK Füllung Politik, wie Sie auch verwenden, so, meiner Meinung nach, dies ist nicht notwendig, wie in meinen anderen Beiträgen hier erklärt.
 
figurelli:

Hallo Malacarne,

Sorry, aber das ist off-topic, da wir als Moderatoren nicht die Realität (was der Benutzer wirklich postet) und die "Was wäre wenn"-Bedingungen verwechseln dürfen.

Mit anderen Worten, wenn der Benutzer etwas fragt und den Code veröffentlicht, und der Code hat die Zeile unten (wie die erste und alte), als Moderatoren unsere Denkweise muss berücksichtigen, dass er FOK verwendet.

Glauben Sie das nicht auch? Wenn nein, muss ich wohl meine Vorstellungen von der Suche nach Codefehlern und der Problemanalyse überdenken.

Wenn Sie kein FOK verwenden, wie in Ihren brasilianischen BM&FBovespa-Fällen, wird sich meine Denkweise ändern, und der Rückgabecode 10010 muss in Betracht gezogen werden, aber das ist absolut off-topic und vielleicht eine bessere Diskussion im portugiesischen Forum.

Wie auch immer, danke für die Mitteilung.

Vielen Dank für Ihre Meinung... Es ist nicht meine Absicht, "Verwirrung" in die Köpfe der Leute zu bringen.

Ich denke jedoch nicht, dass es off-topic ist, denn wenn Sie nicht nach dem 10010-Code suchen, könnte Ihr Expert Advisor diese Möglichkeit umgehen und mehrere Orders senden (das hat doch mit dem Thema zu tun, oder?)...

Das ist es, was wir seit den letzten beiden Beiträgen zu diesem Thema "versuchen" zu alarmieren ...

Grund der Beschwerde: