Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Was ist mit dem Code falsch? Warum erscheint immer wieder die Fehlermeldung"failed cancel order #0 buy 0.00 at market [Invalid request]"?
Wo ist die Positionsauswahl?
Was haben Aufträge mit dem Handel zu tun?
Was wollen Sie tun? Eine Position schließen?
und der Name order_remove_mql_trade_request ist ein schlechter Traum.
Wo befindet sich die Positionsauswahl?
Was haben Aufträge mit dem Handel zu tun?
Was wollen Sie eigentlich tun? Eine Position schließen?
und der Name order_remove_mql_trade_request ist ein schlechter Traum.
Ja, das muss ich klarstellen.
Der Zweck des Codes - wenn es eine offene Position gibt, dann stornieren Sie alle Limit-Order der gleichen Richtung wie die Position.
zum Beispiel, wenn eine Position BAY. offen ist, dann stornieren Sie alle Aufträge wie Kauf-Limit
Ich habe vergessen, die Position zu wählen =). Nun, der Fehler liegt nicht daran (überprüft).
Was ist mit dem Code falsch? Warum erscheint immer wieder die Fehlermeldung"failed cancel order #0 buy 0.00 at market [Invalid request]"?
MqlTradeRequest order_remove_mql_trade_request = {0};
order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE;
i = OrdersTotal();
if(i > 0){
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
for(i2 = 0;i2 <= i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}
entfernen Sie diese Gleichheitszeichen.
Das habe ich bereits getan, es funktioniert nicht.
Es ist nicht gut, die Älteren zu betrügen.
Es ist nicht gut, zu schummeln, ich tue das nicht.
Ich habe gerade alles mit diesem Code doppelt überprüft:
i = OrdersTotal();
if(i > 0){
PositionSelect(_Symbol);
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
for(i2 = 0;i2 < i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
for(i2 = 0;i2 < i;i2++){
ul = OrderGetTicket(i2);
OrderSelect(ul);
if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
order_remove_mql_trade_request.order = ul;
OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}
Das Ergebnis ist das gleiche. Der oben erwähnte Fehler tritt häufig auf
das ergebnis ist das gleiche. der fehler tritt häufig auf
"oft" ist eine leere Phrase.
Du denkst, dass 2+2 oft gleich 4 ist?
Seien Sie nicht faul - machen Sie eine Sendeanalyse und eine Analyse des zurückgegebenen Fehlers.
Prüfen Sie, was Sie entfernen wollen?
Gibt es zum Zeitpunkt der Schließung noch Aufträge?
vielleicht versuchen Sie, einen Auftrag zu löschen, der bereits gelöscht wurde.
Drittens: Wer hat Ihnen beigebracht, Aufträge so zu schließen, dass Sie glauben, alle Aufträge schließen zu können? Sie glauben, dass nach jedem Ihrer Abschlüsse die Auftragssumme um 1 sinkt. Und Sie schlagen immer noch Ihr i2++, bis Sie gewinnen, bis das primäre i.
Sie machen sich nicht einmal die Mühe zu prüfen, ob OrderGetTicket oder OrderSelect einen Fehler zurückgibt
schlecht, sehr schlecht.
Solche Stifte sind der Grund dafür, dass unsere Satelliten aus der Umlaufbahn geraten.
"oft" ist eine leere Phrase.
Sie glauben, dass 2+2 oft gleich 4 ist?
Seien Sie nicht faul - führen Sie eine Sende- und Rücksendefehleranalyse durch.
prüfen, was Sie zu löschen versuchen?
Sind zum Zeitpunkt der Schließung noch Aufträge vorhanden?
vielleicht versuchen Sie, einen Auftrag zu löschen, der bereits gelöscht wurde.
Drittens: Wer hat Ihnen beigebracht, Aufträge auf diese Weise zu schließen? Sie denken, dass Sie alle Aufträge weitergeben, aber das tun Sie nicht. Nach jedem Ihrer Abschlüsse verringert sich OrdersTotal um 1. Und Sie schlagen immer noch Ihr i2++, bis Sie gewinnen, bis zum primären i.
Sie machen sich nicht einmal die Mühe zu prüfen, ob OrderGetTicket oder OrderSelect einen Fehler zurückgibt
Das ist schlecht, sehr schlecht.
Solche Stifte sind der Grund dafür, dass unsere Satelliten aus der Umlaufbahn geraten.
Ich war mir sicher, dass das nicht der Fall war, denn sonst hätte es nicht nur Fehler bei den Bylimits, sondern auch bei den Selllimits gegeben. Danke für den Versuch, mir zu helfen und mich anzuleiten.
Ich grüße Sie, meine Herren.
Dies ist ein Prototyp einer Windows-Funktion, die einen Tastendruck emuliert:
Das Problem ist, dass diese Funktion in MT4 mit int's anstelle von Bytes aufgerufen wird. Es sieht so aus:
Was ist das Problem? Werden mindestens 4 Bytes übertragen? Hängt es von der Hardware ab?Ich grüße Sie, meine Herren.
Dies ist ein Prototyp einer Windows-Funktion, die einen Tastendruck emuliert:
Das Problem ist, dass diese Funktion in MT4 mit int's anstelle von Bytes aufgerufen wird. Es sieht so aus:
Was ist das Problem? Werden mindestens 4 Bytes übertragen? Hängt es von der Hardware ab?Bei der Übergabe von Parametern an eine Funktion ist das Mindestquantum eine 32-Bit-Ganzzahl. Das heißt, bVk und bScan werden in Ihrem Fall in den Typ int konvertiert, bevor sie an die Funktion übergeben werden
Aus diesem Grund widersprechen sich die oben genannten Funktionsprototypen nicht