Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 535

 
Leo59 :
Lütfen verileri bir tablodan (*.csv) üç boyutlu bir statik diziye nasıl aktaracağınızı açıklayın.
Tablonun ilk sütununda - dizinin ilk boyutundaki dizin,
İkincisinde - dizinin ikinci boyutundaki dizin,
Üçüncü ve sonraki sütunlarda - dizinin üçüncü boyutuna göre değerlerin kendisi.

Daha sonra yazılanları unutun. Global değişkenler düzeyinde uygun türde bir dizi bildirin arr[][][3] ikinci boyutun boyutunu kendiniz tanımlayın.

 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 ;                                                     // Выход из функции
   }

Böyle bir şey. Ve muhtemelen dize indekslerini tam sayılara çevirmeniz gerekecek.

 
AlexeyVik :

Daha sonra yazılanları unutun. Global değişkenler düzeyinde uygun türde bir dizi bildirin arr[][][3] ikinci boyutun boyutunu kendiniz tanımlayın.

Böyle bir şey. Ve muhtemelen dize indekslerini tam sayılara çevirmeniz gerekecek.


ÇOK TEŞEKKÜRLER!!!! Beyin kaynadığında - "kör olursunuz" ve basit ve açık şeyler görmüyorsunuz. Bildiğiniz en ilginç şey - çözüm basit, "üç kopek gibi", ama ne yazık ki gözlerinizin önünde bir perde var.
Tekrar teşekkürler!!!!!
 
artmedia70 :
Burada aptalca seçenekler önermenize gerek yok. Bu komut, genel olarak tüm nesneleri grafikten kaldıracaktır.

Seninle aynı fikirde değilim!

Bir soru vardı:

Örneğin OBJ_ARROW_RIGHT_PRICE gibi tüm nesneler nasıl silinir?

Karar:

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

Ve neden aptalca bir karar?

 
isn-88 :

Seninle aynı fikirde değilim!

Bir soru vardı:

Karar:

Ve neden aptalca bir karar?

TÜM nesneleri kaldıracağı gerçeği. Danışmana/göstergeye ait olmayanlar bile. Ve eğer bir kişi uzun süredir grafikte işaretini yapıyorsa? Ve sonra bu kodu üçüncü taraf bir göstergede mi çalıştırdınız? Nasıl ve daha sonra bu iyi kodun yazarı hakkında ne söyleyecek?
 
artmedia70 :
Nasıl ve daha sonra bu iyi kodun yazarı hakkında ne söyleyecek?


Kibar insanlar. Herkes ne düşündüğünü söyleyecek
 
Vinin :

Kibar insanlar. Herkes ne düşündüğünü söyleyecek
Evet, Vit... son zamanlarda insanlar kötü... Üzücü.
 
isn-88 :

Seninle aynı fikirde değilim!

Bir soru vardı:

Karar:

Ve neden aptalca bir karar?

aslında her şey şu komutla başladı: ObjectsDeleteAll ( 0 , OBJ_ARROW_RIGHT_PRICE );

ve sonra başka bir seçenek denendi ObjectsDeleteAll ( OBJ_ARROW_RIGHT_PRICE );

Sevgili okuma yardımı :)

Belirtilen komutlarla hindimin neden Alfa-Forex'te doğru çalıştığını anlamıyorum, ancak nesneler artık Saxo Bank'ta silinmiyor.

Ardından komut dosyasıyla ilgili deneyler başladı ve komut dosyası tüm terminallerdeki nesneleri silmeyi durdurdu.

 

Herkese selam!

Test cihazının böyle bir tuhaflığı gözlenir.

152, 153, 158 ve 159 numaralı siparişler kapatıldıktan sonra yanlış kar elde ediliyor (sanki test cihazı yanlış hesaplamış gibi). Tablodan da görülebileceği gibi, siparişler birkaç ay boyunca "askıda kaldı". Ayrıca, düşüş tabloya doğru bir şekilde yansıtılmış, ancak bir nedenden dolayı grafikte görünmüyor.

Ne yanlış olabilir?


EURUSD (Euro vs USD)

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

















1000,00



Yayılmış

Akım (12)

1418.73

Toplam kar

2045.28

Toplam kayıp

-626.55

3.26

kazanma beklentisi

2.41



419.34

Maksimum düşüş

834.91 (%58.98)

göreceli düşüş

%58,98 (834,91)


















Ölçek

Numara.

Zaman

Tip

Sipariş

Ses

Fiyat

S/L

T/P

Kâr

Denge

372

2012.04.30 11:00

satın almak

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

satın almak

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

satın almak

153

0.01

1.31711

0.00000

1.32237


379

2012.05.02 08:45

değiştirmek

152

0.01

1.32262

0.00000

1.32237


380

2012.05.02 15:15

satmak

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

satmak

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

satmak

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

satmak

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

satın almak

158

0.02

1.30997

0.00000

1.31742


389

2012.05.04 16:15

değiştirmek

152

0.01

1.32262

0.00000

1.31742


390

2012.05.04 16:15

değiştirmek

153

0.01

1.31711

0.00000

1.31742


391

2012.05.06 23:15

satın almak

159

0.04

1.29845

0.00000

1.30918


392

2012.05.06 23:15

değiştirmek

152

0.01

1.32262

0.00000

1.30918


393

2012.05.06 23:15

değiştirmek

153

0.01

1.31711

0.00000

1.30918


394

2012.05.06 23:15

değiştirmek

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 :

aslında her şey şu komutla başladı: ObjectsDeleteAll ( 0 , OBJ_ARROW_RIGHT_PRICE );

ve sonra başka bir seçenek denendi ObjectsDeleteAll ( OBJ_ARROW_RIGHT_PRICE );

Sevgili okuma yardımı :)

Belirtilen komutlarla hindimin neden Alfa-Forex'te doğru çalıştığını anlamıyorum, ancak nesneler artık Saxo Bank'ta silinmiyor.

Ardından komut dosyasıyla ilgili deneyler başladı ve komut dosyası tüm terminallerdeki nesneleri silmeyi durdurdu.

İlki ana grafik penceresinde arama yapar, ikincisi tümünde. Sonuç - 1) silinenleri bulmak için işlevin yinelediği nesne sayısını azaltmak için pencere dizinini kullanın. 2) Ada göre silerseniz (bir mql programı genellikle nesneleri bir tür kişisel önekle adlandırdığından, adın bölümleri), son (oluşturma zamanındaki en eski) nesneden arama döngüsünü kullanın.

Aslında, nesnelerin silinmesiyle ilgili bir sorun olmasına rağmen, eğer çok sayıda nesne varsa ve 0'dan ObjectTotal()-1'e kadar yineleniyorsa, nesnelerin bir kısmı silinmez. Geliştirme için bir soru, belki tahsis edilen arabellek yeterli değildir.

Misal:

 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)   и т.д. 
 
Söyleyin lütfen, Win 8, MT 4 ve MT 5 ile uyumlu mu? Soruyorum çünkü bir haşhaşım var ve hangi işletim sistemiyle bilgisayar satın alacağımı merak ediyorum. Hatta bir kişi, sekiz üzerinde çalışan MT 4'ün olduğunu gösteren bir ekran görüntüsü bile gösterdi. Ama bazı yoldaşlar tam bir uyum olmadığını iddia ettikleri için açıklamam gerekiyor... Teşekkürler.