PROFI'den SUPERPROFI'ye kadar tüm sorularınız - 1. - sayfa 20
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
Verilen:
EA'nın init() işlevinde, MQL SRP oluşturucu başlatılır: MathSrand(...). Terminali şablondan başlatırken, danışmanın birkaç (kesinlik için üç diyelim) kopyası yüklenir. Yükleme hızlıdır, bu nedenle TimeLocal() ve TimeCurrent() işlevlerinin tüm kopyalarda aynı değerleri üretme olasılığı yüksektir (aslında neredeyse her zaman öyledir).
Soru:
PRNG'nin danışmanın farklı numaralarla farklı kopyalarında başlatılmasını sağlamanın püf noktaları nelerdir? Başka bir deyişle, (minimum programlama çabasıyla) rastgelelik öğesini nereden elde edebilirsiniz?
Verilen:
EA'nın init() işlevinde, MQL SRP oluşturucu başlatılır: MathSrand(...). Terminali şablondan başlatırken, danışmanın birkaç (kesinlik için üç diyelim) kopyası yüklenir. Yükleme hızlıdır, bu nedenle TimeLocal() ve TimeCurrent() işlevlerinin tüm kopyalarda aynı değerleri üretmesi için iyi bir şans (aslında neredeyse her zaman) vardır.
Soru:
PRNG'nin danışmanın farklı numaralarla farklı kopyalarında başlatılmasını sağlamanın püf noktaları nelerdir? Başka bir deyişle, (minimum programlama çabasıyla) rastgelelik öğesini nereden elde edebilirsiniz?
GetTickCount?
kesişebilir, ama bir gerçek değil ...
bir program için bir milisaniye sonsuzluk olabilir))
kesişebilir, ama bir gerçek değil ...
seçenek 2 - uzmanların tutarlı bir şekilde başlatılması için "semaforlar" oluşturmak için global değişkenleri kullanma.
Dll'den mql'ye dize alma hakkında soru.
libmysql.dll'deki mysql_fetch_row işlevi, MYSQL_ROW türünü döndürür
Bu tür şu şekilde tanımlanır: typedef char** MYSQL_ROW
bu döndürülen dizi dizisine nasıl ulaşılır?
Dizinin boyutları biliniyor mu?
ancak her dizenin uzunluğu değildir.
bu örnekte, bağlantıda bir tane daha çöp var - *uzunluk işaretçisini almak.
Ayrıca bir dizi çıkıyor ... ama ona nasıl ulaşılır ...
işaretsiz uzun *uzunluklar; uzunluklar = mysql_fetch_lengths(sonuç); for(i = 0; i < sayı_alanları; i++) { printf("[%.*s] ", (int) uzunluklar[i] , satır[i] ? satır[i] : "NULL"); }MQL'de mysql_fetch_row'un sonucunu string'e geçirirken olan budur
p0ƒ u0ƒ ;1;a
nerede
p0ƒ u0ƒ - anladığım kadarıyla istenen satırın adresi (8 bayt)
;1;a onun yüküdür
int'ye atanmışsa, p0ƒ yerine adres 42152040 olacaktır.
Program çalışırken dizgenin işaretçisi değişmezse, işaretçiyi arabelleğe kopyalamadan dizeye geri döndürebilirsiniz.
bu herhangi bir şekilde MQL'de mi? hatta MQL5?
Program çalışırken dizgenin işaretçisi değişmezse, işaretçiyi arabelleğe kopyalamadan dizeye geri döndürebilirsiniz.
basitçe