Размер шрифта
-
+

Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе - стр. 6

[net,tr] = train(net,Input,Out);

Net=net(Test)';

xlswrite('C:\Users\Администратор\Desktop\Matlab\Indicator.csv',Date,'','1A');

xlswrite('C:\Users\Администратор\Desktop\Matlab\Indicator.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, AndreyDibrov. |

//|"https://www.youtube.com/channel/UCScAAn_sRRaKHdNIxl0aI9A?view_as=subscriber" |

//+–+

#property copyright "Copyright © 2009, Andrey Dibrov."

#property link "https://www.youtube.com/channel/UCScAAn_sRRaKHdNIxl0aI9A?view_as=subscriber"

#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/channel/UCScAAn_sRRaKHdNIxl0aI9A?view_as=subscriber" |

//+–+

#property copyright "Copyright © 2019, Andrey Dibrov."

#property link "https://www.youtube.com/channel/UCScAAn_sRRaKHdNIxl0aI9A?view_as=subscriber"

extern int H1;

extern int H2;

extern int H3;

extern int H4;

extern int Loss1;

extern int Profit1;

extern int Loss0;

extern int Profit0;

int MagicBuy1;

int MagicSell0;

Страница 6