Hatalar, hatalar, sorular - sayfa 315

 

Sonraki sorun.

İşletim sistemini yeniden yükledikten ve yeni bir MT5 yüklemesinden sonra, daha önce çalışan özel göstergeler yüklenmeyi durdurdu.

Parametreleri kontrol ettim - her şey doğru.

Sonra standart Gösterge Örneklerinden birini iCustom aracılığıyla yüklemeye çalıştım, onu Göstergeler kök klasörüne taşıdım,

ancak "#include" olması durumunda aşağıdaki kod bir yükleme hatasıyla sonuçlanır:

- dahil edilen sınıflarda hata yok,

- bu sınıfları içeren kod, hatanın nedenlerini anlamayı kolaylaştırmak için devre dışı bırakıldı, ancak daha önce iyi çalıştı,

- #include olmadan, özel gösterge yükleme hatası oluşmaz.

#include <..\Experts\_My\Classes\ClassExpert\ClassExpert.mqh>

void OnInit (){
   int HandleIndicator = iCustom ( _Symbol , _Period , "RSI" , 14 );                      
   Print ( "HandleIndicator = " , HandleIndicator);
   if (HandleIndicator== INVALID_HANDLE ){
       Print ( "Handle of RSI is INVALID_HANDLE" );
       return ;
   };
}

2011.02.23 09:52:41     Core 1  expert removed self when OnInit called
2011.02.23 09:52:41     Core 1  2011.01.14 00:00:00   Handle of RSI is INVALID_HANDLE
2011.02.23 09:52:41     Core 1  2011.01.14 00:00:00   HandleIndicator = -1
2011.02.23 09:52:41     Core 1  2011.01.14 00:00:00   expert removed because custom indicator 'RSI' cannot load [4802]
2011.02.23 09:52:41     Core 1  loading of RSI EURUSD,H1 failed

Neyin yanlış olduğunu tam olarak anlayamıyorum.

Aynı şey, sınıfları kullanarak her zamanki gibi olur:

 #include <..\Experts\_My\Classes\ClassExpert\ClassExpert.mqh>
ClassExpert Expert1;
void OnInit (){
   Expert1.Init();
   //---
   int HandleIndicator = iCustom ( _Symbol , _Period , "RSI" , 14 );                      
   Print ( "HandleIndicator = " , HandleIndicator);
   if (HandleIndicator== INVALID_HANDLE ){
       Print ( "Handle of RSI is INVALID_HANDLE" );
       return ;
   };
}

Ve bu, şu anda kullanılan MT5 build 401 sürümünün hem ev hem de ofis bilgisayarlarında (hala üzerinde çalıştığı) bu kodla hatasız çalışmasına rağmen.

 
DV2010 :

Sonraki sorun.

İşletim sistemini yeniden yükledikten ve yeni bir MT5 yüklemesinden sonra, daha önce çalışan özel göstergeler yüklenmeyi durdurdu.

Parametreleri kontrol ettim - her şey doğru.

Sonra standart Gösterge Örneklerinden birini iCustom aracılığıyla yüklemeye çalıştım, onu Göstergeler kök klasörüne taşıdım,

ancak "#include" bulunması durumunda aşağıdaki kod, dahil edilen sınıflarda herhangi bir hata olmamasına rağmen yükleme hatasına yol açar,

hatanın nedenlerinin anlaşılmasını basitleştirmek için katılımlarıyla birlikte kod artık kullanılmıyor, ancak daha önce iyi çalıştı:

- yükleme hatasıyla sonuçlanır:

Neyin yanlış olduğunu tam olarak anlayamıyorum.
Lütfen Hizmet Masasına yazın ve tüm kaynak kodlarını ekleyin. Evde çoğaltmaya çalıştım ama işe yaramadı - ekleme dosyalarınız bende yok.
 
Rosh: Пожалуйста, напишите в Сервисдеск и приложите все исходники. Я пытался воспроизвести у себя, но не получилось - у меня нет ваших включаемых файлов. 

Rosh, teşekkürler, ancak en az kod içeren en basit modelden eksiksiz olana geçerek, kodun tek tek bölümlerini sırayla ekleyerek, çalışan sürümü geri döndürmeyi başardım (aksi takdirde elliden fazla dosyamı eklemek zorunda kalırdım) , sistem rar arşivini kabul etmeyi reddettiğinden). Doğru, hata tam olarak neydi, dürüst olmak gerekirse anlamadım.

 
DV2010 :

(aksi takdirde sistem rar arşivini kabul etmeyi reddettiği için elliden fazla dosyamı eklemek zorunda kalırdım).


Maksimum yükleme boyutu : 16 MB, en fazla 10 ek (.gif .png .jpg .jpeg .zip .txt .log .mqh .ex5 .mq5 .mq4 .ex4 .flv .mt5)
 

Merhaba bugün terminalin global değişkenlerine (manuel) 88.71 double formatında bir sayı yazarken Enter tuşuna bastıktan sonra 88.7099999999 değerini görüyorum, 87.80 başka bir global değişkene yazarken Enter tuşuna bastıktan sonra değer beklenen, 87, sekiz. Ve 4 ondalık basamaklı değerler yazarken 4 ondalık basamaklı bir değer alıyorum. 401 oluşturun.

PS Prensip olarak, bir uzman tarafından okunan bir sayının bu temsili, olması gerektiği gibi algılanabilir, ancak bir kişi tarafından okumak için bir şekilde güzel değildir.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
kirill190982 :

Merhaba bugün terminalin global değişkenlerine (manuel) 88.71 double formatında bir sayı yazarken Enter tuşuna bastıktan sonra 88.7099999999 değerini görüyorum, 87.80 başka bir global değişkene yazarken Enter tuşuna bastıktan sonra değer beklenen, 87, sekiz. Ve 4 ondalık basamaklı değerler yazarken 4 ondalık basamaklı bir değer alıyorum. 401 oluşturun.

PS Prensip olarak, bir uzman tarafından okunan bir sayının bu temsili, olması gerektiği gibi algılanabilir, ancak bir kişi tarafından okumak için bir şekilde güzel değildir.

https://www.mql5.com/ru/docs/basis/types/double

https://www.mql5.com/ru/articles/1561

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Основы языка / Типы данных / Вещественные типы (double, float) - Документация по MQL5
 

Teşekkür ederim, ancak sayıları normal biçimde görmek ve makinenin sayıları gerektiği gibi saymasına izin vermek istiyorum.

 
kirill190982 :

Teşekkür ederim, ancak sayıları normal biçimde görmek ve makinenin sayıları gerektiği gibi saymasına izin vermek istiyorum.

https://www.mql5.com/ru/docs/convert/doubletostring

Dünyada mükemmellik yoktur...

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
Преобразование данных / DoubleToString - Документация по MQL5
 
AlexSTAL :

https://www.mql5.com/ru/docs/convert/doubletostring

Dünyada mükemmellik yoktur...

Evet :) VB.NET'te bu sorun tamamdır. Yine de Microsoft personelinin büyüklüğü ile ilgili sözlerini hatırlıyorum :)
 
-Alexey- :
Evet :) VB.NET'te bu sorun tamamdır.

Soru ne pahasına

Çoğu zaman buzdağının sadece görünen kısmını görürüz.

http://msdn.microsoft.com/en-us/library/system.decimal.aspx

Not: Bunu düzenli bir şekilde uygulamak imkansız! Bunu yapmak için, bir kayan noktalı sayının nasıl saklandığını anlamalısınız! Sadece yapay hileler için gidebilirsiniz ....

Decimal - структура (System)
Decimal - структура (System)
  • msdn.microsoft.com
Пространство имен: System Сборка: (в mscorlib.dll) Тип предоставляет следующие члены. ИмяОписание В начало страницы ИмяОписание (Переопределяет ValueTypeEquals(Object).) Преобразует заданное 64-разрядное целое число со знаком, соответствующее значению денежного типа OLE-автоматизации, в эквивалентное значение типа...