Alım-satım robotlarını ücretsiz olarak nasıl indirebileceğinizi izleyin
Bizi Facebook üzerinde bulun!
Fan sayfamıza katılın
Komut dosyasını ilginç mi buldunuz?
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
Komut dosyasını beğendiniz mi? MetaTrader 5 terminalinde deneyin
Komut dosyaları

Project Template Generator - MetaTrader 5 için komut dosyası

Görüntülemeler:
47
Derecelendirme:
(4)
Yayınlandı:
\MQL5\Scripts\
MQL5 Freelance Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git

Teknik Genel Bakış

ProjectTemplateGen.mq5, standartlaştırılmış Uzman Danışman proje yapılarının oluşturulmasını otomatikleştiren bir MetaTrader 5 komut dosyası yardımcı programıdır. Ölçeklenebilir ticaret sistemi geliştirme için tutarlı bir temel oluştururken MQL5'in güvenlik kısıtlamaları dahilinde programatik dosya sistemi işlemlerini uygular.


Temel Yetenekler

  • Programatik Dosya İşlemleri: Dizin oluşturmak ve yapılandırılmış içerik yazmak için MQL5'in dosya işleme API'sini gösterir
  • Şablon Tabanlı Üretim: Uygun olay işleyici iskeletlerine sahip derlemeye hazır MQL5 kaynak dosyaları üretir
  • Yapılandırılabilir Çıktı: Kaynak kodunu değiştirmeden giriş parametreleri aracılığıyla çalışma zamanı özelleştirmesine izin verir
  • Sandbox Uyumluluğu: MetaTrader 5'in güvenli yürütme ortamında çalışır

Uygulama Detayları

Dosya İşlemleri Mimarisi

Kod, proje oluşturmanın farklı yönlerini ele alan farklı işlevlerle dosya oluşturmaya modüler bir yaklaşım uygular:

// OnStart() içinde birincil düzenleme
string projectPath = "Files\\" + ProjectName + "\\";
if(!FolderCreate(projectPath)) { /* Hata işleme */ }
if(!CreateMainEA(projectPath + ProjectName + ".mq5")) return;
if(CreateIncludeFile) CreateInclude(projectPath + ProjectName + ".mqh");
CreateManifest(projectPath + "README.txt");

Oluşturulan Proje Yapısı

MQL5/Files/[ProjectName]/
├── [ProjectName].mq5      #  Main Expert Advisor source file
├── [ProjectName].mqh      #  Optional header/class definition file  
└── README.txt            #  Project documentation and instructions


Temel Teknik Bileşenler

1. Dinamik Yol Yapımı

string projectPath = "Files\\" + ProjectName + "\\";

  • MQL5 sandbox kısıtlamaları ile uyumlu göreli yollar kullanır
  • Dinamik dosya sistemi navigasyonu için dize birleştirmeyi gösterir

2. Hata İşleme ile Sağlam Dosya Oluşturma

int h = FileOpen(filePath, FILE_WRITE | FILE_TXT | FILE_ANSI);
if(h == INVALID_HANDLE)
{
    Print("ERROR: Cannot create main EA file. Error: ", GetLastError());
    return false;
}

  • Dosya işlemleri için kapsamlı hata denetimi uygular
  • Sistem hata kodları ile anlamlı hata mesajları sağlar
  • FileClose() çağrıları ile uygun kaynak temizliğini sağlar

3. Yapılandırılmış İçerik Üretimi

FileWrite(h,"//+------------------------------------------------------------------+");
FileWrite(h,"//| " + ProjectName + ".mq5");
FileWrite(h,"//| Author: " + AuthorName);
FileWrite(h,"#property strict");
FileWrite(h,"int OnInit()");
FileWrite(h,"{");
FileWrite(h,"   return INIT_SUCCEEDED;");
FileWrite(h,"}");

  • Sözdizimsel olarak geçerli MQL5 kodu üretir
  • Tutarlı biçimlendirme ve kodlama standartlarını korur
  • Derlenebilir boilerplate kodu oluşturur

Kullanım Talimatları

Temel Çalışma

  • Derleme: MetaEditor'da ProjectTemplateGen.mq5 dosyasını derle (F7)
  • Yürütme: Komut dosyasını Navigator'dan herhangi bir grafiğe sürükleyin
  • Konfigürasyon: Giriş iletişim kutusunda parametreleri ayarlayın:
  • ProjeAdı: Hedef klasör ve dosya adlandırma
  • YazarAdı: Telif hakkı ve dokümantasyon atıfları
  • CreateIncludeFile: Başlık dosyası oluşturmayı değiştir
  • Çıktı: Üretim durumu ve yol bilgileri için Uzmanlar sekmesini kontrol edin

Üretim Sonrası İş Akışı

Kod, MQL5 kod güvenlik kısıtlamaları nedeniyle projeleri MQL5\Files\[ProjectName]\ içinde oluşturur.

Kurulumu şu şekilde tamamlayın:

  1. Klasörü manuel olarak MQL5\Experts\ konumuna taşıma
  2. Ana .mq5 dosyasını MetaEditor'da açma
  3. Ticaret mantığınızı sağlanan işlev iskeletlerinde uygulama

Gelişmiş İş Akışları için Genişleme Fırsatları

Ölçeklenebilirlik Geliştirmeleri

  1. Çoklu Dosya Şablonları: Gösterge komut dosyaları, kütüphane dosyaları veya kaynak manifestoları oluşturmak için genişletin
  2. Yapılandırma Dosyaları: Parametre yönetimi için JSON/XML yapılandırma dosyası oluşturma özelliği eklendi
  3. Komut Dosyaları Oluşturun: Toplu derleme veya bağımlılık yönetimi dosyalarını dahil edin



Kod :

//+------------------------------------------------------------------+
//|ProjectTemplateGen.mq5 |
//|Telif Hakkı 2025, Clemence Benjamin |
//|https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, Clemence Benjamin"
#property link      "https://www.mql5.com"
#property strict
#property description "Generates EA project template in MQL5//Files"
#property script_show_inputs
#property version "2.01"

//--- Girişler
input string ProjectName       = "Type your project name";//Proje Adı
input string AuthorName        = "Type your name eg. Clemence Benjamin"; // Yazar Adı
input bool   CreateIncludeFile = true;// Bir başlık dosyası oluşturun

//+------------------------------------------------------------------+
//| Senaryo girişi|
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("=== MQL5 Project Template Generator Started ===");
   Print("Project Name: ", ProjectName);
   Print("Author: ", AuthorName);

//--- İZİN VERİLEN sanal alan yolu
   string projectPath = "Files\\" + ProjectName + "\\";

   Print("Target path (sandbox-safe): ", projectPath);

//--- Proje klasörü oluşturun
   if(!FolderCreate(projectPath))
     {
      Print("ERROR: Cannot create project folder. Error: ", GetLastError());
      return;
     }

//--- EA dosyası oluşturun
   if(!CreateMainEA(projectPath + ProjectName + ".mq5"))
      return;

//--- include dosyası oluştur
   if(CreateIncludeFile)
      CreateInclude(projectPath + ProjectName + ".mqh");

//--- Manifesto oluşturun
   CreateManifest(projectPath + "README.txt");

   Print("SUCCESS: Project created in MQL5\\Files\\", ProjectName);
   Print("ACTION REQUIRED: Move folder to MQL5\\Experts\\ manually");
   Print("Folder path: ", TerminalInfoString(TERMINAL_DATA_PATH) + "\\" + projectPath);
  }

//+------------------------------------------------------------------+
//| Ana EA'yı oluşturun|
//+------------------------------------------------------------------+
bool CreateMainEA(const string filePath)
  {
   int h = FileOpen(filePath, FILE_WRITE | FILE_TXT | FILE_ANSI);
   if(h == INVALID_HANDLE)
     {
      Print("ERROR: Cannot create main EA file. Error: ", GetLastError());
      return false;
     }

   FileWrite(h,"//+------------------------------------------------------------------+");
   FileWrite(h,"//| " + ProjectName + ".mq5");
   FileWrite(h,"//| Author: " + AuthorName);
   FileWrite(h,"//+------------------------------------------------------------------+");
   FileWrite(h,"#property strict");
   FileWrite(h,"");
   FileWrite(h,"int OnInit()");
   FileWrite(h,"{");
   FileWrite(h,"   return INIT_SUCCEEDED;");
   FileWrite(h,"}");
   FileWrite(h,"");
   FileWrite(h,"void OnTick()");
   FileWrite(h,"{");
   FileWrite(h,"}");
   FileClose(h);
   return true;
  }

//+------------------------------------------------------------------+
//| include dosyası oluştur|
//+------------------------------------------------------------------+
void CreateInclude(const string filePath)
  {
   int h = FileOpen(filePath, FILE_WRITE | FILE_TXT | FILE_ANSI);
   if(h == INVALID_HANDLE)
      return;

   FileWrite(h,"#ifndef __" + ProjectName + "_MQH__");
   FileWrite(h,"#define __" + ProjectName + "_MQH__");
   FileWrite(h,"class C" + ProjectName + " {};");
   FileWrite(h,"#endif");
   FileClose(h);
  }

//+------------------------------------------------------------------+
//| Manifesto oluştur|
//+------------------------------------------------------------------+
void CreateManifest(const string filePath)
  {
   int h = FileOpen(filePath, FILE_WRITE | FILE_TXT | FILE_ANSI);
   if(h == INVALID_HANDLE)
      return;

   FileWrite(h,"PROJECT TEMPLATE");
   FileWrite(h,"Name: " + ProjectName);
   FileWrite(h,"Author: " + AuthorName);
   FileWrite(h,"");
   FileWrite(h,"NOTE:");
   FileWrite(h,"Move this folder to MQL5\\Experts\\ to compile.");
   FileClose(h);
  }
//+------------------------------------------------------------------+

MetaQuotes Ltd tarafından İngilizceden çevrilmiştir.
Orijinal kod: https://www.mql5.com/en/code/68598

VR Breakdown level - Önceki High veya Low seviyesinin kırılmasına dayalı ticaret stratejisi VR Breakdown level - Önceki High veya Low seviyesinin kırılmasına dayalı ticaret stratejisi

Önceki High veya Low seviyelerinin basit kırılmasına dayalı ticaret stratejisi

Modern Time Panel - Candle Time Modern Time Panel - Candle Time

Modern Time Panel for MT5 The Modern Time Panel is a sleek, minimalist custom indicator for MetaTrader 5 that helps you track time with precision. Fixed neatly at the top-right corner of your chart, it displays the current Broker Time, Local Time, and a live countdown to the next candlestick (New Bar). Built with an independent 1-second timer, the countdown continuously runs even when the market is slow or there are no incoming ticks. Fully customizable and dark-mode friendly, it is the perfect non-intrusive tool to ensure you never miss a candle close.

EA Duplicate Detector EA Duplicate Detector

EA'nın koşullara bağlı olarak grafikte yinelenen EA'lar olup olmadığını belirlemesine izin verin.

Trade With MA Trade With MA

Trade using MA. An easy indicator to identify the trend direction on a specific timeframe.