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
Nedense OnTester işlevinde hesaptaki cari karı alamıyorum
Bu şekilde 0 alıyorum
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
Ve işte bu şekilde kar elde edersiniz:
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
Ne hakkında tartışıyoruz? w0 ayarlama
PS Mesaj kesinlikle olacaktır (belki birkaç satır aşağıda)
Slava aynı fikirde - tüm bu anlaşmazlıklar çok zaman alıyor, peki, onlar (anlaşmazlıklar) nafig. :)
Ancak, hareket halindeyken denilen şey - siz, eminim ki her şeyi çok iyi biliyorsunuzdur, ancak yine de bu işlev harici ise ve yalnızca bir bildirimle bildirilirse, o zaman "const" ve "in" gibi değiştiriciler vardır. " ve dışarı". Ve belki de bu işlevde bir kusur vardır. Gerçek şu ki, eğer bu bir geri dönüş parametresiyse, o zaman onu iade etmemeye çalışılması durumunda ("dönüş" yoluyla döndürülürse), bir uyarı verilir ve işlevin ikinci biçiminin varlığı, döndürülen değer bir parametre aracılığıyla döndürülür, bu dönüş değeri nedeniyle bir uyarı da verilmelidir. Aksi takdirde, başarının/başarısızlığın sonucunun bir parametre üzerinden ve değerin kendisinin geri dönüş yoluyla döndürülmesi için yaptıysanız, geri dönmemek imkansız olurdu. Ve başarı ya da başarısızlık da DAİMA geri gelir. Başka bir deyişle - ( http://users.telenet.be/bart.demeyere/C++InOutParameters.html ) burada uzun süredir var olan bir çözüm.
Ancak genel olarak konuşma, fark ettiğim gibi, hiçbir şeyle ilgili değil. IMHO, mevcut uygulamada bunun gibi önemli bir şeyi değiştirmeyi düşünmüyorsanız bu tür soruları yanıtlamanız gerekiyor :) - "Evet, böyle bir sorun var, programın sonraki sürümlerinde çözülecek, şimdi biz kodu düzelttik ve yalnızca hataları düzeltiyoruz." Hiç kimse (sanırım en yetersiz olanlar bile) gücenmeyecek, sadece sorunu çözmek önemli ve gerekli.
Bu sürümde çok (ÇOK) yararlı değiştiriciler olup olmayacağı ve diğerleri, esasen hataları en aza indirmenize izin verir.
***
Bütün bu yazışmalara yarım gün harcanacak. bağlıyorum. :)
Nedense OnTester işlevinde hesaptaki cari karı alamıyorum
Bu şekilde 0 alıyorum
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_PROFIT));
}
Ve işte bu şekilde kar elde edersiniz:
double OnTester()
{
return(AccountInfoDouble(ACCOUNT_BALANCE)-100000);
}
Global bir değişken bildiririz ve OnInit()'te ona mevcut bakiye değerini atarız.
OnTester()'da tüm işlemlerin sonuçlarına dayanarak nihai karı hesaplarız:
ve OnTester() içinde yayınlayın.
Ve şimdi elde etmeye çalıştığınız şey, tüm pozisyonlar kapalıysa sıfıra eşit olan mevcut sabit olmayan kârdır.
Slava kabul eder - tüm bu anlaşmazlıklar çok zaman alır, iyi, onlar (anlaşmazlıklar) nafig. :)
Bu sürümde çok (ÇOK) yararlı değiştiriciler olup olmayacağı ve diğerleri, esasen hataları en aza indirmenize izin verir.
"Neyi tartışıyoruz?" - çocukluğumdan bir cümle, "ne bahse giriyoruz?" anlamına gelir.
Bir parametreyi referans olarak iletmek sadece inout anlamına gelir. Basitçe derleyiciye tabi olmayan uygulamalar vardır.
Fonksiyonlara adım atarak yürütme akışını analiz etmek aslında oldukça kolaydır (bir örnek Rashid tarafından sağlanmıştır). Bu yaklaşımı bilinçli olarak terk ettik. Bu nedenle, derleme süresinin bu nedenle önemli ölçüde artabilmesi nedeniyle. Bu nedenle, en basit seçeneğe gittik - bir uyarı vermek. Ve ne, böyle bir uyarı vermemek daha mı iyi? Hayır, zorundasın. Açık bir başlatma yapın - uyarı olmayacak.
Ayrıca mantıksal ifadelerin kısaltılmış bir değerlendirmesini yaptığımızı da tekrar ediyorum. Bu, sizin durumunuzda, eğer ilk ObjectGetDouble false döndürürse (örneğin, programın dışındaki nesne, dikkat edin, aniden mevcut olmadığı için), o zaman ikinci ObjectGetDouble çağrılmayacaktır.
"Neyi tartışıyoruz?" - çocukluğumdan bir cümle, "ne bahse giriyoruz?" anlamına gelir.
Bir parametreyi referans olarak iletmek sadece inout anlamına gelir. Basitçe derleyiciye tabi olmayan uygulamalar vardır.
Fonksiyonlara adım atarak yürütme akışını analiz etmek aslında oldukça kolaydır (bir örnek Rashid tarafından sağlanmıştır). Bu yaklaşımı bilinçli olarak terk ettik. Bu nedenle, derleme süresinin bu nedenle önemli ölçüde artabilmesi nedeniyle. Bu nedenle, en basit seçeneğe gittik - bir uyarı vermek. Ve ne, böyle bir uyarı vermemek daha mı iyi? Hayır, zorundasın. Açık bir başlatma yapın - uyarı olmayacak.
Ayrıca mantıksal ifadelerin kısaltılmış bir değerlendirmesini yaptığımızı da tekrar ediyorum. Bu, sizin durumunuzda, eğer ilk ObjectGetDouble false döndürürse (örneğin, programın dışındaki nesne, dikkat edin, aniden mevcut olmadığı için), o zaman ikinci ObjectGetDouble çağrılmayacaktır.
Bu doğru, çağrılmayacak - bu, Sish kodlarının standart davranışıdır.
Giriş ve çıkış değiştiricileri geçmiş referanslar olabilir. Ve varsayılan olarak, bağlantılar için her zaman içeride ve dışarıdadırlar. Ancak in değiştirici ile bir bağlantı iletebilirim, bu da bu fonksiyon parametresinin her zaman girildiği ve referans olarak iletilmesine rağmen ona yazmanın mümkün olmadığı anlamına gelir. Okudun mu ? http://users.telenet.be/bart.demeyere/C++InOutParameters.html
Bir const değiştirici var. Sabit bir referansın iletilmesi, açık bir şekilde, herhangi bir çıkış olmadan bir giriş parametresi olduğunu varsayar. İçeri, dışarı, dışarı, kesinlikle ek varlıklar getirmeyeceğiz.
Bir const değiştirici var. Sabit bir referansın iletilmesi, açık bir şekilde, herhangi bir çıkış olmadan bir giriş parametresinin olduğunu varsayar. İçeri, dışarı, dışarı, kesinlikle ek varlıklar getirmeyeceğiz.
Uyanmayın, uyanmayın. Ancak o zaman iyi bir optimizasyon elde edemeyeceğinizi anlamalısınız. Ve bu örnekte OUT olsaydı, uyarı vermeye gerek kalmazdı. Ancak genel olarak, boşuna - IMHO, üç dakika boyunca iş, ancak ne kadar az hata var. İstemiyorsan kullanma. Sonra her şey her zamanki gibi. Peki ya şimdi. :)
IN olmadan sadece OUT'a sahip olmanızı nasıl sağlarsınız? Saf ÇIKIŞ? Bir işlevi döndürmek gibi bir şeyin her zaman döndürülmesi ne anlama gelir?
geliştiriciler
1. Anladığım kadarıyla, büyük çiftlerdeki spread, Mayıs 1993'ten bu yana, şu anda yaklaşık 930 haftalık barla dolduruluyor?
Üstelik derin bir tarihe dayanan barlar gün esasına göre yapılmıştır.
Bu nedenle, Expert Advisor'lar Mayıs 1993'ten itibaren test edilebilir (TF'yi D1'den az kullanmıyorsanız)?
2. 05/09/1993 tarihinde GBPUSD geçmişine daha derinlemesine bakmak mümkün müdür (örneğin, EURUSD için nasıl uygulanır)?Merhaba.
Lütfen açıklayın, "manuel" bir " Grafik etiketi " nesnesi oluştururken, açık/kapalı durumları için belirtilen bmp dosyasının neden ona ayarlanmadığını kim bilebilir?
İşte kod:
ObjectCreate(....);
......
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "Images\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "Images\off.bmp");
Etiket, belirtilen konumda, belirtilen renklerle vb. tamamen doğru bir şekilde oluşturulur, ancak "Images\on.bmp" ve "Images\off.bmp" belirtilmemiştir. GUI MT5'te ise
nesneler listesine tıklayın ve bu dosyaları etiket için manuel olarak ayarlayın - bunlar ayarlanacaktır. Ama neden ObjectSetString bunu yapmıyor?
Sen ne diyorsun?
Sen ne diyorsun?
Denemek
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 0, "\\Images\\on.bmp");
ObjectSetString(0, "ColorLabel", OBJPROP_BMPFILE, 1, "\\Images\\off.bmp");
Yardım yakında güncellenecektir.