KimIV'ten faydalı özellikler - sayfa 110
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
WritingLineInFile() işlevi.
Geçen gün bu işlevi biraz değiştirdim, dosyanın geri kalan satırlarından, örneğin tablo başlığından farklı olan ilk satırını yazma yeteneğinden sorumlu olan fs parametresini ekledim. İlk satır, yalnızca iki koşulun aynı anda karşılanması durumunda dosyaya yazılacaktır: satırın uzunluğu sıfırdan büyük ve dosya boyutu sıfır. Ve önceki sürümle uyumluluğu korumak için yeni parametre isteğe bağlı hale getirildi.
WritingLineInFile() işlevinin parametreleri:
not. Ekli, işlevi test etmek için bir komut dosyasıdır.
DateBeginQuarter
Her şeyden önce satırları anlamaya çalışıyorum:
varsayılan olarak nq = 0, bu yüzden MathMod (nq/4) ifadesinden ne elde ettiğimiz net değil, çünkü sonuç her zaman 0 olacaktır. İkinci satır da net değil, çünkü 0/4'te kalan yok, lütfen açıklayın.
Sorunuz için teşekkür ederim Natasha. Sayenizde işlevi tekrar kontrol ettim ve bir hata buldum. Çizgide
eksi işaretini artı ile değiştirmeniz gerekir
Ve şimdi sorunuzun noktasına. nq her zaman sıfıra eşit değildir. Negatif olanlar da dahil olmak üzere herhangi bir tamsayı değeri olabilir. Belirttiğiniz satırlar, nq'nin 4'ün katı olduğu, yani 4 çeyrek (yıllık) eklemeniz veya çıkarmanız gerektiğinde çalışır.
Sorunuz için teşekkür ederim Natasha. Sayenizde işlevi tekrar kontrol ettim ve bir hata buldum. Çizgide
eksi işaretini artı ile değiştirmeniz gerekir
Ve şimdi sorunuzun noktasına. nq her zaman sıfıra eşit değildir. Negatif olanlar da dahil olmak üzere herhangi bir tamsayı değeri olabilir. Belirttiğiniz satırlar, nq'nin 4'ün katı olduğu, yani 4 çeyrek (yıllık) eklemeniz veya çıkarmanız gerektiğinde çalışır.
Cevabınız için teşekkürler, Igor .... İşlevi normalden daha uzun buldum, ancak yine de anladım))))))) aynı işlevde, bana göre yılı azaltmanın gerekli olmadığı anlaşılıyor. ifade:
o zaman her şey yoluna girecek.
...aynı işlevde, bana öyle geliyor ki, ifadede yılı azaltmaya gerek yok...
GetDrawdownOpenPosInPoint() işlevi
Görünüşe göre bu işlevin kapsamlı testini bitirdim. Gerektiğinde yayılmayı hesaba kattım, optimize etmeye çalıştım... Fonksiyon, mevcut açık pozisyonların maksimum düşüşünü puan olarak döndürür. Geleneksel olarak, fonksiyona parametreler iletebilir ve böylece analiz için ihtiyaç duyduğunuz pozisyonları filtreleyebilirsiniz:
not. GetDrawdownOpenPosInPoint() işlevini test etmek için bir komut dosyası ektedir.
Haklısın Natasha, neden olmasın? Tam tersine aylık çemberin kapanmasından sonraki yılı tam tersi yönde azaltmak bana mantıklı geliyor. Belirttiğiniz ifadede yılı küçültmek, dakikayı tam bir daire olarak geri sardıktan sonra akrebi bir saat geriye almakla aynı şeydir. İşlevin kendi versiyonunu getir, tartışalım ... belki senin versiyonun benimkinden daha başarılı olur.
Şöyle akıl yürüttüm: diyelim ki 7. çeyreğin başlangıcını geçmişte ve gelecekte belirlememiz gerekiyor, sonra sırasıyla nq= -7 ve nq=7. Mathfloor geçmiş için -2 ve gelecek için +1 döndürür (fonksiyonun dokümantasyondaki açıklamasına göre), bu nedenle geçmişteki durum için gelecekte eklediğimizden bir yıl daha çıkaracağız .... .Geçmiş için daha fazla hesaplamaya devam edersek, o zaman yılı tekrar küçültmek zorunda kalacağız ve kendimizi 2009'da bulacağız .....
Ne yazık ki vakit darlığından (site sayfasını okuyacak vaktim çok az) şu an doğru kodu veremiyorum kanımca ama gerekirse düzeltmenin de zor olmayacağını düşünüyorum.
Şöyle akıl yürüttüm: diyelim ki 7. çeyreğin başlangıcını geçmişte ve gelecekte belirlememiz gerekiyor, sonra sırasıyla nq= -7 ve nq=7. Mathfloor geçmiş için -2 ve gelecek için +1 döndürür (fonksiyonun dokümantasyondaki açıklamasına göre), bu nedenle geçmişteki durum için gelecekte eklediğimizden bir yıl daha çıkaracağız .... .Geçmiş için daha fazla hesaplamaya devam edersek, yılı tekrar küçültmek zorunda kalacağız ve kendimizi 2009'da bulacağız...
Mantığınıza katılıyorum, ancak işlemlerde yer alan veri türlerini unutuyorsunuz. MathFloor() işlevi tamamen atlanabilir. Ekteki betiğin çıktısına bakın.