Hatalar, hatalar, sorular - sayfa 2449

 
Alexey Navoykov :

Burada birisi tavsiyede bulundu, derler ki, hash'i kaynaktan hesapla. Bunun için program tarafından kullanılan tüm kaynakları (içerir) bilmeniz gerekir, bu da kodu çocukça değil ayrıştırmanız gerektiği anlamına gelir. Açıkça belirtilmeleri gerekmez (#include <file.mqh>), ancak makrolar olarak belirtilebilirler.

Peki, bir şey makrolara bağlıysa, sonucu değiştirmek için makrolar, yani kaynak kodu değişmelidir. Makalede verdiğim include-s'deki tüm bağımlılıkları okumak. Bu arada, çıplak kod kalması için yorumlar ısırıldı.

 #property script_show_inputs

input string SourceFile = "filename.txt" ;
input string IncludesFolder = "" ;
input bool LoadIncludes = false ;

void OnStart ()
{
  Preprocessor loader(SourceFile, IncludesFolder, LoadIncludes);
  
   if (!loader.run())
  {
     Print ( "Loader failed" );
     return ;
  }

   // output entire data as it is assembled from one or many files
   int handle = FileOpen ( "dump.txt" , FILE_WRITE | FILE_TXT | FILE_ANSI , 0 , CP_UTF8 );
   FileWriteString (handle, loader.text().get());
   FileClose (handle);
}
Ancak, her şeyi editörün kendisinde bulundurmanın ve manuel olarak yapmamanın daha uygun olduğuna katılıyorum.
 
Stanislav Korotky :

Peki, bir şey makrolara bağlıysa, sonucu değiştirmek için makrolar, yani kaynak kodu değişmelidir. Makalede verdiğim include-s'deki tüm bağımlılıkları okumak. Bu arada, çıplak kod kalması için yorumlar ısırıldı.

Oh teşekkürler, bundan haberim bile yoktu. Doğru, orada var ve makrolar hakkında tökezlemek hakkında söyleniyor. Ancak mutlaka kontrol edeceğiz.

Bu projeyi geliştirmeye devam ediyor musunuz? Bu nedenle potansiyel gerçekten çok büyük, özellikle de dili kendi başına iyileştirme açısından, çünkü MQL'deki pek çok şey uygulanmadı ve çoğu, bir güdük güvertesi (hatalar) ve anladığım kadarıyla geliştiriciler aracılığıyla çalışıyor. , artık dilin kendisinde herhangi bir şeyi geliştirmeyi planlamıyor.

 
CCanvas sınıfında , FontGet, TextWidth, TextHeight ve TextSize yöntemleri, sınıfta herhangi bir değişiklik yapmasalar da, bazı nedenlerden dolayı sabit olmayan olarak bildirilir. Tamamen veri almak için çalışırlar.
 

Bir şey anlamıyorum, "Button" grafik öğesi için Enabled=false gibi bir özellik ayarlamak imkansız, böylece butona basılamıyor mu?

Onlar. kullanıcı başlangıçta düğmeye bastı, belirli bir çalışma süreci başladı, bu arada düğme daha sonraki basışlara tepki göstermeden basılı konumda kalmalıdır. Bunu yapabilmek mümkün mü?

ps buldum. Nesnenin önceliğini negatif olarak ayarlayın.
 

Bana bu listeden veri (metin) almanın bir yolunu söyle

 
fxsaber :

Bana bu listeden veri (metin) almanın bir yolunu söyle

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

Документация по MQL5: Преобразование данных / EnumToString
Документация по MQL5: Преобразование данных / EnumToString
  • www.mql5.com
//| Script program start function                                    |
 

Bir araç ipucundaki tüm numaralandırmaların bir listesine ihtiyacım var.

Birkaç Windows programı denedim. çalışmıyor çünkü odak gittiğinde liste kaybolur.
Программы для работы с окнами приложений | Темная сторона Силы | Blog. Just Blog
  • ManHunter / PCL
  • www.manhunter.ru
В процессе разработки программ, а также их исследования, очень часто приходится работать с окнами приложений на уровне системы. То есть просматривать или менять стили окон, передавать или отслеживать сообщения и уведомления, обрабатывать другие параметры окон. У меня накопилась небольшая подборка программ, значительно облегчающих выполнение...
 

İstem, OnTradeTransaction() tarafından. Aşağıdaki normal davranış mı? Test cihazında kontrol ettim - bu doğru :( Ve "canlı" bir hesapta?

OnTick(), konumları sırayla kapatan bir döngüye sahiptir.

OnTradeTrancaction()'da açık pozisyonların sayısını saymak.

EA şunları yapar: önce kapanış döngüsünü sonuna kadar yürütür, ardından OnTradeTransaction'a geçer ve aynı sırayla hesaplamaları gerçekleştirir.

Başka bir deyişle, yapma

закрытие тикета # 1 -> подсчёт с учетом закрытия тикета # 1 -> закрытие тикета # 2 -> подсчёт с учетом закрытия тикета # 2 -> ...

a

закрытие тикета # 1 -> закрытие тикета # 2 -> ... -> подсчёт с учетом закрытия тикета # 1 -> подсчёт с учетом закрытия тикета # 2 -> ...

onlar. paralel değil seri olarak çalışır.

Yukarıdakiler normalse, OnTradeTransaction()'ın yalnızca bir siparişi açan/kapatan Uzman Danışmanlarda güvenle kullanılabileceği ortaya çıktı. Izgara ya çok simgeliyse (veya bulunduğu yerde çok simgeli ızgara :)) - algoritma bozulur.

 
Igor Zakharov :

İstem, OnTradeTransaction() tarafından. Aşağıdaki normal davranış mı? Test cihazında kontrol ettim - bu doğru :( Ve "canlı" bir hesapta?

Gerçek hayatta, her şey demo ve test cihazındakinden her zaman çok daha karmaşıktır.

onTradeTransaction konsepti kötü düşünülmüş, ancak "Onları nasıl pişireceğinizi bilmiyorsunuz" fikri sürekli geliyor.


OnTradeTransaction girişini beklemeden ya işlem verileri olmadan yazın ya da programın herhangi bir yerinde yandan alın.

Çok karakterli bir ızgara için eşzamansızlık iyidir. Bu yüzden ikinci seçeneği seçerdim.
 
Test Cihazı, terminal64.exe veya metatester64.exe'de mi oturuyor? .NET'ten uzaklaşmak için hangi dosyayı değiştireceğinizi anlamanız gerekir.