Hatalar, hatalar, sorular - sayfa 2590
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Söylesene, belki de [Çok fazla ticaret talebi] hatasının nedeni normal OrderSend'in ikinci çağrısında (terminali başlattıktan sonra) olabilir mi?
Pazartesiden perşembeye günlüklere baktım. Her yerde aynı resim: Bir limit emrinin ilk gönderimi başarılı ve sonrakiler [Çok fazla ticaret talebi] hatasıyla tamamlandı. Sonra geçmeye başlarlar. Suçludan OnInit () içindeki CopyTickRange'e yalnızca sık çağrılar yapıyorum.
BCS Broker MetaTrader 5 Terminal x64 build 2170 başladı
@ilyas
Dll'den, const wchar_t* dizesine bir işaretçi, bu parametrelerle çift bir dize kopyalar
wcsncpy( out, data, wcslen(data) * 2 );
Bu parametrelerle doğal olarak akar.
Ama çizgi eşit çıkıyor, fazladan bir karakter bile kaymıyor.
Ve programın tamamlanmasından sonra, uzman günlüğünde bir mesaj belirir.
Ve işte bir test
Aşağıdakileri gösterir
' ' karakteri bir yerine iki bayt döndürür. Muhtemelen Unicode'da olduğu için.
Ve wchar_t ile karşılaştırıldığında, dizeler genellikle iki bayt yerine on ikidir.
Olası bir seçenek olarak, belki bir yerde eski türdeki hizalama dizenin boyutunu bozar?
@ilyas
Dll'den, const wchar_t* dizesine bir işaretçi, bu parametrelerle çift bir dize kopyalar
Bu parametrelerle doğal olarak akar.
Ama çizgi eşit çıkıyor, fazladan bir karakter bile kaymıyor.
Ve programın tamamlanmasından sonra, uzman günlüğünde bir mesaj belirir.
Ve işte bir test
Aşağıdakileri gösterir
' ' karakteri bir yerine iki bayt döndürür. Muhtemelen Unicode'da olduğu için.
Ve wchar_t ile karşılaştırıldığında, dizeler genellikle iki bayt yerine on ikidir.
Olası bir seçenek olarak, belki bir yerde eski türdeki hizalama dizenin boyutunu bozar?
@ilyas
Dll'den, const wchar_t* dizesine bir işaretçi, bu parametrelerle çift bir dize kopyalar
Bu parametrelerle doğal olarak akar.
Ama çizgi eşit çıkıyor, fazladan bir karakter bile kaymıyor.
Ve programın tamamlanmasından sonra, uzman günlüğünde bir mesaj belirir.
Ve işte bir test
Aşağıdakileri gösterir
' ' karakteri bir yerine iki bayt döndürür. Muhtemelen Unicode'da olduğu için.
Ve wchar_t ile karşılaştırıldığında, dizeler genellikle iki bayt yerine on ikidir.
Olası bir seçenek olarak, belki bir yerde eski türdeki hizalama dizenin boyutunu bozar?
1. MQL'de yalnızca unicode, bu nedenle karakter boyutu 2 bayttır
2. string bir yapıdır (4 bayt arabellek boyutu ve 8 bayt işaretçi)
Dize kopyala böyle olmalı
Bu işe yaramazsa, hata başka bir yerde aranmalıdır.
Merhaba! BMP dosyalarından veri alırken ResourceReadImage() işlevi düzgün çalışmıyor gibi görünüyor! Bir tuval üzerine arka plan olarak resim çizmek için bir komut dosyası çizdim. Görüntüyü sabit sürücüdeki bir dosyadan alır ve tuval üzerine doldurursak, her şey yolunda gider, ancak görüntü piksellerini ResourceReadImage() işlevini kullanarak ex5 dosyasının kendisindeki BMP kaynağından alırsak, o zaman son arka plan görüntüsü, orijinal görüntünün küçük ve büyük ölçüde büyütülmüş bir parçasıymış gibi olur. Sebebi ne?
Nokta kopyalama döngüsü yanlış, değiştirin
Ve böyle bir soru - FrameInputs() işlevinde olduğu gibi girdi değişkenlerinin bir listesi nasıl alınır, ancak optimizasyon olmadan yalnızca bir geçişte?
Görünüşe göre son zamanlarda böyle bir soru ortaya çıktı, bir şekilde tamamen gözden kayboldum ve şimdi kendime böyle bir görevim var (otomatik olarak set dosyaları oluşturmak istiyorum).
Hangi yöne kazılacak? Ve bu tartışmayı hatırlayan varsa - nerede (onu bulamıyorum)?
Elbette her Expert Advisor'da böyle bir liste oluşturacak ayrı bir fonksiyon yazabilirsiniz ama evrensel bir kütüphane fonksiyonu daha iyi olur.Elbette her Expert Advisor'da böyle bir liste oluşturacak tek bir fonksiyon yazabilirsiniz, ancak evrensel bir kütüphane fonksiyonu daha iyi olur.
Buraya bak.
Buraya bak.
Vay, aynen öyle!
Çok teşekkürler.
1. MQL'de yalnızca unicode, bu nedenle karakter boyutu 2 bayttır
2. string bir yapıdır (4 bayt arabellek boyutu ve 8 bayt işaretçi)
Dize kopyala böyle olmalı
Bu işe yaramazsa, hata başka bir yerde aranmalıdır.
Ancak kopyalanan dizenin boyutu ayrılan arabelleğin boyutundan daha büyük veya daha küçükse ne olur?