Hatalar, hatalar, sorular - sayfa 2458

 

MQL4'ten MQL5'e geçerken bir aksaklıkla karşılaştım:

kod:

ResetLastError();

int NesneToplam = NesnelerToplam(0);

int Hata = GetLastError();

İadeler:

ObjToplam = 0

Hata=4022

Bu hata nedir, neden belgelerde yok?

Farklı seçenekler denendi: ObjectsTotal(0, -1, -1), ObjectsTotal(ChartID(), 0, OBJ_TREND) vb.

Sonuç aynı.

Nasıl çalıştırılır?

Terminal: MetaTrader 5, Sürüm 5.00 yapı 2025.
 
Игорь Евдокимов :

İpucu: Bir şey sormak istiyorsanız - bir parça değil TAM kodu girin.

Amaç nedir: Herhangi bir kişi kodunuzu alır ve evde çalıştırır. Ve pratikte kimse parçalı koda bakmaz - parçalı kod saygısızlıktır.

Kodunuzun bir örneği:

 //+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                              Copyright © 2019, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2019, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   ResetLastError ();
   int ObjTotal= ObjectsTotal ( 0 );
   int Error= GetLastError ();
   Print ( "ObjectsTotal: " ,ObjTotal, ", GetLastError: " ,Error);
//---
  }
//+------------------------------------------------------------------+

Tek bir grafik nesnenin olmadığı bir çizelgeye başlıyoruz. Sonuç:

 2019.05 . 10 13 : 26 : 59.169 1 (EURUSD,H1)   ObjectsTotal : 0 , GetLastError : 0

Yani hata yoktur.


Terminali kullanıyorum:

 2019.05 . 10 13 : 25 : 35.665 MetaTrader 5 x64 build 2025 started (MetaQuotes Software Corp.)
2019.05 . 10 13 : 25 : 35.668 Windows 10 (build 17763 ) x64, IE 11 , UAC, Intel Core i3- 3120 M  @ 2.50 GHz, Memory: 3712 / 8077 Mb, Disk: 77 / 415 Gb, GMT+ 2
2019.05 . 10 13 : 25 : 35.668 C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
Dosyalar:
1.mq5  2 kb
 
Vladimir Karputov :

İpucu: Bir şey sormak istiyorsanız - bir parça değil TAM kodu girin.

Tavsiyen için teşekkürler, öyle yapacağım.

Ancak, soru açık kalıyor.

Açıklama: Bir önceki gönderideki kod parçası göstergenin OnDeinit() işlevindeyse, sonuç aşağıdaki gibidir:

2019.05.10 14:08:20.105 Puan (EURUSD,H1) NesnelerToplam: 0, GetLastError: 4022

Göstergeyi grafikten çıkardıktan sonra aynı kod çalıştırılırsa, komut dosyası olarak (önceki gönderiden 1.mq5) şunu elde ederiz:

2019.05.10 14:08:33.609 1 (EURUSD,H1) Nesne Toplamı: 8575, GetLastError: 0

Lütfen nedenini bulmama yardım et.

Lord geliştiriciler! Belgelerde olmayan bu hata nedir?

 
Vladislav Andruschenko :

optimizasyon sırasında strateji test cihazında bir hata.

" Test aracısı tarafından reddedilen görev "

Örneğin, hesap para birimi EUR ise,

  • EURJPY Sorun değil
  • GBPJPY Hatası


Hesap para birimi ABD doları ise,

  • USDCAD Sorun değil
  • USDJPY Sorun değil
  • EURAUD hatası


kodda başka döviz çiftleri kullanıldığında görünür.

özellikle benim örneğimde - bu, dinamik lot hesaplamasının kullanımıdır



onlar. EA başka bir para biriminin fiyatını istediğinde.

@Vladislav Andruschenko

Merhaba, bu sorun için herhangi bir cevap veya çözüm aldınız mı?

 
Vladimir Pastushak :

Grafiği / periyodu değiştirirken, giriş alanında belirttiğiniz değer ne olursa olsun PBB 10 değerini alır.

Yeniden başlatma sırasında, sanki ilk lansmanmış gibi olur.

Sorununuzu çözmenin iki yolu var

1 - PBB değerini terminal global değişkenlerinde saklayın ve oradan noktayı alın

2 - OnChartEvent tetiklendiğinde, MA göstergesini yeniden başlatın ve yeni bir tutamaç edinin...

Tüm seçenekler kontrol edildi. Çalışmıyor.

MQL5 programında bir kusur.

Yeni değerler başlatılmaz. Sadece parametre girişi int PBB_= ile. Başka seçenek yok. Çok kötü.

 
Uladzimir Izerski :

Tüm seçenekler kontrol edildi. Çalışmıyor.

MQL5 programında bir kusur.

Yeni değerler başlatılmaz. Yalnızca parametre girişi int PBB_= ile. Başka seçenek yok. Çok kötü.

MQL'de her şey yolunda, sadece kodda ne yaptığınızı ve her şeyin nasıl çalıştığını anlamıyorsunuz...

Bir kez daha ChartSetSymbolPeriod ( 0 , _Symbol , _Period ) çağrılırken;

Her şeyi varsayılana sıfırlıyorsunuz...

Alternatif olarak, İnternet'teki metin alanınızdan bir değer istemeyi deneyin.

Mantıksal olarak şöyle sonuçlanacak, indikatörün ilk lansmanı, her şey oluşturuluyor ve alandaki veriler değiştiğinde yeni bir init call olacak ve text alanınızdan değer ayarlanacak...

 
Vladimir Pastushak :

MQL'de her şey yolunda, sadece kodda ne yaptığınızı ve her şeyin nasıl çalıştığını anlamıyorsunuz...

Bir kez daha ChartSetSymbolPeriod ( 0 , _Symbol , _Period ) çağrılırken;

Her şeyi varsayılana sıfırlıyorsunuz...

Alternatif olarak, İnternet'teki metin alanınızdan bir değer istemeyi deneyin.

Mantıksal olarak şöyle sonuçlanacak, indikatörün ilk lansmanı, her şey oluşturuluyor ve alandaki veriler değiştiğinde yeni bir init call olacak ve text alanınızdan değer ayarlanacak...

Hem bir metin alanından hem de GlobalVariable aracılığıyla denendi ve bu henüz denemedi. Bir tanktaki gibi sağır.

Aksi takdirde, OnCalculate sorunsuz çalışır.

 
Uladzimir Izerski :

Hem bir metin alanından hem de GlobalVariable aracılığıyla denendi ve bu henüz denemedi. Bir tanktaki gibi sağır.

Aksi takdirde, OnCalculate sorunsuz çalışır.

Yani yanlış bir şey yapıyorsun

 
Destek servisi ile iletişime geçtim zaten foruma yazmamı tavsiye ettiler Hesaba bağlandığımda bir pencere açılıyor ve hazırlıksız "satırları" okumamam gerektiği yazıyor, yetkilendirmenin bağlantıya izin verdiği yazılmasına rağmen hesap ... Ne yapmalıyım Tavsiye .. .
 
Vladimir Pastushak :

Yani yanlış bir şey yapıyorsun

Kodu zaten gönderdi.

Ben aptalsam, biri profesyonel olmalı. Madem göremiyorum.

Cevap bulma çabalarınızı kabul ediyorum. Burada daha derin bir anlayış var. Onlar. geliştirici düzeyinde.