---
title: "Developing programs - MetaEditor Help"
description: "MetaEditor features tools for all stages of development: from creating a program template up to its compilation and debugging... - Developing programs - MetaEditor Help"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/en/metaeditor/help/development"
---

[MetaEditor Help](https://www.metatrader5.com/en/metaeditor/help) → Developing programs

# Developing programs

MetaEditor features tools for all stages of development: from creating a program template up to its compilation and debugging.

![MetaEditor has everything for developing programs: code writing help, debugging and profiling](https://www.metatrader5.com/i/help/metaeditor/en/development.png)

## Programming in MetaEditor is convenient

The editor provides plenty of built-in tools that simplify writing a source code:

- [Auto completion](https://www.metatrader5.com/en/metaeditor/help/development/intelligent_management#substitute) – when you start entering the first characters of a function, the editor immediately offers suitable options
- Signature [tips](https://www.metatrader5.com/en/metaeditor/help/development/intelligent_management#info) are displayed as soon as you start entering a function name
- [Snippets](https://www.metatrader5.com/en/metaeditor/help/development/intelligent_management#snippet) for quick insertion of handlers and loops
- [Styler](https://www.metatrader5.com/en/metaeditor/help/development/styler) for auto alignment of a source code
- [Bookmarks](https://www.metatrader5.com/en/metaeditor/help/development/intelligent_management#bookmarks), [search](https://www.metatrader5.com/en/metaeditor/help/development/source_code_find) and other means for fast code navigation

## Compilation and protection

[Compilation](https://www.metatrader5.com/en/metaeditor/help/development/compile) means not only generating an executable file for launching in the trading platform. This is also a formidable protection of your intellectual property. All developed programs are reliably protected against decompilation. In addition, MetaEditor provides an additional file protection via [MQL5 Cloud Protector online service](https://www.metatrader5.com/en/metaeditor/help/development/mql5_cloud_protector).

## Searching for errors and optimizing programs

MetaEditor allows checking the program operation by steps (string by string) using the [built-in debugger](https://www.metatrader5.com/en/metaeditor/help/development/debug). You can check the program operation in real conditions by running it on a regular schedule, as well as in the strategy tester where you can quickly pass multiple market situations.

When working on financial markets, the operation speed is important. [The built-in code profiler](https://www.metatrader5.com/en/metaeditor/help/development/profiling) allows you to find slow functions and optimize a program for maximum speed.

## Additional features

MetaEditor does not limit you: you can write not only in MQL4/MQL5, but also in C++, as well as easily [import functions of third-party DLLs](https://www.metatrader5.com/en/metaeditor/help/development/c_dll). Your programs can use computational resources of video cards due to support for [OpenCL](https://www.khronos.org/opencl/).

MetaEditor provides access to the extensive [library of source codes](https://www.metatrader5.com/en/metaeditor/help/workspace/toolbox#codebase) and [articles](https://www.metatrader5.com/en/metaeditor/help/articles) helping you in mastering algorithmic trading.

## In this section

- [Intelligent management](https://www.metatrader5.com/en/metaeditor/help/development/intelligent_management)
- [Find and replace](https://www.metatrader5.com/en/metaeditor/help/development/source_code_find)
- [Styler](https://www.metatrader5.com/en/metaeditor/help/development/styler)
- [Compilation](https://www.metatrader5.com/en/metaeditor/help/development/compile)
- [MQL5 Cloud Protector: Advanced protection for programs](https://www.metatrader5.com/en/metaeditor/help/development/mql5_cloud_protector)
- [Code debugging](https://www.metatrader5.com/en/metaeditor/help/development/debug)
- [Code profiling](https://www.metatrader5.com/en/metaeditor/help/development/profiling)
- [AI Assistant](https://www.metatrader5.com/en/metaeditor/help/development/ai_assistant)
- [Generating included code](https://www.metatrader5.com/en/metaeditor/help/development/generate_mqh)
- [Working with C++ DLL (integration with MS Visual Studio)](https://www.metatrader5.com/en/metaeditor/help/development/c_dll)
- [Working with Python](https://www.metatrader5.com/en/metaeditor/help/development/python)
- [OpenCL support](https://www.metatrader5.com/en/metaeditor/help/development/opencl)

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/en/metaeditor/help", "name": "MetaEditor Help"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/en/metaeditor/help/development", "name": "Developing programs"}} ]}
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{ "@type": "Question", "name": "MetaTrader 5: Developing programs", "acceptedAnswer": { "@type": "Answer", "text": "MetaEditor features tools for all stages of development: from creating a program template up to its compilation and debugging. The editor provides..." } }] }
```
