Basit fiyat yapılarını MKL4'ten MKL5'e aktarmak için bir algoritma yazıyorum, MKL4 kodunu MKL5 stokastik masd ve rsai'ye kopyalama örneklerine, MKL4 verilerine erişmenin ana yöntemleri orada kullanılıyor.
yakında olacak, ne olmalı
Şimdi iMaOnArrau işleviyle mücadele ediyorum, çünkü MT5'te özel dizilerden en basit hareketli ortalama yöntemlerini almak sağlanmamıştır.
Kütüphaneleri tüm teknik araçlara genişleteceğim, neredeyse tüm algoritmaları biliyorum
Aptal olduğum bir şey ... Sadece nasıl yazacağımı bulamıyorum ...
Bu kod var:
Ardından, i-inci ile j-inci arasındaki çubuklar arasında minimum Düşük olan çubuğun indeksini almam gerekiyor.
ArrayMinimum işlevini kullanmaya çalışıyorum.
int k=ArrayMinimum(rates.low,i,j-i+1); - doğru değil
int k=ArrayMinimum(oranlar[].düşük,i,j-i+1); - doğru değil
Nasıl doğru olacak?
Doğrudan erişim işlevlerini kullanın, MqlRates bir "yapılar" dizisidir ve burada bir Düşük dizisine ihtiyacınız vardır, burada hemen Yüksek için bir örnek verilmiştir.
Опорные точки Pivot без использования объектов строятся по всей доступной истории. Пять вариантов расчета. Три варианта построения: дневной, недельный, месячный. Для дневных уровней есть возможность смещения по GMT.
Doğrudan erişim işlevlerini kullanın, MqlRates bir "yapılar" dizisidir ve burada bir Düşük dizisine ihtiyacınız vardır, burada hemen Yüksek için bir örnek verilmiştir.
Bu temiz. Benim durumumda, sadece şunu yazdım:
int k=i; double min= rates[k].low;for ( int m=i+ 1 ;m<=j;m++)
if (rates[m].low<min) {min=rates[m].low; k=m;}
Şey, bir sürü dizi istemiyorum ... Kaynaklar açısından ekonomik değil ve çok güzel değil ...
Sadece ArrayMinimum ile uğraşmak istedim - bu işlevi bir dizi yapı ile kullanmak mümkün mü ....
Bir dizi bilgiyi bir dizi yapı içinde depolamanın ikili bir diziden daha ekonomik olduğunu düşünüyorsanız, o zaman kollarımı açıyorum.
Yoksa int'leri, long'ları ve tarihleri depolamanın bellek açısından daha ekonomik olduğunu mu düşünüyorsunuz? ;))
ya da daha ekonomik olarak ihtiyacınız olanı bir çöp yığınından seçin, ha ha ...
Eh... verimlilik pahasına, tabii ki biraz heyecanlandım... Ama aslında, MqlRates'ten gelen neredeyse tüm bilgilere ihtiyacım var (olası hacimler hariç ve bu bir gerçek değil.. .)
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
Duruma daha dikkatli baktıktan sonra, hem 3 hem de 4 gösterge arabelleklerinin her zaman doğru verileri vermediğini buldum (hangilerinin doğru ve hangilerinin olmadığını anlamak imkansız olsa da)
Tabloya bakın. Veri penceresinde solda grafikte ayarlanan göstergenin değeri, altta Uzman Danışman tarafından alınan verilerdir. Değerlerin çoğu aynı, ancak böyle olanlar da var, aşağıya bakın ...
Bu bağlamda, grafikte ve test cihazında farklı tarihsel verilerin kullanıldığı varsayımı vardı.
Ve nihayet asıl sorun! 1,2 ve 5 gösterge tamponları için olağan şekilde veri elde etmek mümkün değildir.
Sorun şu ki, bu diziler için veriler hesaplanırken, önceki çubukların önceden hesaplanmış verileri dikkate alınır.
Tabii ki, göstergeyi çağırırken,prev_calculated değerinden bağımsız olarak yaklaşan N çubuğu yeniden hesaplamaya zorlamasını söyleyebilirsiniz.
Gösterge değerlerinin çağrılması ve hesaplanmasının 0'a eşit olmayan prev_calculated değeriyle gerçekleştiğini varsayıyorum.
Bu çoğu gösterge için geçerlidir, çünkü kaynakları korur, ancak verilen örnek için çalışmayacaktır.
Ne yapalım? Hangi düşünceler?
Opsiyonel olarak tüm hesaplamaları bir uzmana aktarabilirsiniz!!! Bu seçenek işe yarıyor ama o kadar değil ... Hala kafamın üzerinde olmayan pantolon giymek istiyorum.
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
Статья о традиционных и не совсем традиционных алгоритмах усреднения, упакованных в максимально простые и достаточно однотипные классы. Они задумывались для универсального использования в практических разработках индикаторов. Надеюсь, что предложенные классы в определенных ситуациях могут оказаться достаточно актуальной альтернативой громоздким, в некотором смысле, вызовам пользовательских и технических индикаторов.
Basit fiyat yapılarını MKL4'ten MKL5'e aktarmak için bir algoritma yazıyorum, MKL4 kodunu MKL5 stokastik masd ve rsai'ye kopyalama örneklerine, MKL4 verilerine erişmenin ana yöntemleri orada kullanılıyor.
yakında olacak, ne olmalı
Şimdi iMaOnArrau işleviyle mücadele ediyorum, çünkü MT5'te özel dizilerden en basit hareketli ortalama yöntemlerini almak sağlanmamıştır.
Kütüphaneleri tüm teknik araçlara genişleteceğim, neredeyse tüm algoritmaları biliyorum
Aptal olduğum bir şey ... Sadece nasıl yazacağımı bulamıyorum ...
Bu kod var:
Ardından, i-inci ile j-inci arasındaki çubuklar arasında minimum Düşük olan çubuğun indeksini almam gerekiyor.
ArrayMinimum işlevini kullanmaya çalışıyorum.
int k=ArrayMinimum(rates.low,i,j-i+1); - doğru değil
int k=ArrayMinimum(oranlar[].düşük,i,j-i+1); - doğru değil
Nasıl doğru olacak?
Aptal olduğum bir şey ... Sadece nasıl yazacağımı bulamıyorum ...
Bu kod var:
Ardından, i-inci ile j-inci arasındaki çubuklar arasında minimum Düşük olan çubuğun indeksini almam gerekiyor.
ArrayMinimum işlevini kullanmaya çalışıyorum.
int k=ArrayMinimum(rates.low,i,j-i+1); - doğru değil
int k=ArrayMinimum(oranlar[].düşük,i,j-i+1); - doğru değil
Nasıl doğru olacak?
Doğrudan erişim işlevlerini kullanın, MqlRates bir "yapılar" dizisidir ve burada bir Düşük dizisine ihtiyacınız vardır, burada hemen Yüksek için bir örnek verilmiştir.
Kod örneklerine bakın. Bu, https://www.mql5.com/en/code/102 adresinden
Doğrudan erişim işlevlerini kullanın, MqlRates bir "yapılar" dizisidir ve burada bir Düşük dizisine ihtiyacınız vardır, burada hemen Yüksek için bir örnek verilmiştir.
Bu temiz. Benim durumumda, sadece şunu yazdım:
Şey, bir sürü dizi istemiyorum ... Kaynaklar açısından ekonomik değil ve çok güzel değil ...
Sadece ArrayMinimum ile uğraşmak istedim - bu işlevi bir dizi yapı ile kullanmak mümkün mü ....
Bu temiz. Benim durumumda, sadece şunu yazdım:
Şey, bir sürü dizi istemiyorum ... Kaynaklar açısından ekonomik değil ve çok güzel değil ...
Sadece ArrayMinimum ile uğraşmak istedim - bu işlevi bir dizi yapı ile kullanmak mümkün mü ....
Bir dizi bilgiyi bir dizi yapı içinde depolamanın ikili bir diziden daha ekonomik olduğunu düşünüyorsanız, o zaman kollarımı açıyorum.
Yoksa int'leri, long'ları ve tarihleri depolamanın bellek açısından daha ekonomik olduğunu mu düşünüyorsunuz? ;))
ya da daha ekonomik olarak ihtiyacınız olanı bir çöp yığınından seçin, ha ha ...
Bir dizi bilgiyi bir dizi yapı içinde depolamanın ikili bir diziden daha ekonomik olduğunu düşünüyorsanız, o zaman kollarımı açıyorum.
Yoksa int'leri, long'ları ve tarihleri depolamanın bellek açısından daha ekonomik olduğunu mu düşünüyorsunuz? ;))
ya da daha ekonomik olarak ihtiyacınız olanı bir çöp yığınından seçin, ha ha ...
Genellikle, bir şey sormadan önce, cevap aramak için çeşitli kaynaklara bakarım.
Ama şimdi, bir haftalık çileden sonra anladım - bir cevabım yok ve bence henüz kimse bununla karşılaşmadı. Bu yüzden bir bulmaca öneriyorum.
İlk veri:
1) Düzeyler ve Oklar gibi basit bir gösterge var iS7N_SacuL_v3.mq5 (ekli)
2) Bu göstergeden veri almaya çalışan Uzman Danışman aS7N_TIC.mq5 (ekli)
İşte burada!
Beş gösterge arabelleğinden yalnızca ikisi verileri doğru şekilde döndürür.
Detaylı açıklamalar takip edilecek!
Duruma daha dikkatli baktıktan sonra, hem 3 hem de 4 gösterge arabelleklerinin her zaman doğru verileri vermediğini buldum (hangilerinin doğru ve hangilerinin olmadığını anlamak imkansız olsa da)
Tabloya bakın. Veri penceresinde solda grafikte ayarlanan göstergenin değeri, altta Uzman Danışman tarafından alınan verilerdir. Değerlerin çoğu aynı, ancak böyle olanlar da var, aşağıya bakın ...
Bu bağlamda, grafikte ve test cihazında farklı tarihsel verilerin kullanıldığı varsayımı vardı.
Kim ne düşünüyor?
Ve nihayet asıl sorun! 1,2 ve 5 gösterge tamponları için olağan şekilde veri elde etmek mümkün değildir.
Sorun şu ki, bu diziler için veriler hesaplanırken, önceki çubukların önceden hesaplanmış verileri dikkate alınır.
Tabii ki, göstergeyi çağırırken, prev_calculated değerinden bağımsız olarak yaklaşan N çubuğu yeniden hesaplamaya zorlamasını söyleyebilirsiniz.
Gösterge değerlerinin çağrılması ve hesaplanmasının 0'a eşit olmayan prev_calculated değeriyle gerçekleştiğini varsayıyorum.
Bu çoğu gösterge için geçerlidir, çünkü kaynakları korur, ancak verilen örnek için çalışmayacaktır.
Ne yapalım? Hangi düşünceler?
Opsiyonel olarak tüm hesaplamaları bir uzmana aktarabilirsiniz!!! Bu seçenek işe yarıyor ama o kadar değil ... Hala kafamın üzerinde olmayan pantolon giymek istiyorum.
EA'da kullanılan
değer 0. çubuktan alınır, bunun için gösterge tamponlarının değerleri mum kapanana kadar her tikte değişir.