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

 

Uzman Danışman test cihazında çalışırken bir sorun oluştu. Dakikalar içinde test ediyorum. Daha eski zaman dilimleri için stokastiği dakika verilerini kullanarak kendim hesaplarım.

Dakikaların geçmişi 2001'den beri yükleniyor. <Charts> settings sekmesinde, hem geçmişteki hem de görüntülenen maksimum çubuk sayısı belirlenir.

Grafikteki tüm geçmiş kaydırılır.

Sorun şu ki, hata ayıklama yazdırma yardımıyla ortaya çıktığı gibi, test cihazını hangi tarihte çalıştırırsam çalıştırayım, maksimum çubuk sayısı

Testin ilk çubuğundaki Barlar değişkeninde (başlangıçta) her zaman 1001 veya 1002'dir. Sonraki her çubukta, Barların değeri 1 artar.

Bu nedenle, başlangıçta kıdemli TF'ler sayılmaz.

Bir çözüm var. Barlar istenen değere ulaşmadan önce bir ticaret yasağı ekleyin.

Bu sorun başka bir şekilde çözülebilir mi? Barların bu başlangıç değeri, test cihazında bir şekilde arttı mı ???

 
Igor733 :

Uzman Danışman test cihazında çalışırken bir sorun oluştu. Dakikalar içinde test ediyorum. Daha eski zaman dilimleri için stokastiği dakika verilerini kullanarak kendim hesaplarım.

Dakikaların geçmişi 2001'den beri yükleniyor. <Charts> settings sekmesinde, hem geçmişteki hem de görüntülenen maksimum çubuk sayısı belirlenir.

Grafikteki tüm geçmiş kaydırılır.

Sorun şu ki, hata ayıklama yazdırma yardımıyla ortaya çıktığı gibi, test cihazını hangi tarihte çalıştırırsam çalıştırayım, maksimum çubuk sayısı

Testin ilk çubuğundaki Barlar değişkeninde (başlangıçta) her zaman 1001 veya 1002'dir. Sonraki her çubukta, Barların değeri 1 artar.

Bu nedenle, başlangıçta kıdemli TF'ler sayılmaz.

Bir çözüm var. Barlar istenen değere ulaşmadan önce bir ticaret yasağı ekleyin.

Bu sorun başka bir şekilde çözülebilir mi? Barların bu başlangıç değeri, test cihazında bir şekilde arttı mı ???

Hayır artmaz. Çözümünüzü kullanın.
 
Ne yanlış olabilir. Uzman Danışman yazarken , değişiklikleri takip etmek için defalarca test etmeniz gerekir. Rastgele sayıda testten sonra, strateji test cihazı kodda yapılan değişiklikleri algılamayı durdurur. Bazen saçmalık noktasına gelir. Sadece bir kod parçasını alıp silebilirsiniz ve baykuş test cihazında daha önce yazılan algoritmaya göre çalışacaktır. Aynı şey CSV'deki ayrıştırma hesaplamalarında da olur, CSV'de belirli sayıda test yapıldıktan sonra bir tür rastgele saçmalık ayrıştırılmaya başlar.

PS Derleme düğmesine bastım.
 

Düzleştirilmiş hareketli ortalamayı hesaplamak için algoritmayı anlamak çok gereklidir. Birkaç nedenden dolayı iMA işlevini çağırmak uygun değildir.

https://www.metatrader5.com/en/terminal/help/indicators/trend_indicators/ma#smma adresindeki bilgileri anladığım kadarıyla

İlk unsur, döneme bölünen kapanış fiyatlarının toplamı olarak hesaplanır.

Aşağıdakiler, SMMA (i) = (SMMA (i - 1) * (N - 1) + KAPAT (i)) / N formülü kullanılarak hesaplanır.

24.02.2017 19:00 ile 24.02.2017 23:00 (GMT+2) arasındaki dönem için 5 ve kapanış fiyatları EUR/USD H1 olan bir dönem alalım. son 5 mum

Kapanış fiyatları - 1.05681; 1.05702; 1.05639; 1.05612; 1.05592.

Buna göre 1 eleman 1.056452'dir; 2. eleman - 1.056852 3. eleman - 1.05676 4. eleman - 1.056632 5. eleman - 1.056489

Ve SMMA 5 grafiğinde, kapanış 1.05706'ya eşittir, yani . fark zaten 3. işarette

Neyin yanlış olduğunu düşünüyorum?

Ve 1.05706 almak için nasıl doğru sayılır?

 
zsu1970 :

Düzleştirilmiş hareketli ortalamayı hesaplamak için algoritmayı anlamak çok gereklidir. Birkaç nedenden dolayı iMA işlevini çağırmak uygun değildir.

https://www.metatrader5.com/en/terminal/help/indicators/trend_indicators/ma#smma adresindeki bilgileri anladığım kadarıyla

İlk unsur, döneme bölünen kapanış fiyatlarının toplamı olarak hesaplanır.

Aşağıdakiler, SMMA (i) = (SMMA (i - 1) * (N - 1) + KAPAT (i)) / N formülü kullanılarak hesaplanır.

24.02.2017 19:00 ile 24.02.2017 23:00 (GMT+2) arasındaki dönem için 5 ve kapanış fiyatları EUR/USD H1 olan bir dönem alalım. son 5 mum

Kapanış fiyatları - 1.05681; 1.05702; 1.05639; 1.05612; 1.05592.

Buna göre 1 eleman 1.056452'dir; 2. eleman - 1.056852 3. eleman - 1.05676 4. eleman - 1.056632 5. eleman - 1.056489

Ve SMMA 5 grafiğinde, kapanış 1.05706'ya eşittir, yani . fark zaten 3. işarette

Neyin yanlış olduğunu düşünüyorum?

Ve 1.05706 almak için nasıl doğru sayılır?

Göstergenin kendisine bakın, daha net olacaktır.
 
Aleksey Maryaskin :
Beyler geliştirdi! Hepinize iyi günler. Oluştururken bir uzman şablonu (komut dosyası) oluşturma sorusuyla ilgileniyorum. Bu bir yerde düzenlenebilir mi ve nasıl yapılır?
Muhtemelen burada doğrudan bir bağlantıya izin vermezler... Google'a "Bu başlıkta MQL4 kursunu yayınlayacağım" (tırnak işaretleri olmadan) sorun ve ardından "şablon" kelimesini aratın (2. sayfada görünüyor) ).
 
Vitaly Muzichenko :
Göstergenin kendisine bakın, daha net olacaktır.
Sonuçlanan bağlantıdakiyle aynı görünüyordu.

çift SMMA(int nokta)
{

// diziyi kapanış fiyatlarıyla doldur
int k=dönem;
for(int i=1; i<=dönem; i++)
{
H1_Close[i]=Kapat[k];
// Print("H1_Close [",i,"] ",H1_Close[i]," Kapat [",k,"] ",Kapat[k]);
k--;
}
// ilk elemanı kapanış fiyatlarının ortalaması olarak hesapla
çift toplam=0;
for (int i=1; i<=period;i++)
Topla=Topla+H1_Kapat[i]; //TOPLA1 = TOPLA(KAPAT, N)
double TmpSMMA=Toplam/nokta; //SMMA1 = TOPLA1/N
// i. elemanı SMMA (i) = (SMMA (i - 1) * (N - 1) + KAPAT (i)) / N olarak hesapla
for(int i=2;i<=dönem;i++)
TmpSMMA=(TmpSMMA*(dönem-1)+H1_Kapat[i])/dönem;
}
Ancak sonuç yine de terminaldeki gösterge verilerinden çok farklı. NİYE YA ?
 
zsu1970 :

Düzleştirilmiş hareketli ortalamayı hesaplamak için algoritmayı anlamak çok gereklidir. Birkaç nedenden dolayı iMA işlevini çağırmak uygun değildir.

https://www.metatrader5.com/en/terminal/help/indicators/trend_indicators/ma#smma adresindeki bilgileri anladığım kadarıyla

İlk unsur, döneme bölünen kapanış fiyatlarının toplamı olarak hesaplanır.

Aşağıdakiler, SMMA (i) = (SMMA (i - 1) * (N - 1) + KAPAT (i)) / N formülü kullanılarak hesaplanır.

24.02.2017 19:00 ile 24.02.2017 23:00 (GMT+2) arasındaki dönem için 5 ve kapanış fiyatları EUR/USD H1 olan bir dönem alalım. son 5 mum

Kapanış fiyatları - 1.05681; 1.05702; 1.05639; 1.05612; 1.05592.

Buna göre 1 eleman 1.056452'dir; 2. eleman - 1.056852 3. eleman - 1.05676 4. eleman - 1.056632 5. eleman - 1.056489

Ve SMMA 5 grafiğinde, kapanış 1.05706'ya eşittir, yani . fark zaten 3. işarette

Neyin yanlış olduğunu düşünüyorum?

Ve 1.05706 almak için nasıl doğru sayılır?

Yani klyudnik'te bir hesaplama algoritması var.

 
Alexey Viktorov :
Yani klyudnik'te bir hesaplama algoritması var.

Bu yüzden hesaplamalardaki her şeyi yapıyorum ve sonuç çalışmıyor. 4. gün oturuyorum çözemiyorum.
Vitaly Muzichenko'nun cevabında aldığım fonksiyon kodunu yazdım fakat hatanın ne olduğunu çözemedim.
 
zsu1970 :
Bu yüzden hesaplamalardaki her şeyi yapıyorum ve sonuç çalışmıyor. 4. gün oturuyorum çözemiyorum.
Vitaly Muzichenko'nun cevabında aldığım fonksiyon kodunu yazdım fakat hatanın ne olduğunu çözemedim.
Fiyatları hemen mi değiştiriyorsunuz yoksa onları alıp sonra hesaplamaya mı yerleştiriyorsunuz?
Neden: