MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1450

 
Merhaba! Soru şu:
Bir martin ile bir ızgara yapıyorum, ancak sırayla değil, genel olarak (tüm siparişler ve ızgaralar, sinyaller alındıkça açılır ve sırayla değil)! Bir sorunla karşılaştım .... bir sipariş veya ızgarası tetiklendiğinde, her şey yolunda gidiyor, ancak bir sipariş veya ızgarası açıldığında ve aynı anda (veya daha sonra) başka bir sipariş ve ızgarası açıldığında, sonra martin ilk ızgaraya devam etmeye başlar! Sorun ne olabilir?
 
Artyom Trishkin :

İyi. Ama sadece boş zamanlarımda bakabilirim - iş, ev, aile, kedi ve çocuklar / torunlar ... Kayınvalide, evet ...

Evet, kediler...

Bugün yavru yapmak için bir yere gittim.

İskoç güzeli, sırt üstü uyumayı seven :)

 
Artyom Trishkin :

Pekala, koda bakın - Vitaly doğrudan gönderdi

Sorumun Vitaly'nin koduyla hiçbir ilgisi yoktu. Şimdi kendim anladım ... kütüphanedeki kodun yeniden hesaplama derinliğini kontrol ettiği ortaya çıktı. Yani, ilk çalıştırmada, tüm arabellek yeniden hesaplanır ve sonraki çalıştırmalarda yalnızca gerekli miktar ... Sizden tam olarak duymak istediğim şey buydu. İşte bu kadar tembelim. Sormak, kendin bulmaktan daha kolaydır… Ama bazen………… zorunda kalırsın.

 
Alexey Viktorov :

Sorumun Vitaly'nin koduyla hiçbir ilgisi yoktu. Şimdi kendim anladım ... kütüphanedeki kodun yeniden hesaplama derinliğini kontrol ettiği ortaya çıktı. Yani, ilk çalıştırmada, tüm arabellek yeniden hesaplanır ve sonraki çalıştırmalarda yalnızca gerekli miktar ... Sizden tam olarak duymak istediğim şey buydu. İşte bu kadar tembelim. Sormak, kendin bulmaktan daha kolaydır… Ama bazen………… zorunda kalırsın.

Yani Vitaly'nin kodunda, Güvenlik Konseyi'nin hakkında sorduğunuz bu işlevi kopyalandı - ve her şey orada açıkça görülüyor - sorunuzun cevabını anlamak için bir bakış yeterli.

 
Artyom Trishkin :

Yani Vitaly'nin kodunda, Güvenlik Konseyi'nin hakkında sorduğunuz bu işlevi kopyalandı - ve her şey orada açıkça görülüyor - sorunuzun cevabını anlamak için bir bakış yeterli.

Orijinalinde ne tür bir teneke olduğunu gördün mü?

 
Vitaly Muzichenko :

Orijinalinde ne tür bir teneke olduğunu gördün mü?

Pek karşılaştırmadı. Orada, bence, her iki dosyada da teneke. Ve mantık hiç net değil - koşul boş olduğunda ve boş bir değerle dolum tamponu koşulun parantezlerinden çıkarıldığında. Şey .., benim işim ilk beşin altında yapmak. Ve orada nasıl çalışıyor - olduğu gibi olmasına izin verin

 
Artyom Trishkin :

Pek karşılaştırmadı. Orada, bence, her iki dosyada da teneke. Ve mantık hiç net değil - koşul boş olduğunda ve boş bir değerle dolum tamponu koşulun parantezlerinden çıkarıldığında. Şey .., benim işim ilk beşin altında yapmak. Ve orada nasıl çalışıyor - olduğu gibi olmasına izin verin

Benim görevim, iMAOnArray'in nasıl değiştirileceğini tam olarak bu kodda anlamak.

Yani, mevcut kodda mümkün olduğunca az değişiklik yapın ve üzerinde yapın
 
Artyom Trishkin :

Yani Vitaly'nin kodunda, Güvenlik Konseyi'nin hakkında sorduğunuz bu işlevi kopyalandı - ve her şey orada açıkça görülüyor - sorunuzun cevabını anlamak için bir bakış yeterli .

Eh, yakaladın ... Nasıl olduğunu bilmiyorum. Tüm kodu anlayarak iyice gözden geçirmem gerekiyor.

 
Vitaly Muzichenko :

Benim görevim, iMAOnArray'in nasıl değiştirileceğini tam olarak bu kodda anlamak.

Yani, mevcut kodda mümkün olduğunca az değişiklik yapın ve üzerinde yapın

İşte bu konuyu anlamaya çalışırken böyle bir durum görüyorum.

Kodunuz böyle diyor

buf_3[i] = iMAOnArray(Array_1, 0 , per, 0 , MODE_SMMA , i);

ve belgelerde

 double   iMAOnArray( 
   double        array[],           // массив 
   int            total,             // количество элементов 
   int           ma_period,         // период 
   int           ma_shift,         // сдвиг средней 
   int           ma_method,         // метод усреднения 
   int           shift             // сдвиг 
   );
iMAOnArray

Toplam

[içinde] Hesaplanacak öğe sayısı. 0, dizinin tüm öğeleri anlamına gelir .

İşlev her çağrıldığında, tüm dizinin yeniden hesaplandığı ortaya çıktı. Artyom'a sorduğum şey buydu... Ama mql5'te hızlanma için her şeyin sağlandığı, mql4'te ise kendiniz halletmek zorunda olduğunuz ortaya çıktı. Ve hiçbir yerde doğru şekilde nasıl organize edileceğine dair herhangi bir bilgi göremiyorum.


Minimum değişiklikle değişikliğe gelince, yanılıyorsunuz. Algoritmayı alıp tekrar yapmak daha kolay.

 

Merhaba, lütfen anlamama yardım edin...

   HighForFutureSession= MathMax (high[rates_total- 1 ],high[rates_total- 2 ]);

MathMax işlevi , maksimum iki sayısal değer döndürür, yani. -1 ve -2 çubuk farkıyla high[rates_total] iki özdeş diziden maksimum sayısal değeri döndürdüğü ortaya çıktı?

Basit bir deyişle: ilk dizi 12345 ve ikinci 1234 dizisinde, fonksiyon 5?