[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 454

 
7777877 :

Başka bir deyişle, eğer doğru anladıysam, o zaman: (timeseries dizisi dahil) ArrayCopy işlevini kullanarak bir USER dizisine hangi diziyi kopyaladığım önemli değil - bu kullanıcı dizisinin bir timeseries dizisi olabilmesi için onu " işlemeliyim" set parametresinin değeri true değerine eşit olan ArraySetAsSeries işleviyle?

kesinlikle
 

Sevgili programcılar. lütfen kodu yazarken yardım edin bu prensibe göre - SATIN AL sinyali - bir pozisyon açın 1 SATIN AL .SL.TP. başabaşa transfer

SATIŞ sinyali - bir SATIŞ pozisyonu açın 1. SL.TP. başabaşa transfer. ALIŞ sinyali - ALIŞ 1 ve SAT 1 açık pozisyonları varsa, ALIŞ 2'yi açın. SAT sinyali - 1 SAT ve 1 ALIŞ pozisyonları varsa, SAT 2'yi açın - SAT 1 açık pozisyonları varsa SAT 1 AL sinyalini açın. 1. SAT 2. sonra kapat SAT 2. ALIŞ 2. SAT sinyali - açık pozisyon varsa AL 1. SAT 1. AL 2. sonra kapat AL 2. SAT aç 2. Piyasa 3 emirden fazla çalışmamalıdır. Eğer biri yardım edebilirse. o zaman çok teşekkür ederim.

 
Sepulca :

Evet merak etmeyin, dinamik dizilerde böyle mi, önceden ayarlanmış, kenar boşluklu mu yoksa yeterli hafızanız mı yok?

Hafızam kabul edilebilir, ama buradaki konu bu değil :)

Bir seçenek olarak, onlardan çok daha az olacaksa, potansiyel olarak çok sayıda öğeden oluşan bir dizi ayarlamanın amacı nedir?

Sonuçta, bir dizi oluşturmak, zaten RAM'in bir kısmını alacaktır.

 
ilunga :
kesinlikle

Komut dosyasını biraz değiştirdi:

 //+------------------------------------------------------------------------------------------+
//|                                                                     ArraySetAsSeries.mq4 |
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
//------------------------------------ НАЧАЛО START -------------------------------------- 1 -
int start()                                                               //функция start
  {                                                                       //начало start
   double Timestart= GetTickCount ();                                       //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения скрипта
   double array1[][ 6 ];                                                   //объявляем массив-источник (массив, из к-о будут скопированы данные)
   double array2[][ 6 ];                                                   //объявляем массив-приемник (массив, куда будут скопированы данные), к-й на
                                                                         //момент объявления заполнен некоторыми данными
   int element_1= ArrayCopyRates (array1);                                 //копируем данные баров текущего графика в массив array1 
   int element_2= ArrayCopy (array2,array1, 0 , 0 , WHOLE_ARRAY );               //копируем данные всех баров в пользовательский массив
   bool element_3= ArrayGetAsSeries (array2);                               //проверка: является ли массив array1 массивом-таймсерией
   bool try_1= ArraySetAsSeries (array2,false);                             //устанавливаем НАПРАВЛЕНИЕ индексирования массива  
   bool element_4= ArrayGetAsSeries (array2);                               //проверка: является ли массив array2 массивом-таймсерией
   double element=array2[ 0 ][ 1 ];                                           //получаем значение цены открытия нулевого бара
//----------------------------------------------------------------------------------------- 2 -
   Comment ( "\nФункция ArrayCopyRates(array1) вернула: " ,element_1,
           "\nФункция ArrayCopy(array2,array1,0,WHOLE_ARRAY) вернула: " ,element_2,
           "\nФункция ArrayGetAsSeries(array2) вернула: " ,element_3,
           "\nФункция ArraySetAsSeries(array2;false) вернула: " ,try_1,
           "\nФункция ArrayGetAsSeries(array2) вернула: " ,element_4,
           "\nЦена открытия нулевого бара (т.е. бара с ИНДЕКСОМ 0) равна: " ,element,
           "\nСкрипт выполнялся всего " , GetTickCount ()-Timestart, " миллисекунд, из них: " ,
           MathFloor (( GetTickCount ()-Timestart)/ 1000 ), " секунд " ,(( GetTickCount ()-Timestart)/ 1000 - MathFloor (( GetTickCount ()-Timestart)/ 1000 ))* 1000 ,
           " миллисекунд" ); //печать сообщения на экран
//----------------------------------------------------------------------------------------- 3 -
   return ( 0 );                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -

Sonuç olarak alınan:


Doğal olarak, soru hemen ortaya çıktı: bu durumda, ArrayCopyRates(array1) işlevini kullanarak, mevcut grafiğin çubuklarının verilerini iki boyutlu bir dizi1'e kopyaladım. Bundan sonraki satırda ArrayCopy(array2,array1,0,0,WHOLE_ARRAY) fonksiyonunu kullanarak dizi1 dizisinin verilerini dizi2 dizisine kopyaladım. Ardından ArrayGetAsSeries işlevini kullanarak dizi2 dizisinin bir zaman dizisi dizisi olup olmadığını kontrol ettim. Ve (ekran görüntüsünden de görebileceğiniz gibi) daha önce onu ArraySet etAsSeries işleviyle "işlememiş olmama" rağmen, dizinin hala bir zaman dizisi dizisi olduğu ortaya çıktı.

Soru : neden ilk durumda (önceki soru) Array S etAsSeries işlevi tarafından işlenmesi gereklidir (böylece aranan dizi bir zaman serisi dizisi olarak düzenlenir), bu durumda böyle bir işleme gerekli değildir.

P. S. Sebat için özür dilerim, sadece "tarihte boşluk" kalmaması için tam olarak anlamak istiyorum. Önceki tüm cevaplar için teşekkürler.

 

Anlayamıyorum ya da aptalım....

Teoride 0,3 olmalı ama bir nedenden dolayı 0,00 ....

   Comment ( 3 / 10 );

Ayrıca 0 verir... Peki kesirli sayılar nasıl elde edilir?????

 int start()
  {
double t;
t= 3 / 10 ;
   Comment (t);

   return ( 0 );
  }

aynı sıfır...

Artık hangi tefle atlayacağımı bilmiyorum .......

 
VOLDEMAR :

Anlayamıyorum ya da aptalım....

Teoride 0,3 olmalı ama bir nedenden dolayı 0,00 ....

Ayrıca 0 verir... Peki kesirli sayılar nasıl elde edilir?????

aynı sıfır...

Artık hangi tefle atlayacağımı bilmiyorum .......

4-5 saat boyunca günde 3 kez belgeleri okuyun. Ve ancak o zaman bir tef ile atlayın.

3.0/10.0

 

tahmin edemiyorum neden???

Belki yeterli öğreticiler yapmaya değer???

Yeterli eğitim yapmak olabilir mi???

Bu şeyler yazmak için genel olarak nerede olabilir???

Belki o zaman sorular kaybolur???

Ve sonraki 100500. aptallığa cevap vermek zorunda kalmayacaksınız !!!

Böyle sorular varsa bu okuyan kişinin değil, sizin suçunuzdur!!! Hiçbir yerde tarif etmedin!

Bu yardımda yazılmamış, int'den double'a nasıl dönüştürüleceği yazılmamış.

ancak int'ye double türünde bir değer atarsanız, kesirli kısmın silineceğini söylüyor,

Normal bir insan, şeylerin mantığına göre, bir double'a bir int atarken, sadece belirli sayıda sıfıra sahip bir noktanın ekleneceğine dair mantıklı bir fikir alacaktır ...

Temel olarak, böyle bir şey ....

 
Roger :

Yer değiştirmek

üzerinde


Çok teşekkür ederim, deneyeceğim!
 
VOLDEMAR :

tahmin edemiyorum neden???
Belki yeterli öğreticiler yapmaya değer???
Yeterli eğitim yapmak olabilir mi???


Bu sorular benim için değil. ben bir kullanıcıyım senin gibi.

Bu şeyler yazmak için genel olarak nerede olabilir???

Peki, nerede yazdığını gösterdim.

Belki o zaman sorular kaybolur???

Numara. yok olmayacaklar. Güven bana.

Ve sonraki 100500. aptallığa cevap vermek zorunda kalmayacaksınız !!!
Böyle sorular varsa bu okuyan kişinin suçu değil, sizin suçunuzdur!!! Hiçbir yerde tarif etmedin!

Bu sorular benim için değil. ben bir kullanıcıyım senin gibi.

Bu yardımda yazmıyor, int'den double'a nasıl dönüştürüleceği yazmıyor.
ancak int'ye double türünde bir değer atarsanız, kesirli kısmın silineceğini söylüyor,

Normal bir insan, şeylerin mantığına göre, bir double'a bir int atarken, sadece belirli sayıda sıfıra sahip bir noktanın ekleneceğine dair mantıklı bir fikir alacaktır ...


iyi evet. atama iki yönlü çalışır.

ama mantığını daha fazla dahil etmemişsin.

mantıksal olarak istediğiniz için, aynı anda iki eylem yapamazsınız. Ve önce ikiliye bir sayı atamak gerekiyordu. ve ancak o zaman bu çifti başka bir sayıya bölün. ve sonra bu hatayı fark etmezsiniz. ve böylece onunla karşılaştılar. Ama tam tersi. er ya da geç ona gelecektin.