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

 
Leo59:
Bitte erklären Sie, wie man Daten aus einer Tabelle (*.csv) in ein dreidimensionales statisches Array entpackt.
Die erste Spalte der Tabelle enthält den Index für die erste Dimension des Arrays,
Die zweite Spalte enthält den Index für die zweite Dimension des Arrays,
Die dritte und weitere Spalten enthalten die Werte selbst für die dritte Dimension des Arrays.

Vergessen Sie, was Sie als nächstes geschrieben haben. Deklarieren Sie ein Array des entsprechenden Typs auf Ebene der globalen Variablen arr[][][3] und definieren Sie die zweite Dimension selbst.

void AAA()
   {
    int       Handle;                                          // Файловый описатель
    string    File_Name = "AAA.csv";                           // Имя открываемого файла

    string    str_1 = "";                                      //  1 Номер индекса по первому измерению
    string    str_2 = "";                                      //  2 Номер индекса по второму измерению
    string    str_3 = "";                                      //  3 Значение
    string    str_4 = "";                                      //  4 Значение
    string    str_5 = "";                                      //  5 Значение

    Handle=FileOpen(File_Name, FILE_READ, ";");                // Открытие файла
    
    while(FileIsEnding(Handle)==false)                         // До тех пор, пока файловый...
        {                                                      // ...указатель не в конце файла
         // Чтение данных из строки до файлового разделителя
         str_1 = FileReadString(Handle);                       //  1 Номер индекса по первому измерению
         str_2 = FileReadString(Handle);                       //  2 Номер индекса по второму измерению
         str_3 = FileReadString(Handle);                       //  3 Значение
         str_4 = FileReadString(Handle);                       //  4 Значение
         str_5 = FileReadString(Handle);                       //  5 Значение
         
// А здесь заполнение массива
arr[str_1][str_2][0] = str_3;
arr[str_1][str_2][1] = str_3;
arr[str_1][str_2][2] = str_4;

         if(FileIsEnding(Handle)==true)                        // Файловый указатель в конце файла
              break;                                           // Выход из цикла чтения

         ????????????????????????????????????????????????????
        }
    FileClose(Handle);                                         // Закрываем файл
    return;                                                    // Выход из функции
   }

Nun, es ist folgendermaßen. Außerdem müssen Sie wahrscheinlich String-Indizes in Ganzzahlen konvertieren.

 
AlexeyVik:

Vergessen Sie, was Sie als nächstes geschrieben haben. Deklarieren Sie ein Array des entsprechenden Typs auf Ebene der globalen Variablen arr[][][3] und definieren Sie die zweite Dimension selbst.

Nun, es ist folgendermaßen. Außerdem müssen Sie wahrscheinlich String-Indizes in Ganzzahlen umwandeln.


VIELEN DANK!!!! Wenn das Gehirn kocht, wird man "blind" und sieht die einfachen und offensichtlichen Dinge nicht. Das Interessanteste ist, dass Sie wissen, dass die Lösung einfach ist, "wie drei Kopeken", aber leider ist sie vor Ihren Augen verschwommen.
Nochmals DANKESCHÖN !!!!!
 
artmedia70:
Sie brauchen keine dummen Ratschläge zu geben. Mit diesem Befehl werden alle Objekte vollständig aus dem Diagramm entfernt.

Ich bin nicht Ihrer Meinung!

Es wurde eine Frage gestellt:

Wie kann man alle Objekte wie OBJ_ARROW_RIGHT_PRICE löschen?

Lösung:

ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE); //удалить все объекты типа "Правая ценовая метка" в главном окне графика

Wieso ist die Lösung dumm?

 
isn-88:

Ich stimme Ihnen nicht zu!

Es wurde eine Frage gestellt:

Lösung:

Und warum ist die Entscheidung dumm?

Durch die Tatsache, dass ALLE Objekte entfernt werden. Auch solche, die NICHT zum EA/Indikator gehören. Was ist, wenn eine Person seit langem ihren eigenen Code in einem Diagramm markiert hat? Und dann hat er diesen Code in einem Indikator eines Drittanbieters ausgeführt? Wie, und was würde er dann über den Verfasser dieses guten Kodex sagen?
 
artmedia70:
Wie, und was sagt er dann über den Verfasser dieses guten Kodexes?


Die Menschen sind freundlich. Sie werden sagen, was sie denken.
 
Vinin:

Die Menschen sind freundlich. Sie werden sagen, was sie denken.
Ja, Vitja... Die Menschen sind heutzutage gemein... Es ist traurig.
 
isn-88:

Ich stimme Ihnen nicht zu!

Es wurde eine Frage gestellt:

Lösung:

Und warum ist die Lösung dumm?

Eigentlich begann alles mit dem Befehl: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;

und dann eine andere Variante versucht ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);

Sehr geehrter Herr, lesen Sie die Hilfe :)

Ich verstehe nicht, warum mein Index mit den genannten Befehlen in Alpha-Forex korrekt funktioniert, aber in Saxo Bank werden die Objekte nicht mehr gelöscht.

Dann begann ich mit dem Skript zu experimentieren, und das Skript hörte auf, Objekte in allen Terminals zu löschen.

 

Salud an alle!

Eine solche Merkwürdigkeit des Prüfers wird beobachtet.

Nach der Schließung der Aufträge 152, 153, 158 und 159 ist der Gewinn nicht korrekt (als ob der Prüfer falsch berechnet hätte). Wie aus der Tabelle hervorgeht, sind die Aufträge seit mehreren Monaten "hängengeblieben". Außerdem wird der Drawdown in der Tabelle korrekt angezeigt, aber im Chart ist er aus irgendeinem Grund nicht sichtbar.

Was kann das sein?


EURUSD (Euro gegenüber US Dollar)

15 Minuten (M15) 2012.01.01 23:00 - 2014.03.07 22:59 (2012.01.01 - 2014.03.08)

















1000.00



Verbreitung

Strom (12)

1418.73

Gesamtgewinn

2045.28

Totalverlust

-626.55

3.26

Erwartete Auszahlung

2.41



419.34

Maximale Absenkung

834.91 (58.98%)

Relative Absenkung

58.98% (834.91)


















Test

Zeit

Typ

Bestellung

Band

Preis

S / L

T / P

Gewinn

Bilanz

372

2012.04.30 11:00

kaufen

151

0.01

1.32193

0.00000

1.32472


373

2012.05.01 04:45

t/p

151

0.01

1.3247234

0.00000

1.32472

2.75

1402.41

374

2012.05.01 15:00

kaufen

152

0.01

1.32262

0.00000

1.32713


375

2012.05.02 07:45

t/p

142

0.01

1.31949

0.00000

1.31949

-4.40

1398.00

376

2012.05.02 07:45

t/p

143

0.01

1.31949

0.00000

1.31949

0.95

1398.96

377

2012.05.02 07:45

t/p

149

0.02

1.31949

0.00000

1.31949

12.49

1411.44

378

2012.05.02 08:45

kaufen

153

0.01

1.31711

0.00000

1.32237


379

2012.05.02 08:45

ändern.

152

0.01

1.32262

0.00000

1.32237


380

2012.05.02 15:15

verkaufen

154

0.01

1.31483

0.00000

1.31352


381

2012.05.03 07:00

t/p

154

0.01

1.3135174

0.00000

1.31352

1.18

1412.63

382

2012.05.03 08:45

verkaufen

155

0.01

1.31454

0.00000

1.31425


383

2012.05.03 09:00

t/p

155

0.01

1.3142483

0.00000

1.31425

0.29

1412.92

384

2012.05.03 13:45

verkaufen

156

0.01

1.31671

0.00000

1.31256


385

2012.05.04 10:45

t/p

156

0.01

1.3125581

0.00000

1.31256

4.11

1417.02

386

2012.05.04 14:15

verkaufen

157

0.01

1.31527

0.00000

1.31293


387

2012.05.04 14:45

t/p

157

0.01

1.3129331

0.00000

1.31293

2.34

1419.36

388

2012.05.04 16:15

kaufen

158

0.02

1.30997

0.00000

1.31742


389

2012.05.04 16:15

ändern.

152

0.01

1.32262

0.00000

1.31742


390

2012.05.04 16:15

ändern.

153

0.01

1.31711

0.00000

1.31742


391

2012.05.06 23:15

kaufen

159

0.04

1.29845

0.00000

1.30918


392

2012.05.06 23:15

ändern.

152

0.01

1.32262

0.00000

1.30918


393

2012.05.06 23:15

ändern.

153

0.01

1.31711

0.00000

1.30918


394

2012.05.06 23:15

ändern.

158

0.02

1.30997

0.00000

1.30918


395

2012.09.14 10:45

t/p

152

0.01

1.30918

0.00000

1.30918

-18.67

1400.70

396

2012.09.14 10:45

t/p

153

0.01

1.30918

0.00000

1.30918

-13.12

1387.58

397

2012.09.14 10:45

t/p

158

0.02

1.30918

0.00000

1.30918

-11.65

1375.93

398

2012.09.14 10:45

t/p

159

0.04

1.30918

0.00000

1.30918

22.77

1398.70

 
VoDyaMon:

Eigentlich begann alles mit dem Befehl: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;

und dann habe ich eine andere Variante ausprobiert: ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);

Sehr geehrter Herr, lesen Sie die Hilfe :)

Ich verstehe nicht, warum mein Index mit den genannten Befehlen in Alpha-Forex korrekt funktioniert, aber in Saxo Bank werden die Objekte nicht mehr gelöscht.

Dann begann ich mit dem Skript zu experimentieren, und das Skript hörte auf, Objekte in allen Terminals zu löschen.

Die erste sieht im Hauptdiagrammfenster aus, die zweite in allen. Schlussfolgerung - 1) Verwenden Sie den Fensterindex, um die Anzahl der Objekte zu reduzieren, die die Funktion durchläuft, um die zu löschenden Objekte zu finden. 2) Wenn Sie nach Namen löschen (Teil des Namens, weil ein Mql-Programm Objekte normalerweise mit einem persönlichen Präfix benennt), dann verwenden Sie eine Suchschleife ab dem letzten (zum Zeitpunkt der Erstellung älteren) Objekt.

Es gibt zwar ein Problem mit dem Löschen von Objekten, aber wenn es sehr viele sind und es von 0 bis ObjectTotal()-1 geht, dann werden einige der Objekte nicht gelöscht. Frage an die Entwickler, vielleicht ist nicht genügend Pufferspeicher zugewiesen.

Beispiel:

void DeleteObjects(int chartID, string prefix_obj_name) {
   string obj_nm="";
   int obj=ObjectsTotal();
 //  for(int k=0; k<obj; k++){  // неправильный вариант
   for(int k=obj-1; k>=0; k--){
      obj_nm = ObjectName(k);
      if(StringFind(obj_nm,prefix_obj_name)>=0) 
      { 
         ResetLastError();
         if(!ObjectDelete(chartID,obj_nm))
         {
            Print(__FUNCTION__,
            ": не удалось удалить объект ",obj_nm," Код ошибки = ",GetLastError());
         }
      }
   }
}
// prefix_obj_name = "Obj_MQLname_";   Имена объектов создаваемых программой "Obj_MQLname_Close_"+DoubleToStr(Close[0],Digits), "Obj_MQLname_Open_"+DoubleToStr(Open[0],Digits)   и т.д. 
 
Können Sie mir sagen, ob Win 8 mit MT 4 und MT 5 kompatibel ist? Ich frage, weil ich einen Mac habe und mich frage, mit welchem Betriebssystem ich einen PC kaufen soll. Einer zeigte mir sogar einen Screenshot von MT 4, der auf 8 läuft. Aber da einige Kameraden behaupten, es gäbe keine vollständige Kompatibilität, muss ich das klarstellen... Danke.