[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 227

 
anton777:

wie hier? Denn ich weiß nichts über Zyklen.


for(int i=OrdersTotal()-1; i>=0;i--)
  {
     if(OrderSelect(i, SELECT_BY_POS)==true)
       {
          if(i==2)
            {
               int Ord_ticket=OrderTicket();
               Comment("Ord_ticket = ",Ord_ticket);
            }
       }
  }
 
Vinin:


Jetzt lässt sie sich nicht mehr schließen.

Hier ist die Funktion, in die Sie OrderClose() einfügen können ?

//+-------------------------------------------------------------------------------------------+
//|  Описание : Возвращает цену открытия предпоследней открытой позиции или -1                |
//+-------------------------------------------------------------------------------------------+
//|  Параметры:                                                                               |
//|    sy - наименование инструмента   (""   - любой символ, NULL - текущий символ)           |
//|    op - операция                   (-1   - любая позиция)                                 |
//|    mn - MagicNumber                (-1   - любой магик)                                   |
//+-------------------------------------------------------------------------------------------+
double GetPrePricePos(string sy="", int op=-1, int mn=-1) {
  datetime o;
  double   l=-1;
  int      i, k=OrdersTotal()-1;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (o<OrderOpenTime()) {
                o=OrderOpenTime();
                l=OrderOpenPrice();
              }
            }
          }
        }
      }
    }
  }
  return(l);
}


// Verwenden Sie die SRC-Taste //

 
Ist es möglich, den Indikator dazu zu bringen, einen erneuten Durchlauf zu machen, ohne dass ein weiterer Tick eintrifft?
 

Soweit ich es verstanden habe, werden die Berechnungen bei mehr als 8 Dezimalstellen automatisch auf diese 8 Dezimalstellen abgerundet! Ist es möglich, diesen Wert zu erhöhen?

 

Tatsächlich gibt es 15 signifikante Dezimalstellen. Eine solche Zahl belegt jedoch 8 Byte Speicherplatz.
Warum brauchen Sie eine so hohe Rechengenauigkeit (mehr als 8 Stellen)?

 
MikeM:
Ist es möglich, den Indikator ohne einen weiteren Tick neu zu starten?
Service-Skripte für MT4.
 
Lians:

Ich habe eine Frage:

Ich weiß, dass Sie mit EAs und Skripten nur Dateien im Ordner experts/files erstellen und ändern können.

1. Kann ich mit Dateien in Unterordnern dieses Ordners arbeiten?

2. Wenn ja, können Sie ein Beispiel zeigen, wie dies im Code gemacht wird?

Oder vielleicht hat jemand einen dll-Fall, der es erlaubt, mit Dateien zu arbeiten, die sich nicht in diesem Verzeichnis befinden?

4. oder wer kennt vielleicht eine externe Software, mit der man den Datei-Ordner von einem anderen Ordner auf dem Computer kontinuierlich synchronisieren kann?

1. Ja.

2. Fügen Sie dem Ordner files einen weiteren Ordnernamen mit einem Schrägstrich hinzu: files\mydirectory\myfile.dat

3. Ich habe eine DLL, habe sie aber noch nicht getestet. Es gibt eine solche Bibliothek.

(4) Dies kann und sollte mit symbolischen oder harten und weichen Links geschehen. Das ist einfacher als eine Synchronisierung.

 
MikeM:

Die signifikanten Dezimalziffern sind 15. Aber eine solche Zahl belegt 8 Bytes im Speicher.
Warum brauchen Sie eine so hohe Rechengenauigkeit (mehr als 8 Stellen)?

Versuchen, mit Matrizen zu arbeiten... Ich habe versucht, dieses Problem zu umgehen, aber es taucht immer noch auf. Es ist ein bisschen mühsam, das zu umgehen, da die logischen Erklärungen für die Handlungen verloren gehen.

Bezüglich der 15 Stellen - überprüft, normalerweise nur 8 Dezimalstellen, ich frage mich, ob es möglich ist, zu erweitern.

 
dzhini:

Zu den 15 Stellen - ich habe nachgesehen, es sind nur 8 Dezimalstellen, also frage ich mich, ob es möglich ist, sie zu erweitern.

Wie haben Sie das überprüft? Ich bekomme 15.

MikeM:
Ist es möglich, den Indikator zu zwingen, sich neu zu zeichnen, ohne dass ein weiterer Tick eintrifft?
Was neu entwerfen? Diagrammobjekte oder Diagrammaktualisierungen?

 
Zhunko:

Was wird neu gezeichnet? Grafische Objekte oder eine grafische Aktualisierung?

Es geht um die Aktualisierung von Indikatorpuffern und das Neuzeichnen von Indikatordiagrammen, nicht um Objekte.