"MQL5'te 20 Alım Satım Sinyali" makalesi için tartışma - sayfa 4

 

Makale için yazara teşekkürler!

1CMaster'ın önerdiği şeyi yapmayın, bu sadece saçmalık.

Başka bir şey yapın, grafiğe dikey bir çizgi koyun, hangi göstergelerin mevcut durumu değil, bu anın durumunu (dikey çizgi nerede) gösterdiğini hareket ettirin?

 

Kod iyi bir değere sahip olabilir ancak bazı göstergeler gereksizdir:

BB ve Standart Sapma Kanalı - aynı şey;

Fiyat, Donchian ve Gallagher Kanalları - aynı şey;

Her neyse, makale için teşekkürler...

Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Object Properties - Documentation on MQL5
 

Timsah sinyali oluşturma hatası

.....
      if(CopyBuffer(h_al,0,0,2,al1_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,1,0,2,al2_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,2,0,2,al3_buffer)<2)
         return(0);
      if(!ArraySetAsSeries(al1_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al2_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al3_buffer,true))
         return(0);
     }
//--- koşulu kontrol edin ve sig için değer ayarlayın
   if(al3_buffer[1]>al2_buffer[1] && al2_buffer[1]>al1_buffer[1])
      sig=1;
   else if(al3_buffer[1]<al2_buffer[1] && al2_buffer[1]<al1_buffer[1])
      sig=-1;
   else sig=0;

//--- işlem sinyalini döndürür
   return(sig);
  }


Bu tamponların kopyalanması, gösterge çizgilerinin kayması dikkate alınarak gereklidir, ancak burada gerekli değildir.

İkincisi, yalnızca bir çubuk karşılaştırılıyorsa neden iki gösterge değerini kopyalayın, yani her tampon (çizgi) için bir değer yeterlidir.

AO'dan gelen sinyal: çok fazla veri de kopyalanır (analize katılmazlar).

     if(CopyBuffer(h_ao,1,0,20,ao_buffer)<20)
         return(0);
      if(!ArraySetAsSeries(ao_buffer,true))
         return(0); 

Ve makalenin başında, çıngırağı kaldırmak için sıfır değil, geçmişteki ilk çubuğu analiz edeceğimiz söylendi, neden sıfır çubuğunu kopyalayalım?

Kaynak tasarrufu yapmıyoruz ....

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 
olyakish:

Timsah sinyali oluşturma hatası


Bu tamponların kopyalanması, gösterge çizgilerinin kayması dikkate alınarak gereklidir, ancak burada gerekli değildir.

İkincisi, yalnızca bir çubuk karşılaştırılıyorsa neden iki gösterge değerini kopyalayın, yani her tampon (çizgi) için bir değer yeterlidir.

AO'dan gelen sinyal: çok fazla veri de kopyalanır (analize katılmazlar).

Ve makalenin başında, çıngırağı kaldırmak için sıfır değil, geçmişteki ilk çubuğu analiz edeceğimiz söylendi, neden sıfır çubuğunu kopyalayalım?

Kaynak tasarrufu yapmıyoruz ....



Her şeyden önce, yardımda açıkça yazılmıştır.

Необходимо помнить, что смещение линии является чисто визуальным для отображения и значения в индикаторном буфере хранятся без смещения. 
При получении значений буфера функцией CopyBuffer() значение смещения никакого эффекта иметь не будет.

İkinci olarak, veri kopyalamada bazı hatalar yapmış olabilirim, ancak bu görevin ana noktasını etkilemez. Makalenin amacı, göstergelerin ve verilerin nasıl doğru bir şekilde ele alınacağını göstermektir.

 

Bu arada, ben şahsen böyle bir yapı kullanıyorum, bu durumda işlevden gelen veriler doğrudan ticaret sorgusuna aktarılabilir.

ENUM_ORDER_TYPE ind_01()
  {
   ENUM_ORDER_TYPE sig=WRONG_VALUE;

   if(IND01_handle==INVALID_HANDLE || IND01_handle==0)
     {
      IND01_handle=iAC(_Symbol,TF_01);
      return(WRONG_VALUE);
     }
   else
     {
      if(CopyBuffer(IND01_handle,1,0,AC_shift+3,IND01_buffer1)<AC_shift+3) return(WRONG_VALUE);
      if(!ArraySetAsSeries(IND01_buffer1,true)) return(WRONG_VALUE);

      if(CopyBuffer(IND01_handle,0,0,AC_shift+1,IND01_buffer2)<AC_shift+1) return(WRONG_VALUE);
      if(!ArraySetAsSeries(IND01_buffer2,true)) return(WRONG_VALUE);
     }

   if(IND01_buffer2[AC_shift]>0.0 && IND01_buffer1[AC_shift]==0 && IND01_buffer1[AC_shift+1]==0)sig=ORDER_TYPE_BUY;
   else if(IND01_buffer2[AC_shift]<0.0 && IND01_buffer1[AC_shift]==0 && IND01_buffer1[AC_shift+1]==0 && IND01_buffer1[AC_shift+2]==0)sig=ORDER_TYPE_BUY;
   else if(IND01_buffer2[AC_shift]<0.0 && IND01_buffer1[AC_shift]==1 && IND01_buffer1[AC_shift+1]==1)sig=ORDER_TYPE_SELL;
   else if(IND01_buffer2[AC_shift]>0.0 && IND01_buffer1[AC_shift]==1 && IND01_buffer1[AC_shift+1]==1 && IND01_buffer1[AC_shift+2]==1)sig=ORDER_TYPE_SELL;
   else sig=WRONG_VALUE;

   return(sig);
  }
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - Документация по MQL5
 
sergey1294:

Her şeyden önce, yardımda açıkça yazılmıştır

İkinci olarak, veri kopyalamada bazı hatalar yapmış olabilirim, ancak bu görevin ana noktasını etkilemez. Makalenin amacı, göstergelerin ve verilerin nasıl doğru bir şekilde ele alınacağını göstermektir.

Evet, bu doğru görsel, ancak bir anlaşmaya girerken görsel değere odaklanıyoruz ve terminalin hafızasında nasıl yattıklarına değil, bu yüzden bunu dikkate almamız gerekiyor.

Timsah için doğru yol 13'e 8, 8'e 5, 5'e 3'tür (standart değerler).

int TradeSignal_17()
  {
   int sig=0;

   if(h_al==INVALID_HANDLE)
     {
      h_al=iAlligator(Symbol(),Period(),13,0,8,0,5,0,MODE_SMMA,PRICE_MEDIAN);
      return(0);
     }
   else
     {
      if(CopyBuffer(h_al,0,8,2,al1_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,1,5,2,al2_buffer)<2)
         return(0);
      if(CopyBuffer(h_al,2,3,2,al3_buffer)<2)
         return(0);
      if(!ArraySetAsSeries(al1_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al2_buffer,true))
         return(0);
      if(!ArraySetAsSeries(al3_buffer,true))
         return(0);
     }
//--- koşulu kontrol edin ve sig için değer ayarlayın
   if(al3_buffer[1]>al2_buffer[1] && al2_buffer[1]>al1_buffer[1])
      sig=1;
   else if(al3_buffer[1]<al2_buffer[1] && al2_buffer[1]<al1_buffer[1])
      sig=-1;
   else sig=0;

//--- işlem sinyalini döndürür
   return(sig);
  }
 
olyakish:

Evet, bu doğru bir görsel, ancak bir anlaşmaya girerken görsel değere odaklanıyoruz, terminal belleğinde oldukları şekle değil, bu yüzden bunu dikkate almamız gerekiyor.

Timsah için doğru yol 13'e 8, 8'e 5, 5'e 3'tür (standart değerler).

Söylemeyeceğim, ancak herkesin timsahı bir ofset ile kullandığını sanmıyorum. Yani bu durumda bir hata yok. Ofsete ihtiyacınız vardı eklediniz, ihtiyacı olan çelik de ekleyebilir. Bir kez daha tekrarlayacağım, makalenin amacı göstergelerin ve verilerinin nasıl doğru bir şekilde ele alınacağını göstermektir ve bunları ne kadar ve ne miktarda alacağınız her bireyin meselesidir.
 
sergey1294:
Bunu belirtmeyeceğim ama herkesin ofset aligatör kullandığını sanmıyorum. Yani bu durumda bir hata yok. Ofsete ihtiyacınız vardı, eklediniz ve ihtiyacı olan çelikler de ekleyebilir. Bir kez daha tekrar ediyorum, makalenin amacı göstergelerin ve verilerinin nasıl doğru bir şekilde ele alınacağını göstermektir ve bunların ne kadar ve ne miktarda alınacağı her bireyin kendi meselesidir.

Referans...

Teknik Gösterge Alligator, fraktal geometri ve doğrusal olmayan dinamikleri kullanan Denge Çizgilerinin (Hareketli Ortalamalar) bir kombinasyonudur.

  • Mavi çizgi (Timsahın Çenesi), grafiği oluşturmak için kullanılan zaman diliminin Denge Çizgisidir (13 dönemlik düzleştirilmiş hareketli ortalama, 8 çubuk geleceğe kaydırılmıştır );
  • Kırmızı çizgi (Timsahın Dişleri), bir büyüklük sırası daha düşük anlamlı bir zaman dilimi için Denge Çizgisidir (8 dönemlik düzleştirilmiş hareketli ortalama, 5 çubuk geleceğe kaydırılmıştır );
  • Yeşil çizgi (Timsah Dudakları), bir başka büyüklük sırası daha düşük olan anlamlı bir zaman dilimi için Denge Çizgisidir (5 dönemlik düzleştirilmiş hareketli ortalama 3 çubuk geleceğe kaydırılmıştır ).


Anahtar kelimeler kalın yazılmıştır.

Kodunuzun sonucu ortalamaların analizidir

Önerdiğim kodun sonucu timsah çizgilerinin analizidir.

 
Bunlar öğrenmek için gerçekten faydalı, teşekkürler.
 
Benim gibi yeni başlayanlar için çok faydalı. teşekkürler.