MetaTrader 4 Build 529 Beta, Yeni Derleyici ile Yayınlandı - sayfa 104

 
artmedia70 :

Komik. Uzmanın adı, bulunduğu alt klasörlerin adlarını da içerir.

Bu, uzmanın adının boyutunu makul olmayan bir şekilde artırır.

Örneğin: Uzman olarak adlandırılıyorsa ve bu uzman Terminal_Catalog\MQL4\experts\Orders\Customer_Nick konumundaysa ,

o zaman uzmanın adı Expert değil, Orders\Customer_Nickname\Expert olacaktır. Nesne adları ayrıca uzman_adı_nesne_adı_zamanını da içeriyorsa, bu karakter sayısına göre bir aramadır ve nesne sıfır fiyat ve sıfır zamanda görüntülenir.

Nesnelerin adları uzmanın adını içeriyorsa, böylece başlatmadan kaldırma sırasında kendi kendini temizleyebilirse, nesne adının kendisi için çok az yer kalır.

Değişecek mi yoksa böyle mi kalacak?


Değişmiş olacak.
 
Renat :

Günlüğe bakın - neyin indirildiğini ve neyin indirildiğini söylüyor mu?


Yardım güncellemesi indirilmiyor

Ve şimdi böyle

 

Beyler, hatırladığım kadarıyla, terminallerin ilk sürümlerinde benzer bir şey yuvarlandı.

 extern double sig[ 3 ]= { 12 , 0.548 , 0.21 , 0.413 };

Ama şimdi bana bir hata veriyor, sorun ne?

İkinci soru

Taşınabilir bayraklı bir terminali bir flash sürücüye kurarken , her şey doğru çalışıyor mu? Daha önce hesap adlarının görüntülenmesinde ve hesaplarda astronomik tutarlarda sorunlar olduğunu hatırlıyorum ...

 
VOLDEMAR :

Beyler, hatırladığım kadarıyla, terminallerin ilk sürümlerinde benzer bir şey yuvarlandı.

Ama şimdi bana bir hata veriyor, sorun ne?

İkinci soru

Taşınabilir bayraklı bir terminali bir flash sürücüye kurarken, her şey doğru çalışıyor mu? Daha önce hesap adlarının görüntülenmesinde ve hesaplarda astronomik tutarlarda sorunlar olduğunu hatırlıyorum ...


Üç elemanlı bir dizi bildirilir ve ona dört eleman yazılır. Kesinlikle bir hata. Başlatma listesi büyük olduğunda, bunu yapmak daha iyidir:

 double sig[]= { 12 , 0.548 , 0.21 , 0.413 };

Derleyici kendisi için hesaplayacaktır.

Bir diziyi ayar parametresi olarak ilan etmeye ne dersiniz?

 
Scriptong :


Üç elemanlı bir dizi bildirilir ve ona dört eleman yazılır. Kesinlikle bir hata. Başlatma listesi büyük olduğunda, bunu yapmak daha iyidir:

Derleyici kendisi için hesaplayacaktır.


hayır, çalışma

 
VOLDEMAR :


hayır, çalışma


Eh, saf İngilizce ile yazılmıştır: ayarlarda buna izin verilmiyor. Bir sabit değer bekleniyor :)
 
Scriptong :

Eh, saf İngilizce ile yazılmıştır: ayarlarda buna izin verilmiyor. Bir sabit değer bekleniyor :)

İngilizce bilmiyorum (((, ama ayarlarda ( ; ) üzerinden birçok parametrenin girildiği kodları gördüm ...
 
VOLDEMAR :

Beyler, hatırladığım kadarıyla, terminallerin ilk sürümlerinde benzer bir şey yuvarlandı.

Ama şimdi bana bir hata veriyor, sorun ne?



Bu da daha önce işe yaramadı. harici değiştiriciyi kaldırın
 

Söyle bana, bunun neden olduğunu anlamıyorum. Referans:

Событие Deinit генерируется для экспертов и индикаторов в следующих случаях:

· mql4 programını kaldırmadan önce.

Aşağıdaki durumlarda bir çizelgeye eklenmiş bir Uzman Danışman kaldırılır:

· terminalin kapatılması (eğer Uzman Danışman tabloya eklenmişse);

1) Expert Advisor, OnInit'te 400 grafik nesne oluşturur (sınıfların yardımıyla yeni nesne)

2) OnDeinit'te siler ( delete operatörü, yeni operatör tarafından oluşturulan nesneyi siler )

Danışmanı silerken - her şey bir patlama ile (oluşturulan nesneler silinir)

TF'yi değiştirirken, geçmiş yüklenirse - her şey bir patlama ile (oluşturulan nesneler silinir, yenileri oluşturulur)

TF'yi değiştirirken , bu TF için geçmiş yüklenmezse - yaklaşık 3 kez OnDeinit ve OnInit ve hızlı bir şekilde gerçekleşir

(bazen nesneler hiç oluşturulmaz ve terminal hata vermez)

Terminali kapatıp açtığınızda - 400 hata 4200 - nesne zaten var.

Terminalin kapatılması OnDeinit'i tetiklemiyor???

Ve tutamaçları olan 400 nesneyi nasıl silebilirim? Mevcut grafikten bir "tüm nesneleri sil" düğmesi eklemeyi mi önerdiniz?

(ps Sevgili geliştiriciler, nesne oluşturma sırası yakın gelecekte (ay) düzeltilecek mi?

böylece siparişin bağımlılığı isme değil, kodda nasıl oluşturulduklarına bağlıydı)

// alexey_pak teşekkürler, Ctrl + A'nın "nesneler listesinde" çalıştığını bilmiyordum

 

Meslektaşlar! Derlerken bir uyarı verilir:

başlatılmamış değişken 'PipStep' olası kullanımı

bu parça için:

      PipStep = NormalizeDouble (InitPipStep * MathPow (PipStepExp, BuyOrders - StartDynStep + 1 ), 0 );
      LastBuyPrice = FindLastBuyPrice();
       if (Ask < LastBuyPrice - ( PipStep * Point ))//для ЭТОЙ строки выдало  possible use of uninitialized variable 'PipStep' 

Tüm değişkenler double olarak başlatılıyor, neyi sevmiyor?