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
Ve falan.
if(a==0){ifade}, a'nın 0'a eşit olması durumunda doğru olduğu anlamına gelir, o zaman {ifade} çalıştırırız.
if(a=0){expression}, if(a){a=0;expression} ile eşdeğerdir, bu nedenle a true ise { a atama 0, ifade}.
ikincisi doğru değil böyle yazman daha iyi
if(a=x) { ifade } a değişkenine x değerini atayın ve bundan sonra a 0 değilse, ifadeyi yürütün
if(a=0) { } optimizasyondan sonra sadece a=0 kalacak
ikincisi doğru değil böyle yazmak daha iyi
if(a=x) { ifade } a değişkenine x değerini atayın ve bundan sonra a 0 değilse, ifadeyi yürütün
if(a=0) { } optimizasyondan sonra sadece a=0 kalacak
Sori, aynen böyle, ifadeler soldan sağa doğru yürütülür.
Bu nedenle, önce bir ödev ve sonra doğruluk için bir test vardır.
Aşağı yukarı şöyle:
Bu kod yalnızca maksimum hacmi hesaplamakla kalmaz, aynı zamanda tam olarak sembol ayarlarının sınırlarına da uyar.Bir şeyi hesaplayın - hesaplar, ancak daha sonra girerek neden hesaplandığını unutur:
Bu noktada lot değeri, mevcut tüm marjı minimum marjla tüketecek şekilde hesaplanır.
Bu değer en az bir hacim adımı kadar artırılırsa, pozisyon açmak için yeterli para olmayacaktır.
Ancak, alıntılanan kodun ikinci satırı, if altındaki koşul karşılanırsa parti değerini ARTIRIR ve hacim min = 0,1 ve hacim adımı = 0,01 fiilen gerçekleştiğinden, hacim adımı değerinden çok daha büyük bir değere kadar artırabilir.
Ve aşağıdaki kodda, koruması olmayan sıfıra bölme gerçekleşebilir:
SymbolInfoDouble() 0 döndürürse, o kadar. 0'a bölündükten sonra MQL5 programları tomurcukta biter, değil mi? 0 döndüremez mi? Buradaki insanlar bilgi işlevlerinin genellikle 0 döndürdüğünden şikayet ederler. “0 döndürmez”e güvenemezsiniz, çünkü ilk olarak, geri dönebilir ve ikinci olarak, 0'a bölme ölümcüldür.
"Uygunluk doğruluğu" hakkında daha az önemli yorumlar da var, ancak gerçekten çok önemli değiller, yani çok ciddi sonuçları yok, keskinleştiremezsiniz.
Kodun "örnek niteliğinde" olduğu gerçeğiyle ilgili olası argümanları tahmin ederek şunu not ediyorum: Ürünün kaç kullanıcısı bu tür "kötü yerleri" bulup doğru şekilde düzeltebilir?
Onlar için bu, "geliştiricilerin kodudur". Bakmak için bir örnek.
Gerekli tüm alanlar doldurulduğunda "İleri" düğmesi neden etkin değil?
Gerekli tüm alanlar doldurulduğunda "İleri" düğmesi neden etkin değil?
Bir şeyi hesaplayın - hesaplar, ancak daha sonra girerek neden hesaplandığını unutur:
Kodun "örnek niteliğinde" olduğu gerçeğiyle ilgili olası argümanları tahmin ederek şunu not ediyorum: Ürünün kaç kullanıcısı bu tür "kötü yerleri" bulup doğru şekilde düzeltebilir?Kod yaklaşıktı (iki parçanın kopyala-yapıştır), ancak yorumlarınız doğru.
İşte düzeltilmiş versiyon:
Ve neden session_index++; session_index=1 zaten yanlışsa:
Enstrüman için kaç seans önceden bilemeyiz. Bu nedenle her seansı numara ile talep ediyoruz. eğer doğruysa
session_exist= SymbolInfoSessionQuote (symbol,day,session_index,start,finish);
o zaman başlangıç ve bitiş zamanıyla ilgileniyoruz. Yanlış alındı - bu kadar, bu numarayla oturum yok.
Enstrüman için kaç seans önceden bilemeyiz. Bu nedenle her seansı numara ile talep ediyoruz. eğer doğruysa
o zaman başlangıç ve bitiş zamanıyla ilgileniyoruz. Yanlış alındı - bu kadar, bu numarayla oturum yok.
Ve ...... o zaman neden Cuma günü her şey 24:00'te bitiyor, ama gerçekte 23:00'te?