Скачать книгу

handleDate=FileOpen("Date.csv",FILE_TXT|FILE_WRITE|FILE_SHARE_READ,";");

      //+–+

      //| Expert initialization function |

      //+–+

      int OnInit()

      {

      //–

      //–

      return(INIT_SUCCEEDED);

      }

      //+–+

      //| Expert deinitialization function |

      //+–+

      void OnDeinit(const int reason)

      {

      //–

      FileClose(handleTest);

      FileClose(handleDate);

      }

      //+–+

      //| Expert tick function |

      //+–+

      void OnTick()

      {

      //–

      string Date=TimeToStr(iTime(NULL,0,0));

      if(handleTest>0 && handleDate>0 && DateTest<Date)

      {

      FileWrite(handleTest,

      iWPR(NULL,0,14,3),

      iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_MAIN,3),

      iRVI(NULL,0,10,MODE_MAIN,3),

      iRSI(NULL,0,14,PRICE_CLOSE,3),

      iOsMA(NULL,0,12,26,9,PRICE_CLOSE,3),

      iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,3),

      iWPR(NULL,0,14,2),

      iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_MAIN,2),

      iRVI(NULL,0,10,MODE_MAIN,2),

      iRSI(NULL,0,14,PRICE_CLOSE,2),

      iOsMA(NULL,0,12,26,9,PRICE_CLOSE,2),

      iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,2),

      iWPR(NULL,0,14,1),

      iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_MAIN,1),

      iRVI(NULL,0,10,MODE_MAIN,1),

      iRSI(NULL,0,14,PRICE_CLOSE,1),

      iOsMA(NULL,0,12,26,9,PRICE_CLOSE,1),

      iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1),

      iWPR(NULL,0,14,0),

      iStochastic(NULL,0,5,3,3,MODE_SMA,1,MODE_MAIN,0),

      iRVI(NULL,0,10,MODE_MAIN,0),

      iRSI(NULL,0,14,PRICE_CLOSE,0),

      iOsMA(NULL,0,12,26,9,PRICE_CLOSE,0),

      iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0));

      FileWrite(handleDate,Date);

      }

      }

      //+–+

      В папке /tester/files каталога данных MT4 мы получим также два файла Date.csv и Test.csv. В первом мы записали дату и почасово время тестового множества. Во втором непосредственно значения, по которым мы будем получать отклик нейросети.

      Файлы Date.csv и Test.csv мы перенесем в папку …\MQL4\Files.

      Запустим Matlab, нажмем Ctrl+N и в открывшемся окне вставим ниже представленный код и сохраним его как скрипт Primer.m в папке “Matlab” на рабочем столе. Путь к этой папке укажем в соответствии с ее расположением на жестком диске нашего компьютера. То же самое сделаем и в отношении других файлов используемых при обучении нейросети.

      Input= xlsread('C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\287469DEA9630EA94D0715D755974F1B\MQL4\Files\In.csv','In')';

      Out= xlsread('C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\287469DEA9630EA94D0715D755974F1B\MQL4\Files\Out.csv','Out')';

      Test= xlsread('C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\287469DEA9630EA94D0715D755974F1B\MQL4\Files\Test.csv','Test')';

      [~, ~, Date] = xlsread('C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\287469DEA9630EA94D0715D755974F1B\MQL4\Files\Date.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\Администратор\Desktop\Matlab\Indicator.csv',Date,'','1A');

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

      Запустив данный скрипт, дождемся окончания его работы. Результатом исполнения скрипта в рабочем окне Workspace мы получим набор файлов.

      Файл net.mat (обученную нейросеть) сохраним в папке Primer, которую предварительно создадим в папке Matlab. Отмечу, что папку Matlab мы назначим рабочим каталогом программы. Потом вы, конечно же, можете все настроить, как вам будет удобнее.

      Так же

Скачать книгу