Hangi durumlarda robot kodunun bir kısmını göstergede tutmak mantıklıdır? - sayfa 23

 
Vinin :

Bağlantı kopması durumunda EMA değerleri yanlış alınır. En son hesaplanarak alınır. Ama bu doğru değil. Sonuç olarak, işlev hatalı bir şekilde n çubuk üzerinde değil, çok daha fazla sayıda çubuk üzerinde çalışacaktır. Tabii ki, değerlerini kaydetmek için

Görünüşe göre koda girmemişler. yorum yaptı:

 // Комментирую для такого случая. Крайний известный M1-бар был в 14:00.
// Произошел разрыв связи на 10 минут после чего происходит вызов start.
void start()
{
  EMA = GetEMA();
  
   return ;  
}

double GetEMA()
{
   static int PrevTime = 0 ;
  
   if (PrevTime == Time[ 0 ]) // Выпонится, когда история за крайние 10 минут подгрузится.
                           // Если истории не было, например, сутки, то может произойти ошибка.
                           // Но мы говорим про РЕАЛ, т.е. адекватность человека.
                           // Т.к. если нет связи сутки, советник оставлять нельзя.
     return (EMA);

   int i = iBarShift( Symbol (), Period (), PrevTime) - 1 ; // Здесь мы получим номер бара в 14:01.

  PrevTime = Time[ 0 ]; // запомним текущее время 14:10
  
// Производим расчет текущего EMA с учетом полученных 10 баров.
   while (i >= 0 )
  {
    EMA = EMA * Alpha + ( 1 - Alpha) * GetPrice(i);
    
    i--;
  }
  
   return (EMA);
} 
 
Hata ve yeterlilikten bahsetmişken, bunun sadece "hepsi bir arada" için değil, "göstergeli" için de uygulanabilirliğini kastettim.
 
hrenfx :
Hata ve yeterlilikten bahsetmişken, bunun sadece "hepsi bir arada" değil, "göstergeli" için de uygulanabilirliğini kastetmiştim.


Konuşma çalışmıyor, görünüşe göre birileri biraz eleştiri duymak istemiyor.

Bu iş parçacığının işe yaramaz olduğu sonucuna varılabilir

 
Vinin :


Konuşma çalışmıyor, görünüşe göre birileri biraz eleştiri duymak istemiyor.

Bu konunun gereksiz olduğu sonucuna varabilirsiniz.

Dinle, çekinme. Hatta sizin için kodu yorumladım. Sevilmeyecek ne var? Verilen 10 dakikalık boşluk örneğinin hataya yol açacağını düşünüyor musunuz? Kendi adına, her şeyi belirtti. Hatanın nerede olduğunu gördüğünüz anlamına geldiğini belirtirsiniz. Bu yüzden tembel olmayın, sadece burayı gösterin. Onu zaten tanımladınız.

Not: Zaten büzülen ikinci kişisiniz. Ve anlayamayacağım şeyi söyleme. Hatanın nerede olduğunu açıkça gösterin. Eğer yanılıyorsam, kabul edeceğim. Benden uzaklaşmayacak.

 
hrenfx :

Dinle, çekinme. Hatta sizin için kodu yorumladım. Sevilmeyecek ne var? Verilen 10 dakikalık boşluk örneğinin hataya yol açacağını düşünüyor musunuz? Kendi adına, her şeyi belirtti. Hatanın nerede olduğunu gördüğünüz anlamına geldiğini belirtirsiniz. Bu yüzden tembel olmayın, sadece burayı gösterin. Onu zaten tanımladınız.

Not: Zaten büzülen ikinci kişisiniz. Ve anlayamayacağım şeyleri söyleme. Hatanın nerede olduğunu açıkça gösterin. Eğer yanılıyorsam, kabul edeceğim. Benden uzaklaşmayacak.


Bazı insanlar sadece düşünmek istemiyor. Zorlayamam ve yapmak da istemiyorum.
 
Vinin :

Bazı insanlar sadece düşünmek istemiyor. Zorlayamam ve yapmak da istemiyorum.


Lanet olsun, henüz kimse açıklamadı. Yine su. Birkaç kişi (MT4+MQL4 çok iyi biliyor) kodumun bir hata ile çalışacağını söylüyor, ancak somut bir örnek argüman veremiyorlar (birkaç kez sordum). Ve bu sadece 10 satır kod.

Belki Tamsayı kodunu ve kodumu ayrı bir iş parçacığına taşıyın ve MQL4 programcılarına kodda neyin yanlış olduğunu sorun. Ve siz, moderatör olarak, sel olmadığından emin olun. Ve sonra bu dalda o kadar çok harf var ki, kod bile bulunamıyor.

MQL4 topluluğu için faydalı olacağını düşünüyorum.

 
hrenfx :

Dinle, çekinme. Hatta sizin için kodu yorumladım. Sevilmeyecek ne var?

Önce fiyat gelecek. Sonra barlar. Çubuklar geldiğinde "tip" işlenirler, ancak aslında işleme sırasında yoklukları nedeniyle dikkate alınmazlar.

Bunu ikinci kez tekrarlıyorum.

 
TheXpert :

Önce fiyat gelecek. Sonra barlar. Çubuklar geldiğinde "tip" işlenirler, ancak aslında işleme sırasında yoklukları nedeniyle dikkate alınmazlar.

Evet, fiyat önce gelir ama yeni bir bar olana kadar if (PrevTime == Time[0]) koşulu her zaman tetiklenir

Son 10 dakika boyunca çubukları değiştirmeden yeni bir çubuk belirirse, göstergeli EA'nın geçmiş takasından önce yanlış EMA değerleri alacağını anlıyorsunuz. Sonuç olarak, danışman her şeyi yapacaktır.
 
hrenfx :


Lanet olsun, henüz kimse açıklamadı. Yine su. Birkaç kişi (MT4+MQL4 çok iyi biliyor) kodumun bir hata ile çalışacağını söylüyor, ancak somut bir örnek argüman veremiyorlar (birkaç kez sordum). Ve bu sadece 10 satır kod.

Belki Tamsayı kodunu ve kodumu ayrı bir iş parçacığına taşıyın ve MQL4 programcılarına kodda neyin yanlış olduğunu sorun. Ve siz, moderatör olarak, sel olmadığından emin olun. Ve sonra bu dalda o kadar çok harf var ki, kod bile bulunamıyor.

MQL4 topluluğu için faydalı olacağını düşünüyorum.


Çalışır bir algoritmanın mantığını verdim. Yardım etmedi. geçemedim üzgünüm
 
hrenfx :
Evet, fiyat önce gelir, ancak yeni bir çubuk oluşana kadar if (ÖncekiZaman == Zaman[0]) koşulu her zaman tetiklenir
Hayır, fiyat zaten yeni çubukta olacak. Bu, terminali açtığınızda mükemmel bir şekilde görülebilir. Başlangıçta, çubuk bir noktaya benziyor.