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

 
Belki yanlış bir şey açıkladım, sadece Moskova saatiyle 16:00'da başlayan m1 m5 m15 m30 h1 h4'teki ilk mumu ve gösterge işaretlerini (örneğin, m15'te dört mum var) işaretlemeniz gerekiyor.
 
Yulia :
Belki yanlış bir şey açıkladım, sadece Moskova saatiyle 16:00'da başlayan m1 m5 m15 m30 h1 h4'teki ilk mumu ve gösterge işaretlerini işaretlemeniz gerekiyor (örneğin, m15'te dört mum var).

Yardım etmek ve yapmak iki farklı şeydir. katılmıyor musun?
 
Vinin :

Dizinin boyutunun belirtilmesi gerekmez mi?


Evet, gerçekten unuttum, çoktan yıprandım. Şimdi dizi dolu, ancak çizgiler hala görüntülenmiyor. Diziler arabelleklere bağlıdır

 #property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue

void init()
        {
         SetIndexBuffer ( 0 , HighMass);
         SetIndexStyle ( 0 , DRAW_LINE , STYLE_SOLID , 1 );
         SetIndexBuffer ( 1 , LowMass);
         SetIndexStyle ( 1 , DRAW_LINE , STYLE_SOLID , 1 );
        }
 
sss2019 :


Evet, gerçekten unuttum, çoktan yıprandım. Şimdi dizi dolu, ancak çizgiler hala görüntülenmiyor. Diziler arabelleklere bağlıdır


Tüm kodu verebilirmisin. Ve sonra sizin için neyin açık olduğunu düşünmek istemezsiniz.
 
Vinin :

Yardım etmek ve yapmak iki farklı şeydir. katılmıyor musun?

Sana tamamen katılıyorum, yardım istedim, iki haftadır onu seçiyorum ve istediğim bir sonuç yok, yani senin seçeneğin de bana uymuyor, peki, bunun için teşekkürler, kendim düşüneceğim .
 

İyi günler... ArrayGetAsSeries işlevi hakkında soru. ArrayGetAsSeries işlevinin nasıl çalıştığını anlamak için bu komut dosyasını yazdı:

 //+------------------------------------------------------------------------------------------+
//|                                                                ArrayGetAsSeries_плюс.mq4 |
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
//------------------------------------ НАЧАЛО START -------------------------------------- 1 -
int start()                                           //функция start
  {                                                   //начало start
   double Timestart= GetTickCount ();                   //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   double array1[];                                   //объявляем массив-приемник (массив, куда будут скопированы данные)
   int element= ArrayCopy (array1,Open, 0 , 0 , WHOLE_ARRAY ); //копируем данные по ценам открытия в пользовательский массив (начиная с нулевого бара)
   int size= ArraySize (array1);                         //устанавливаем количество элементов массива array1
   for ( int i= 0 ;i<= 4 ;i++)                               //цикл по просмотру скопированных значений (первых пяти)
       {                                               //начало for
         Alert ( "Значение цены открытия бара № " ,i, " равно " ,array1[i],
               "\nВремя цены открытия бара № " ,i, ": " , TimeToStr ( iTime ( NULL , 0 ,i),TIME_DATE|TIME_MINUTES)); //cообщение на экран
       }                                                                 //конец for
//----------------------------------------------------------------------------------------- 2 -
   Comment ( "\nФункция ArrayCopy(array1[],Open,0,0,WHOLE_ARRAY) вернула: " ,element,
           "\nФункция ArraySize(array1) вернула: " ,size,
           "\nФункция ArrayGetAsSeries(array1) вернула: " , ArrayGetAsSeries (array1),
           "\nСкрипт выполнялся всего " , GetTickCount ()-Timestart, " миллисекунд, из них: " , MathFloor (( GetTickCount ()-Timestart)/ 1000 ),
           " секунд " ,(( GetTickCount ()-Timestart)/ 1000 - MathFloor (( GetTickCount ()-Timestart)/ 1000 ))* 1000 , " миллисекунд" ); //печать 
           //сообщения на экран
//----------------------------------------------------------------------------------------- 3 -
   return ( 0 );                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -

Komut dosyası, çubuk açılış fiyatlarının dizi-zaman serisini özel bir diziye kopyaladı. Açıkçası: bu özel dizi bir zaman dizisi dizisi olarak düzenlenmiştir, çünkü dizinin öğeleri sondan birinciye doğru dizine eklenir (bu, Alert işlevinin bulunduğu ekran görüntüsüyle kanıtlanmıştır). dördüncü çubuğun açılma zamanını ve fiyatını türetmiştir. Grafikteki bu çubuk dikey bir çizgiyle işaretlenmiştir; ayrıca bu çubuğun açılış fiyatını orada görebilirsiniz ve özellikler penceresinde çubuğun zamanının Ale rt işlevindekiyle aynı olduğunu görebilirsiniz). Ancak ArrayGetAsSeries işlevi 0 değerini döndürür; bu, özel dizinin bir zaman dizisi dizisi (ekran görüntüsünün sol üst köşesi) gibi DÜZENLENMEDİĞİ anlamına gelir.

Soru : Özel dizi bir zaman dizisi dizisi olarak düzenlenmesine rağmen ArrayGetAsSeries işlevi neden 0 döndürdü?

Not: Forumu kirletmemek adına şimdiden cevap için teşekkürler


 
7777877 :
Soru : Özel dizi bir zaman dizisi dizisi olarak düzenlenmesine rağmen ArrayGetAsSeries işlevi neden 0 döndürdü?
Verileri bir sırayla kopyalamış olmanız, dizinin bir zaman serisi olarak düzenlendiği anlamına gelmez.
 
ilunga :
Verileri bir sırayla kopyalamış olmanız, dizinin bir zaman serisi olarak düzenlendiği anlamına gelmez.

Ama mesele şu ki, zaten kopyalanan çubuktan for döngüsünde yeniden üretilen açılış fiyatlarının değerleri, sondan birinciye endekslenir. Ama sonuçta, anladığım kadarıyla bu, dizinin bir zaman serisi olarak düzenlendiği anlamına mı geliyor (yani sondan ilke indeksleme)?

PS FileIsEnding ve FileIsLineEnding işlevleriyle ilgili önceki sorumu yanıtladığınız için teşekkürler

 
7777877 :

Ama mesele şu ki, zaten kopyalanan çubuktan for döngüsünde yeniden üretilen açılış fiyatlarının değerleri, sondan birinciye endekslenir. Ama sonuçta, anladığım kadarıyla bu, dizinin bir zaman serisi olarak düzenlendiği anlamına mı geliyor (yani sondan ilke indeksleme)?

PS FileIsEnding ve FileIsLineEnding işlevleriyle ilgili önceki sorumu yanıtladığınız için teşekkürler

Hayır, bu yalnızca verilerin bir tarih parçasıyla eşleştiği anlamına gelir.

Örneğin, bunları manuel olarak da sürebilirsiniz. Veya bir metin dosyasından yazın. Veya kasada alın.


Sonuçta, "1.25 1.16 1.73 1.35" bazı koşullu verileri kullanarak bile, yıllar önce bazı para birimleri için tarihe girebiliriz. Ancak bu, bir zaman serisi dizisi düzenlediğimiz anlamına gelmez.

 

Soruyu çoğalttığım için özür dilerim, ancak çözene kadar aşağıdaki örnekleri çalıştıramam.

Lütfen çözmeme yardım et.

Bir sipariş açmak için basit bir komut dosyası yazdı (MQL4 eğitiminden).

 int start()                                   // Спец. функция start()
  {                                           // Открытие BUY
   OrderSend ( Symbol (),OP_BUY, 0.1 ,Ask, 3 ,Bid- 15 * Point ,Bid+ 15 * Point );
   Alert ( GetLastError ());
   return ;                                   // Выход из start()
  }

Bu örnekte 4 karakterli takımlar için kod verilmiştir.

Noktadan sonra 5 rakam olan bir şirkette hesabım var.

Lütfen 5 karakterlik kodu nasıl yeniden oluşturacağınızı doğru bir şekilde yazın ve komut dosyasını çalıştırırken neden 4109 (ticarete izin verilmiyor) hatası veriyor?