Страница 5 из 6
Запустим Matlab, нажмем Ctrl+N и в открывшемся окне вставим ниже представленный код и сохраним его как скрипт Primer.m в папке “Matlab” на рабочем столе. Путь к этой папке укажем в соответствии с ее расположением на жестком диске нашего компьютера. То же самое сделаем и в отношении других файлов используемых при обучении нейросети.
Input= xlsread('C:UsersАдминистраторAppDataRoamingMetaQuotesTerminal287469DEA9630EA94D0715D755974F1BMQL4FilesIn.csv','In')';
Out= xlsread('C:UsersАдминистраторAppDataRoamingMetaQuotesTerminal287469DEA9630EA94D0715D755974F1BMQL4FilesOut.csv','Out')';
Test= xlsread('C:UsersАдминистраторAppDataRoamingMetaQuotesTerminal287469DEA9630EA94D0715D755974F1BMQL4FilesTest.csv','Test')';
[~, ~, Date] = xlsread('C:UsersАдминистраторAppDataRoamingMetaQuotesTerminal287469DEA9630EA94D0715D755974F1BMQL4FilesDate.csv','Date');
trainFcn = 'trainlm';
hiddenLayerSize = 10;
net = fitnet(hiddenLayerSize,trainFcn);
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
[net,tr] = train(net,Input,Out);
Net=net(Test)';
xlswrite('C:UsersАдминистраторDesktopMatlabIndicator.csv',Date,'','1A');
xlswrite('C:UsersАдминистраторDesktopMatlabIndicator.csv',Net,'','1B');
Запустив данный скрипт, дождемся окончания его работы. Результатом исполнения скрипта в рабочем окне Workspace мы получим набор файлов.
Файл net.mat (обученную нейросеть) сохраним в папке Primer, которую предварительно создадим в папке Matlab. Отмечу, что папку Matlab мы назначим рабочим каталогом программы. Потом вы, конечно же, можете все настроить, как вам будет удобнее.
Так же в папке Matlab, скрипт создаст файл Indicator.csv. Это отклик нейросети, который мы будем использовать как индикатор для разработки торговой стратегии.
Откроем этот файл. В ячейке C5 вставим формулу, которую вы видите в строке формул на рисунке выше. Заполним этой формулой колонку “С”. Скопируем данные и через специальную вставку заполним ячейки данной колонки значениями формул.
Сохраним файл в формате csv.
Данный файл скопируем и вставим в папки /MQL4/Files и /tester/files. Для удобства я рекомендую ярлыки этих папок разместить рядом с папкой Matlab.
Запустим индикатор 1.mq4.
//+–+
//| 1.mq4 |
//| Copyright © 2009, Andrey Dibrov. |
//|"https://www.youtube.com/cha
//+–+
#property copyright "Copyright © 2009, Andrey Dibrov."
#property link "https://www.youtube.com/cha
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
string File_Name="Indicator.csv";
double Buf_0[];
double Buf_1[];
double Str0;
double Str1;
datetime Date0;
datetime Date1;
int Handle;
int i;
//+–+
//| Custom indicator initialization function |
//+–+
int init()
{
SetIndexBuffer(0,Buf_0);
SetIndexBuffer(1,Buf_1);
IndicatorBuffers(2);
IndicatorDigits(4);
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);
SetLevelValue(0,0.5);
return(0);
}
//+–+
//| |
//+–+
int start()
{
Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");
while(i==0)
{
Date0=StrToTime(FileReadString(Handle));
i++;
}
FileClose(Handle);
i=iBarShift(NULL,PERIOD_H1,Date0);
Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");
while(i>=0)
{
Date1=StrToTime(FileReadString(Handle));
Str0=StrToDouble(FileReadString(Handle));
Str1=StrToDouble(FileReadString(Handle));
Buf_0[i]=Str0;
Buf_1[i]=Str1;
i–;
}
FileClose(Handle);
return(0);
}
//+–+
Этот индикатор представлен на рисунке выше. Согласитесь – индикатор сложно как – либо интерпретировать, и строить на его основе торговую стратегию. Т.е. нам необходимо совершенствовать обучение нейросети и попытаться добиться хотя бы результата представленного ниже.
С помощью эксперта “
ExpertPrimerReal
” протестируем отклик нейросети.
//+–+
//| ExpertPrimerReal.mq4|
//| Copyright © 2019, Andrey Dibrov. |
//|"https://www.youtube.com/cha
//+–+
#property copyright "Copyright © 2019, Andrey Dibrov."