Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 855

 

Yine de, sorulan soruların cevaplarını almak benim için önemli.

CTrade::Buy , CTrade::Sell, CTrade::ClosePosition yöntemleri için

Bu, false döndürülürse Retcode'un yoksayılması gerektiği anlamına mı geliyor?

true döndürülürse, Retcode'un her zaman doğru değerle doldurulduğu anlamına mı geliyor?

Teşekkür ederim.

 

Meslektaşlarım, anlamaya yardımcı olun.

Kayıt defteri ile çalışmaya hakim olmaya çalışıyorum, test için basit bir danışman attım. Sistem kayıt defterinden veri okumak sorunsuz gidiyor, ancak yazma ile ilgili sorunlar var, MT ve bellek çökmesi var ... (((

Belki gözlerim bulanıktır ve bariz olanı göremiyorum...

Dosyalar:
TestReg.mq5  25 kb
 
Алексей Барбашин :

Meslektaşlarım, anlamaya yardımcı olun.

Kayıt defteri ile çalışmaya hakim olmaya çalışıyorum, test için basit bir danışman attım. Sistem kayıt defterinden veri okumak sorunsuz gidiyor, ancak yazma ile ilgili sorunlar var, MT ve bellek çökmesi var ... (((

Belki gözlerim zaten bulanıktır ve bariz olanı göremiyorum...

Burada her şey basit olmalı. API işlevine yapılan her çağrıdan önce ve sonra, günlüğe bir şey çıktılayın. Kazadan sonra, kaza yeri günlüklerden netleşecek.

 
. ... Rick D. ... . :

Burada her şey basit olmalı. API işlevine yapılan her çağrıdan önce ve sonra, günlüğe bir şey çıktılayın. Kazadan sonra, kaza yeri günlüklerden netleşecek.

Böylece günlüğün kaydolmak için zamanı olmayacak, terminal bir hatayla kapanacak. ((Bellek sızıntısı olduğunu varsayıyorum. Ama dinamik nesnelerin kullanımı yok (yeni). Sadece bununla nasıl başa çıkacağımı ve bu tür sorunları nasıl tanımlayacağımı bilmiyorum;(

 
Алексей Барбашин :

Böylece günlüğün kaydolmak için zamanı olmayacak, terminal bir hatayla kapanacak. ((Bellek sızıntısı olduğunu varsayıyorum. Ama dinamik nesnelerin kullanımı yok (yeni). Sadece bununla nasıl başa çıkacağımı ve bu tür sorunları nasıl tanımlayacağımı bilmiyorum;(

Örneğinizi burada biraz değiştirdim.
Dosyalar:
TestReg.mq5  26 kb
 
. ... Rick D. ... . :
Örneğinizi burada biraz değiştirdim.

Ben... şok oldum, hoş bir şok. Kayıt defterinde asenkron bir yük sağlamak için değişikliğinizi aynı anda birkaç çizelgeye koydum .... Her şey kararlı bir şekilde çalışıyor. API'ye parametre iletme prensibini değiştirdiniz yani dönüş değerlerinin kullanıldığı yerde referans ile geçen diziler kullandınız ki bu mql'de bir adres geçirmek anlamına geliyor ya da C++ açısından pointer. Ancak, 10 yıl önce açıklanan bu yaklaşımı bir anakronizm olarak kabul ettim, çünkü API'deki tüm basit veri türleri zaten referans olarak geçiriliyor .... Ama görünüşe göre bu benim hatam ve basiretsizliğimdi, bu da basit türlerin o kadar acısız bir şekilde aktarılmadığı anlamına geliyor. API'ye . Beni doğru yöne işaret ettiğiniz için çok teşekkür ederim! )))

 
Алексей Барбашин :

Ben... şok oldum, hoş bir şok. Kayıt defterinde asenkron bir yük sağlamak için değişikliğinizi aynı anda birkaç çizelgeye koydum .... Her şey kararlı bir şekilde çalışıyor. API'ye parametre iletme prensibini değiştirdiniz yani dönüş değerlerinin kullanıldığı yerde referans ile geçen diziler kullandınız ki bu mql'de bir adres geçirmek anlamına geliyor ya da C++ açısından pointer. Ancak, 10 yıl önce açıklanan bu yaklaşımı bir anakronizm olarak kabul ettim, çünkü API'deki tüm basit veri türleri zaten referans olarak geçiriliyor .... Ama görünüşe göre bu benim hatam ve basiretsizliğimdi, bu da basit türlerin o kadar acısız bir şekilde aktarılmadığı anlamına geliyor. API'ye . Beni doğru yöne işaret ettiğiniz için çok teşekkür ederim! )))

Bir zamanlar, MT4 altında, tek boyutlu diziler aracılığıyla API işlevlerine işaretçiler iletmeyi öğrettiler. Şu anda bir şey değiştiyse ve biri bunu onaylayabilirse, yeni bir yaklaşım kullanacağım.

Ama yine de tiplerle karıştırdın. Özellikle Windows'ta uzun ve MQL5'te farklı boyutlara sahiptir.
Belki başka farklılıklar bulabilirsiniz.

 
. ... Rick D. ... . :

Bir zamanlar, MT4 altında, tek boyutlu diziler aracılığıyla API işlevlerine işaretçiler iletmeyi öğrettiler. Şu anda bir şey değiştiyse ve biri bunu onaylayabilirse, yeni bir yaklaşım kullanacağım.

Ama yine de tiplerle karıştırdın. Özellikle Windows'ta uzun ve MQL5'te farklı boyutlara sahiptir.
Belki başka farklılıklar bulabilirsiniz.

Tüm farklılıkları gördüm))) Çok teşekkür ederim!

Tek soru, kayıt defterinde depolanan verilerin boyutudur. Belgelerdeki örneğe göre (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspx), düzeltilmiş dosya (ushort buff[ 1024];). haklı mıyım?
RegQueryValueEx function (Windows)
  • msdn.microsoft.com
Retrieves the type and data for the specified value name associated with an open registry key. To ensure that any string values (REG_SZ, REG_MULTI_SZ, and REG_EXPAND_SZ) returned are null-terminated, use the RegGetValue function. Syntax Parameters hKey [in] lpValueName [in, optional] The name of the registry value. If lpValueName is NULL or an...
 
Алексей Барбашин :

Tüm farklılıkları gördüm))) Çok teşekkür ederim!

Tek soru, kayıt defterinde depolanan verilerin boyutudur. Belgelerdeki örneğe göre (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724911(v=vs.85).aspx), düzeltilmiş dosya (ushort buff[ 1024];). haklı mıyım?
Doğru. Daha fazla veri olabilir. Büyük veriler için, önce uzunluğu istemek, ardından diziyi dinamik olarak yeniden boyutlandırmak ve ardından tüm verileri almak doğrudur.
 
. ... Rick D. ... . :
Doğru. Daha fazla veri olabilir. Büyük veriler için, önce uzunluğu istemek, ardından dizinin boyutunu dinamik olarak değiştirmek ve ardından tüm verileri almak doğrudur.

Hmm... Muhtemelen API'ye dikkatlice bakmadım, ama böyle bir işlev fark etmedim.... Ve büyük olasılıkla uygun olacaktır.

Biraz daha anlatabilir misiniz... belki soru çok saçma... Bir sayı, örneğin double nasıl bir karakter dizisine dönüştürülebilir? Diğer bir deyişle, bazı API'ler, sayıların işaretçi olarak iletilmesini gerektirir. İşaretçiler tek boyutlu diziler olarak iletilir... Dizeler için açıktır , StringToShortArray ve StringToCharArray işlevleri onlar için sağlanır, ancak sayılarla, onları hala bayt dizilerine (char) nasıl dönüştüreceğimi çözemedim.

Neden: