MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 436

 
WinProject :
Teşekkürler!) Cevabınızdan, her nesne türü için ayrı bir işlev oluşturulması gerektiği sonucuna vardım. Dosyayı okumak için ana işlevin while döngüsünde yuvalanmış nesneleri oluşturmak için işlevleri ayrı ayrı çalıştırmanın bir şekilde yapılabileceğini düşündüm. Belki Anahtarı?

Sanırım konunun özüne yeterince inemedim.

Tüm grafik nesnelerin ilk yapısı herhangi bir zorluğa ve soruya neden olmaz. Ama ikincisini anlamıyorum. Görünüşe göre soru, birçok nesne türü için bir düğmenin çalışmasını bir şekilde düzenlemek değil, bir tür nesne için bir düğmeyi düzenlemekti. Bu durumda, her nesne türü için bir dizi olmak üzere nesne parametreleri ve birkaç yapı dizisi içeren bir yapı yapardım. Ve buna göre, bu yapı dizilerini karşılık gelen türlerin düğmelerine bağlardım.

Ardından, düğmeye basılarak ilgili nesne türü silinir. Ve düğme bırakıldığında, nesneler, yapılar dizisinde bulunan parametrelere göre geri yüklenir.

Bu nedenle dosya indirilirken yalnızca bir kez okunması gerekecektir.

 
Alexey Viktorov :

Sanırım konunun özüne yeterince inemedim.

Tüm grafik nesnelerin ilk yapısı herhangi bir zorluğa ve soruya neden olmaz. Ama ikincisini anlamıyorum. Görünüşe göre soru, birçok nesne türü için bir düğmenin çalışmasını bir şekilde düzenlemek değil, bir tür nesne için bir düğmeyi düzenlemekti. Bu durumda, her nesne türü için bir dizi olmak üzere nesne parametreleri ve birkaç yapı dizisi içeren bir yapı yapardım. Ve buna göre, bu yapı dizilerini karşılık gelen türlerin düğmelerine bağlardım.

Ardından, düğmeye basılarak ilgili nesne türü silinir. Ve düğme bırakıldığında, nesneler, yapılar dizisinde bulunan parametrelere göre geri yüklenir.

Bu nedenle dosya indirilirken yalnızca bir kez okunması gerekecektir.

Cevabınız için çok teşekkür ederim, STARIJ'in önerdiği gibi bayraklar aracılığıyla her iki seçeneği de yapmaya çalışacağım ve seçeneğiniz de denemek ilginç. Aynı zamanda daha az soru sormaya çalışacağım, cevaplanmış olmaları bir lütuf!)
 
STARIJ :

Bayraklar değişkendir. Veya bool: false=omitted, true=yükseltilmiş veya int - o zaman aynı anda bir sayıda birçok işaret vardır: 0 - tüm işaretler atlanır, 1=birinci yükseltilir, 2=saniye yükseltilir, 3=birinci ve ikinci yükseltilir , 4=üçüncü yükseltilir, 5= 3. ve 1. yukarı, 6=3. ve 2. yukarı, 7=1., 2., 3. yukarı, 8=4. yukarı.... Peki, ikili. Ve nasıl öğrenilir?

Teşekkür ederim internette güzel bir açıklama buldum deneyeceğim. Bu sitedeki belgelerde veya ders kitabında böyle bir şeyin olmaması garip, muhtemelen buraya gelen herkesin zaten programlama becerisine sahip olduğu anlamına geliyor.
 
WinProject :
Cevabınız için çok teşekkür ederim, STARIJ'in önerdiği gibi bayraklar aracılığıyla her iki seçeneği de yapmaya çalışacağım ve seçeneğiniz de denemek ilginç. Aynı zamanda daha az soru sormaya çalışacağım, cevaplanmış olmaları bir lütuf!)

Bayraklarla fena olmayabilir, ancak sorudaki asıl şey eksik

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MQL4, yardım ve algoritmalar ve kodlar hakkında herhangi bir acemi sorusu

WinProject , 2018.01.26 18:17

İyi akşamlar! Ve yine yardım için buradayım. Uzman Danışmanım, dosyayı okuyan ve farklı koşullara göre hemen farklı grafik nesneleri oluşturan OnInit'teki ana İşleve sahiptir. Grafikte ayrıca düğmeler vardır, tıklandığında, örneğin metin etiketleri gibi bu nesneleri silme işlevi çalışır. Düğmeye bastıktan sonra metin etiketlerinin silinmesini, düğme bırakıldığında, tüm nesneleri tamamen oluşturacak olan İşlevin tamamını değil, yalnızca metin etiketlerini oluşturacak şekilde nasıl yapabilirim. Aklıma gelen tek şey, bir dosyayı açma ve okuma ile ilgili tüm eylemlerle her nesne türü için ayrı ayrı ana işlevin bir analogunu oluşturmaktır , ancak bir tür akıllı çözüm kullanmak istiyorum, ancak yapmıyorum. hangisini ve nasıl, ana fonksiyonda mı yoksa fonksiyon butonlarında mı?

Bu durumda, aynı kodu birkaç kez üretmemek için dosyanın okumasını ayrı bir kullanıcı tanımlı fonksiyona taşımak ve birkaç kez çağırmak daha kolaydır. Ancak ne kadar uğraşırsanız uğraşın, flagları kullanırken dosyayı okumak kalacaktır. Ve uzak nesneler oluştururken neyin kontrol edileceği konusunda hiçbir fark yoktur - bunların yokluğu veya nesne türüne göre bayrağın durumu. Sonuçta, nesnelerin türü, belirli bir türe bağlı düğme ile belirlenir, bu bayraktır.
 

MQL5'te geçerli saatin değerini nasıl alacağımı söyle?
MqlDateTime yapısının bir nesnesini yarattım, saat orada hiçbir şey vermiyor

 
Roman Sharanov :

MQL5'te geçerli saatin değerini nasıl alacağımı söyle?
MqlDateTime yapısının bir nesnesini yarattım, saat orada hiçbir şey vermiyor

Yapının tarih-saat ile doldurulması gerekiyor.
 
Artyom Trishkin :
Yapının tarih-saat ile doldurulması gerekiyor.

TimeCurrent() kullan ? sadece nasıl olduğunu anlamıyorum

 
Roman Sharanov :

TimeCurrent() kullan ? sadece nasıl olduğunu anlamıyorum

Yapıya Zamanı()
 
Artyom Trishkin :
Yapıya Zamanı()

Ah, anladım, işe yaradı, teşekkürler!

 

https://docs.mql4.com/en/basis/types/casting

Sondan bir önceki örnek, bir dize olarak RGB temsilinde renk. " içeriği kopyalayarak iki yapıyı yayınlamak " çalışmıyor.

 #property script_show_inputs
input color           testColor= clrBlue ; // задайте цвет для тестирования
//--- структура для представления цвета в RGB
struct RGB
  {
   uchar              blue;           // синяя составляющая цвета
   uchar              green;         // зеленая составляющая цвета
   uchar              red;           // красная составляющая цвета
   uchar              empty;         // этот байт не используется
   string             toString();     // функция для получения в виде строки
  };
//--- функция для вывода цвета в виде строки
string RGB::toString( void )
  {
   string out= "(" +( string )red+ ":" +( string )green+ ":" +( string )blue+ ")" ;
   return out;
  }
//--- структура для хранения встроенного типа color 
struct builtColor
  {
   color              c;
  };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- переменная для хранения в RGB
   RGB colorRGB;
//--- переменная для хранения типа color
   builtColor test;
   test.c=testColor;
//--- приведение двух структур путем копирования содержимого
   colorRGB=test;
   Print ( "color " ,test.c, " = " ,colorRGB.toString());
//---
  }

Derleyici bu hatayı veriyor... ( '=' - geçersiz işlem kullanımı test.mq4 34 12)

Bir şeyi doğru kopyalamadım veya örnekte bir hata olabilir mi ??? Lütfen bana söyle.

Приведение типов - Типы данных - Основы языка - Справочник MQL4
Приведение типов - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL4 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...