Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
- Görüntülemeler:
- 47
- Derecelendirme:
- Yayınlandı:
-
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:
- Klasörü manuel olarak MQL5\Experts\ konumuna taşıma
- Ana .mq5 dosyasını MetaEditor'da açma
- Ticaret mantığınızı sağlanan işlev iskeletlerinde uygulama
Gelişmiş İş Akışları için Genişleme Fırsatları
Ölçeklenebilirlik Geliştirmeleri
- Çoklu Dosya Şablonları: Gösterge komut dosyaları, kütüphane dosyaları veya kaynak manifestoları oluşturmak için genişletin
- Yapılandırma Dosyaları: Parametre yönetimi için JSON/XML yapılandırma dosyası oluşturma özelliği eklendi
- 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
Önceki High veya Low seviyelerinin basit kırılmasına dayalı ticaret stratejisi
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'nın koşullara bağlı olarak grafikte yinelenen EA'lar olup olmadığını belirlemesine izin verin.
Trade With MA
Trade using MA. An easy indicator to identify the trend direction on a specific timeframe.