ChartApplyTemplate

Belirlenen bir dosyadan, belirli bir şablonu çizelgeye uygular. Komut, çizelge mesajları kuyruğuna eklendi ve önceki komutların işlenmesinin hemen ardından uygulanacak.

bool  ChartApplyTemplate(
   long          chart_id,     // Çizelge tanımlayıcı
   const string  filename      // Şablon dosyasının adı
   );

Parametreler

chart_id

[in]  Çizelge tanımlayıcısı. 0, mevcut çizelge anlamına gelir.

filename

[in]  Şablonu içeren dosyanın adı.

Dönüş değeri

Komutun çizelge mesajları kuyruğuna eklenmesi durumunda 'true', aksi durumda 'false' dönüşü yapar. Hata hakkında bilgi almak için, GetLastError() fonksiyonunu çağırın.

Not

Yeni bir şablonun başarılı şekilde yüklenmesi durumunda, Uzman Danışman kaldırılacaktır ve işlemine devam edemeyecektir.

When applying the template to the chart, trade permissions may be limited due to security reasons:

Live trading permission cannot be extended for the Expert Advisors launched by applying the template using ChartApplyTemplate() function.

If the mql5-program calling ChartApplyTemplate() function has no permission to trade, the Expert Advisor launched via the template will also not be able to trade regardless of the template settings.

If the mql5-program calling ChartApplyTemplate() function has permission to trade, while there is no such permission in the template settings, the Expert Advisor launched via the template will not be able to trade.

Şablonların Kullanılması

MQL5 dili birden çok çizelge özelliğinin ayarlanmasına olanak tanır, bunların arasına ChartSetInteger() fonksiyonu ile renkler de dahildir:

  • Çizelge arka plan rengi;
  • Eksenlerin, ölçeğin ve OHLC çizgisinin rengi;
  • Izgara rengi;
  • Hacimlerin ve pozisyon açma seviyelerinin rengi;
  • Yukarı yönlü çubuğun, boğa mumunun kenarının ve gölgesinin rengi;
  • Aşağı yönlü çubuğun, ayı mumunun kenarının ve gölgesinin rengi;
  • Çizelge çizgisinin ve Doji mumlarının rengi;
  • Boğa mumunun gövde rengi;
  • Ayı mumunun gövde rengi;
  • Alış fiyatı çizgisinin rengi;
  • Satış fiyatı çizgisinin rengi;
  • Son işlem fiyatının (Last) rengi;
  • Stop (durdurma) emri seviyesinin (Stop Loss ve Take Profit) rengi.

Çizelgede birden çok grafiksel nesne ve gösterge olabilir. Bir çizelgeyi tüm gerekli göstergelerle bir kez başlatıp, sonra bunları bir şablon olarak saklayabilirsiniz. Böyle bir şablon tüm çizelgelere uygulanabilir.

ChartApplyTemplate() fonksiyonu, daha önce kaydedilmiş bir şablonu kullanmak için düşünülmüştür ve her MQL5 programı içinde kullanılabilir. Şablonun kaydedildiği dosyanın adresi, ChartApplyTemplate() fonksiyonuna ikinci parametre olarak geçirilir. Şablon dosyası şu kurallara göre aranır:

  • Eğer ters-bölü "\" ayracı ( "\\" olarak yazılır) dosya yolunun başında yer alıyorsa, şablon _terminal_veri_dizini\MQL5 adresine göre aranır,
  • Eğer hiç ters-bölü yoksa şablon, içinde ChartApplyTemplate() fonksiyonunun çağrıldığı çalıştırılabilir EX5 dosyasına göre aranır;
  • Eğer şablon ilk iki şekilde bulunamazsa, arama terminal_dizini\Profiles\Templates\ klasöründe gerçekleşir.

Burada terminal_dizini, MetaTrader 5 Müşteri Terminalinin çalıştırıldığı konumdur; terminal_veri_dizini ise, düzenlenebilir dosyaların bulunduğu konumdur, bu konum işletim sistemine, kullanıcı ismine ve bilgisayarın güvenlik ayarlarına bağlıdır. Normalde bunlar farklı klasörlerdir ama bazı durumlarda aynı olabilirler.

terminal_veri_dizini ve terminal_dizini klasörlerinin konumu TerminalInfoString() fonksiyonu kullanılarak elde edilebilir.

//--- Terminalin başlatıldığı dizin
   string terminal_path=TerminalInfoString(TERMINAL_PATH);
   Print("Terminal dizini:",terminal_path);
//--- içinde Uzman Danışmanların ve göstergelerin yer aldığı MQL5 klasörünün bulunduğu terminal veri dizini,
   string terminal_data_path=TerminalInfoString(TERMINAL_DATA_PATH);
   Print("Terminal veri dizini:",terminal_data_path);

Örneğin:

//--- şablonu terminal_veri_dizini\MQL5\ konumunda ara
ChartApplyTemplate(0,"\\first_template.tpl"))
//--- şablonu önce EX5_dosyasının_konumu\, sonra terminal_veri_dizini\Profiles\Templates\ konumlarında ara
ChartApplyTemplate(0,"second_template.tpl"))
//--- şablonu önce EX5_dosyasının_konumu\My_templates\, sonra terminal_dizini\Profiles\Templates\My_templates\ konumlarında ara
ChartApplyTemplate(0,"My_templates\\third_template.tpl"))

Şablonlar kaynak değildir; çalıştırılabilir EX5 dosyalarına dahil edilemezler.

Örnek:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- example of applying template, located in \MQL5\Files
   if(FileIsExist("my_template.tpl"))
     {
      Print("The file my_template.tpl found in \Files'");
      //--- apply template
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
        {
         Print("The template 'my_template.tpl' applied successfully");
         //--- redraw chart
         ChartRedraw();
        }
      else
         Print("Failed to apply 'my_template.tpl', error code ",GetLastError());
     }
   else
     {
      Print("File 'my_template.tpl' not found in "
            +TerminalInfoString(TERMINAL_PATH)+"\\MQL5\\Files");
     }
  }

Ayrıca Bakınız

Kaynaklar