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

 
Alexey Viktorov :

Eh, teşekkürler... Altı yıl önce kendimi bile gördüm... Ben de şimdi senin gibiydim. Düşünmeden, uygunsuz bir şekilde tavsiye verdi.

Şablona gelince: Şablonda bir gösterge varsa, ancak EA yoksa, şablon EA olmadan yüklenecektir... Ve şablonun bir EA'sı varsa??? Şablona göre yüklenen Expert Advisor'ın şablonu uygulaymayacağından ve dolayısıyla terminali döndürüp asmayacağından emin misiniz?

Takmıyorum - her şey bir patlama ile çalışıyor!

 
SanAlex :

Takmıyorum - her şey bir patlama ile çalışıyor!

Benim gibi tembel olma. Bu tür manipülasyonlarla bir video yapın. :-)))

 
Vitaly Muzichenko :

Şimdi MT4'te "SmoothedMAOnBuffer()" yapısında hata ayıklamaya geldim.

Sorun ne, anlamıyorum

Yüz kere yazdım - işlevi döngüden çıkarın.

Bu saçmalık yerine:

 ArrayResize (buff, counter);
   for (i = 0 ; i < counter; i++)
      Array_1[i] = 2.0 * ma_1(i, val_1) - ma_1(i, a);
   for (i = 0 ; i < counter - a; i++) {
     // buf_3[i] = iMAOnArray(Array_1, 0, period, 0, MODE_SMMA, i); // Так индикатор работает
      SmoothedMAOnBuffer(counter, prev_calculated, i, period, Array_1, buff); Совсем не работает, но и ошибок в журнале нет
      buf_3[i] = buff[ 0 ]; ???
   }
   for (i = counter - a; i > 0 ; i--) {
      Array_2[i] = Array_2[i + 1 ];

şöyle yaz :

 ArrayResize (buff, counter);
   for (i = 0 ; i < counter; i++)
      Array_1[i] = 2.0 * ma_1(i, val_1) - ma_1(i, a);

if (SmoothedMAOnBuffer(counter, prev_calculated, i, period, Array_1, buff)== 0 )
   return 0 ;

for (i = counter - a; i > 0 ; i--) {
   Array_2[i] = Array_2[i + 1 ];

Size söylüyorum - bu işlevi çağırmak, Array dizisindeki verileri düzgünleştirmenin tam bir döngüsüdür. Bu dizinin düzleştirilmiş verileri çıktıdaki buff dizisinde olacaktır - ihtiyacınız olan düzleştirilmiş verileri ondan alın.

 
Alexey Viktorov :

Benim gibi tembel olma. Bu tür manipülasyonlarla bir video yapın. :-)))

Profilini daha önce ziyaret etmediğim için üzgünüm. Çok güzel kodlarınız var. Bu gerçekten hoşuma gitti. https://www.mql5.com/ru/code/16396

EURGBPH1

TralingLine
TralingLine
  • www.mql5.com
Виртуальный Stop Loss или Trailing Stop.
 
Artyom Trishkin :

Yüz kere yazdım - işlevi döngüden çıkarın.

Bu saçmalık yerine:

şöyle yaz :

Size söylüyorum - bu işlevi çağırmak, Array dizisindeki verileri düzgünleştirmenin tam bir döngüsüdür. Bu dizinin düzleştirilmiş verileri çıktıdaki buff dizisinde olacaktır - ihtiyacınız olan düzleştirilmiş verileri ondan alın.

Teşekkürler, işe yaradı.

SmoothedMAOnBuffer(rates_total, prev_calculated, count , period, Array_1, buf_3 );

Nasıl çalışır - Henüz anlamadım, şimdi anlayacağım.

 
Artyom Trishkin :

Yüz kere yazdım - işlevi döngüden çıkarın.

Bu saçmalık yerine:

şöyle yaz :

Size söylüyorum - bu işlevi çağırmak, Array dizisindeki verileri düzgünleştirmenin tam bir döngüsüdür. Bu dizinin düzleştirilmiş verileri çıktıdaki buff dizisinde olacaktır - ihtiyacınız olan düzleştirilmiş verileri ondan alın.

Hepsini uygulayamadım, 4 saatten fazla harcadım.

İlk başlangıçta doğru görüntüleniyor, ardından güncelleme yok - donuyor, standart olanla iyi çalışıyor

   double Array_1[];
   double Array_2[];
   int i= 0 ;
   int period = ( int ) MathFloor ( MathSqrt (a));
   int val = ( int ) MathFloor (a / 1.9 );
   int bars=rates_total;
   int counter = bars - prev_calculated + a + 1 ;
   if (counter > bars)
      counter = bars;
   ArrayResize (Array_1, counter);
     ArraySetAsSeries (Array_1, true );
   ArrayResize (Array_2, counter);
     ArraySetAsSeries (Array_2, true );

   for (i = 0 ; i < counter; i++)
      Array_1[i] = 2.0 * ma_1(i, val) - ma_1(i, a);
   //  for(i = 0; i < counter - a; i++)
   //  buf_3[i] = iMAOnArray(Array_1, 0, period, 0, MODE_SMMA, i);
   SmoothedMAOnBuffer( rates_total, prev_calculated, prev_calculated, period , Array_1, buf_3); // Где-то здесь не правильно вписаны параметры

---

Ne girilmelidir?

MT5'te genellikle neyin görüntülendiği net değildir.

Dosyalar:
test.mq4  13 kb
 
Vitaly Muzichenko :

Hepsini uygulayamadım, 4 saatten fazla harcadım.

İlk başlangıçta doğru görüntüleniyor, ardından güncelleme yok - donuyor, standart olanla iyi çalışıyor

---

Ne girilmelidir?

MT5'te genellikle neyin görüntülendiği net değildir.

Sonunda ne elde etmek istediğini kelimelerle söyleyebilir misin?

Göstergeniz, insanlara nasıl yapılmayacağını göstermek için ihtiyaç duyduğunuz şekilde oluşturulmuştur :)

Çekilebilir ve hesaplanmış arabelleklerin tümü karıştırılır. Uzlaşma sıradaki son olmalıdır - ne yazık ki bunları rastgele bir sırayla karıştıramazsınız.

Beş için çalışmaz, çünkü beşteki ma_1() işlevi MA değerini değil tutamacı döndürür

SmoothedMAOnBuffer() işlevinde, dizideki önemli verilerin başlangıcı yerine, prev_calculated - neden? Oraya en az 0 ve maksimum olarak - Array_1'de depolanan MA verilerinin hesaplama dönemine bağlı olarak hesaplanan değer - iyi, en az süre aktarmanız gerekir.

Hangi rengi çizeceğiniz seçim bloğunda, mantıksal bir hatanız var - arabelleklerin üzerine yazıyorsunuz - arabellek doldurmayı parantezlerden boş bir değerle çıkardınız. Sizde koşul kontrol edilir ve bunun doğru olarak yapılması gerekir - aptalca parantezler için çıkarılır. Yani, her zaman yürütülür. Bu, yerleri net olmadığında parantez yerleştirme alışkanlığının bir sonucudur.

Array_1 ve Array_2 - neden arabellekler hesaplanmıyor?

Genel olarak, birçok soru var.

Sizde bir değişkenin değeri kesin olarak belirlenir. Neden her tikte val değişkeninin değerini hesaplamalısınız?

OnInit() içinde periyot a ve val ile hesaplanan iki MA için iki hesaplama tamponu yapın. Bu tamponlardan ve değerleri alın - o zaman her iki platform için de çalışacaktır.

 
Artyom Trishkin :

Sonunda ne elde etmek istediğini kelimelerle söyleyebilir misin?

Göstergeniz, insanlara nasıl yapılmayacağını göstermek için ihtiyaç duyduğunuz şekilde oluşturulmuştur :)

Çekilebilir ve hesaplanmış arabelleklerin tümü karıştırılır. Hesaplananlar sıradaki son olmalıdır - ne yazık ki bunları rastgele bir sırayla karıştıramazsınız.

Beş için çalışmayacaktır, çünkü beşteki ma_1() işlevi MA değerini değil, tanıtıcıyı döndürür.

SmoothedMAOnBuffer() işlevinde, dizideki önemli verilerin başlangıcı yerine, prev_calculated - neden? Oraya en az 0 ve maksimum olarak - Array_1'de depolanan MA verilerinin hesaplama dönemine bağlı olarak hesaplanan değer - iyi, en az süre aktarmanız gerekir.

Hangi rengi çizeceğiniz seçim bloğunda, mantıksal bir hatanız var - arabelleklerin üzerine yazıyorsunuz - arabellek doldurmayı parantezlerden boş bir değerle çıkardınız. Sizde koşul kontrol edilir ve bunun doğru olarak yapılması gerekir - aptalca parantezler için çıkarılır. Yani, her zaman yürütülür. Bu, yerleri net olmadığında parantez yerleştirme alışkanlığının bir sonucudur.

Array_1 ve Array_2 - neden arabellekler hesaplanmıyor?

Genel olarak, birçok soru var.

Sizde bir değişkenin değeri kesin olarak belirlenir. Neden her tikte val değişkeninin değerini hesaplamalısınız?

OnInit() içinde periyot a ve val ile hesaplanan iki MA için iki hesaplama tamponu yapın. Bu tamponlardan ve değerleri alın - o zaman her iki platform için de çalışacaktır.

Genelde bir şey demez, çözümü bilse yazmaz.

Gösterge benim değil, iMAOnArray() öğesinin altına bakmadım bile, tüm görev yalnızca iMAOnArray() öğesini bir şeyle değiştirmek.

Nasıl olması gerektiğine dair çalışan bir örnek verebilir misiniz?

Teşekkür ederim!

PS Kulplu MT5 için, sipariş
Dosyalar:
max.mq5  14 kb
 
Vitaly Muzichenko :

Nasıl olması gerektiğine dair çalışan bir örnek verebilir misiniz?

Neyin çalışma örneği? Dörtten gösterge, beşte çalışıyor mu? Ardından dörtten tam olarak çalışan bir gösterge verin.

Veya SmoothedMAOnBuffer() işleviyle nasıl çalışılacağına dair bir örnek?

 
Artyom Trishkin :

Neyin çalışma örneği? Dörtten gösterge, beşte çalışıyor mu? Ardından, dördünden tam olarak çalışan bir gösterge verin.

Veya SmoothedMAOnBuffer() işleviyle nasıl çalışılacağına dair bir örnek?

mt4 ile çalışan bir örnek, standart iMAOnArray güncelleniyor, ancak SmoothedMAOnBuffer ilk çalıştırmada iyi durumda ve ardından güncelleme yok

SmoothedMAOnBuffer() işleviyle çalışma örneğine ihtiyacınız var  

Dosyalar:
test.mq4  17 kb
Neden: