Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 766

 
Aleksey Vyazmikin:

Ich schlage vor, nicht vom Konzept abzuweichen, das, so wie ich es verstanden habe, darin besteht, am Anfang des Codes eine bestimmte Menge von Taktdaten zu kopieren und dann mit diesen Daten zu arbeiten - oder schlagen Sie eine Ausnahme vor?

Und wie kommen Sie darauf, dass ich ein Programmierer bin?

Ich glaube nicht, dass es notwendig ist, zu raten, was schneller sein wird, manchmal ist die Antwort nicht offensichtlich - nur die Erfahrung kann eine Antwort auf solche Fragen geben.

Dann sind Sie hier willkommen.

 
Vitaly Muzichenko:

Sie müssen Objekte mit einem Ticket löschen, die sich bereits in der Historie befinden, aber nicht diejenigen, die noch auf dem Markt sind.

Sie brauchen ein Ticket für eine geschlossene Position, aber Sie können es nicht mit PositionSelect() erhalten.

 
Vitaly Muzichenko:

Sie müssen Objekte mit einem Ticket löschen, die sich bereits in der Historie befinden, aber nicht diejenigen, die noch auf dem Markt sind.

Duplikat:

Was ist, wenn die Aufgabe "umgedreht" wird?

Ticketobjekte entfernen, deren Positionen bereits aus dem Markt sind... oder entfernen Sie KEINE Ticketobjekte, die noch nicht in der Historie sind, und entfernen Sie den Rest... Das ist im Grunde das Gleiche.

 
Ivan Ivanov:

Kurz gesagt, Sie benötigen das Ticket für eine bereits geschlossene Position, aber Sie können es nicht mit PositionSelect() erhalten.

Hier ist ein Skript, das alle geschlossenen Positionstickets für einen bestimmten Zeitraum zurückgibt.

void OnStart()
{ ulong DealTicket; // for Function : replace void with ulong
  ulong PositionTicket;
  if ( HistorySelect(TimeCurrent()-30*24*60*60,TimeCurrent()) ) // Select History = 30 days
  { if ( HistoryDealsTotal()>0 )
    { int DealIndex=HistoryDealsTotal()-1;
      while ( DealIndex>=0 )
      { DealTicket=HistoryDealGetTicket(DealIndex); // select Deal 
        if ( HistoryDealGetInteger(DealTicket,DEAL_ENTRY)==DEAL_ENTRY_OUT ) // Deal close Position
        { PositionTicket=HistoryDealGetInteger(DealTicket,DEAL_POSITION_ID);
          Print("\n DealTicket = "+IntegerToString(DealTicket));
          Print("PositionClosedByDeal = "+IntegerToString(PositionTicket));
          // if ( some condition ) // for Function : Your selection
          // return (PositionTicket); // for Function : Enable return
        }
        DealIndex--;
      }
      // Print("Warning = Nothing selected from History"); // for Function : remove //
    }
    else Print("Warning = Empty History (select longer History)");
  }
  else Print("Error = "+IntegerToString(GetLastError())+" = Not loaded History");
  // return (-1); // for Function : Enable return
}

Der Code zeigt, wie man ihn in eine Funktion umwandelt (auf Englisch)

 
Ivan Ivanov:

Hier ist das Skript, das das Ticket aller geschlossenen Positionen für einen bestimmten Verlaufszeitraum zurückgibt.

Der Code zeigt, wie man ihn in eine Funktion umwandelt (auf Englisch)

Das Interessanteste daran ist, dass es schon gleich erwähnt wurde:

Forum über Handel, automatisierte Handelssysteme und Strategietests

Fragen von Anfängern MQL5 MT5 MetaTrader 5

Artyom Trishkin, 2017.07.24 23:33

Haben Sie versucht, nach einem abgeschlossenen Handel (OUT) zu suchen? Der Auftrag war da - Sie können ihn sehen.

Aber Vitaly verstand den Sinn des Geschriebenen nicht. Und er hat mich nicht einmal gebeten, es zu wiederholen.
 
Artyom Trishkin:

Das Interessante daran ist, dass es schon gleich erwähnt wurde:

Aber Vitaly hat die Bedeutung des Wortes "schriftlich" offenbar nicht verstanden. Und er hat mich nicht einmal gebeten, es zu wiederholen.

Danke Artyom, ich habe beschlossen, das für später zu verschieben, ich habe gefragt, als ich schlief)


Iwan Iwanow:

Hier ist das Skript, das das Ticket aller geschlossenen Positionen für einen bestimmten Verlaufszeitraum zurückgibt.

Der Code zeigt, wie man ihn in eine Funktion umwandelt (auf Englisch)

Danke für den Code, er hat mir geholfen.


Problem gelöst!

 
Artyom Trishkin:

Das Interessante daran ist, dass dies bereits am Anfang erwähnt wurde:

Aber Vitaly schien die Bedeutung des Geschriebenen nicht zu begreifen. Und er hat nicht einmal mehr nachgefragt.

An den Moderator:

Der Mann wollte den Code (Umsetzungsidee). Und es gab KEINE, aber er wurde an Freelance geschickt.

 
Ivan Ivanov:

An den Moderator:

Die Person möchte den Code (Implementierungsidee). Und dort wurde sie NICHT geschlagen, sondern in die Selbständigkeit geschickt.

Hat der Moderator einen Namen?
Ich kenne Vitaly. Es reicht, wenn er die richtige Richtung vorgibt. Code ist etwas für Faulpelze und Dummköpfe. Und es war nicht Vitaly, der in die Freiberuflichkeit geschickt wurde. Aber jemand, der kein Programmierer ist.
Eine Umsetzungsidee ist eine Idee, ein Algorithmus.
Und die Umsetzung ist Code, und nicht immer der richtige.

 
Artyom Trishkin:
Hat der Moderator einen Namen?
Ich kenne Vitaly. Es reicht, wenn er die richtige Richtung vorgibt. Code ist etwas für Faulpelze und Dummköpfe. Und es war nicht Vitaly, der zum Freiberufler geschickt wurde. Aber für jemanden, der kein Programmierer ist.
Die Idee der Umsetzung ist eine Idee, ein Algorithmus.
Und die Umsetzung ist Code, und nicht immer der richtige.

Hat jemand, der kein Programmierer ist, einen Namen?

Ja, ich bin kein ausgebildeter Programmierer, aber ich arbeite jeden Tag daran, mir diese nicht einfache Fähigkeit anzueignen.

 
Aleksey Vyazmikin:

Hat jemand, der kein Programmierer ist, einen Namen?

Ja, ich bin kein ausgebildeter Programmierer, aber ich arbeite jeden Tag daran, diese nicht einfache Fähigkeit zu beherrschen.

Ah, da haben Sie es. Haben Sie immer noch Lust, programmieren zu lernen? Dann versuchen Sie zu verstehen, was angeboten wird, und machen Sie sich nicht zum Prüfer. Nichts für ungut, aber so habe ich alle Einwände und Fragen zu CopyRates() verstanden.

Ich bin auch kein ausgebildeter Programmierer. Als ich studierte, gab es eine solche Spezialität nicht und ich rechnete mit einem Arithmometer "Felix".

Grund der Beschwerde: