MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 134
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
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ı ???
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ı ???
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?
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?
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?
Göstergenin kendisine bakın, daha net olacaktır.
ç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 ?
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.
Vitaly Muzichenko'nun cevabında aldığım fonksiyon kodunu yazdım fakat hatanın ne olduğunu çözemedim.
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.