Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 73

 
trader117:
Guten Tag. Wie kann ich einen einzigen Stop Loss für eine Reihe von Aufträgen mit exakten magischen Zahlen berechnen, so dass diese Reihe von Aufträgen zum Breakeven schließen kann. Zum Beispiel gibt es 3 Aufträge: 1 Buy lot 1.3320 mit Magic 1, 1 Buy lot 1.3345 mit Magic 2 und 1 Buy lot 1.3360 mit Magic 3. Wie sollte ich den gesamten Stop-Loss für alle Orders berechnen, damit bei einer Kursbewegung die Orders ohne Verlust geschlossen werden?
Was ist der Grund für die Durchschnittsbildung des Stop-Loss? Sobald eine Position durch einen SL geschlossen wird, werden alle anderen Positionen sofort durch Close geschlossen! Kein Grund, wertvolle Pips zu verlieren!
 
borilunad:
Welchen Sinn hat die Durchschnittsbildung von StopLoss? Sobald ich eine Position mit SL schließe, werden die anderen sofort mit Close geschlossen! Kein Grund, wertvolle Pips zu verlieren!

Auf der einen Seite ja, aber auf der anderen Seite sehe ich eine unmittelbare Schwachstelle: Eine Order kann von einem EA aus vielen Gründen nicht geschlossen werden, und ein Stop Loss wird trotzdem geschlossen, andernfalls ist dies ein ernsthafter Grund, sich beim Broker zu beschweren. + Durch die Unterbrechung kann ein Auftrag nicht abgeschlossen werden. Hat noch jemand eine Idee, wie man diesen Algorithmus für die Gesamt-SL für die Auftragspyramide umsetzen kann?
 
trader117:

Einerseits ja, aber ich sehe eine unmittelbare Schwachstelle darin, dass das Schließen einer Order durch einen EA aus den verschiedensten Gründen nicht ausgeführt werden kann und ein Stop-Loss trotzdem geschlossen wird, sonst ist das schon ein ernsthafter Grund für eine Klage gegen den Broker. + Durch die Unterbrechung kann ein Auftrag nicht abgeschlossen werden. Wer hat noch Ideen, wie man diesen Algorithmus für gemeinsame SL für eine Auftragspyramide umsetzen kann?
Ich sage nicht, dass Sie anderen keine SL auferlegen sollen! Sie werden schließen und Sie werden sogar weniger verlieren als der durchschnittliche SL! Bei Real werden Sie also nicht gleichzeitig schließen, sondern nach und nach! Daher ist es wirtschaftlich, den Rest von Close zu schließen, nachdem eine Position auf SL geschlossen wurde! Ja, und wiegen den Code uchuchitimo, weil SL wiederholt etabliert, und jedes Mal, um die Berechnung der Mittelwertbildung durchzuführen? Und jedes Mal, wenn Sie eine Position hinzufügen, wieder neu zu berechnen und setzen Sie die SL, und ich wiederhole, werden Sie nur auf sie zu verlieren, nicht gewinnen!
 

Ich kriege es nicht in den Griff, ich weiß nicht, wo das Problem liegt. Die Aufgabe ist folgende: Finde den Balken einer bestimmten Uhrzeit auf der Minutenleiste. Wenn die Zeit noch nicht gekommen ist, suchen Sie sie im Gestern, ansonsten im Heute. Ich habe das folgende Skript geschrieben:

#property show_inputs

extern string time = "15:25";
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   string comment = StringConcatenate(" TimeCurrent = ", TimeCurrent(),
      "\n TimeToStr(TimeCurrent) = ", TimeToStr(TimeCurrent(), TIME_DATE|TIME_MINUTES));
   datetime d_time = StrToTime(time);
   comment = StringConcatenate(comment,
      "\n d_time = ", d_time,
      "\n TimeToStr(d_time) = ", TimeToStr(d_time, TIME_DATE|TIME_MINUTES));
   int delta_time = TimeCurrent() - d_time;
   comment = StringConcatenate(comment,
      "\n delta_time = ", delta_time);
   if(delta_time < 0){
      d_time -= 60*60*24;
      comment = StringConcatenate(comment,
         "\n\n delta_time < 0");
   }else{
      comment = StringConcatenate(comment,
         "\n\n delta_time > 0");
   }
   //
   comment = StringConcatenate(comment,
      "\n\n d_time = ", d_time,
      "\n TimeToStr(d_time) = ", TimeToStr(d_time, TIME_DATE|TIME_MINUTES));
   delta_time = TimeCurrent() - d_time;
   comment = StringConcatenate(comment,
      "\n delta_time = ", delta_time);
   double d_delta_time = delta_time;
   double value = d_delta_time/60;
   int start = MathCeil(value);
   datetime sought_time = iTime(Symbol(),PERIOD_M1,start);
   comment = StringConcatenate(comment,
      "\n\n value = ", DoubleToStr(value, 3),
      "\n start = ", start,
      "\n sought_time = ", sought_time,
      "\n TimeToStr(sought_time)= ", TimeToStr(sought_time, TIME_DATE|TIME_MINUTES));
   Comment(comment);
//----
   return(0);
  }

Dies ist die Ausgabe:

Der Algorithmus sieht folgendermaßen aus. Wir betrachten die Differenz zwischen der aktuellen Zeit und der angegebenen Zeit, und wenn sie kleiner als Null ist, verschieben wir uns um einen Tag nach hinten. Dann wird die Differenz durch 60 geteilt und aufgerundet. Dies ist die Nummer des Balkens auf M1, und wir sehen uns die Zeit an. Sie stimmt nicht mit der in den Externa festgelegten überein. Wo liegt dieser algorithmische Fehler?

 
gyfto:

Ich kriege es nicht in den Griff, ich weiß nicht, wo das Problem liegt. Die Aufgabe ist folgende: Finde den Balken einer bestimmten Uhrzeit auf der Minutenleiste. Wenn die Zeit noch nicht gekommen ist, suchen Sie sie im Gestern, ansonsten im Heute. Ich habe das folgende Skript geschrieben:

Dies ist die Ausgabe:

Der Algorithmus sieht folgendermaßen aus. Wir betrachten die Differenz zwischen der aktuellen Zeit und der angegebenen Zeit, und wenn sie kleiner als Null ist, verschieben wir uns um einen Tag nach hinten. Dann wird die Differenz durch 60 geteilt und aufgerundet. Dies ist die Nummer des Balkens auf M1, und wir sehen uns seine Zeit an. Sie stimmt nicht mit der in den Externa festgelegten überein. Wo liegt dieser algorithmische Fehler?

Die Volatilität ist nachts gering, es gibt Minuten, in denen kein einziger Handel stattfindet, es gibt also keinen Balken. Schauen Sie sich den Verlauf an, um zu sehen, ob alle Balken vorhanden sind.
 
Roger:
Schauen Sie sich den Verlauf an, um zu sehen, ob alle Balken vorhanden sind.


Sie können vom gefundenen Wert in while() zu dem gesuchten Balken wechseln. Ich werde es ausprobieren.
 
gyfto:

Ich kriege es nicht in den Griff, ich weiß nicht, wo das Problem liegt. Die Aufgabe ist folgende: Finde den Balken einer bestimmten Uhrzeit auf der Minutenleiste. Wenn die Zeit noch nicht gekommen ist, suchen Sie sie im Gestern, ansonsten im Heute. Ich habe das folgende Skript geschrieben:

Dies ist die Ausgabe:

Der Algorithmus sieht folgendermaßen aus. Wir betrachten die Differenz zwischen der aktuellen Zeit und der angegebenen Zeit, und wenn sie kleiner als Null ist, verschieben wir uns um einen Tag nach hinten. Dann wird die Differenz durch 60 geteilt und aufgerundet. Dies ist die Nummer des Balkens auf M1, und wir sehen uns die Zeit an. Sie stimmt nicht mit der in den Externa festgelegten überein. Wo liegt dieser algorithmische Fehler?

Üben Sie, oder hat iBarShift() es nicht gemocht?
 
TarasBY:
Üben Sie, oder mochten Sie iBarShift() nicht?
Ich bin ein Idiot.
 
Bitte geben Sie mir die Nummer/Adresse des Demoservers für MT4 von MetaQuotes. Ich habe gerade MT4 von der MetaQuotes-Website heruntergeladen und es ist auf TeleTrade-Demo (Firma Teletrade D.J.), aber ich möchte eine Verbindung zu MQ herstellen und mit ihren Kursen arbeiten.
 
Grüße an alle, eine Frage: ist es möglich , eine Position zu öffnen, bei bar schließen (arbeiten auf 15-Minuten-Balken), wenn ja, wie man es mit mt4 tun?
Grund der Beschwerde: