MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 927
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
Dosyaları depolamak için klasör: Dosya --> Veri dizinini aç --> MQL4\Experts\Here.ex4
Her şey böyleyse, ancak danışman navigatörde görünmüyorsa, o zaman ... tebrikler - navigatörde olası program sayısı tükendi. Bir şeyin kaldırılması gerekiyor. Ne yazık ki, MetaTrader4'ün Navigator'ın görebileceği program sayısı konusunda bir sınırı vardır. Çok sayıda gösterge oluştururken bununla karşılaştım. İhtiyacım olan birçok şeyi silmemek için kodu bir test dosyasına kopyaladım ve derledim ve her zaman çalıştırdım - bu şekilde ihtiyacım olan göstergeleri her zaman tek bir dosyada test ettim - dosyanın içeriğini sildim, ekledim içine yeni kod, derlendi, test edildi - tamamlandı. Sonra bir sonraki - dosyanın içeriğini sildi, içine yeni bir kod ekledi .. ve sonra bir daire içinde ...
Dosyaları depolamak için klasör: Dosya --> Veri dizinini aç --> MQL4\Experts\Here.ex4
Her şey böyleyse, ancak danışman navigatörde görünmüyorsa, o zaman ... tebrikler - navigatörde olası program sayısı tükendi. Bir şeyin kaldırılması gerekiyor. Ne yazık ki, MetaTrader4'ün Navigator'ın görebileceği program sayısı konusunda bir sınırı vardır. Çok sayıda gösterge oluştururken bununla karşılaştım. İhtiyacım olan birçok şeyi silmemek için sadece kodu bir test dosyasına kopyaladım ve derledim ve her zaman çalıştırdım - bu şekilde ihtiyacım olan göstergeleri her zaman tek bir dosyada test ettim - dosyanın içeriğini sildim, ekledim içine yeni kod, derlendi, test edildi - tamamlandı. Sonra bir sonraki - dosyanın içeriğini sildi, içine yeni bir kod ekledi .. ve sonra bir daire içinde ...
veri dizinine kopyalandı - exp programları, göstergeler, komut dosyaları - yeterli değil. GEZİCİDE ... Temmuz - hayır.
klasörde - terminali kısayoldan başlattığım yerden - aynı zamanda orada. NAVIGATOR'da - hayır.
ARTEM - TEŞEKKÜR EDERİM. TERMİNALİ YENİDEN BAŞLATILDI - MEVCUT.
Böyle bir soru, bir dizi oluşturmak ve oluşturulan diziye hemen değerleri koymak istiyorum, ancak değerleri fonksiyon değişkenleri vb. aracılığıyla göndermek istiyorum. Örnek.
int q=8,w=9;
int mas[2]={q,w}. Bunu yapmak bir hataya neden olur. Bunu mas[0]=q,mas[1]=w yapmanız gerekir. Bir dizi oluştururken gerekli hesaplamaları zaten depolayan değişkenleri hemen değiştirmek ve bu şeyi bir diziye koymak bir şekilde mümkün mü, c ++ bunu destekliyor, ancak mql yapmıyor, bunu yapmak mümkün mü, yapılabilir mi? makroları kullanarak?
Böyle bir soru, bir dizi oluşturmak ve oluşturulan diziye hemen değerleri koymak istiyorum, ancak değerleri fonksiyon değişkenleri vb. aracılığıyla göndermek istiyorum. Örnek.
int q=8,w=9;
int mas[2]={q,w}. Bunu yapmak bir hataya neden olur. Bunu mas[0]=q,mas[1]=w yapmanız gerekir. Bir dizi oluştururken gerekli hesaplamaları zaten depolayan değişkenleri hemen değiştirmek ve bu şeyi bir diziye koymak bir şekilde mümkün mü, c ++ bunu destekliyor, ancak mql yapmıyor, bunu yapmak mümkün mü, yapılabilir mi? makroları kullanarak?
imkansız, haftanın başında "Hatalar, hatalar, sorular" konusunda birisi bunu tartıştı - sonuç imkansız
imkansız, haftanın başında "Hatalar, hatalar, sorular" konusunda birisi bunu tartıştı - sonuç imkansız
Açık. Bir diziyi bir değişken aracılığıyla başlatırken sütunların veya satırların değerini iletmek mql'de yasak olmasına rağmen, bir dizi bildirirken birinin bir makro aracılığıyla sütun sayısını atadığını gördüm ve biri bunu bir makro aracılığıyla yaptı. İşte konu https://www.mql5.com/ru/forum/95351 .
#define ODD 5
çift Maks_D1[ODD];
çift Düşük_D1[ODD];
Açık. Bir diziyi bir değişken aracılığıyla başlatırken sütunların veya satırların değerini iletmek mql'de yasak olmasına rağmen, bir dizi bildirirken birinin bir makro aracılığıyla sütun sayısını atadığını gördüm ve biri bunu bir makro aracılığıyla yaptı. İşte konu https://www.mql5.com/ru/forum/95351 .
#define ODD 5
çift Maks_D1[ODD];
çift Düşük_D1[ODD];
Ve bu eylemin anlamı nedir? soruyu nasıl sordun : bir diziyi sabitlerle değil, değişkenlerle başlatmak mümkün müdür? - cevap hayır
Makronuz, dizinin her bir öğesine bir değişken değeri atamak için el ile yaptığınız işi yapacaktır, ancak bunun özü değişmeyecektir.
Ve bu eylemin anlamı nedir? soruyu nasıl sordun : bir diziyi sabitlerle değil, değişkenlerle başlatmak mümkün müdür? - cevap hayır
Makronuz, dizinin her bir öğesine bir değişken değeri atamak için el ile yaptığınız işi yapacaktır, ancak bunun özü değişmeyecektir.
Şey, bir şeyler kurabileceğini düşündüm.
Ve bu eylemin anlamı nedir? soruyu nasıl sordun : bir diziyi sabitlerle değil, değişkenlerle başlatmak mümkün müdür? - cevap hayır
Makronuz, dizinin her bir öğesine bir değişken değeri atamak için el ile yaptığınız işi yapacaktır, ancak bunun özü değişmeyecektir.
Bu sorunu çözmek için sabit bir değer döndüren bir işlev oluşturmak mümkün müdür?
Bu sorunu çözmek için sabit bir değer döndüren bir işlev oluşturmak mümkün müdür?
Numara
Başlatma ve değer atama kavramlarını karıştırıyorsunuz, aynı öze sahipler, ancak kullanım anları (ne zaman) farklıdır, başlatma, dizinin tanımlandığı satırdadır - orada sabitlerle başlatıldı ve sonra atama dizi açıklaması, diziye isteğe bağlı bir yerde isteğe bağlı değerler atarsınız ( dizi öğeleri )
Ne sorduğunu nasıl açıklayacağımı bilmiyorum ve neden bunun imkansız olduğunu yazdığımı
Dizileri kullanırken, ortaya çıkardığınız böyle bir sorun yoktur, görünüşe göre kodu yazmanın en başından beri bir dizi kullanmayı düşünmediniz, şimdi sadece kodu yeniden yazıyorsunuz veya her bir öğeye manuel olarak bir değişken değer atayacaksınız. sıralamak
Bazen değişken "üretmemek" için bir dizi kullanabilirim, eğer dizi 3-4 elemandan fazla ise programın yazımı sırasında dizi eleman numarasının karıştırılma riski yüksek, sabit değerler kullanıyorum Bunun için #define ile belirtilmiştir - kodun okunabilir olduğu ortaya çıkıyor ve bir hata yapmak imkansız , aşağı yukarı şöyle:
Belki sorunuzun netliğini anlamıyorum.
Böyle bir soru, bir dizi oluşturmak ve oluşturulan diziye hemen değerleri koymak istiyorum, ancak değerleri fonksiyon değişkenleri vb. aracılığıyla göndermek istiyorum. Örnek.
int q=8,w=9;
int mas[2]={q,w}. Bunu yapmak bir hataya neden olur. Bunu mas[0]=q,mas[1]=w yapmanız gerekir. Bir dizi oluştururken gerekli hesaplamaları zaten depolayan değişkenleri hemen değiştirmek ve bu şeyi bir diziye koymak bir şekilde mümkün mü, c ++ bunu destekliyor, ancak mql yapmıyor, bunu yapmak mümkün mü, yapılabilir mi? makroları kullanarak?
bir diziyi tanımlarken? - değişkenlerle başlatılması mı gerekiyor? - yukarıda 2 kez cevaplandı
veya bir diziye birden çok değişken değeri atamak mı? - cevap da imkansız, ancak geçersiz sözdizimi nedeniyle:
değişkenleri küme parantezleri içinde kullanamazsınız, yani. {1,2,3} - derleyici bunu atlayacak ve {a,b,c} - bu mümkün değil çünkü bir değişken adı algılayan derleyici ya bir aritmetik (mantıksal) işlem ya da bir operatör = (değer, değer) ... bekleyecektir. Dilin sözdizimini çalışmalısınız, ancak mesele dilin yeteneklerinde olmayabilir.
Numara
Başlatma ve değer atama kavramlarını karıştırıyorsunuz, aynı öze sahipler, ancak kullanım anları (ne zaman) farklıdır, başlatma, dizinin tanımlandığı satırdadır - orada sabitlerle başlatıldı ve sonra atama dizi açıklaması, diziye isteğe bağlı bir yerde isteğe bağlı değerler atarsınız ( dizi öğeleri )
Ne sorduğunu nasıl açıklayacağımı bilmiyorum ve neden bunun imkansız olduğunu yazdığımı
Dizileri kullanırken, ortaya çıkardığınız böyle bir sorun yoktur, görünüşe göre kodu yazmanın en başından beri bir dizi kullanmayı düşünmediniz, şimdi sadece kodu yeniden yazıyorsunuz veya her bir öğeye manuel olarak bir değişken değer atayacaksınız. sıralamak
Bazen değişken "üretmemek" için bir dizi kullanabilirim, eğer dizi 3-4 elemandan fazla ise programın yazımı sırasında dizi eleman numarasının karıştırılma riski yüksek, sabit değerler kullanıyorum Bunun için #define ile belirtilmiştir - kodun okunabilir olduğu ortaya çıkıyor ve bir hata yapmak imkansız , aşağı yukarı şöyle:
Olduğu gibi, burada programda bildirilen öğelerin karma bir kullanımını elde ediyoruz. Örneğin, girdi parametrelerini bildiririm ve bu parametrelerden global değişkenleri alıp onları görüntülemem gerekir, ancak sorun şu ki girdi parametreleri bir dizi olamaz, 2. örnek bir fonksiyon yazmaktır ve döngüler aracılığıyla işlem yapmak da daha iyidir burada bir dizi, argümanları bir diziye aktarmaya başlıyorum ve yine, bir diziyi değişkenlerle başlatmak imkansız ve yukarıda yazdığınız gibi her hücreye bir değer yazmanız gerekiyor, 3. örnek bir kullanmak için harika olurdu işlev argümanları olarak dizi (burada argümanlar farklı olduğu için yapısal olacaktır) ve yine sorun dizileri kullanmaktır, çünkü fonksiyon argümanlarına da izin verilmez. Değişkenler yerine dizileri kullanmaya gelince, evet, programları kompakt hale getiriyor ve ben de yapıyorum. C++'da, 12. sürümde başlatma sırasında değişkenler girebilirsiniz, aşağıda mümkün olmayabilir, ancak burada tüm bunların fiyatını düşürdüler, bu da bu tür sonuçlara yol açtı. Bu arada cevaplar için teşekkürler.