Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1031

 
artmedia70 :
Bir gösterge yanlışlıkla silindiğinde bu gösterge tarafından oluşturulan global değişkenlerin silinmesi gerekiyorsa, bu global değişkenlerin silinmesi göstergenin OnDeinit() işlevinde belirtilmelidir.
Aynı zamanda, bunun bir zaman aralığı değişikliği değil, göstergenin grafikten çıkarılması olduğunu kontrol etmeniz gerekir.
Teşekkür ederim!
 
artmedia70 :
Terminalde F3'e basın ve bu değişkeni manuel olarak silin. Bir kez oluşturulur ve ortamda bulunur - oradan danışman tarafından okunur. Yoksa ben seni yanlış mı anladım? Gösterge kodunun kendisinde, global bir uçbirim değişkeninin oluşturulmasını basitçe kaldırdınız, ancak bundan önce bu gösterge tarafından zaten yaratılmış mıydı?

Artem, lütfen neler olduğunu anlamama yardım et. Burada https://www.mql5.com/ru/code/10237 , terminaldeki tüm ticaret olaylarını bildiren (daha doğrusu bildirmek için kullanılan) bir danışmanın kodudur. Bu kod iyi çalıştı. Bir süredir siteden uzak kaldım. mql4'te bazı değişiklikler oldu, şimdi bu kod bir hatayla derleniyor, dizi başlatma dizeleri derlenirken bir hata oluşuyor. Vakit bulursanız bir göz atın.

Samimi olarak.

ps Sorunun ne olduğuna başka biri bakarsa, minnettar olacağım.

 
AlexeyVik :
Bilmiyorum, belki de hiç bu kadar doğru çalışmadığım C++'da ama mql sadece C-benzeri. İkincisi, dizi boyutunu bir değişkene ayarlayamazsınız, ancak örneğinizde MAX_NUM_ORDER bir değişken olmayabilir ...
dizi başlatma hakkında buraya bakın https://book.mql4.com/en/variables/arrays
 
SunnYtheDreamer :

Sırasıyla dizinin bir satırı ve bir sütunu seçilir, oraya belirli bir değer girilebilir, yani giriş normal bir değişkenle aynı olmalıdır, ancak tüm değerleri sıfırlamak için

ArrayInitialize(Arr_Tickets, 0);



öğenin bağlantısı şöyle görünecek - Arr_Tickets[MAX_NUM_ORDER,2] =0;

Yazdım - Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};

 
valenok2003 :
dizi başlatma hakkında buraya bakın https://book.mql4.com/ru/variables/arrays
Evet, dizinin global düzeyde bildirildiğini düşünüyorum, bu yüzden akıllı olmaya çalışıyorum...
 
valenok2003 :

öğenin bağlantısı şöyle görünecek - Arr_Tickets[MAX_NUM_ORDER,2] =0;

Yazdım - Arr_Tickets[MAX_NUM_ORDER][2] = {0,0, ,0,0};

Arr_Tickets[MAX_NUM_ORDER,2] - bir dizi öğesine başvuru

Arr_Tickets[MAX_NUM_ORDER][2] - bir dizi öğesine başvuru

Derleyici, nasıl yazarsanız yazın yemin etmez ve başka bir şey değil, belirli bir değer bekler. Özel olarak test edilmiştir.
Ve aynısını başka bir forum üyesine verdiğiniz bağlantıdan da teyit edin: Her bir indeksin köşeli parantez içine alındığı indeksleri belirtmek de mümkündür.

 
SunnYtheDreamer :

Arr_Tickets[MAX_NUM_ORDER,2] - bir dizi öğesine başvuru

Arr_Tickets[MAX_NUM_ORDER][2] - bir dizi öğesine başvuru

Derleyici, nasıl yazarsanız yazın yemin etmez ve başka bir şey değil, belirli bir değer bekler. Özel olarak test edilmiştir.
Ve aynısını başka bir forum üyesine verdiğiniz bağlantıdan da teyit edin: Her bir indeksin köşeli parantez içinde çerçevelendiği indeksleri belirtmek de mümkündür.

Soruyu yeniden formüle edeceğim, - Daha önce her şey derlendi ve iyi çalıştı, nedeninin ne olduğunu açıklayabilir mi? Çalışmayan kodların kod tabanına girmesine izin verilmedi...

Bu arada 53 ve 54 satırlık kodlarda hata veriyor. 54. satırda yanlış olan ne? Ve sonra bir dizi dizisi nasıl başlatılır?

Ders kitabını karıştırdım ve dizi dizileri hakkında hiçbir şey bulamadım, sadece sayısal diziler hakkında bilgi var. Belki kötü aradım? Lütfen bir bağlantı verin.

 
valenok2003 :

Artem, lütfen neler olduğunu anlamama yardım et. Burada https://www.mql5.com/ru/code/10237 , terminaldeki tüm ticaret olaylarını bildiren (daha doğrusu bildirmek için kullanılan) bir danışmanın kodudur. Bu kod iyi çalıştı. Bir süredir siteden uzak kaldım. mql4'te bazı değişiklikler oldu, şimdi bu kod bir hatayla derleniyor, dizi başlatma dizeleri derlenirken bir hata oluşuyor. Vakit bulursanız bir göz atın.

Samimi olarak.

ps Sorunun ne olduğuna başka biri bakarsa, minnettar olacağım.

Her şeyden önce, kodun başına #property strict ekleyin ve derleyin.

şöyleydi:

 #property copyright "Copyright © valenok2003@mail.ru"
#property link        "http://bluedream.ucoz.ru"

şöyle yapın:

 #property copyright "Copyright © valenok2003@mail.ru"
#property link        "http://bluedream.ucoz.ru"
#property strict

Bundan sonra, vereceği hatalara bakmanız gerekir.

 
artmedia70 :

Her şeyden önce, kodun başına #property strict ekleyin ve derleyin.

şöyleydi:

şöyle yapın:

Bundan sonra, vereceği hatalara bakmanız gerekir.

Fişe taktım, hiçbir şey değişmedi.

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0,,0,0}; ArrayInitialize (Arr_Tickets, 0 ); ile de değiştirebilirim.

Arr_Order_Symbol[MAX_NUM_SYMBOL] = {"",""}; dizesiyle ne yapılmalı? ArrayInitialize (Arr_Order_Symbol,"" ) aracılığıyla bir dize dizisini başlatmaya çalışırken, - "anlamadım..." diyor, işlev tarafından işlenecek uygun nesne yok...

 
valenok2003 :

Fişe taktım, hiçbir şey değişmedi.

Arr_Tickets[MAX_NUM_ORDER][2] = {0,0,,0,0}; ArrayInitialize (Arr_Tickets, 0 ); ile de değiştirebilirim.

Arr_Order_Symbol[MAX_NUM_SYMBOL] = {"",""}; dizesiyle ne yapılmalı? ArrayInitialize (Arr_Order_Symbol,"" ) aracılığıyla bir dize dizisini başlatmaya çalışırken, - "anlamadım..." diyor, işlev tarafından işlenecek uygun nesne yok...

Peki bu diziyi sıfırlayın: ZeroMemory()