MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 927

 
Artyom Trishkin :

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 ...

Teşekkürler Bir göz atacağım ... Burada abonelikten çıkacağım ... Prensipte çok fazla prog yok ...
 
Artyom Trishkin :

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?

 
Seric29 :

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

 
Igor Makanu :

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];

 
Seric29 :

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.

 
Igor Makanu :

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.

 
Igor Makanu :

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?

 
Seric29 :

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:

 #define open   0
#define take   1
#define loss   2
#define profit 3
void OnStart ()
  {
   double order[ 4 ];
  order[open] =  OrderOpenPrice();
  order[take] =  OrderTakeProfit();
  order[loss] =  OrderStopLoss();
  order[profit]= OrderProfit();
  }

Belki sorunuzun netliğini anlamıyorum.
Serik29 :

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.

 
Igor Makanu :

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.