Sunday 16 July 2017

Close Order Forex Frieden

Forex4You Überprüfung Besuch site Forex4you scam TP Gewinn whitout irgendwelche Richtlinien oder reasoncam Vermittler Forex4you SCAM mein Geld, schließen sie Ordnung nicht an TP-Punkt, sie ändern Ihren Stopverlust. Sie tun dies bis Margin-Aufruf. Sie antworten ist Ihre TP berührt, sondern weil Preisänderung nach, dass wir nicht schließen können Ihre Bestellung. Sie können ihre Antwort in meiner Behandlung sehen. Amasing Antwort. Sie haben keine Regeln für diese Antwort, dies sagen, weil forex4you Betrug meine große Menge an money. as Sie in ihrer Regel 4.10.2. Oder Kaufaufträge TakeProfit wird aktiviert, wenn Bid-Preis mehr als oder gleich dem Preis der Ausführung ist, aber bis jetzt sie sacm meinen Gewinn zahlen mich nicht. Seien Sie vorsichtig mit ihnen, wenn Ihr TP-Punkt Hit sie nicht zahlen Sie. . Forex4you bietet eine vollständig transparente Ausführung, indem Kunden detaillierte Informationen zur Verfügung stellen, einschließlich - Auftragsauslöserzeit, Ausführung time time Und ticken Sie durch Tick History. Aufträge durchschnittliche Ausführungszeit wird auf companys Web site veröffentlicht. Falls ein gültiger Preis, der zur Ausführung der Bestellung passt, für einen Zeitraum verfügbar ist, der geringer ist als die Ausführungszeit, wird die Bestellung aufgrund eines Preisablaufs abgelehnt. Fühlen Sie sich bitte frei, mit einer ausführlichen Antwort einschließlich Häckchen durch Häckchenhistorie und genaue Auftragsauslöserzeit auf dem Link unten bekannt zu machen: forexpeacearmycommunitythreadsforex4you-broker-eglobal-forex-com-big-problem-oder-sc.47062page-2post-257578 Sie laden auf Riesige Gebühren für den Rücktritt, ist diese Bedingung nicht für einen guten Makler. Schlechteste Erfahrung Antwort von Viktor Smirnov eingereicht am 25. April 2016: Sehr geehrte Kundin, sehr geehrter Kunde, dass Sie mit den Kautions - und Abhebungskommissionen Änderungen unzufrieden gewesen sind, aber bitte beachten Sie, dass wir Maklerunternehmen sind und unser Hauptziel ist es, Tech-Lösungen im Zusammenhang mit Handel, Qualitätsentwicklung der Dienstleistungen und Einführung der neuen Technologien. Bitte beachten Sie, dass unsere Gesellschaft keine Gebühren von Einzahlungs - oder Rückzahlungsbetrag berechnet. Alle Gebühren werden von den Zahlungssystemen selbst berechnet. Dennoch entschädigen wir 1.5 der Depotprovisionen für alle Zahlungssysteme. Ausschlüsse sind Skrill und Neteller, Provisionen für die Einzahlung über diese Systeme werden vollständig durch unser Unternehmen entschädigt. Sie können Rücknahme - und Ablagerungsprovisionen auf unserer Website forex4youenaccountwithdrawal-and-deposit-conditions finden. Fühlen Sie bitte sich frei, mit uns durch irgendwelche zusätzlichen Fragen in Verbindung zu treten. Mit freundlichen Grüßen, Forex4you London, Großbritannien Nicht schlecht. Die Plattform war schwer zu verstehen, auf den ersten, aber bin ok mit ihm jetzt. Ich bevorzuge das Dollar-Konto, da meine Pip-Wert ist größer mit ihm. Das Cent-Konto sieht aus wie childs play. Dennoch ist dies ein anständiger Makler. Ich begann den Handel mit forex4you vor einem Monat. Ich dachte, es ist ein sehr guter Makler so weit. Was meine Meinung geändert hat, war die Verbreitung auf EURCHF kurz vor Börsenschluss. Am Freitag, den 18. Dezember 2015 waren es 56 Pips. Das ist verrückt und fast blies mein Konto. NDD, ok. Max. 10 Zacken, ok. Sehr geehrte Daniel, Eine signifikante Ausweitung einer variablen Marktspanne kann in der Regel auftreten, während niedriger Liquidität Zeitraum, wenn der Unterschied zwischen Angebot und Nachfrage sinkt. Normalerweise kann es nachts kommen. Insbesondere 23:00 Uhr (MEZ) ist eine Zeit, in der die Banken Berechnungen des Rollover anwenden. Während dieser Zeit sinkt die Zahl der Marktteilnehmer sowie die Marktliquidität. Diese Art von Situation verursacht Verbreitung breiter. Forex4you ist einer der besten Broker. Abhebungen sind schnell. Aber die credcard Einzahlung Sorexpay Gateway ist in einigen Banken in Indien blockiert. Wenn die add allied Brieftasche oder Paypal, wird es leicht sein, Geld für Händler wie mich aus Indien einzuzahlen 2014-02-23 1Star Forex4you alle Dinge wie Einzahlung, Rücknahme, IB Kommission etc. sind gut. In NDD-Konten werden die Aufträge im notierten Preis geöffnet. Aber im forex4you NDD Konto werden alle Aufträge mit re-Anführungszeichen geöffnet. Wenn Forex4you wird die Requotes zu korrigieren, wird es einer der besten Broker in Zukunft sein. Werden Sie das Problem lösen Forex4you Hinzugefügt von Juris Leznins on 2014-02-28 Content: Sehr geehrte viswanathan, bietet Forex4you mehrere Account-Typen. DD-Konten haben eine sofortige Auftragsausführung. In dieser Art der Ausführung ist es möglich, Requests zu erhalten, aber wie unsere Statistiken zeigt die durchschnittliche Anzahl der Requotes, die unsere Kunden bekommen ist extrem niedrig. NDD-Konten haben Marktausführung, wo Aufträge sofort ausgeführt werden, ohne lange Warteschlangen und Requotes. Es ist möglich, Schlupf oder Preisverbesserung zu bekommen. Alle Kontotypen und Bedingungen finden Sie online auf unserer Website finden Sie hier forex4youenaccountconditions Mit freundlichen Grüßen, Forex4you Noman Khalid Abbasi sehr sehr gut und Cooperative Broker. Ich gebe ihm 100 von 100 Punkten. Meine kontonummer ist 3030702 E-global cent 2 alles ist in ordnung. Schnelle Abhebung besten Kundensupport etc. und ich habe auch einen Vorschlag, wenn Sie ur Verbreitung besser machen dann werden Sie Nr. 1 im Forex-Markt sein. Bleib gesegnet. ) Get Widget-Code Forex Bewertungen und Bewertungen Forex Performance-Tests Forex Trader Court Forex Trading Bildung und Community-Foren Forex Kalender und Tools kopieren Copyright ForexPeaceArmy. Alle Rechte vorbehalten. Forex Peace Army, ForexPeaceArmy, FPA und das FPA-Schild-Logo sind alle Marken der Forex Peace Army. Alle Rechte unter US-amerikanischem und internationalem Recht vorbehalten. Schließungs - und Löschbestellungen Handelsaufträge zum Abschluss von Marktaufträgen werden mit der Funktion OrderClose () gebildet. Function OrderClose () Es ist eine Funktion zum Schließen einer Marktordnung. Die Funktion gibt TRUE zurück, wenn der Trade erfolgreich ausgeführt wird. Er gibt FALSE zurück, wenn der Handel fehlschlägt. Ticket - die eindeutige Nummer des Auftrags. - die Menge der zu schließenden Partien. Es ist erlaubt, einen Wert anzugeben, der kleiner ist als die verfügbare Menge der Partien in der Bestellung. In diesem Fall wird die Bestellung, wenn die Trade-Anfrage erfolgreich ausgeführt wird, teilweise geschlossen. Preis - enger Preis. Dieser Parameter wird gemäß den Anforderungen und Einschränkungen festgelegt, die für die Durchführung von Trades akzeptiert werden (siehe Order Characteristics and Rules for Making Trades und Anhang 3). Liegt kein Preis für den Abschluss der Marktordnung im Preisverlauf vor oder ist er veraltet, so wird diese Handelsanfrage abgelehnt, wenn der Preis veraltet ist, aber im Preisverlauf und gleichzeitig auch in seiner Abweichung festgestellt wird Aus den aktuellen Preisspannen innerhalb des Wertes des Schlupfes, wird die Handelsanfrage vom Client-Terminal akzeptiert und an den Handelsserver gesendet. Schlupf - die maximal zulässige Abweichung des angeforderten Preises für den Abschluss des Auftrags vom Marktpreis (in Punkten). Farbe - die Farbe des schließenden Pfeils in einem Diagramm. Wenn dieser Parameter nicht verfügbar ist oder sein Wert gleich dem von CLRNONE ist, wird der Pfeil im Diagramm nicht angezeigt. Wenn das Programm Informationen über den Typ des zu schließenden Auftrags, über seine eindeutige Nummer sowie über die Menge der zu schließenden Lose enthält, ist es sehr einfach, den Auftrag zu schließen. Dazu sollten Sie im Programmcode den OrderClose () - Funktionsaufruf mit voreingestellten Parametern verwenden. Zum Beispiel, wenn die eindeutige Nummer der Bestellung kaufen 12345 ist und wenn Sie 0,5 Los schließen möchten, kann der Aufruf der Funktion, die den Auftrag schließt, wie folgt aussehen: Um zu entscheiden, welche Aufträge und in welcher Reihenfolge geschlossen werden sollen, Müssen Sie die Daten aller Aufträge in der aktuellen Situation geöffnet haben. In MQL4, gibt es eine Reihe von Funktionen, die verwendet werden können, um verschiedene Daten, die eine beliebige Reihenfolge zu charakterisieren. Beispielsweise gibt die Funktion OrderOpenPrice () den Wert des offenen Orderpreises (oder des angeforderten Preises für ausstehende Bestellungen) zurück, die Funktion OrderLots () gibt die Menge der Chargen zurück, die Funktion OrderType () gibt den Auftragstyp, Etc. Alle Funktionen, die die Werte eines Auftragsmerkmalaufrufs bei ihrer Ausführung an den Auftrag zurückgeben, der von der Funktion OrderSelect () ausgewählt wurde. Funktion OrderSelect () Um die Parameter eines beliebigen Ihrer Aufträge (egal Markt - oder ausstehend, geschlossen oder gelöscht) zu erhalten, sollten Sie es zuerst mit der Funktion OrderSelect () auswählen. OrderSelect ist eine Funktion, die einen Auftrag für weitere Vorgänge auswählt. Er gibt TRUE zurück, wenn die Funktion erfolgreich ausgeführt wird. Ansonsten gibt es FALSE zurück. Index - die Auftragsposition oder - nummer, hängt vom zweiten Parameter ab. Select - das Flag der Auswahlmethode. Parameterauswahl kann einen von zwei möglichen Werten annehmen: SELECTBYPOS - im Parameterindex wird die Auftragsnummer in der Liste zurückgegeben (die Nummerierung beginnt bei 0), SELECTBYTICKET - im Parameterindex die Ticketnummer (die eindeutige Bestellnummer) ist zurückgekommen. Pool - die Datenquelle zur Auswahl. Der Parameterpool wird verwendet, wenn der Parameter select gleich dem Wert von SELECTBYPOS ist. Der Parameterpool wird ignoriert, wenn der Auftrag über die Ticketnummer (SELECTBYTICKET) ausgewählt wird. Der Parameterpool kann zwei mögliche Werte annehmen: MODETRADES (voreingestellt) - der Auftrag wird in offenen und ausstehenden Aufträgen selektiert, dh unter den im Register "Tradequot" im "Terminalquot" - Fenster MODEHISTORY angezeigten Aufträgen wird der Auftrag geschlossen und gelöscht Aufträge, dh unter den Aufträgen, die im Register "Kontingenthistorienquot" im Fenster "Terminalquot" angezeigt werden. In diesem Fall ist die vom Benutzer für die Anzeige von geschlossenen und gelöschten Ordnungen angegebene Historienschleife wichtig. Um die Methode der Verwendung von Handelsfunktionen zum Schließen von Marktaufträgen zu demonstrieren, können wir ein Problem lösen: Problem 28. Schreiben Sie ein Skript, das eine der auf dem Konto verfügbaren Marktaufträge schließt. Die Skriptausführung muss zum Schließen der Reihenfolge führen, die dem Ort des Skripts am nächsten liegt, der dem Symbolfenster mit der Maus beigefügt ist. Angenommen, es sind drei Marktaufträge im Terminal für das Symbol EurUsd und eine offene Order für UsdChf geöffnet: 90. Anzeigen mehrerer Aufträge für verschiedene Symbole im Terminalfenster. Wir sollten ein solches Skript schreiben, das mit der Maus aus dem Fenster "Navigatorquot" in das Symbolfenster gezogen werden kann, was zum Schließen einer der Marktordnungen führen sollte, nämlich der Reihenfolge, die dem Cursor am nächsten ist (ab dem Zeitpunkt, zu dem der Benutzer Die Maustaste freigegeben). In Fig. 91, können Sie die Alternative sehen, bei der der Cursor am nächsten kommt. Verkaufen 4372889. Es ist diese Reihenfolge, die als Ergebnis der Skriptausführung geschlossen werden muss. Um das Problem zu lösen, sollten wir (unter Verwendung der Funktion OrderSymbol ()) unter allen Aufträgen nur diejenigen auswählen, die für das Symbol geöffnet sind, in dem Fenster das Skript gelöscht wird. Dann sollten wir die offenen Preise aller ausgewählten Marktordnungen finden (d. H. Die Funktion OrderOpenPrice () aufeinanderfolgend für jede Bestellung ausführen). Wir wissen, die Bestellung offenen Preisen, können wir leicht wählen Sie eine von ihnen, die mit der Aussage des Problems entspricht. Um die richtigen Werte von Parametern in der Funktion OrderClose () festzulegen, müssen wir auch einige andere Daten über die gewählte Reihenfolge kennen: die Menge der Chargen (bestimmt durch die Funktion OrderLots ()) und die eindeutige Bestellnummer Funktion OrderTicket ()). Außerdem müssen wir, um einen oder einen anderen Preis eines Zweisatzes zu finden, den Typ des Auftrags kennen (bestimmt durch die Funktion OrderType ()). Ermöglicht, welche Parameter in der Funktion OrderSelect () angegeben werden müssen, um die obigen Order-Merkmale zu erhalten. Zunächst ist es notwendig, die Reihenfolge Auswahl Methode zu wählen. In unserem Problem wird die Auswahlmethode durch die Problemanweisung selbst bestimmt: Die Daten über Auftragsnummern sollen im Programm ab dem Zeitpunkt des Startes des Skripts zur Ausführung nicht verfügbar sein, dh das Programm wird als einen Block enthalten, der wäre Bestimmen. Dies bedeutet, dass wir alle Aufträge nacheinander in der Tabelle "Terminalquot" (Abb. 64.1) überprüfen müssen, so dass wir den Parameter SELECTBYPOS verwenden müssen. Die Quelle für die Auswahl der Aufträge ist ebenso offensichtlich. Um das Problem zu lösen, besteht keine Notwendigkeit, geschlossene und gelöschte Aufträge zu analysieren. In diesem Fall interessieren wir uns nur für Marktaufträge, deshalb suchen wir sie mit dem Parameter MODETRADES in der Funktion OrderSelect (). Für den Parameterpool wird der Vorgabewert von MODETRADES im Funktionsheader angegeben, so dass er übersprungen werden kann. Im Folgenden wird gezeigt, wie ein Block für die Analyse von Markt - und ausstehenden Aufträgen aufgebaut werden kann: In der Überschrift des Zyklusoperators wird der Anfangswert als i1 angegeben, während die Bedingung zum Beenden des Zyklus der Ausdruck iltOrdersTotal () ist. Function OrdersTotal () gibt den Gesamtbetrag von marktüblichen und ausstehenden Aufträgen zurück, d. h. die Aufträge, die im Register "Tradequot" im Fenster "Terminalquot" angezeigt werden. Deshalb gibt es so viele Iterationen im Zyklus, wie viele Aufträge am Handel teilnehmen. Bei jeder Iteration wird die Bedingung im Operator berechnet, wenn die Funktion OrderSelect (i-1, SELECTBYPOS) ausgeführt wird. Hier ist die folgende wichtige Angelegenheit zu beachten: Die Nummerierung der Aufträge in der Marktliste und anstehenden Aufträgen beginnt mit Null. Dies bedeutet, daß die erste Ordnung in der Liste (Fig. 90) in der Nullposition angeordnet ist, die Position der zweiten Ordnung mit 1, die dritte Zahl mit 2, usw. nummeriert ist Rufen Sie OrderSelect () auf, der Indexwert wird als i-1 angegeben. Somit ist dieser Index für alle ausgewählten Aufträge immer 1 kleiner als der Wert der Variablen i (der mit der Nummer der nächsten Iteration übereinstimmt). Die Funktion OrderSelect () gibt true zurück, wenn der Auftrag erfolgreich ausgewählt wurde. Das bedeutet, dass eine Auftragsauswahl fehlschlagen kann. Dies kann passieren, wenn sich die Menge der Aufträge während der Verarbeitung geändert hat. Bei der Programmierung in MQL4 sollten Sie sich gut daran erinnern, dass ein Anwendungsprogramm im Echtzeitmodus arbeitet und dass während der Verarbeitung einiger Parameter die Werte dieser Parameter geändert werden können. So kann sich zum Beispiel die Menge der Marktaufträge sowohl durch den Eröffnungsabschluss von Aufträgen als auch durch die Modifizierung der ausstehenden Aufträge in den Markt ändern. Deshalb sollten Sie bei der Programmierung der Auftragsbearbeitung folgende Regelungen beibehalten: Aufträge müssen so schnell wie möglich bearbeitet werden, während der für diese Verarbeitung verantwortliche Programmbaustein möglichst keine redundanten Programmzeilen enthält. Gemäß dem in Fig. 64.3 in dem Header des Operators, wenn das Programm analysiert, ob die nächste Bestellung in der Auftragsliste zum Zeitpunkt der Auswahl verfügbar ist. Wenn die nächste Bestellung verfügbar ist, wird die Steuerung in den Körper des Bedieners übergeben, wenn die Auftragsparameter verarbeitet werden sollen. Es ist zu beachten, dass eine solche Konstruktion bei möglichen Konflikten nicht viel hilft, da die Reihenfolge bei der Verarbeitung ihrer Parameter verloren gehen (geschlossen) werden kann. Diese Lösung erweist sich jedoch als am effizientesten, wenn der Auftrag ab dem Zeitpunkt seiner Auswahl nicht mehr verfügbar ist. Im Körper des Operators, wenn die Parameter der ausgewählten Ordnung analysiert werden. Wenn die Funktionen OrderOpenPrice (), OrderTicket (), OrderType () und andere der Art ausgeführt werden, gibt jeder von ihnen den Wert eines bestimmten Merkmals der Reihenfolge zurück, die als Ergebnis der Ausführung der Funktion OrderSelect () ausgewählt wurde. Alle oben genannten Begründungen wurden in dem Programm verwendet, das Problem 28 lösen würde. Ein Beispiel für ein einfaches Skript, das zum Schließen einer Marktordnung bestimmt ist, deren offener Preis näher am Ort des Skript-Anhangs liegt als die offenen Preise anderer Bestellungen (Closeorder. mq4). Der gesamte Code des Programms closeorder. mq4 ist in der speziellen Funktion start () konzentriert. In Block 1-2 werden einige Variablen initialisiert. Die Variable Dist ist der Abstand von dem Ort, an dem das Skript auf die nächstgelegene Reihenfolge abgesunken ist. Die Variable RealOrder ist ein Flag, das die Verfügbarkeit mindestens einer Marktordnung im Client-Terminal anzeigt (nichtnegativer Wert). Die Variable WinPrice ist der Preis, zu dem der Benutzer das Skript an das Symbolfenster angehängt hat. In Block 2-6 wird der Auftrag analysiert: Einer der bestellten Aufträge ist geschlossen. Block 6-10 ist der Block des Schließens der Reihenfolge und der Verarbeitung der Fehler, die während der Durchführung des Handels auftreten können. Ab dem Moment, in dem der Benutzer das Skript an das Symbolfenster anhängt, werden die Werte der Variablen in Block 1-2 berechnet, wobei die Variable WinPrice den Wert des Preises übernimmt, auf dessen Ebene der Benutzer das Skript angehängt hat. Es ist jetzt notwendig, die Ordnung (mit ihren Merkmalen) zu finden, die am nächsten zu dieser Stelle ist. Im Zyklus für (Block 2-6) werden die Aufträge durchsucht. In Block 2-3 prüft das Programm, ob es in der nächsten Zeile der QuoteTerminalquot einen Auftrag gibt. Wenn ein Auftrag gefunden wird, wird die Kontrolle an den Körper des Betreibers weitergegeben, wenn er die Merkmale dieses Auftrages erhält und analysiert. In Block 3-4 werden die Aufträge für falsche Symbole (nicht das Symbol, für das das Programm ausgeführt wird) ausgefiltert. In unserem Fall ist es Bestellung 4372930 für UsdChf geöffnet. Funktion OrderSymbol () gibt den Symbolnamen der ausgewählten Reihenfolge zurück. Wenn dieser Symbolname nicht derjenige ist, für den das Programm ausgeführt wird, wird die aktuelle Iteration unterbrochen, wodurch verhindert wird, dass die Bestellung für ein anderes Symbol verarbeitet wird. Wenn der zu analysierende Auftrag für das Quotierungssymbol geöffnet wird, wird eine weitere Überprüfung durchgeführt. Die Auftragsart wird über die Funktion OrderType () ermittelt (siehe Handelsarten). Wenn die Auftragsart mehr als 1 beträgt, bedeutet dies, dass die Bestellung noch aussteht. In diesem Fall wird auch die aktuelle Iteration unterbrochen, weil wir an anstehenden Aufträgen nicht interessiert sind. In unserem Beispiel haben wir eine solche Ordnung, aber es ist für ein anderes Symbol geöffnet, so dass es bereits gefiltert wurde. Alle Aufträge, die Block 3-4 erfolgreich durchführen, sind marktfähige. Der Block 4-5 dient dazu, nur einen Auftrag aller Marktaufträge auszuwählen, die den vorhergehenden Block erfolgreich bestanden haben. Diese Reihenfolge muss am nächsten zum vordefinierten Preis stehen (der Wert der Variablen WinPrice). Der Benutzer ist nicht verpflichtet, quotpinpointquot der Auftragslinie mit seinem Mauszeiger. Die Reihenfolge, die dem Cursor zum Zeitpunkt des Startens des Skripts zur Ausführung näher liegt als alle anderen Befehle, wird ausgewählt. Der offene Preis der bearbeiteten Bestellung wird über die Funktion OrderOpenPrice () ermittelt. Wenn der Absolutwert des Abstands zwischen dem Preis der laufenden Bestellung und dem Quotientenpreisquot kleiner als der gleiche Abstand für die vorhergehende Reihenfolge ist, wird die aktuelle Reihenfolge ausgewählt (der absolute Wert der Distanz ist zum Ausschluss des Einflusses von Die Cursorposition - unter oder über der Auftragslinie). In diesem Fall wird diese Reihenfolge bei der laufenden Iteration des Zyklus als Vorläufer zum Schließen gespeichert. Für diese Bestellung werden die Ticketnummer (die individuelle Bestellnummer) und die Menge der Lose am Ende des Blocks 4-5 berechnet. In diesem Beispiel (Abb. 90) ist die Gesamtmenge der Aufträge vier (drei Markt-und eine ausstehende Bestellung), so dass es vier Iterationen im Zyklus gibt, die dazu führen, dass alle notwendigen Daten zum Schließen von einem gefunden werden Ausgewählt. Dann wird die Steuerung in dem Ausführungsprogramm an den Zyklusoperator übergeben (Block 6-10). In Block 6-7 werden die gefundenen Marktaufträge auf Verfügbarkeit überprüft. Wenn im Block 2-4 keine Marktaufträge gefunden werden (es ist durchaus möglich, im allgemeinen), bleibt der Wert des Flags RealOrder gleich -1, was bedeutet, dass die Marktanforderungen nicht verfügbar sind. Wenn die Prüfung in Block 6-7 keine Marktaufträge erkennt, wird die Ausführung des Zyklus während des Vorgangs unterbrochen, das Programm beendet dann seine Operationen. Wenn der Wert der Variablen RealOrder gleich 0 oder 1 ist, bedeutet dies, dass ein Markt für den Abschluss vordefiniert ist und geschlossen werden muss. In Block 7-8 wird entsprechend der Auftragsart der Schlusskurs der Bestellung berechnet. Es ist der Wert von Bid for Buy-Aufträgen und der Wert von Ask for Sell-Aufträgen (siehe Anforderungen und Einschränkungen in Making Trades). In Block 7-8 werden die Werte der Hilfsvariablen Text berechnet. Die Handelsaufforderung zum Abschluss des Auftrags wird in der Funktion OrderClose () in der folgenden Zeile gebildet: Trade-Funktion OrderClose () gibt true zurück, wenn der Trade erfolgreich durchgeführt wird, andernfalls false. Wenn die Handelsanforderung erfolgreich auf dem Server ausgeführt wird, wird der Variable Ans (Antwort) der Wert true zugewiesen. In diesem Fall wird, wenn der Block 8-9 ausgeführt wird, das Programm den Benutzer über einen erfolgreichen Befehlsabschluß informieren. Danach wird die Ausführung des Zyklus-Operators gestoppt, und das Programm beendet seine Operationen. Andernfalls wird die Steuerung an Block 9-10 weitergegeben, um den vom Client-Terminal an das Programm zurückgegebenen Fehler zu analysieren. Am Anfang von Block 9-10 wird der Fehlercode berechnet. Danach werden entsprechend dem Fehlercode entweder Programmausgang oder wiederholter Vorgang ausgeführt. Bei dem ersten Operatorschalter verarbeitet das Programm die Fehler, die implizit überwindbar sind, d. h. die Fehler können als vorübergehende Schwierigkeiten bei der Durchführung des Handels angesehen werden. Alle notwendigen Aktionen werden für jeden dieser Fehler ausgeführt, dann wird die aktuelle Iteration gestoppt und die Ausführung des Zyklus während des Neustarts. (Bitte beachten Sie, dass wir in diesem Beispiel für die Fehlerbehandlung des Operatorschalters, der als Folge der Benutzung des Bedieners verlassen wird, verwendet werden, der als solcher nicht für das Übergeben der Steuerung außerhalb des Bedienschalters vorgesehen ist Nur weil der Operatorschalter ein Teil des Inhalts des externen Zyklus-Operators ist, während der Operator die laufende Iteration unterbricht, indem er die Steuerung an den Header des Operators während weiterleitet). Wird der Fehlercode nicht im ersten Operator verarbeitet, gilt dieser Fehler als kritisch. In diesem Fall wird die Steuerung an den zweiten Operatorschalter übergeben, der ausgeführt wird, um dem Benutzer mitzuteilen, dass ein oder ein anderer kritischer Fehler aufgetreten ist. Ferner verwendet das Programm den Operatorbruch, der die Ausführung des Zyklus unterbricht, während. Verlassen des Zyklus, während aus irgendeinem Grund das Übergeben der Steuerung zu Block 9-10 führt, der eine Nachricht über das Ende der Programmoperationen erzeugt. Die Operatorrückkehr stoppt die Ausführung der Sonderfunktion start (), und das Programm beendet seine Operationen. Das praktische Ergebnis, das nach dem Start des Skripts unter den angegebenen Bedingungen (siehe Fig. 90 und 91) erhalten wurde, ist unten gezeigt. Der Handel wurde erfolgreich auf dem Server durchgeführt. Durch das Schließen eines Auftrags sind zwei Aufträge im Fenster von EurUsd hinterlegt. Der Auftragsabschluss wurde auch im Fenster "Terminalquot" angezeigt: Abb. 94. Nach Ausführung des Skriptes closorder. mq4. Zwei Marktaufträge werden im Fenster "Terminalquot" angezeigt. Später werden die beiden anderen Aufträge auch mit diesem Skript geschlossen. Löschen ausstehender Aufträge Handelsaufträge zum Löschen von ausstehenden Aufträgen werden mit der Funktion OrderDelete () erstellt. Function OrderDelete () Die Funktion löscht den zuvor platzierten ausstehenden Auftrag. Er gibt TRUE zurück, wenn es erfolgreich gearbeitet hat. Ansonsten gibt es FALSE zurück. Ticket - die eindeutige Nummer eines Auftrags. Arrowcolor - die Farbe eines Pfeils in einem Diagramm. Wenn dieser Parameter nicht verfügbar ist oder sein Wert gleich dem von CLRNONE ist, wird der Pfeil im Diagramm nicht angezeigt. Es ist leicht zu sehen, dass die Funktion OrderDelete () keine Spezifikation des Volumens und des Schlusskurses des zu löschenden Auftrags enthält. Der Auftrag wird unabhängig von den Marktpreisen gelöscht. Auch die teilweise Streichung einer Bestellung ist unmöglich. Sie können die Menge der Lose in einer ausstehenden Reihenfolge in zwei Stufen verringern: Löschen Sie den vorhandenen Auftrag und legen Sie einen neuen ausstehenden Auftrag mit der verringerten (beliebigen) Menge der Lose. Der Algorithmus des Programms, das einen ausstehenden Auftrag löscht, kann ziemlich identisch mit dem des Marktauftrags schließen. Ein leichter Unterschied besteht darin, dass kein enger Preis erforderlich ist, um einen ausstehenden Auftrag zu löschen, so dass das folgende Programm nicht den Block enthält, der die Marktpreise aktualisiert. Ein Beispiel für ein einfaches Skript zum Löschen eines ausstehenden Auftrags, dessen angeforderter Preis näher am Ort des Skript-Anhangs liegt als die Preise anderer ausstehender Aufträge (deleteorder. mq4). Der Fehlerverarbeitungsblock wurde ebenfalls leicht geändert. Sie sollten die Möglichkeit von Fehlern im Zusammenhang mit Preisänderungen (Fehler 135 und 136) beim Schließen von Marktaufträgen berücksichtigen, aber solche Fehler treten nicht beim Löschen ausstehender Aufträge auf. Aus demselben Grund wird die Funktion Refresh - rates () im Programm nicht verwendet. Die Verarbeitung solcher Fehler wie Fehler 4 und Fehler 137 (siehe Fehlercodes) kann ein bisschen schwierig sein. Zum Beispiel, wenn Fehler 137 erhalten, kann das Programm berücksichtigen, dass quotbroker busyquot ist. Allerdings stellt sich eine natürliche Frage: Wann ist der Broker frei, für den Benutzer, seinen Handel fortzusetzen Error 137 keine solche Informationen. Aus diesem Grund muss sich der Programmierer selbst entscheiden, wie das Programm, das solche Fehler richtig verarbeitet, zu erstellen ist. In einem einfachen Fall kann die Anfrage nach einer gewissen Pause (in unserem Beispiel in 3 Sekunden) wiederholt werden. Andererseits kann der Server nach einer Reihe von nicht erfolgreichen Versuchen, einen Auftrag zu löschen (oder in einem gemeinsamen Fall zu schließen, zu öffnen oder zu modifizieren), einen Fehler 141 zurückgeben - zu viele Anfragen. Dieser Fehler führt dazu, dass das Skript deleteorder. mq4 nicht mehr funktioniert. Im Allgemeinen sind solche Konflikte nicht die Fragen der Programmierung. In solchen Fällen sollten Sie sich an den Kundendienst wenden und die Gründe für die Ablehnung zur Ausführung der Handelsanfrage klären. Der Fehler 145 kann auftreten, wenn ein ausstehender Auftrag (in einem üblichen Fall ein Stoppauftrag einer Marktorder) dem Marktpreis zu nahe liegt. Dieser Fehler tritt nicht auf, wenn Sie ständig auf einem ruhigen Markt handeln. Wenn sich die Preise schnell ändern, kann Ihr Broker entscheiden, dass eine bestimmte Bestellung bald eröffnet wird, so dass der Broker es nicht zulässt, sie zu löschen oder zu ändern. Dieser Fehler wird im Skript als kritisch betrachtet und führt zur Beendigung des Programms (es macht keinen Sinn, den Broker mit Handelsanfragen zu belästigen). Wenn sich der Preis nach einer Weile ändert, können Sie versuchen, den Auftrag zu löschen, indem Sie das Skript zur Ausführung erneut starten. Im allgemeinen kann das Auftreten des Fehlers 145 verhindert werden, wenn man die vom Geberzentrum festgelegte Einfrierstufe berücksichtigt. Der Gefrierpegel ist ein Wert, der das Preisband bestimmt, innerhalb dessen der Auftrag als eingefroren betrachtet wird, d. h. es kann verboten sein, ihn zu löschen. Wenn zum Beispiel eine ausstehende Bestellung bei 1,2500 liegt und die Einfrierstufe gleich 10 Punkte ist, bedeutet dies, dass, wenn der Preis zwischen 1.2490 und 1.2510 liegt, die Streichung der anhängigen Bestellung verboten ist. Sie können den Einfrierpegelwert erhalten, der die Funktion MarketInfo () mit der Anforderungskennung von MODEFREEZELEVEL ausgeführt hat. Closing Opposite Orders Gegenüberstellung (Counter) Order ist eine Marktordnung, die in die Richtung entgegengesetzt der Richtung einer anderen Marktordnung geöffnet wird, die für dasselbe Symbol geöffnet ist. Wenn Sie zwei entgegengesetzte Ordnungen für ein bestimmtes Symbol haben, können Sie sie nacheinander mit der Funktion OrderCloseBy () schließen. Wenn Sie einen solchen Vorgang durchführen, wird ein Spread gespeichert. Function OrderCloseBy () Die Funktion schließt eine Marktordnung durch eine andere Marktordnung, die für das gleiche Symbol in die entgegengesetzte Richtung geöffnet ist. Die Funktion gibt TRUE zurück, wenn sie erfolgreich abgeschlossen wurde, und FALSE, wenn nicht. Ticket - die eindeutige Nummer der zu schließenden Bestellung. Gegenteil - die eindeutige Zahl der umgekehrten Reihenfolge. Farbe - die Farbe des schließenden Pfeils in einem Diagramm. Wenn dieser Parameter nicht verfügbar ist oder sein Wert gleich dem von CLRNONE ist, wird der Pfeil im Diagramm nicht angezeigt. Es ist nicht notwendig, dass entgegengesetzte Ordnungen das gleiche Volumen haben. Wenn Sie einen Auftrag durch eine entgegengesetzte Reihenfolge schließen, wird der Handel in dem Volumen des Auftrags ausgeführt, der das kleinere Volumen hat. Betrachten wir ein Beispiel. Es sollen zwei Marktaufträge desselben Volumens im Client-Terminal, ein Buy und ein Sell sein. Wenn wir diese jeweils einzeln mit der Funktion OrderClose () schließen, ergibt sich unsere wirtschaftliche Leistung aus der Summe der Gewinne, die bei jeder Bestellung erzielt wurden. 95. Ergebnis eines gesonderten Abschlusses von Aufträgen mit der Funktion OrderClose (). Wenn wir jedoch in dieser Situation die Funktion OrderCloseBy () einsetzen, die für die gegenseitige Schließung von Aufträgen vorgesehen ist, wird die wirtschaftliche Leistung im Vergleich zur vorherigen Alternative besser als der Betrag sein, der proportional zu den Kosten eines Auftragsspreads ist. 96. Ergebnis der Abschlußaufträge durch andere Aufträge über die Funktion OrderCloseBy (). Es ist offensichtlich, dass, wenn es entgegengesetzte Aufträge im Terminal zu schließen, wäre es wirtschaftlich gesund, die Funktion OrderCloseBy (), nicht OrderClose () zu verwenden. Was das Sparen einer Ausbreitung beim Schließen von entgegengesetzten Ordnungen betrifft, so sollten wir einige allgemeinere Erklärungen geben. Tatsächlich ist die Eröffnung eines Auftrags (z. B. ein Kaufauftrag) implizit ein Handel, der entgegen der Eröffnung eines Auftrags in der entgegengesetzten Richtung (dh eines Verkaufsauftrags) in dem Maße ist, wie die Bestellung abgeschlossen ist (der Kauf Auftrag). Mit anderen Worten, es ist ökonomisch das gleiche, was von den Alternativen zu verwenden: nur um eine Marktordnung zu schließen oder eine entgegengesetzte Reihenfolge des gleichen Volumens zu öffnen (und dann beide Bestellungen miteinander zu schließen). Der Unterschied zwischen diesen beiden Alternativen kann nur in verschiedenen Methoden bestehen, die in verschiedenen Handelszentren verwendet werden, um das Geld zu berechnen, das zur Unterstützung von Marktordnungen abgezweigt werden soll (siehe Abb. 85 und Abb. 88). Es ist auch leicht zu sehen, dass der Schlusspreis nicht in der Funktion OrderCloseBy () zum Schließen von entgegengesetzten Aufträgen angegeben werden muss. Es ist unnötig, weil der Gewinn und der Verlust von zwei entgegengesetzten Aufträgen gegenseitig bezahlt werden, so dass die gesamtwirtschaftliche Produktion nicht vom Marktpreis abhängt. Natürlich ist diese Regel nur für Aufträge desselben Volumens wirksam. Wenn wir z. B. zwei Aufträge für ein Symbol haben: einen Kauf von 1 Los und einen Verkaufsauftrag von 0,7 Lot, so hängt dieser Handel nur von dem Marktpreis ab, der mit dem Kaufteil von 0,3 Los verbunden ist, während 0,7 Lot Beide Aufträge hängen nicht vom Symbolpreis ab. Gegenläufige Aufträge haben keinen Einfluss auf die gesamten Handelsergebnisse. Aus diesem Grund haben die Handelstaktiken, die auf der Öffnung der entgegengesetzten Aufträge basieren, keine informellen Inhalte (aus diesem Grund schließen einige Handelszentren zwangsweise alle entgegengesetzten Aufträge innerhalb der übereinstimmenden Mengen von Losen). Der einzige (negative) Einfluss solcher Taktiken kann darin bestehen, dass Geld in Übereinstimmung mit den Regeln, die in einigen Handelsplattformen akzeptiert werden, umgeleitet wird. Außerdem bietet die Verfügbarkeit von mehreren entgegengesetzten Aufträgen mehr Schwierigkeiten im Rahmen des programmierten Handels, als eine Bestellung. Wenn wir verschiedene Provisionen und Swaps betrachten (für jede Marktordnung separat), wird die Notwendigkeit, entgegengesetzte Aufträge zu schließen, offensichtlich. Ein Beispiel für ein einfaches Skript, das alle entgegengesetzten Befehle für ein Symbol schließt (closeby. mq4). Der Algorithmus des obigen Skripts ist ein wenig anders als die vorhergehenden. Dieser Unterschied besteht darin, dass der gleiche Code mehrere Male ausgeführt werden muss, um mehrere Aufträge (die Anzahl der zu schließenden Aufträge in nicht begrenzt) erfolgreich zu schließen. The script was tested on a random set of market orders. 5 orders of different volumes are represented in Fig. 97 below. In order to close the available opposite orders, we should predefine the selection criteria. This criterion in the given algorithm is the order size - the orders of larger volumes are closed first, then the orders of smaller volumes are closed. After the opposite orders of different volumes have been closed, the orders of the resting volumes remain. For example, the closing of opposite orders Buy (1 lot) and Sell (0.8 lot) will result in that order Buy (0.2 lot) remains opened. This is why, after each successful closing, the program must refer to the updated list of orders to find two other largest opposite orders in this updated list. The above calculations are realized in a (conditionally) continuous cycle while, in blocks 2-10. the beginning of the cycle, at each iteration the program supposes that there are no orders of a certain type anymore. For this, the the value of -1 is assigned to the variables HedgBuy and HedgSell. The algorithm of the order-processing block is, in general, preserved (see the code of closeby. mq4). In the order-searching cycle for, namely in block 3-4, like in the preceding programs, quotwrongquot orders are filtered out. In this case, these are orders opened for another symbol and pending orders. In block 4-5, the volume of each order checked in block 3-4 is calculated. If it turns out during calculations that the currently processed order is the largest in volume among all orders processed, its ticket is stored. This means that the order having this ticket is, at this stage of calculations, a candidate for closing of opposite orders. By the moment when the last iteration of the cycle for finishes, the tickets of orders with maximum amount of lots opened in opposite directions have already been known. These orders are selected by the program. If any orders of any types have already become unavailable by this moment, block 5-6 exits the program. Block 6-10 represents error processing. It is completely the same as those considered above (in this and preceding sections). The trade request for closing of opposite orders is formed in block 7-8 using the function OrderCloseBy(). If it fails, according to the error code, the program passes the control either to retry making the trade (for the same tickets) or to the operator return that ends the program operations. If a trade is successfully performed, the program exits the error-processing block, and the current iteration of the most external cycle while will end. the next iteration of this cycle, all calculations will be repeated: searching in the orders available, selecting market orders, selected one ticked for each of order types, forming a trade request for opposite closing, and subsequent error analyzing. This cycle is executed until there are no available orders of a certain type (or, in a particular case, of both types) in the terminal. This event will be calculated in block 5-6, then the program ends its operations. The following messages were received at the execution of the script closeby. mq4 intended for closing of market orders shown in Fig. 97: On the quotAccount Historyquot tab of the quotTerminalquot window, you can see that some orders are closed with a zero profit. This is what we save when closing opposite orders. You can compare economic results in Fig. 97 and Fig. 99: On the quotJournalquot tab in the quotTerminalquot window, you can track the history of order closing (the latest events are on top): the execution of the script, according to the algorithm, the orders of maximum volume available at the moment will be closed. In spite of the fact that the orders were opened in a random sequence (Fig. 97), the first orders to be closed were Buy 778594 and Sell 778595, with the volumes of 1 lot and 0.8 lot, respectively (the lower lines in Fig. 100). Since these orders have different volumes, the opposite closing produced a new order, Buy 778597, with the resting volume of 0.2 lot. Then the program selected orders Buy 778592 and Sell 778593, 0.5 lot each, to be closed as opposite orders. These orders were closed without opening a resting order. By the moment the third iteration started, two orders had remained in the symbol window in the external cycle: initial order Sell 778596 of 0.3 lot and the order opened as a result of the execution of the script, Buy 778597 of 0.2 lot. In the upper lines of Fig. 100, you can see that those orders are also closed as opposite orders. The volumes of those orders were different, so the last trade resulted in that one market order of 0.1 lot remained in the symbol window (please note the economic results): It is convenient to use the script closeby. mq4 in manual trading, especially in cases of many differently-directed market orders available in the symbol window.


No comments:

Post a Comment