![Как создать эксперта за несколько минут при помощи EA Tree: Часть 1](https://c.mql5.com/i/articles/overlay.png)
Как создать эксперта за несколько минут при помощи EA Tree: Часть 1
Введение
Программа EA Tree является первым инструментом, позволяющим построить код советника на базе блок-схем методом "drag and drop". Программа представляет собой Windows-приложение, которое запускается локально на вашем компьютере. Сложный код на MQL5 теперь можно создавать при помощи удобного графического интерфейса.
Создание советников в EA Tree осуществляется путем построения блоков, которые могут содержать функции языка MQL5, технические и пользовательские индикаторы, или численные значения. Выходы блока могут быть соединены с входами другого блока, образуя "дерево блоков". На базе дерева блоков программа EA Tree генерирует исходный код советника, который затем может быть скомпилирован в торговой платформе MetaTrader 5, установленной на вашем компьютере.
Рис. 1. Графический интерфейс пользователя программы EA Tree
В следующих разделах мы рассмотрим основные понятия, которые используются в EA Tree.
1. Основные понятия
Главными элементами программы являются блок ("box") and кнопки ("buttons").
Блоки предназначены для представления информации. Они могут содержать значения технического индикатора, математической функции и т.д. Каждый блок имеет входные и выходные кнопки. В данном примере блок "Add" имеет 3 входных кнопки, обозначенные как "A", "B", "C" и одну кнопку на выходе, обозначенную как "OUT".
Каждый блок имеет уникальное обозначение, задаваемое при помощи его имени и индекса. В этом примере метка "Add_1" означает, что блок имеет наименование "Add", а индекс 1 это означает, что это первый блок в наборе.
Рис. 2. Блок "Add"
Соединения кнопок
Выходные кнопки одного блока могут быть соединены с входными кнопками другого блока в случаях, если оба они имеют одинаковый тип данных (например, обе кнопки типа double).
В этом примере мы соединяем кнопку "OUT" блока "Add_2" с кнопкой "A" блока "If_Else_1".
Рис. 3. Блоки "Add" и "If-Else"
2. Блок "Trade"
В программе EA Tree главным блоком является блок "Trade", он имеет несколько входных кнопок, самими важными из которых являются кнопки "openLong", "openShort", "closeLong" и "closeShort". Помимо этого блок содержит множество торговых параметров.
Рис. 4. Блок "Trade"
3. Блок "MM" (MoneyManagement)
Для управления капиталом предназначен блок "MM", также имеющий несколько входных кнопок. Для его подключения следует соединить выходную кнопку "OUT" блока "MM" с входной кнопкой "MM" блока "Trade".
Рис. 5. Блоки "Trade" и "MM"
4. Блоки логических операций
Блоки логических операций являются очень важными, они используются для проверки выполнения торговых условий и соединяются с кнопками "openLong", "openShort", "closeLong" и "closeShort блока "Trade", а также между другими блоками в схеме.
Блок "If-Else"
Логика блока "If-Else":
If A operator B then T (выходная кнопка T=true) else F (выходная кнопка F=false).
В качестве operator могут быть операции сравнения "равно" (equal to), "не равно" (not equal to), "меньше" (less than), "больше" (greater than) и т.д.
Рис. 6. Логический блок "If-Else"
Логический блок "Crossover" (пересечение)
Логика блока "Crossover":
If A operator1 B AND C operator2 D then T (выходная кнопка)=true else F (выходная кнопка)=true.
В качестве операторов operator1 и operator2 могут быть операторы сравнения "равно" (equal to), "не равно" (not equal to), "меньше" (less than), "больше" (greater than) и т.д. При помощи кнопок "shiftA" и "shiftB" можно указать сдвиг индекса индикаторов.
В данном примере логика блоков следующая:
Если текущее значение основной (main) линии индикатора Stochastic > текущее значение сигнальной (signal) линии индикатора Stochastic и
Предыдущее значение основной (main) линии индикатора Stochastic > предыдущее значение сигнальной (signal) линии индикатора Stochastic,
то T=true и F=false
Рис. 7. Логические блоки "Crossover" и "Stochastic"
Логический блок "AND"
Логика блока "AND":
If A AND B AND C AND D then OUT(выходная кнопка)=true
Рис. 8. Блок "And"
Логический блок "OR"
Логика блока "OR":
If (A OR B OR С OR D) then OUT(выходная кнопка)=true
Рис. 9. Блок "Or"
5. Блоки технических индикаторов
В меню "Technical indicators" доступны блоки многих технических индикаторов, таких как MACD и Moving Average.
Блок технического индикатора MACD
Рис. 10. Блок технического индикатора MACD
Блок технического индикатора MA (Moving Average)
Рис. 11. Блок технического индикатора MA (Moving Average)
6. Пользовательские индикаторы (Custom Indicators)
Пользовательские индикаторы доступны через панель инструментов и меню "Custom Indicators". В EA Tree используются только пользовательские индикаторы, написанные на языке MQL5.
7. Функции MQL5
В программе EA Tree есть блоки функций языка MQL5:
- Блоки таймсерий (iOpen, iClose, HighestHigh, LowestLow, и т.д.).
- Функции преобразования (Conversion Functions);
- Математические функции (Math functions);
- Строковые функции (String functions).
8. Учебник: Создаем простой советник
В этом разделе мы рассмотрим процесс создания простого советника.
Сначала приведем список условий торговли советника.
Правила входа в рынок (Entry Rules):
Открытие длинной позиции (Open Long):
- Текущее значение главной (main) линии индикатора MACD > текущее значение сигнальной (signal) линии индикатора MACD;
- Предыдущее значение главной (main) линии индикатора MACD < значение сигнальной (signal) линии индикатора MACD;
- Текущее значение EMA(20) > предыдущее значение EMA(20).
Открытие короткой позиции (Open Short):
- Текущее значение главной (main) линии MACD < текущее значение сигнальной (signal) линии индикатора MACD;
- Предыдущее значение главной (main) линии MACD > предыдущее значение сигнальной (signal) линии индикатора MACD;
- Текущее значение EMA(20) > предыдущее значение EMA(20).
Правила выхода с рынка (Exit Rules):
Закрытие длинных позиций (Close Long): аналогично правилу открытия коротких позиций (Open Short);
Закрытие коротких позиций (Close Short): аналогично правилу открытия длинных позиций (Open Long).
В примере, рассмотренном ниже, для блока "Trade" будут использоваться настройки по умолчанию, управление капиталом отсутствует.
Начнем:
1. Создадим блоки "Trade" и "AND", соединим выходную кнопку OUT блока "And" с входной кнопкой "OpenLong" блока "Trade":
Рис. 12. Блоки "Trade" и "And"
2. Создадим блок "Crossover" и соединим его выходную кнопку "T" с входной кнопкой "A" блока "AND".
Рис. 13. Блоки "Trade" + "And" + "Crossover"
3. Создадим блок "MACD", соединим выходную кнопку "Main" с входными кнопками "A" и "C" блока "Crossover", затем соединим выходную кнопку "Signal" блока "MACD" c входными кнопками "B" и "D" блока "Crossover".
Логическая структура построенной схемы:
Если текущее значение главной (main) линии индикатора MACD > текущее значение сигнальной (signal) линии индикатора MACD и
предыдущее значение главной (main) линии индикатора MACD < предыдущее значение сигнальной (signal) линии индикатора MACD
Рис. 14. Блоки "Trade" + "And"+ "Crossover"+ "MACD"
4. Создадим блоки "MA" и "If-Else". Соединим выходную кнопку "Main" блока "MA" с входными кнопками "A" и "B" блока "If-Else". Соединим кнопку "OUTPUT" блока "If-Else" с входной кнопкой "B" блока "AND".
Для условия открытия длинной позиции (openLong) поддерево блоков состоит из следующих трех условий:
- Текущее значение главной (main) линии индикатора MACD > текущее значение сигнальной (signal) линии индикатора MACD и
- Предыдущее значение главной (main) линии индикатора MACD < предыдущее значение сигнальной (signal) линии индикатора MACD и
- Текущее значение индикатора EMA(20) > предыдущее значение EMA(20)
Рис. 15. Блоки "Trade" + "And" + "Crossover" + "MACD" + "MA" + "If-Else"
5. Создадим еще один блок "And" и соединим его выходную кнопку с входной кнопкой "openShort" блока "Trade".
6. Поскольку логика "openShort" противоположна "openLong", соединим выходную кнопку "F" блока "Crossover" с входной кнопкой "A" нового блока "And". Также соединим выходную кнопку "F" блока "If-Else"с входной кнопкой "B" нового блока "And".
Рис. 16. Блоки "Trade"+ "And" + "Crossover" + "MACD" + "MA"+ "If-Else" + "And"
7. Для получения сигналов выхода с рынка соединим выходную кнопку "OUT" первого блока "And" с входной кнопкой "closeLong" блока "Trade", а выходную кнопку "OUT" второго блока "And" соединим с входной кнопкой "closeShort" блока "Trade".
Рис. 17. Добавляем условие "CloseShort" в блок "Trade"
8. Дважды кликнув по блокам "MACD" и "MA", выберем переменные, которые будут использоваться в качестве входных параметров эксперта, код которого будет генерироваться.
Рис. 18. Входные параметры советника
9. Теперь все готово, сохраним советник в файл, откроем его в редакторе MetaEditor 5 и компилируем.
Рис. 19. Исходный код созданного советника
10. Наконец, при помощи тестера торговых стратегий терминала MetaTrader 5 производим оптимизацию выбранных входных параметров советника.
Рис. 20. Тестирование советника в тестере торговых стратегий
Выводы
Использование EA Tree имеет много преимуществ:
- Легкий в использовании и понятный графический интерфейс;
- Не требуется опыт программирования;
- Вы сможете быстро освоить язык MQL5;
- Конфиденциальность ваших торговых секретов;
- Значительное сокращение сроков разработки советника (с дней/месяцев до минут);
- Вы можете разрабатывать сложные советники для торговли на нескольких валютах и таймфреймах;
- В код советника может быть включено множество торговых стратегий;
- Загрузка и сохранение блок-схем позволяют использовать код повторно;
- Существует возможность подключения пользовательских индикаторов;
- Код советника, создаваемый программой EA Tree, не содержит ошибок и всегда компилируется.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/337
![Интервью с Игорем Корепиным (ATC 2011)](https://c.mql5.com/2/0/Xupypr_ava.png)
![Интервью с Тимом Фассом (ATC 2011)](https://c.mql5.com/2/0/avatar_Tim.png)
![Использование дискриминантного анализа для построения торговых систем](https://c.mql5.com/2/0/Discriminant_Analysis_MQL5.png)
![Доктор Трейдлав, или Как я перестал беспокоиться и написал самообучающийся эксперт](https://c.mql5.com/2/0/smart_EA.png)
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нужно разумно выбирать задачу конкурса как по сложности, так и по срокам исполнения.
Есть масса задач повышенной сложности - и именно в области анализа ценового потока (например, волны, свечные модели etc.).
Такие задачи при символических призах могут привлечь много новичков, что очень важно. На прошлых конкурсах участников был десяток.
Мало того, как мне кажется, есть много программирующих на mql4 и в силу разных причин не торопящихся изучать mql5 - такую аудиторию тоже надо стимулировать.
Цели таких конкурсов - знакомство с возможностями mql5, более глубокое изучение mql5, самообучение, проверка своих способностей.
Hi,
EATree demo (Limited Edition) is now available at www.eatree.com
привет,
EATree демо (Limited Edition) теперь доступна на www.eatree.com
посмотрел. впечатления:
- сложно, не интуитивно (думаю это вопрос привычки и практики)
- нельзя просмотреть свой созданный алгоритм код (выдает код для чего-то другого)
Hi,
There is always a learning curve for any new software tool. I think that the best way to start is to do the manual tutorial.
The code generator is generating a standard template then it adds pieces of code depending on the tree of boxes that you build.
Переводчик Google
привет,
Существует всегда кривой обучения для любой новый инструмент программного обеспечения. Я думаю, что лучший способ начать это делать ручной учебник.
Генератор кода генерирует стандартный шаблон, то он добавляет фрагменты кода, в зависимости от дерева коробки, которые вы строите.
I do respect all the comments about my article and I would like to interact with this wonderful community. I do not think that language is a barrier. About 50% of top 10 participants in ATC 2011 are Russians and about 40% of www.eatree.com visitors are from Russia and Ukraine. I do provide a Google translation, so I do not think that there is something wrong with making comments in this wonderful site in both English and Russian languages.
Я уважаю все комментарии по поводу моей статьи, и я хотел бы общаться с этим замечательным сообществом. Я не думаю, что язык является барьером. Около 50% из 10 крупнейших участников ATC 2011 году русских и около 40% www.eatree.com посетителей из России и Украины. Я действительно обеспечивают перевод Google, так что я не думаю, что что-то неладно с делать комментарии в этом чудесном сайте на английском и русском языках.