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
Terminali 1065 sürümüne güncellemeyi deneyin. Önceki sürümlerde, tam zaman çerçevesi değiştirilirken yeniden başlatma hatası oluştu. Yardımcı olabilir :)
https://www.mql5.com/ru/forum/187690
5.00 b1571 terminalim var
Değişkenlerin değerlerini bir yerde, örneğin globallerde saklayabilirsiniz. yeniden okuduktan sonra değişkenleri okuyun ve geri yükleyin.
Ve sonra Deinit işini tamamlayacak ve her şeyi mahvedecek. Normal Init ve Deinit'te kendi özel girişlerinizi ve tanımlarınızı yapmanın bir anlamı yoktur.
Ayrıca bu sorunla karşı karşıya kaldı. (
Ve sonra Deinit işini tamamlayacak ve her şeyi mahvedecek. Normal Init ve Deinit'te kendi özel girişlerinizi ve tanımlarınızı yapmanın bir anlamı yoktur.
Ayrıca bu sorunla karşı karşıya kaldı. (
Tamamen katılıyorum (Normal Init ve Deinit'te hiçbir anlam ifade etmiyor)
Belki grafik nesnelere adlarının önekinin bir bileşeni olarak TF dönemini atamaya çalışın,
ve sonra şöyle bir şey uygulayın:
Evet, böyle bir şey yapmam gerekiyordu ama bu kısmi bir çözüm.
Değişkenlerle, bir kaynak veya dosyalar aracılığıyla da mümkündür, ancak bunlar MT5'i düzelterek önlenebilecek ayrı ek kaynaklardır.
Kodu gereksiz yan işlevler, kontroller vb. (F....)
TF'yi değiştirirken, önce eski TF'yi, sonra da Init'i yenisiyle tanımladığını düşündüm (boşuna çıkıyor). Bu mantıklı bir olay akışıdır ve Uzman Danışmanlar ve göstergeler yaparken bu mantığa güvendim. Ve sonra olaylar dizisinin ihlali ile böyle bir saçmalık ortaya çıkıyor ...
Çalışırken bazen grafiklerde ve grafikte bir sorun olduğunu fark ettim. nesneler ve her şeyin normal şekilde görüntülenmesi için TF'yi birkaç kez değiştirmek zorunda kaldı.
Şimdi kodları anlamak gerekiyor, burada deinitlerde bir şeylerin değiştiği ve daha sonra initlerde de geri döndüğü yer ... ama görünüşe göre sıra tam tersi !!! Tin, mantık değil. Bunu kim buldu?
Aklıma gelen ilk şey, benim alanımda küre içinde bir ezber olduğudur. önceki durumun değişkenleri (basılan / bırakılan düğmeler) ve ardından init'te düğmeler kaydedilen değerlere göre ayarlanır. Ve tam olarak, her zaman doğru şekilde yeniden yüklemediğim düğmeler. İlk hatırladığım bu, belki başka bir şey bulurum ... yarın kazacağım.
Geliştiriciler sayesinde, işi attı ...
Deinit'te, globallerdeki tüm verilerin kaydını kaydedin. Aynı zamanda, GlobalVariableSetOnCondition aracılığıyla bir globali semafor olarak ayarlayın.
Init'te semafor "veri sıfırlama" durumundaysa semaforu "tümünü oku" durumuna ayarlayarak okuyup çalıştığımızı yazın.
Eğer semafor "net değil" durumundaysa, semaforu bekleriz (ya döngülü bir Uyku ya da OnTimer aracılığıyla).
Ve elbette, semafor tamamen yoksa, o zaman bu, ilk kez başlattığımız ve gelecekteki TF değişikliklerini değil, aynı anda bir semafor oluşturmuş olarak her şeyi dikkate aldığımız anlamına gelir.
Böyle bir uygulamada zor olan nedir? Bir zamanlar reçete yazılacak bir kitaplık ve hepsi bu.
Deinit'te, globallerdeki tüm verilerin kaydını kaydedin. Aynı zamanda, GlobalVariableSetOnCondition aracılığıyla bir globali semafor olarak ayarlayın.
Init'te semafor "veri sıfırlama" durumundaysa semaforu "tümünü oku" durumuna ayarlayarak okuyup çalıştığımızı yazın.
Eğer semafor "net değil" durumundaysa, semaforu bekleriz (ya döngülü bir Uyku ya da OnTimer aracılığıyla).
Böyle bir uygulamada zor olan nedir? Bir zamanlar reçete edilecek bir kitaplık ve bu kadar.
Böyle bir sorun olduğunu bile bilmiyordum. Bir dizi deinit-init olmasını umuyordum ve tam tersi değil. Sorunları bildiğinizde onları çözebilirsiniz. Ama bana öyle geliyor ki, buna şimdi her programa değiştirilmesi gereken koltuk değnekleri değil, terminal mantık düzeyinde karar verilmeli ...
Bu bir koltuk değneği değil, basit bir çözüm. Tek soru, onu kimin uyguladığı - geliştiriciler veya kullanıcılar. Ve orada ve orada zaman harcamalı ve bir kez yazmalısınız. Kullanıcılar yapabilirse, yazdılar ve artık sorun hakkında endişelenmeyin. Konuyu yeni okudum ve hemen bir çözüm buldum. O zaman neyi ertelemeli? Bir şeyi uzun süre talep edebilir veya hızlıca kendiniz yazabilirsiniz.