"MQL5'te Kaynak Kullanımı" makalesi için tartışma

 

Yeni makale MQL5'te Kaynak Kullanımı yayınlandı:

MQL5 programları sadece rutin hesaplamaları otomatikleştirmekle kalmaz, aynı zamanda tam özellikli bir grafik ortam yaratabilir. Gerçekten etkileşimli kontroller oluşturmaya yönelik fonksiyonlar, artık neredeyse klasik programlama dillerinde olduğu kadar zenginler. MQL5'te tam teşekküllü bir bağımsız program yazmak istiyorsanız, kaynakları içinde kullanın. Kaynakları olan programların bakımı ve dağıtımı kolaydır.

Programın görevi, görünümlerini fare tıklaması ile değiştiren iki grafik düğmesi olan mavi bir arka plan (alt tabaka) çizmektir. Alt tabakaya tıkladığınızda, rengini maviden bej rengine değiştirir ve yine tıkladığınızda bunun tersi olur. Her değişiklikte bir ses yürütülür, fare tıklatma olayı OnChartEvent() fonksiyonunda işlenir. Danışman Animals_EA.mq5'in başlamasından hemen sonra gösterilen bir grafik şekilde verilmiştir.



Yazar: MetaQuotes

 

Artık MQL5 programlarınıza kaynak eklemek daha da kolay, bu amaçla MetaEditor 5'e özel bir standart "Kaynak ekle" komutu eklenmiştir:



Вставка ресурсов

Geliştirilen uygulamalarda kaynak dosyalarının kullanımını kolaylaştırmak için, "Servis " menüsünde "Kaynakları ekleyin Kaynak Ekle" komutu sağlanmıştır. Bu komut, belirtilen bir klasörden seçilen kaynak dosyalarının bildirimini #resource yönergesini kullanarak geçerli dosyaya eklemenizi sağlar.

Bu komutu çalıştırdıktan sonra, dosyada bildirilecek bir veya daha fazla kaynak dosyasını seçmeniz gereken standart bir işletim sistemi diyalog kutusu görüntülenir.

  • Kaynak dosyaları yalnızca istemci terminalinin /MQL5 dizini içinde bulunabilir. Bu klasörün dışındaki dosyalar kullanılamaz.
  • Kaynak dosyası olarak sadece *.wav ve *.bmp dosyaları kullanılabilir.

Bundan sonra, aşağıdaki formun ilgili yönergeleri geçerli dosyanın başına eklenecektir:

#resource "\Images\example.bmp"
veya
#resource "resources\example.bmp"

Kaynak dosyalarının yolu iki şekilde belirtilebilir:

  • Geçerli dosyaya göre (yolun başında "\" sembolü olmadan)
    Bu yöntem, kaynak dosyalar geçerli dosyayla aynı klasörde veya alt klasörlerinden birinde bulunuyorsa kullanılır.
  • İstemci terminalinin /MQL5 dizini ile ilgili olarak ("\" sembolü yolun başındayken)
    Bu yöntem diğer tüm durumlarda kullanılır.
 

Artık MQL5 programlarınıza kaynak eklemek daha da kolay hale geldi. Bunu yapmak için MetaEditor 5 özel Insert Resources komutuna sahiptir.


Resources Inserting

Geliştirilen uygulamalarda kaynak dosyalarının kullanımını kolaylaştırmak için "Araçlar" menüsünde "Kaynakları Ekleyin Insert Resources" komutu uygulanmaktadır. Bu komut, #resource yönergesini kullanarak geçerli dosyada seçilen bir klasördeki kaynak dosyalarının bildirilmesini sağlar.

Bu komut çalıştırıldığında, işletim sisteminizin standart iletişim penceresi görünür. Bu pencerede, dosyada bildirilecek bir veya birkaç kaynak dosyası seçmelisiniz.

  • Kaynak dosyaları yalnızca istemci terminalinin /MQL5 dizini içinde bulunabilir. Bu dizin dışındaki dosyalar kullanılamaz.
  • Kaynak dosyası olarak sadece *.wav ve *.bmp dosyaları kullanılabilir.

Yukarıdaki işlemler gerçekleştirildikten sonra, ilgili direktifler dosyanın başına eklenecektir. Örneğin:

#resource "\Images\example.bmp"
veya
#resource "resources\example.bmp"

Kaynak dosyalarının yolu iki şekilde belirtilebilir:

  • Geçerli dosyaya göre (yolun başında "\" sembolü olmadan)
    Bu yol, kaynak dosyalarının geçerli dosya ile aynı dizinde veya alt klasörlerinden birinde bulunması durumunda kullanılır.
  • İstemci terminalinin /MQL5 dizinine göreceli olarak ("\" sembolü yolun başında belirtilir)
    Bu yol diğer tüm durumlarda kullanılır.
 

MetaTrader 5 Client Terminal build 730
MQL5: Added support for storing indicators in EX5 resources. 

#resource "Examples\Fractals.ex5"

Lütfen birisi göstergenin nasıl kullanılacağına dair bir örnek verebilir mi?

 
Ana dosyada iCustom() aracılığıyla çağrılan gösterge dosyalarını kaynak olarak eklemek ne zaman mümkün olacak? Terminal klasörlerinde o kadar çok çöp var ki, neyin neye ait olduğu bile belli değil. Bu güvenli değil. Bir projeyi tek bir ex5 dosyasında nasıl toplayacağımı öğrenmek istiyorum.
 
MoneyJinn:
Ana dosyada iCustom() aracılığıyla çağrılan gösterge dosyalarını kaynak olarak eklemek ne zaman mümkün olacak? Terminal klasörlerinde o kadar çok çöp var ki, neyin neye ait olduğu bile belli değil. Bu güvenli değil. Bir projeyi tek bir ex5 dosyasında nasıl toplayacağımı öğrenmek istiyorum.

Bu 24 Kasım 2012 tarihinde 730 derlemesine eklenmiştir:

  • MQL5: EX5 kaynaklarında göstergelerin depolanması için destek eklendi. Kaynaklardaki göstergeler kendi kaynakları ile çalışamayacaktır.


İşte basit bir örnek. Önce standart CHO göstergesini belirtilen yolda derleyin, ardından bu Uzman Danışmanı derleyin ve ardından grafiğe bırakın.

#resource "\\Indicators\\Examples\\CHO.EX5"
//+------------------------------------------------------------------+
//| Uzman başlatma işlevi|
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int handle=iCustom(Symbol(),Period(),"::Indicators\\Examples\\CHO.EX5");
   if(handle!=INVALID_HANDLE)
     {
      Print("Indicator created!");
      IndicatorRelease(handle);
     }
//---
   return(0);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  }

Doğru yol seçimine, alan değiştiriciye :: ve eğik çizgilerin doğru kullanımına dikkat edin.

Kendi kendine yeterli ve eksiksiz ürünler yapabilmeniz için göstergeleri kaynaklara paketlemeyi özellikle mümkün kıldık.

 
Renat:

Bu, 24 Kasım 2012 tarihinde 730 numaralı yapıya eklenmiştir:

  • MQL5: EX5 kaynaklarında göstergeleri depolamak için destek eklendi. Kaynaklardaki göstergeler kendi kaynakları ile çalışamayacaktır.

...

Bu anı nasıl kaçırdım? Bu özelliği bekliyordum, ama uzun zamandır oradaydı. Teşekkür ederim. ))
 
Renat:

Teşekkür ederim. Tam da ihtiyacım olan şey.

 
kaynakları ex4 (mt4) ürünlerine dahil etmek mümkün mü? Yoksa bu 'kaynaklar' olayı yalnızca bir ex5 (mt5) özelliği mi?
 
FinGeR:

Lütfen birisi göstergenin nasıl kullanılacağına dair bir örnek verebilir mi?

Örnek: https://www.mql5.com/ru/forum/3409#comment_408123

#resource "\\Indicators\\Examples\\CHO.EX5"
//+------------------------------------------------------------------+
//| Uzman başlatma işlevi|
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int handle=iCustom(Symbol(),Period(),"::Indicators\\Examples\\CHO.EX5");
   if(handle!=INVALID_HANDLE)
     {
      Print("Indicator created!");
      IndicatorRelease(handle);
     }
//---
   return(0);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  }
Обсуждение статьи "Использование ресурсов в MQL5"
  • www.mql5.com
Программы на MQL5 позволяют не только автоматизировать рутинные вычисления, но и создавать полноценную графическую оболочку.
 
4evermaat:
ex4 (mt4) ürünlerine kaynakları dahil etmek mümkün mü? Yoksa bu 'kaynaklar' sadece bir ex5 (mt5) özelliği mi?
Sadece MQL5 için.