Hatalar, hatalar, sorular - sayfa 2491

 
Alexey Navoykov :
Büyük bir projede özel makroların adlarını vurgulamanın her zaman işe yaramadığını uzun zamandır fark ediyorum. Diğer dosyalarda tanımlanan birçok makro, nedense vurgulanmıyor. Şimdiye kadar kalıpları çözemedim. Tek gördüğüm, belirli bir dosyada belirli bir satırdan sonra tanımlanan tüm makroların artık diğer dosyalarda vurgulanmadığı. Benzer bir şey gören başka biri var mı?
Evet
 
Alexey Navoykov :
Büyük bir projede özel makroların adlarını vurgulamanın her zaman işe yaramadığını uzun zamandır fark ediyorum. Diğer dosyalarda tanımlanan birçok makro, nedense vurgulanmıyor. Şu ana kadar kalıbı çözemedim. Yalnızca belirli bir dosyada belirli bir satırdan sonra tanımlanan tüm makroların artık diğer dosyalarda vurgulanmadığını görüyorum. Benzer bir şey gören başka biri var mı?

Benzer bir şey fark etti. Durumun doğruluğuna kefil olamam.

 
Alexey Navoykov :
Büyük bir projede özel makroların adlarını vurgulamanın her zaman işe yaramadığını uzun zamandır fark ediyorum. Diğer dosyalarda tanımlanan birçok makro, nedense vurgulanmıyor. Şimdiye kadar kalıpları çözemedim. Tek gördüğüm, belirli bir dosyada belirli bir satırdan sonra tanımlanan tüm makroların artık diğer dosyalarda vurgulanmadığı. Benzer bir şey gören başka biri var mı?

evet ve ayrıca otomatik değiştirmenin yeni değişkenler veya sınıf alanları için çalışmadığı da olur, genellikle proje yeniden derlenerek işlenir

anladığım kadarıyla ME'de arka planda tanımlama vurgulama ve otomatik değiştirme ile ilgilenen bir süreç var, bazı anlarda tüm bilgileri güncelleme zamanı olmuyor (veya istemiyor)

 
Rates_total hakkında konuştuğumuz için topluluğa, OnCalculate'deki hangi yapının daha zarif ve optimal olduğunu soracağım.
Daha önce OnCalculate'de şöyle bir yapı kullandım:
 if (rates_total==prev_calculated) {}         // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated== 1 ) {} // момент формирования нового бара 
else {}                                     // пересчитываем последние(rates_total-prev_calculated) бар


ancak prev_calculated>rates_total gibi durumlar olabileceğini fark ettikten sonra hiçbir şey anlamadığımı fark ettim, elimi salladım ve tüm çubukları yeniden hesaplamak birkaç saniyeden fazla sürmüyorsa aşağıdaki yapıyı kullanmaya başladım:

 if (rates_total==prev_calculated) {}         // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated== 1 ) {} // момент формирования нового бара 
else {}                                     // пересчитываем все бары

nasıl ve nasıl, genel olarak, yetkin bir şekilde?

 
Nikolai Semko :
Rate_total hakkında konuştuğumuz için topluluğa, OnCalculate'deki hangi yapının daha zarif ve optimal olduğunu soracağım.
Daha önce OnCalculate'de şöyle bir yapı kullandım:


ancak prev_calculated>rates_total gibi durumlar olabileceğini fark ettikten sonra hiçbir şey anlamadığımı fark ettim, elimi salladım ve tüm çubukları yeniden hesaplamak birkaç saniyeden fazla sürmüyorsa aşağıdaki yapıyı kullanmaya başladım:

nasıl ve nasıl, genel olarak, yetkin bir şekilde?

Bu doğru, çünkü neler olduğunu biliyorsun. Yapınız hakkında bir not: ==1 yerine, >=1 veya sadece if(rates_total > prev_calculated) yazardım, eksik çubukları pompalanırsa yeniden hesaplamak için.

Artı, mql5'te ve mql4'teki katı yönerge ile diziden atlamamak için, en soldaki çubuktan hesaplamalara kaç çubuğun dahil edilebileceğini hesaba katmanız gerekir. Dolayısıyla, kişisel olarak tüm durumlar için böyle bir şablonum olmadığı ortaya çıktı.

 
Nikolai Semko :
Rates_total hakkında konuştuğumuz için topluluğa, OnCalculate'deki hangi yapının daha zarif ve optimal olduğunu soracağım.
Daha önce OnCalculate'de şöyle bir yapı kullandım:


ancak prev_calculated>rates_total gibi durumlar olabileceğini fark ettikten sonra hiçbir şey anlamadığımı fark ettim, elimi salladım ve tüm çubukları yeniden hesaplamak birkaç saniyeden fazla sürmüyorsa aşağıdaki yapıyı kullanmaya başladım:

nasıl ve nasıl, genel olarak, yetkin bir şekilde?

Limit = rate_total - prev_hesaplanmış hesaplarım.
Ardından, limit > 1 ise, limit = Rate_total - 1 (veya ilk hesaplama için gereken çubuk sayısı - 1) ve başlatma.
Ve sonra limitten >=0'a kadar olan döngü
Mobilden kod yazamıyorum...
 
Nikolai Semko :
Rates_total hakkında konuştuğumuz için topluluğa, OnCalculate'deki hangi yapının daha zarif ve optimal olduğunu soracağım.
Daha önce OnCalculate'de şöyle bir yapı kullandım:


ancak prev_calculated>rates_total gibi durumlar olabileceğini fark ettikten sonra hiçbir şey anlamadığımı fark ettim, elimi salladım ve tüm çubukları yeniden hesaplamak birkaç saniyeden fazla sürmüyorsa aşağıdaki yapıyı kullanmaya başladım:

nasıl ve nasıl, genel olarak, yetkin bir şekilde?

Prensip olarak, soru önemlidir, geliştiricilerden alınan örneklerde (MT'nin teslimi) farklı hesaplama yolları vardır, Bears.mql5'teki BarsCalculated() bile kullanılır

yakın zamanda MT4 altında tartışıldı, şimdiye kadar bu şablona karar verdim: https://www.mql5.com/en/forum/314931/page2#comment_11946579

MT5 altında kontrol etmeniz gerekiyor, ancak grafikler farklı davranıyor (MT4 / MT5), MT5'te fare tekerleği ile geçmişin başına kaydırırsanız, sıfıra sıfırlanmış gibi görünüyor prev_calculated - geçen yıl göstergeyi altına yazdım MT5 bu davranışa şaşırdı

Not: özel bir çizelge yapılması gerekiyor ve geçmiş zamanlayıcı tarafından hızla iletiliyor - tabiri caizse, oranların toplam ve önceden hesaplanmış davranışını izlemek için bir test tezgahı gerekiyor, burada birkaç sayfa yazdım, arasındaki tutarsızlık hakkında oranları_toplam ve iBars() - bunun da dikkate alınması gerekir

ZYZY: Mladen'in kodlarını incelemek için bir seçenek olarak, gösterge yazma stilini seviyorum - her şey en küçük ayrıntısına kadar düşünülmüş, kodlarındaki tek sorun kaynağı biçimlendirmenin çok tuhaf bir tarzı

 
Igor Makanu :

......................

çok tuhaf kaynak biçimlendirme stili


 
Сергей Таболин :


Şekillendiriciyi nasıl kullanacağımı biliyorum, ancak bir satırda birkaç ifade yazıldığında şekillendirici çalışmıyor

;)

örnek https://www.mql5.com/ru/code/22766
 

Sadece bir soru.

ulong'un maksimum değeri 18'dir.........

61 değerini aldım........

Ve IntegerToString() genel olarak bu değeri verir ve 90 .............

Sorunu bulana kadar terlemek zorunda kaldım.

Bunu yerelleştirmenin bir yolu var mı?