Forex GPT Full
- Эксперты
- Evgeniy Kuzevanov
- Версия: 1.1
- Активации: 5
Этот советник расширенная версия Forex GPT MA который самостоятельно создает сразу 4 нейронных сети и обучается во время работы или при запуске в тестере стратегий, сеть создается из значений средней цены (на основе индикатора Moving Average).
Другие мои продукты смотрите тут.
Советник не использует сторонних библиотек, ни чего не подключает, все расчеты происходят внутри советника, с возможностью сохранения данных нейронной сети и всех его параметров при обучении, перезапуске или переносе на другой терминал с помощью файлов создаваемых в процессе его работы!
1. Основной принцип работы.
2. Построение сразу 4 нейронной сети.
3. Проверка вариантов нейронной сети.
4. Блок открытия и расчет виртуальных ордеров.
5. Фильтр для анализа и отбора виртуальных ордеров.
6. Описание входных параметров.
1. Основной принцип работы.
Данный советник в своей работе использует и создает 4 нейронных сети используя значения средней цены. Для значения средней цены используем индикатор Moving Average. Советник на каждом новом баре строит сетку из ячеек на прошлых данных проверяя есть ли в ячейке средняя цена. Для построения сети используем координатную ось x и y, при нахождении в ячейке средней цены записывает в нее - 1, если цены нет то - 0. Таким образом формируется вариант сети, и так происходит на каждом новом баре, далее советник проверяет в своей нейронной сети есть ли такой вариант расположения и если нет, то добавляет этот вариант в сеть и дает сигнал на открытие виртуальных ордеров, а если уже есть, то блок расчета виртуальных ордеров начинает открывать виртуальные ордера и отслеживать изменение цены и фиксирует либо прибыль либо убыток по каждому варианту который есть в сети. Таким образом советник просчитывает виртуально каждый вариант и накапливает историю сделок по каждому варианту нейронной сети.
Дальше виртуальные ордера фильтруются по 3 фильтрам и при достижении критериев и наличия сигналов от сети ставятся в торговлю. При включенной опции советник может сохранять все данные работы в файлы, для обучения на истории или для переноса на другой терминал.
2. Построение нейронной сети.
Для понимания как советник строит свою нейронную сеть обратимся к рисунку picture №1 https://c.mql5.com/31/1112/forex-gpt-ma-screen-2118.jpg:
Итак мы видим график цены с индикатором Moving Average со значением period=2 и с разлинованная сетка (красные линии) ячейки сети. По оси Х мы берем бары можно использовать с шагом или каждый бар, на рисунке используется step=4. По оси Y берем значения от цены открытия текущего бара, вверх строим сетку прибавляя delta, а вниз вычитая delta.
Получается так: советник смотрит текущий бар и если в ячейке есть значения индикатора Moving Average то в эту ячейку советник пишет 1, если там нет значения индикатора Moving Average то записывает 0.
Построение сети идет от левой верхней ячейки слева направо вниз построчно, при включенной опции советника Filesave=true данные нейронной сети записываются в файл построчно, каждая строка в файле это вариант сети выпрямленный в одну строку в порядке ее построения - левой верхней ячейки слева направо вниз picture №2 https://c.mql5.com/31/1112/forex-gpt-ma-screen-3578.png.
На данном рисунке содержимое файла *_neural.csv в нем хранится варианты нейронной сети каждая строчка это 1 вариант нейронной сети со значениями 0 и 1.
В данном случае это формирование сети x=4 y=11 и delta=70, чтобы увидеть визуально надо разбить 1 - ую строку по x=4 y=11 – picture №3: https://c.mql5.com/31/1112/forex-gpt-ma-screen-6086.png
Это же можно видеть в режиме включенной панели информации Enable panel=true
На данном примере хорошо видно как формируется сеть из x=4 y=11 и step=1 – picture №4: https://c.mql5.com/31/1112/forex-gpt-ma-screen-1840.png
Бары формируются так справа налево 0,1,2,3 и в сети правый столбик в середине стоит 1, далее второй столбик тоже в середине стоит 1 и в 3 столбике 1 стоит выше 1 которые были до этого, потому что там цена выше них и в левом столбике 1-ца еще ниже тех единиц так как цена там была ниже тех значений.
Вот так происходит формирование нейронной сети, которая хранится в виде массива данных в памяти советника и при включенной опции Filesave=true выгружается в каждый понедельник в файлы MQL4/files/ при торговле и при тестировании в tester/files/.
3. Проверка вариантов нейронной сети.
После того как 1 вариант нейросети сформировался советник на каждом новом баре отслеживает новый вариант сети если он отличается от того что уже есть, то советник добавляет его в свою базу открывая при этом виртуальные ордера в обоих направлениях, таким образом советник отслеживает и sell и buy для каждого варианта сети, уже потом при анализе какой вариант sell или buy будет иметь хорошую оценку тот и будет торговать. На каждом баре советник проверяет строит как бы сеть и смотрит как там расположен индикатор и в соответствии с этим принимает решение, если такого нет варианта то добавляет если есть, то открывает виртуальные ордера. Так продолжается пока работает советник.
4. Блок открытия и расчет виртуальных ордеров.
В советнике реализован механизм открытия и анализ уже открытых виртуальных ордеров. Используя массивы переменных, советник отслеживает сигналы от блока нейронной сети и при поступлении начинает следить с каждым баром как меняется цена, используя значения 1 – го бара open, high, low, close. Учитывая направление торговли блок считает прибыль у каждого ордера и ведет расчет каждого варианта сети. В расчетах используются значения максимальной прибыли и минимальной для просадки, профит фактор, прибыль и убытки, количество ордеров для каждого варианта сети. Таким образом если в нейронной сети будет 20 вариантов, то в блоке виртуальных ордеров будет 20 вариантов переменных SL, TP, PF, DD, ordercount для sell и такие же значения для buy. Все эти значения хранятся в памяти советника в виде массива данных, при включенной опции Filesave=true советник выгружает эти значения в файлы: MQL4/files/ при торговле и при тестировании в tester/files/:
*_buy_d1_v1.csv, *_buy_d1_v2.csv и их же копии на всякий случай.
*_sell_d1_v1.csv, *_ sell _d1_v2.csv и их же копии на всякий случай.
Каждая строка это значения SL, TP, PF, DD, ordercount для одного варианта сети.(см рисунок picture №5: https://c.mql5.com/31/1112/forex-gpt-ma-screen-3958.png )
*_data.csv – сюда пишет информацию о дате выгрузки, количество вариантов сети и сколько профита по фильтрам, баланс общий. По этому файлу ориентируемся с какой даты по какую советник накопил историю для перезапуска или при переносе после обучения на истории.
5. Фильтр для анализа и отбора виртуальных ордеров.
Все варианты сети считаются виртуальными ордерами. При том что каждый вариант сети ведет статистику сразу по двум направлениям торговли и в buy и в sell. Все значения могут быть хорошими и плохими убыточными и положительными, для поиска наилучших вариантов сделан фильтр, который отбирает из всех значений лучшие по определенному критерию. Реализовано 3 вида фильтрации:
Для фильтров используются расчеты:
Filtr1 - По максимальной прибыли.
Filtr2 - По максимальной прибыли*профит фактор.
Filtr3 - По максимальной прибыли*профит фактор*количество ордеров.
Каждый фильтр включается и выключается, при включенных фильтрах возможно открытие сразу 3 ордеров одновременно.
6. Входные параметры
Magicnumber - номер для идентификации своих ордеров;
Lot - Размер лота;
On/off ММ - включение или выключения мани менеджмента;
Risk % - Процент от депозита для ММ;
Enable Panel - Включение панели информации;
panel fon Color - Цвет фона панели информации;
panel text Color - Цвет текста панели информации;
breakeven on/off - включение безубытка;
breakeven distance - дистанция для включения для переноса SL в+;
breakeven pips - на какое количество пунктов выставлять SL в+;
ON or OFF Trailing - включение трейлинг стопа;
MinProfit for Trailing - дистанция для включения переноса SL в+;
TrailingStop - на какое количество пунктов выставлять SL в+;
TrailingStep - на какое количество пунктов двигать SL в+;
Filesave - При включении советник будет сохранять все параметры в файлы в формате *.scv - при тестировании в папке терминала tester/files/папка с параметрами советника/filename*.scv. При торговле в папке терминала MQL4/Files/ папка с параметрами советника/filename*.scv
Filename - названия файлов для сохранения информации: Filename_buy.csv, Filename_buy_copy.scv, Filename_sell.csv, Filename_sell_copy.scv, Filename_data.csv, Filename_data_copy.scv, Filename _neural .csv, Filename _neural _copy.scv;
PF - минимальное значения профит фактора для фильтрации виртуальных ордеров;
MA - период индикатора Moving Average для определения нейронной сети;
SL* - значение Stop Loss - 16 вариантов расчета;
TP* - значение Take Profit - 16 вариантов расчета ;
k_sl_tp - коэффициент для умножений значений SL TP;
delta - диапазон значений цены в пунктах, для формирования сети по оси Y;
step - шаг в барах, для формирования сети по оси Х;
Input net_x - количество ячеек по оси Х;
Input net_y - количество ячеек по оси Y;
profittestmax - минимальный профит для виртуальных ордеров для начала открытия реальных ордеров;
dd_max - максимальная просадка для виртуальных ордеров больше которой не будут фильтроваться для отбора к реальной торговле;
NumberOfTry - количество попыток открытия, модификации ордеров;
Slippage - проскальзывание;
Итог:
После того как виртуальные ордера от фильтровались есть еще опция: profittestmax, где указывается профит в валюте депозита , например там стоит 50, значит реальная торговля начнется только тогда, когда профит виртуальных ордеров по вариантам сети превысит эти значения.
Получается что советник как буд то сам проводит оптимизацию параметров просчитывая все 16 вариантов SL TP по каждой нейронной сети с разными значениями delta и выбирает из них лучшие варианты и торугет уже по ним.
При включенной опции Filesave=true файлы пишутся раз в неделю – с утра в понедельник.
Если вы спросите почему сеть состоит только из максимально х=4 и y=13, то ответ такой: чем больше размер сети тем больше в ней вариантов которые будут меньше повторяться на истории и следовательно по ним будет мало статистики, еще это увеличивает ресурсы и время работы компьютера для поиска и обучения сети, и есть еще не маловажный параметр возможности хранения переменных то же не безграничны и ограничена возможностями языка программирования MQL4. При огромных количествах тестирования и оптимизации оставлены максимальные параметры именно х=4 и y=13.
I tested this EA more by chance and was surprised that it is the first EA where you can already see in the tester that the neural network is visible and can already learn from the test results and all this within the terminal. I currently have the EA in the live test and give this brilliant product 5 stars. However, I will provide further feedback to hopefully confirm the 5 stars.
And I would like to see an MT5 version of this EA in the future, as MT5 is simply faster and offers more possibilities and resources.