"Birkaç Ara Gösterge Arabelleği Kullanarak Çok Para Birimli Gösterge Oluşturma" makalesi için tartışma

 

Yeni makale Birkaç Ara Gösterge Arabelleği Kullanarak Çok Para Birimli Gösterge Oluşturma yayınlandı:

FOREX piyasasının küme analizlerine ilgi son zamanlarda arttı. MQL5, döviz çiftlerinin hareket trendlerini araştırmak için yeni olanaklar sunar. MQL5'i MQL4'ten ayıran en önemli özelliği, sınırsız miktarda gösterge arabelleği kullanma olasılığıdır. Bu makalede, çok para birimli göstergesi oluşturma örneği açıklanmaktadır.

Bu, göstergelerin hesaplanmasını tamamlar. Şekil 4-6'da, farklı gösterge türlerine ait birkaç resim gösterilmiştir.

Şekil 4. İndekslere göre RSI

Yazar: Alexey Klenov

 

bu tür göstergelerin bunu da sıralaması yararlı olacaktır

değerlerine bağlı olarak. Eğer böyle bir fonksiyon varsa, bisiklet icat etmemek için lütfen paylaşın.

 
Prival:

Bu tür göstergelerde de bunu sıralamak faydalı olacaktır

değerlerine bağlı olarak. Eğer böyle bir işlev varsa, bisiklet icat etmemek için lütfen paylaşın.

Hazır bir işlevi yok ama taslağını çıkarmak zor olmayacaktır diye düşünüyorum.

19.05.2010

İşte gerçekleşen

Dosyalar:
 

Teşekkür ederim.

Belirtmek istediğim tek şey, senkronizasyon yönteminin her zaman çalışmadığıdır. İşte bir resim. Tırnak içinde 24 saat boyunca delik var, ancak her şey senkronize (((.

Bu çok kötü bir durum. Neden böyle olduğunu anlayamıyorum ve en önemlisi bu konuda ne yapmalıyım?

 
Prival:

Teşekkür ederim.

Belirtmek istediğim tek şey, senkronizasyon yönteminin her zaman çalışmadığıdır. İşte bir resim. Tırnak içinde 24 saattir delik var ama her şey senkronize (((.

Bu çok kötü. Neden bu kadar anlayamıyorum ve en önemlisi bu konuda ne yapmalıyım?


Gösterge 2 tür senkronizasyon kullanır

1 çubuk sayısına göre (grafikte varsayılan olarak 500 çubukluk gerekli geçmişten daha fazla çubuk olmalıdır) bu koşul görünüşe göre yerine getirilmiştir.

2 her bir döviz çiftindeki sıfır çubuğunun açılış zamanına göre - bu koşul da görünüşe göre yerine getirilmiştir.

İkinci senkronizasyon türüne benzer şekilde her çiftteki her çubuğun açılış zamanını kontrol etmek için üçüncü bir senkronizasyon türü eklemeye değer olduğunu düşünüyorum.

Biraz daha özgür olacağım için - bu türü de yapacağım.

 
olyakish:

....

İkinci senkronizasyon türüne benzer şekilde, her çiftteki her çubuğun açılış zamanını kontrol etmek için üçüncü bir senkronizasyon türü eklemeye değer olduğunu düşünüyorum.

Resminizde ve benzerlikte bool init_tf(...) fonksiyonunu yaptım.

//+------------------------------------------------------------------+
//| İlgili döviz çiftlerinin grafiklerinin başlatılması |
//| ve veri senkronizasyon kontrolü|
//+------------------------------------------------------------------+
//| içinde.|
//| mas[] gerekli karakterlerin adlarından oluşan bir dizidir |
//| time_0 - geçerli çubuk zamanı[0]|
//| count_Bars - gerekli çubuk sayısı |
//+------------------------------------------------------------------+
bool init_tf(string &mas[], datetime time_0, int count_Bars) { 
   bool     rez=false;              // başarı bayrağı
   int      copied=0,               // kopyalanan veri sayısı
            counter=0,              // hata sayacı
            tmp_bars=0;             // mevcut çubuk sayısını kontrol etmek için
   datetime tmp_time[1];            // bar süresini kontrol etmek için dizi
   
   f_comment("Devam eden bir senkronizasyon var.");
     
   for(int i=0; i<count_symbol; i++)  {
      //Print("i=",i," ",count_symbol," ",mas[i]);
      tmp_bars=Bars(mas[i],PERIOD_CURRENT);
      if(tmp_bars<count_Bars) { // çubuk sayısını kontrol edin
         Print("i=",i," Yeterli bar yok (", mas[i],"-",fTimeFrameName(_Period),") MaxBars=",MaxBars," > Bars=",tmp_bars);
         counter++;
      }
      ResetLastError();
      copied = CopyTime(mas[i],PERIOD_CURRENT,0,1,tmp_time);
      if(copied < 1) { // kopyalama hatası
         Print("i=",i," Kopyalama Hatası (", mas[i],"-",fTimeFrameName(_Period),") №",_LastError," (",ErrorDescription(_LastError),")");
         counter++;
      }
      if(tmp_time[0]!=time_0) { // zaman eşleşmedi
         Print("i=",i," Zaman senkronizasyonu yok (", mas[i],"-",fTimeFrameName(_Period),") delta ="",(long)(time_0-tmp_time[0])/60,"min");
         counter++;
      }
   }// son for(int i=0; i<k; i++)
   
   if(counter==0) {  // her şey yolunda. hata yok
      rez=true;
      f_comment("Her şey. Tamam.");
   } 
   else f_comment("Senkronizasyon yok."+(string)counter);

   ChartRedraw( );
   return(rez);
}

Şampiyonada olacak 12 çift seçtim. Sadece senkronizasyonu incelemek amacıyla bir gösterge RVI_ALL yaptım. Başlattım. Sonuç.

2010.05.30 16:55:26 RVI_ALL (EURUSD,M1) i= 10 Zaman senkronizasyonu yok ( GBPJPY - M1 ) delta = 1 dk

2010.05.30 16:55:26 RVI_ALL (EURUSD,M1) i= 5 Zaman senkronizasyonu yok ( AUDUSD - M1 ) delta = 1 dk

2010.05.30 16:55:26 RVI_ALL (EURUSD,M1) i= 1 Zaman senkronizasyonu yok ( GBPUSD - M1 ) delta = 1 dk

Bugün Pazar, bu sembollerde hiç çubuk (son çubuk) yok. Bir sonraki tik, sadece Pazartesi günü. Sonra deliksiz bu makale grafiğini hatırladım https://www.mql5.com/tr/articles/1407.

Ve delikler olacak. Olacak. Onlarla bir şekilde mücadele etmeliyiz. Prensip olarak, makalede anlatılanın aynısını yapabilirsiniz. Ama bir sorum var.

Gösterge tek bir grafikte asılı kalıyor. Ve bu sembol üzerinde bir geçmiş takası varsa, bunu öğrenebilirim, prev_calculated sıfırlanacaktır.

Ancak diğer sembollerin bir geçmiş takası olduğunu veya verilerin uzun bir gecikmeyle geldiğini nasıl bilebilirim?

 
Prival:

Ve delikler olacak. Delikler olacak. Bunlarla bir şekilde başa çıkılmalıdır. Prensip olarak, makalede anlatılanın aynısını yapabilirsiniz. Ama bir sorum var.

Gösterge tek bir grafikte asılı kalıyor. Ve eğer bu sembol üzerinde bir geçmiş takası varsa, bunu öğrenebilirim, prev_calculated sıfırlanacaktır.

Ancak diğer sembollerin bir geçmiş değişimi olduğunu veya verilerin uzun bir gecikmeyle geldiğini nasıl bilebilirim?


1 Ya geçmişte bir delik varsa göstergenin çizilmesine izin vermeyin ve deliği "yamalama" anında geçmişi periyodik olarak yoklayın. (Mevcut grafikte yeni bir tik veya bir zamanlayıcı).

2. Veya geçmişteki deliğin yeterince uzak olması koşuluyla göstergeyi yalnızca deliğe kadar çizin.

ve bu işlevi biraz değiştirin

bool init_tf(string &mas[], datetime time_0, int count_Bars, int shift) 
и далее по тексту 
copied = CopyTime(mas[i],PERIOD_CURRENT,shift,1,tmp_time);


Ardından bu işlevi bir döngü içinde çağırın (0'dan shiftbars'a kadar).

Bu durumda

shift

diğer enstrümanlarla senkronizasyon için kontrol ettiğimiz mevcut enstrüman ve TF üzerindeki çubuk konumu olacaktır.

 

Hikayede bir boşluk olduğunu bilmeme imkan yok.

https://www.mql5.com/ru/forum/1111/8747#comment_8747

Tek çıkış yolu zamanı kopyalamak ve tüm dizi boyunca döngü yapmaktır, ancak bu yine bir serseri olabilir, bu bir kısır döngüdür ( ((

Geliştiriciler https://www.mql5.com/tr/articles/1407 kavramını deliksiz grafikler yapmak için değiştirmezlerse, her şeyi senkronize etmenin imkansız olduğu ortaya çıkabilir.

 
Prival:

Hikayede bir boşluk olduğunu bilmeme imkan yok.

https://www.mql5.com/ru/forum/1111/8747#comment_8747

Tek çıkış yolu zamanı kopyalamak ve tüm dizi boyunca döngü yapmaktır, ancak bu yine bir serseri olabilir, bu bir kısır döngüdür ( ((

Geliştiriciler https://www.mql5.com/tr/articles/1407 kavramını deliksiz grafikler yapmak için değiştirmezlerse, her şeyi senkronize etmenin imkansız olduğu ortaya çıkabilir.

Time[] tamponları ile senkronizasyonu kullanın ve hiçbir karışıklık olmayacaktır.

Sadece bir alıntı çağrısına zamana göre bir ön kontrol eşlik etmelidir ve sonra her şey senkronize edilecektir.

Yine de bu yolun kolay olmadığını ve birçok hata olabileceğini kabul ediyorum.

 

Merhaba!

Dolar endeksi formülünün doğruluğu hakkında şüphelerim var, belki de yanlışlar

Lütfen birisi bu formülü ve nasıl ortaya çıktığını daha ayrıntılı olarak açıklayabilir mi?

 


"Dolar endeksi, Neutron tarafından bana nazikçe sağlanan bir formül kullanılarak hesaplanan double türünde bir değerdir."

Neden formüllerden alıntı yapıp başkasının adını referans gösteriyorsun? Kafasında yedi göz mü var? Anlaşılan önce makaleyi okumak, sonra formüllerin yazarlarına sormak gerekiyor? Eğer yazar oysa, o zaman aldığı linki verin.