外汇EA编写教程:经济有效的神经网络连接Neuropro和MetaTrader 5

关于神经肽

Neuropro的项目是由俄罗斯一家研究机构于1998年编写的,至今仍具有现实意义。

它可以在Windows XP、Vista和Windows 7中有效运行。我不知道它在未来的Windows版本中如何工作,因为我没有测试它。

关于 NeuroPro

传说。1。关于神经肽

0.25版是免费的,可以在许多互联网网站上找到。Neuropro可以创建一个具有S形曲线激活功能的多层神经网络。如果你刚刚开始学习神经网络,在这个阶段你不需要更多的功能。应该记住,Neuropro的界面是俄语的,没有翻译成其他语言。

神经网络可以在一个数据阵列上进行训练,然后在另一个数据阵列上进行测试。对于交易者来说,它的基本特征是能够快速了解所选的网络结构是否易于转换匹配,以及是否能够稳定历史数据之外的交易,例如真实账户中的交易。

喜欢深入挖掘的人有机会看到神经网络的潜力和网络输入对最重要的操作结果的影响。初学者不需要这个。他们可以跳过序列。对于经验丰富的交易者来说,这些信息帮助他们找到圣杯,因为它允许他们想象他们可以通过神经网络识别什么形状,并看到他们可以继续探索的地方。

此外,除了与网络架构类似的各种设置和有用工具外,Neuropro没有任何显著特征。这些菜单不是强制性的,所以新手不需要复杂的设置,只需要使用默认设置。

从交易者的角度来看,Neuropro只有一个缺点——缺少与MetaTrader 5的集成。实际上,本文的重点是将市场和指数数据从MetaTrader 5加载到Neuropro,然后将接收到的神经网络转换为MQL 5的EA。

随着主题的继续,我可以说我们将使用Neuropro的神经网络将所有神经元权重转换为一个mql5脚本(与任何其他神经网络程序不同,系统包含dll)。它将确保高速运行并使用最少的计算机资源。这是使用Neuropro的明显优势。它可以用来创建任何交易策略,甚至那些需要立即做出决定的头皮EAS。

交易策略

在本文中,我们不讨论头皮剥皮,因为创建、培训和测试头皮剥皮EA的过程涉及到许多特殊性,这超出了本文的内容。

为了教学的目的,我们将创建一个简单的EA,目标货币对欧元,h1时间框架。因此,我们的EA分析最后24个支柱,即最后一天的市场行为,预测未来几个小时的价格方向,然后根据这些信息进行交易。

如何从MetaTrader加载数据到Neuropro

支持的数据格式

Neuropro只读取DBMS格式(DBMS悖论表)和DBF格式(FoxPro和DBase的DBMS表)的数据。DBF是世界上最常见的格式。如果你是一个有经验的程序员,你一定见过很多次。我们也将使用这种格式。

Neuropro中的数据传输算法如下:

  1. 为MetaTrader编写代码,将所需数据加载到带有逗号分隔数据的csv格式文本文件中。
  2. 使用特殊程序将csv转换为dbf。
  3. 在Neuropro中打开DBF。

从MetaTrader加载数据

编写脚本加载数据时应考虑一些细节:

  • DBF中的字段名不能超过11个字符,某些转换器会将它们截断为10个字符。这就是字段名不能超过10个字符的原因。
  • 神经网络中有大量的输入列。字段名通常是“barn”类型,其中n是列的序列号。在我们的示例中,将有24个字段,因此名称将从“bar1”更改为“bar24”。我建议,尽管这不是强制性的,但这些字段应命名为“Bar_uuuuuuuuuuuuu”(前面三个下划线,后面两个下划线)。还有一步,当我们写EA时,你会明白为什么。

以下现成的脚本用于测试我们的策略(本文还附带了这些脚本):

#property script_show_inputs
//+------------------------------------------------------------------+
input string    Export_FileName  = "NeuroPro//data.csv"; // EA 文件 (在 "MQL5/Files" 文件夹)
input int       Export_Bars_Skip = 0;                    // EA 之前要跳过的历史柱线数量
input int       Export_Bars      = 5000;                 // EA 的柱线数
//+------------------------------------------------------------------+
const int inputlen=24;    // 交易策略分析的过去柱线数量
//+------------------------------------------------------------------+
void OnStart()
  {
   //--- 创建文件
   int file=FileOpen(Export_FileName,FILE_WRITE|FILE_CSV|FILE_ANSI,',');

   if(file!=INVALID_HANDLE)
     {
      //--- 写数据头部
      string row="date";
      for(int i=0; i<=inputlen; i++)
        {
         if(StringLen(row)) row+=",";
         //========================================================
         // 注意!
         // 在 EA 里用 [] 替代下划线
         // DBase 格式的字段名不能超过 11 个字符。截断至 10。
         // DBase 格式的最大字段数量是 128-512, 依据版本。
         //========================================================
         StringConcatenate(row,row,"Bar___",i,"__");
        }
      FileWrite(file,row);

      //--- 从历史中复制所需数据
      MqlRates rates[],rate;
      int count=Export_Bars+inputlen;
      if(CopyRates(Symbol(),Period(),1+Export_Bars_Skip,count,rates)<count)
        {
         Print("Error!Insufficient historical data for exporting required data.");
         return;
        }
      ArraySetAsSeries(rates,true);

      //--- 写数据      
      for(int bar=0; bar<Export_Bars; bar++)
        {
         row="";
         //--- 第一根柱线的收盘价格将作为其它柱线归一化的零级
         double zlevel=rates[bar+1].close; 
         for(int i=0; i<=inputlen; i++)
           {
            if(StringLen(row)) row+=",";
            rate=rates[bar+i];
            if(i==0) row+=TimeToString(rate.time,TIME_DATE || TIME_MINUTES)+",";
            row+=DoubleToString(rate.close-zlevel,Digits());
           }
         FileWrite(file,row);
        }
      FileClose(file);
      Print("Data export successfully completed.");
     }
   else Print("Error!Failed to create a file for data export. ",GetLastError());
  }

现在让我们从终点站开始。成功完成后,它将在EA的日志中写入相应的消息。

脚本生成的数据文件可能包含以下内容。

在第一个字符串中是数据表的字段名;然后根据这些字段的值,用逗号分隔字符串:

date,Bar___0__,Bar___1__,Bar___2__,Bar___3__,Bar___4__,Bar___5__,Bar___6__,Bar___7__,Bar___8__,Bar___9__,Bar___10__,Bar___11__,Bar___12__,Bar___13__,Bar___14__,Bar___15__,Bar___16__,Bar___17__,Bar___18__,Bar___19__,Bar___20__,Bar___21__,Bar___22__,Bar___23__,Bar___24__
2014.09.25,-0.0008,0.0000,-0.0005,-0.0014,0.0007,0.0035,0.0035,0.0036,0.0047,0.0052,0.0050,0.0046,0.0046,0.0047,0.0049,0.0052,0.0049,0.0053,0.0055,0.0056,0.0067,0.0056,0.0097,0.0105,0.0113
2014.09.25,0.0005,0.0000,-0.0009,0.0012,0.0040,0.0040,0.0041,0.0052,0.0057,0.0055,0.0051,0.0051,0.0052,0.0054,0.0057,0.0054,0.0058,0.0060,0.0061,0.0072,0.0061,0.0102,0.0110,0.0118,0.0123
2014.09.25,0.0009,0.0000,0.0021,0.0049,0.0049,0.0050,0.0061,0.0066,0.0064,0.0060,0.0060,0.0061,0.0063,0.0066,0.0063,0.0067,0.0069,0.0070,0.0081,0.0070,0.0111,0.0119,0.0127,0.0132,0.0130
2014.09.25,-0.0021,0.0000,0.0028,0.0028,0.0029,0.0040,0.0045,0.0043,0.0039,0.0039,0.0040,0.0042,0.0045,0.0042,0.0046,0.0048,0.0049,0.0060,0.0049,0.0090,0.0098,0.0106,0.0111,0.0109,0.0122

从csv转换为dbf

有很多方法可以做到这一点。

  • 早于2007版本的Microsoft Excel。它可以打开csv文件并以dbf格式保存数据。请记住,长期使用的Excel版本只能容纳65535个字符串。换句话说,这种能力通常足以进行交易,因为它可以适应10年前的h1时间框架;
  • Microsoft Excel 2007及更高版本。DBF格式保存不再可用。可以在Internet上找到可以丰富此功能的Excel插件。
  • Microsoft的Access(Microsoft Office套件和数据库支持工作)。在数据库中,可以通过导入文本文件(csv)创建数据表,并可以导出为dbf格式。
  • 设计了csv-dbf转换工具。在互联网上可以找到许多不同的版本,但大多数都需要付费。
  • 免费的OpenOffice套件中的Cal。Calc是一个接近Excel的完整模拟。它可以打开csv文件并以dbf格式保存它们。

以上所有方法都是直观的,应该易于使用。

我将使用列出的转换方法之一。我将使用最后一个,因为Neuropro是一个免费的程序,而免费Calc背后的想法最接近它。您可以从官方网站下载OpenOffice-https://www.openoffice.org/。

转换过程。

  1. 打开Calc。用csv扩展名打开我们的数据文件。
  2. Calc将启动数据识别向导。
  3. 在向导中指定参数,字段之间用逗号分隔。

这里的另一个重要点是整数和数字的十进制分隔符。根据我电脑上的配置(“开始”&gt;“控制板”&gt;“语言和区域标准”),点用作分隔符。我们也在csv文件中使用点。为了使Calc正确读取数字,还必须指定分隔符。这可以通过在转换向导的设置中选择所需的语言来完成。选择英语的变体之一,因为点是其中的标准分隔符。

正确的向导设置将显示在屏幕截图中:

&nbsp;

传说。2。从csv文件
导入向导的设置

提示:跳过每个csv文件转换的语言选择。它可以设置为Calc设置中的默认语言:菜单“工具”&gt;“选项”,然后是屏幕截图中绿色突出显示的部分:

传说。三。计算中的位置设置

4)因此,csv文件已上传,数据自动填入列:

传说。4。成功打开csv文件

5)为确保数据以DBF格式正确写入,还应指定数据的类型和准确性。

为此,屏幕截图中的所有数值列都以绿色突出显示,并分配相应的属性:

&nbsp;

图形图例。5。设置数值列

6)保存dbf:菜单“文件”&gt;“另存为”。在对话框窗口中,选择文件类型“dbase(*”。DBF“:”

传说。6。用于以dbf格式保存文件的对话框

然后按保存。

7)Calc将询问并确认所选格式:

传说。7。calc建议用标准的odf格式替换dbf以保存文件。

要确认我们的选择,只需按保留当前格式按钮。

8)calc询问在dbf文件中使用什么编码保存文本数据。由于在我们的示例中没有这样的数据,并且神经网络在任何情况下都不可能使用文本数据,因此您可以随意指定:

传说。8。为文档文本选择编码

现在我们有了神经网络所需的DBF扩展,其中包含来自元交易者的数据。

如何在Neuropro中创建和训练神经网络

1)打开Neuropro。

2)创建项目:菜单“文件”&gt;“创建”:

传说。9。已创建空项目

3)按项目窗口中的“打开数据文件”按钮,在出现的对话框中打开DBF文件:

关于 NeuroPro0

传说。10。打开DBF文件
以获取进一步的神经网络

4)在项目窗口中单击“新建网络”。在打开的窗口中有两列。我们需要先填写“输入和输出”列。

在“bar_uuuuuuuuuu”字段中,将其指定为网络的输出神经元。其余字段“bar_uuu n_uuu”将指定为输入:

关于 NeuroPro1

插图。11。神经网络的输入和输出配置-

我们还可以指定输出神经元所需的精度。在外汇交易中,这是一个点,在我们的例子中是0.0001。

5)现在我们转到“网络结构”列。这里是中间层的数量(不包括输入和输出层)和可以为它们指定的神经元的数量。在这个特定的学习示例中,我们将创建三个层,每个层包含20个神经元:

关于 NeuroPro2

传说。12。神经网络层配置

6)按“创建”按钮,网络准备就绪:

关于 NeuroPro3

传说。13。工程中出现了一种新的神经网络。

7)进入“神经网络”菜单&gt;“测试”,查看新的未经培训的网络如何使用生成的价格预测进行复制。

测试结果表明,未经训练的神经网络预测价格具有一定的精度(误差不超过1分),小于5%。一次价格预测平均误差在10以下:

关于 NeuroPro4

传说。14。未训练神经网络
的预测精度统计

8)现在让我们根据我们的数据对网络进行培训。

再次进入项目窗口,按菜单上的“神经网络”&gt;“培训”。将出现学习进度指示器。等待进程结束:

关于 NeuroPro5

传说。15。神经网络学习进度指标

9)返回项目窗口,输入“神经网络”&gt;“测试”。

网络有了明显的改善:其价格预测准确率为16%,平均预测误差为4分:

关于 NeuroPro6

传说。16。神经网络预测精度统计训练

互联网已经学到了一些东西。我们把它转移到元交易员那里。

如何将神经网络从Neuropro转移到MetaTrader 5

Neuropro对MetaTrader 5一无所知,无法将神经网络直接传送给它。我开发了一种将神经网络转换为MQL5代码片段的半自动方法。

与许多其他神经网络程序不同,Neuropro可以文本形式显示神经网络结构。它是一组公式,按顺序描述从输入到离开网络的所有数据转换。公式包括每一层、每一个神经元和每一个替换(训练)的连接权重。

要查看它,请转到“神经网络”&gt;“语言表达式”菜单。在我们的例子中,公式如下:

关于 NeuroPro7

传说。17。训练神经网络的运算公式

事实上,这组公式可以看作是用抽象编程语言编写的程序的源代码。我们需要做的就是修改代码,使其语法与MQL5匹配。这些更改可以在任何文本编辑器中进行。为了部分自动化这个过程,我建议使用能够执行大规模短语替换的编辑器。它可以通过以下方式完成:Word,它是平板电脑的免费版本(来自OpenOffice套件)、Excel、Calc和Windows中的记事本。

我相信您可以自己将这些公式重写为mql5代码,但是我可以分享一些我的经验来优化流程,并且您可以更快地完成这项工作。

在我的示例中,我将在Windows7中使用记事本。

1)所以我们有一个开放的项目和一个训练过的神经网络。我们转到“神经网络”的“语言表达式”,然后打开“公式”窗口(参见上面的屏幕截图)。

2)保存此窗口的内容:菜单“文件”&gt;“另存为”。

3)现在,用记事本打开文件。

4)调用语句替换功能:菜单“编辑”&gt;“替换”。

替换列表已完成:

&nbsp;替换内容 换成
一种 [ 三下划线
双下划线
—— —— 两个减号(公式中的减号)用空格分隔,因为在MQL中,双减号(如C等其他语言中)具有双重含义,这可能导致编译错误。
乙状结肠 乙状结肠 将函数名转换为拉丁文(提醒您,程序是俄文的)。尽管没有必要,因为元编辑器也支持cyril)
综合征 综合征 翻译变量的名称是拉丁文(同样,这并不重要,因为metaeditor也支持cyril)

关于 NeuroPro8

传说。18。用方括号替换三个下划线

使用“全部替换”按钮执行替换。

现在您应该明白,我将价格字段命名为“bar_uuu n_uuu”,以便用方括号快速替换下划线,也就是说,所有网络输入都表示为数组。

这使得声明一个数组并用价格序列数据填充它比用一些独立的变量数字更容易。

5)如前所述,所有输入和输出枚举必须更改为数组声明:

之后
数据基本字段(初始特征):bar[1]bar[2]bar[3]bar[4]bar[5]bar[6;巴[7]巴[8]巴[9]巴[10]巴[11]巴[12]巴[13];[15]巴[16]巴[17]巴[18]巴[19]巴[20]巴[21]&N巴[22]巴[23]巴[24]巴 双杠[25];

6)神经元的激活功能必须像mql5的程序功能一样:

之后
乙状结肠1(a)=a/(0.1+a)乙状结肠2(a)=a/(0.1+a)乙状结肠3(a)=a/(0.1+a) 双乙状结肠1(双A)返回A/(0.1+Mathabs(A);双乙状结肠2(双A)返回A/(0.1+Mathabs(A);双乙状结肠3(双A)返回A/(0.1+Mathabs(A);

7)根据mql5规则,分号必须放在所有公式的末尾,注释必须正确写入(或删除),所有初始化变量必须添加类型声明。

在我们的示例中,类型不是仅由中间层中的神经元的名称声明的。我们不再手工输入“double”60次,而是再次使用大量的文本替换。我们需要强调神经元名称的开始(在字符串还应该被突出之前的空白),因为这里不需要插入“double”一词:

关于 NeuroPro9

传说。19。突出显示要替换的文本

复制文本的突出显示部分,并将其插入“文本替换”对话框。用相同的单词“double”添加:

0

传说。20。将类型名添加到变量名

别忘了按“全部替换”按钮。

8)Neuropro有一个小问题。如果在神经网络中输入常量,则此输入的规范化公式将包含根据文本格式划分零的内容。在我们的示例中,“bar_u1_uu”就是这样的输入。它始终为零,因为它是列规范化的参考点。

理想情况下,“bar_u1_uuu”不能用作神经网络的输入,因为输入常数毕竟不能影响预测。但是,如果输入该值,则必须调整Neuropro生成的公式。为了避免来自编译器的错误消息,“bar_uuu 1_uu”必须替换为在此处永久输入值。在我们的示例中,它是零:

之后
巴[1]=(巴[1]-0)/0; 棒〔1〕=0;

9)还有一个不明显的问题(Neuropro开发人员没有考虑神经网络的文本描述将用于程序代码,因此他们没有仔细检查它)。

在结束前的最终公式中还有一个附加的右括号。这个错误很小,但它会混淆元编辑器编译器。它不指向字符串中的额外括号,但不从程序的其他部分获取括号。记住这一点,这样当你遇到它时你就可以纠正它。

之后
巴[0]=((巴[0]*0.01800000001564622)+0.0005999912083149)/2); 巴[0]=((巴[0]*0.01800000001564622)+0.0005999912083149)/2;

如果经常练习,本节中描述的操作只需几分钟。不需要记住名单上的字母。稍后,当metaeditor编译时,会提示指向错误代码部分的错误。

最后,在将所有公式转换为MQL5格式之后,我们需要做的就是将生成的代码从记事本移动到元编辑器,并添加所需的其余EA代码。当然,如果你经常使用Neuropro来创建神经网络,那么这个步骤很容易。您可以简单地用笔记本中的新MQL5代码替换现有EA中以前的神经网络。从字面上看,只需要一分钟。

EA的最终代码完全可以在MetaTrader 5中使用(您也可以从此应用程序下载此代码):

input double    Lots = 0.1;        // 交易量
input double    MinPrognosis = 0;  // 预测比当下更有利可图开单
//+------------------------------------------------------------------+
const int inputlen=24; // 交易策略分析以往柱线的数量
//+------------------------------------------------------------------+
double Sigmoid1(double A)
  {
   return A/(0.1 + MathAbs(A));
  }
//+------------------------------------------------------------------+
double Sigmoid2(double A)
  {
   return A/(0.1 + MathAbs(A));
  }
//+------------------------------------------------------------------+
double Sigmoid3(double A)
  {
   return A/(0.1 + MathAbs(A));
  }
//+------------------------------------------------------------------+
double CalcNeuroNet()
  {
//--- 得到用于神经网络的报价
   MqlRates rates[],rate;
   CopyRates(Symbol(),Period(),0,inputlen+1,rates);
   ArraySetAsSeries(rates,true);

//--- 神经网络输入
   double BAR[512]; // 512 - DBF 格式的最大许可字段数量

//--- 填充神经网络输入数据的数组
//--- 第一根柱线收盘价作为其它柱线归一化的零级
   double zlevel=rates[1].close; 

   for(int bar=0; bar<=inputlen; bar++)
     {
      rate=rates[bar];
      BAR[bar]=rate.close-zlevel;
     }

//==============================================
// 利用 NeuroPro 公式计算神经网络
//==============================================

//--- 准备用于训练网络的输入字段数据:
   BAR[1]=0;//(BAR[1]-0)/0;
   BAR[2]=(BAR[2]- -0.0003)/0.009;
   BAR[3]=(BAR[3]-4.999992E-5)/0.01045;
   BAR[4]=(BAR[4]-0.0011)/0.011;
   BAR[5]=(BAR[5]-0.00285)/0.01335;
   BAR[6]=(BAR[6]-0.004050001)/0.01625;
   BAR[7]=(BAR[7]-0.00495)/0.01695;
   BAR[8]=(BAR[8]-0.0049)/0.0172;
   BAR[9]=(BAR[9]-0.0046)/0.0171;
   BAR[10]=(BAR[10]-0.00395)/0.01755;
   BAR[11]=(BAR[11]-0.0037)/0.0184;
   BAR[12]=(BAR[12]-0.0034)/0.0188;
   BAR[13]=(BAR[13]-0.0029)/0.0194;
   BAR[14]=(BAR[14]-0.002499999)/0.0196;
   BAR[15]=(BAR[15]-0.00245)/0.01935;
   BAR[16]=(BAR[16]-0.00275)/0.01925;
   BAR[17]=(BAR[17]-0.0028)/0.0194;
   BAR[18]=(BAR[18]-0.002950001)/0.01965;
   BAR[19]=(BAR[19]-0.002649999)/0.01965;
   BAR[20]=(BAR[20]-0.002699999)/0.0197;
   BAR[21]=(BAR[21]-0.00275)/0.01945;
   BAR[22]=(BAR[22]-0.00225)/0.01955;
   BAR[23]=(BAR[23]-0.0019)/0.0195;
   BAR[24]=(BAR[24]-0.00225)/0.01935;

//--- 第一级征候:
   double Syndrome1_1=Sigmoid1( 0.07165167*BAR[1]-0.08914512*BAR[2]+0.160242*BAR[3]-0.1136391*BAR[4]+0.01358515*BAR[5]+0.3755009*BAR[6]-0.1433693*BAR[7]+0.224411*BAR[8]+0.03298632*BAR[9]-0.2551045*BAR[10]-0.1418581*BAR[11]+0.007130164*BAR[12]-0.08727393*BAR[13]-0.2567087*BAR[14]+0.1118081*BAR[15]+0.73848*BAR[16]+0.05880548*BAR[17]-0.1544689*BAR[18]+0.192913*BAR[19]-0.1743894*BAR[20]-0.2184512*BAR[21]-0.2290305*BAR[22]+0.3946579*BAR[23]-0.02947071*BAR[24]-0.08091708 );
   double Syndrome1_2=Sigmoid1( -0.08248464*BAR[1]+0.3076621*BAR[2]-0.0500868*BAR[3]-0.6526818*BAR[4]+0.04266862*BAR[5]+0.581119*BAR[6]-0.0356447*BAR[7]+0.0292943*BAR[8]-0.3660156*BAR[9]-0.3244759*BAR[10]+0.05519342*BAR[11]+0.2419113*BAR[12]-0.2178954*BAR[13]+0.4037299*BAR[14]-0.1593139*BAR[15]+0.3567515*BAR[16]+0.08094382*BAR[17]-0.01788837*BAR[18]-0.379636*BAR[19]+0.6658992*BAR[20]-0.1899142*BAR[21]+0.02259956*BAR[22]+0.767949*BAR[23]-0.5380562*BAR[24]-0.06307755 );
   double Syndrome1_3=Sigmoid1( -0.08426282*BAR[1]-0.172721*BAR[2]+0.1749717*BAR[3]-0.07916483*BAR[4]-0.0523758*BAR[5]+0.1935233*BAR[6]+0.01627235*BAR[7]+0.1254414*BAR[8]-0.1101555*BAR[9]-0.02285305*BAR[10]-0.14389*BAR[11]+0.1788775*BAR[12]-0.007144043*BAR[13]+0.1925385*BAR[14]-0.08001231*BAR[15]-0.2021703*BAR[16]+0.08694438*BAR[17]+0.3090158*BAR[18]-0.3330302*BAR[19]+0.2519112*BAR[20]-0.2170611*BAR[21]-0.2216277*BAR[22]+0.09618518*BAR[23]+0.049888*BAR[24]-0.06465426 );
   double Syndrome1_4=Sigmoid1( 0.02806905*BAR[1]+0.07787746*BAR[2]+0.1972721*BAR[3]-0.247464*BAR[4]-0.008635854*BAR[5]-0.1975036*BAR[6]-0.0652089*BAR[7]-0.1276176*BAR[8]-0.3386112*BAR[9]-0.103951*BAR[10]+0.08352495*BAR[11]-0.1821419*BAR[12]-0.05604611*BAR[13]-0.05922695*BAR[14]-0.1670811*BAR[15]+0.002476109*BAR[16]-0.03657883*BAR[17]-0.09295338*BAR[18]+0.2500353*BAR[19]-0.03980102*BAR[20]+0.1059941*BAR[21]-0.4037244*BAR[22]-0.08735184*BAR[23]+0.1546644*BAR[24]+0.1966186 );
   double Syndrome1_5=Sigmoid1( 0.03832016*BAR[1]-0.09065858*BAR[2]+0.2356484*BAR[3]-0.2436682*BAR[4]+0.09812659*BAR[5]+0.09220826*BAR[6]+0.434221*BAR[7]-0.005478878*BAR[8]-0.1657191*BAR[9]-0.2605299*BAR[10]+0.3523667*BAR[11]+0.3595579*BAR[12]+0.3402678*BAR[13]-0.3346431*BAR[14]+0.1215327*BAR[15]-0.1869196*BAR[16]+0.07256371*BAR[17]-0.09229603*BAR[18]-0.09961994*BAR[19]+0.2491707*BAR[20]+0.3703756*BAR[21]+0.1369175*BAR[22]+0.0560869*BAR[23]-0.007567503*BAR[24]-0.01722363 );
   double Syndrome1_6=Sigmoid1( -0.06897662*BAR[1]-0.4182717*BAR[2]+0.200378*BAR[3]-0.4152234*BAR[4]-0.2081593*BAR[5]+0.3120443*BAR[6]-0.1582431*BAR[7]+0.1900958*BAR[8]+0.002503331*BAR[9]+0.02297609*BAR[10]+0.03145982*BAR[11]+0.1816629*BAR[12]+0.1854629*BAR[13]-0.1660063*BAR[14]+0.3112128*BAR[15]-0.4799304*BAR[16]-0.100519*BAR[17]-0.1523588*BAR[18]+0.07141552*BAR[19]+0.2336634*BAR[20]+0.01279082*BAR[21]-0.2179644*BAR[22]+0.4898897*BAR[23]-0.1818153*BAR[24]-0.1783737 );
   double Syndrome1_7=Sigmoid1( -0.003986856*BAR[1]-0.3409385*BAR[2]-0.3122248*BAR[3]+0.5656545*BAR[4]+0.07564658*BAR[5]+0.07956024*BAR[6]+0.1820322*BAR[7]-0.05595554*BAR[8]+0.1027963*BAR[9]+0.2596273*BAR[10]+0.1156801*BAR[11]+0.04490443*BAR[12]+0.1426405*BAR[13]+0.06763341*BAR[14]-0.03249188*BAR[15]-0.1912978*BAR[16]-0.2003477*BAR[17]-0.2413947*BAR[18]+0.3188735*BAR[19]-0.2899658*BAR[20]+0.06846272*BAR[21]+0.08726751*BAR[22]-0.2134383*BAR[23]-0.436768*BAR[24]+0.08075105 );
   double Syndrome1_8=Sigmoid1( 0.05597013*BAR[1]+0.3358757*BAR[2]+0.1041476*BAR[3]-0.334706*BAR[4]-0.07069201*BAR[5]+0.06152828*BAR[6]+0.1577689*BAR[7]+0.1737777*BAR[8]-0.7711719*BAR[9]-0.2970988*BAR[10]+0.06691784*BAR[11]+0.0528774*BAR[12]+0.06260363*BAR[13]+0.2449201*BAR[14]-0.3098814*BAR[15]+0.06859511*BAR[16]+0.1355444*BAR[17]-0.15844*BAR[18]+0.2791151*BAR[19]-0.412524*BAR[20]+0.228981*BAR[21]-0.4042732*BAR[22]+0.197847*BAR[23]+0.477078*BAR[24]-0.2478239 );
   double Syndrome1_9=Sigmoid1( 0.02181781*BAR[1]-0.1042198*BAR[2]-0.02412975*BAR[3]+0.1485616*BAR[4]+0.07645424*BAR[5]-0.02779776*BAR[6]-0.1519209*BAR[7]-0.1878287*BAR[8]+0.1637603*BAR[9]+0.248636*BAR[10]+0.2032469*BAR[11]-0.03869069*BAR[12]+0.02014448*BAR[13]-0.2079489*BAR[14]+0.08846121*BAR[15]+0.1025348*BAR[16]+0.01593455*BAR[17]-0.4964754*BAR[18]+0.1635097*BAR[19]-0.04561989*BAR[20]-0.0662128*BAR[21]-0.2423395*BAR[22]+0.2898602*BAR[23]+0.03824728*BAR[24]-0.07471437 );
   double Syndrome1_10=Sigmoid1( -0.02918137*BAR[1]+0.06085975*BAR[2]-0.3056079*BAR[3]-0.5144019*BAR[4]-0.1966296*BAR[5]+0.04413594*BAR[6]+0.03249943*BAR[7]+0.08405613*BAR[8]-0.08797813*BAR[9]+0.06621616*BAR[10]-0.2226632*BAR[11]-0.1000158*BAR[12]+0.0106046*BAR[13]-0.1383344*BAR[14]+0.05141285*BAR[15]-0.1009147*BAR[16]-0.1503479*BAR[17]+0.2877283*BAR[18]-0.2209365*BAR[19]+0.1310906*BAR[20]-0.1188305*BAR[21]-0.002668453*BAR[22]+0.1106755*BAR[23]+0.3884961*BAR[24]+0.0006983803 );
   double Syndrome1_11=Sigmoid1( -0.04872056*BAR[1]-0.5066758*BAR[2]+0.08158222*BAR[3]+0.2647052*BAR[4]+0.3632542*BAR[5]+0.4538754*BAR[6]-0.1346472*BAR[7]+0.16742*BAR[8]+0.2974689*BAR[9]+0.3446769*BAR[10]-0.2784187*BAR[11]+0.2461497*BAR[12]-0.166853*BAR[13]-0.4296628*BAR[14]+0.7343794*BAR[15]+0.2154892*BAR[16]-0.4086125*BAR[17]-0.6446049*BAR[18]-0.5614476*BAR[19]-0.593914*BAR[20]+0.5039462*BAR[21]+0.113933*BAR[22]+0.3599374*BAR[23]-0.5517*BAR[24]+0.1249064 );
   double Syndrome1_12=Sigmoid1( -0.09035824*BAR[1]-0.2619464*BAR[2]+0.5151641*BAR[3]+0.08415102*BAR[4]+0.007849894*BAR[5]-0.3585253*BAR[6]-0.3458216*BAR[7]-0.006490127*BAR[8]+0.1933572*BAR[9]+0.1655464*BAR[10]-0.2591909*BAR[11]+0.2810482*BAR[12]-0.3552095*BAR[13]+0.1032239*BAR[14]-0.2380441*BAR[15]-0.6082169*BAR[16]-0.3652177*BAR[17]+0.4065064*BAR[18]-0.1538232*BAR[19]-0.03332642*BAR[20]+0.06235149*BAR[21]-0.08935639*BAR[22]-0.2274701*BAR[23]+0.2350571*BAR[24]-0.1009272 );
   double Syndrome1_13=Sigmoid1( -0.05370994*BAR[1]+0.2999545*BAR[2]-0.2855853*BAR[3]+0.1123754*BAR[4]+0.2561198*BAR[5]-0.2846766*BAR[6]+0.008345681*BAR[7]+0.1896221*BAR[8]-0.1973753*BAR[9]+0.3510076*BAR[10]+0.4492245*BAR[11]-0.09004608*BAR[12]+0.002758034*BAR[13]+0.03157447*BAR[14]+0.02175433*BAR[15]-0.399723*BAR[16]-0.2736914*BAR[17]+0.1198452*BAR[18]+0.2808644*BAR[19]-0.06968442*BAR[20]-0.5771574*BAR[21]+0.3748633*BAR[22]-0.2721373*BAR[23]-0.2329663*BAR[24]+0.07683773 );
   double Syndrome1_14=Sigmoid1( 0.094418*BAR[1]+0.2155959*BAR[2]-0.4787674*BAR[3]+0.3605456*BAR[4]+0.06799955*BAR[5]+0.607367*BAR[6]-0.3518007*BAR[7]+0.1633829*BAR[8]+0.3040094*BAR[9]+0.3707297*BAR[10]+0.02556368*BAR[11]-0.0885786*BAR[12]-0.3713907*BAR[13]-0.2014098*BAR[14]-0.289242*BAR[15]-0.09950806*BAR[16]-0.5361071*BAR[17]+0.4154459*BAR[18]+0.02827369*BAR[19]-0.04972957*BAR[20]-0.1700879*BAR[21]+0.2973098*BAR[22]-0.2097459*BAR[23]-0.0422597*BAR[24]+0.2318914 );
   double Syndrome1_15=Sigmoid1( 0.02161242*BAR[1]+0.5484816*BAR[2]+0.002152426*BAR[3]-0.3017516*BAR[4]+0.02010602*BAR[5]-0.8008425*BAR[6]-0.2985114*BAR[7]+0.5151479*BAR[8]+0.1572166*BAR[9]-0.04494689*BAR[10]+0.2529401*BAR[11]-0.02046412*BAR[12]-0.05892481*BAR[13]-0.1359019*BAR[14]-0.2005993*BAR[15]+0.03077302*BAR[16]+0.745619*BAR[17]-0.4197147*BAR[18]-0.1354882*BAR[19]-0.6034228*BAR[20]-0.04950687*BAR[21]-0.1093793*BAR[22]-0.46851*BAR[23]+0.2340346*BAR[24]-0.1910115 );
   double Syndrome1_16=Sigmoid1( 0.06201033*BAR[1]+0.2311719*BAR[2]-0.6587076*BAR[3]-0.1937433*BAR[4]-0.3063492*BAR[5]+0.0458253*BAR[6]+0.2621455*BAR[7]-0.3292437*BAR[8]-0.07124191*BAR[9]+0.03962434*BAR[10]-0.03539502*BAR[11]+0.1602975*BAR[12]+0.1252141*BAR[13]-0.1939677*BAR[14]-0.3524359*BAR[15]-0.02675135*BAR[16]-0.1550312*BAR[17]+0.2015329*BAR[18]-0.1383009*BAR[19]+0.3079963*BAR[20]+0.06971535*BAR[21]-0.2415089*BAR[22]-0.03791533*BAR[23]+0.01494107*BAR[24]+0.01395546 );
   double Syndrome1_17=Sigmoid1( -0.03211073*BAR[1]-0.2057187*BAR[2]-0.2208917*BAR[3]+0.1034868*BAR[4]+0.003785761*BAR[5]-0.1510143*BAR[6]-0.04637882*BAR[7]-0.01963908*BAR[8]-0.3622932*BAR[9]+0.03135398*BAR[10]-0.1296021*BAR[11]-0.2571803*BAR[12]+0.02485986*BAR[13]-0.05831699*BAR[14]+0.2441404*BAR[15]+0.4313999*BAR[16]-0.05117986*BAR[17]-0.06832605*BAR[18]-0.01433043*BAR[19]-0.3331767*BAR[20]-0.09270683*BAR[21]+0.1077102*BAR[22]+0.0517161*BAR[23]+0.1463209*BAR[24]+0.08033083 );
   double Syndrome1_18=Sigmoid1( -0.01044874*BAR[1]+0.8255618*BAR[2]-0.3581862*BAR[3]+0.2379437*BAR[4]-0.05247816*BAR[5]+0.3858318*BAR[6]-0.04216846*BAR[7]+0.2305764*BAR[8]-0.2754549*BAR[9]+0.1255125*BAR[10]-0.1954638*BAR[11]+0.04934186*BAR[12]-0.08713531*BAR[13]+0.08193728*BAR[14]-0.01578137*BAR[15]+0.04301662*BAR[16]-0.01941852*BAR[17]+0.0321704*BAR[18]-0.4490997*BAR[19]-0.2165072*BAR[20]+0.5094138*BAR[21]-0.08077756*BAR[22]-0.1167052*BAR[23]+0.008337143*BAR[24]-0.1847742 );
   double Syndrome1_19=Sigmoid1( 0.07863438*BAR[1]+0.6541001*BAR[2]-0.0287532*BAR[3]-0.07992863*BAR[4]-0.1936443*BAR[5]+0.2021953*BAR[6]+0.5814793*BAR[7]+0.1076662*BAR[8]-0.2505759*BAR[9]-0.1958519*BAR[10]+0.2982949*BAR[11]-0.130183*BAR[12]-0.2418064*BAR[13]-0.03213368*BAR[14]-0.1050228*BAR[15]-0.04116086*BAR[16]+0.1059578*BAR[17]-0.09407587*BAR[18]+0.2511382*BAR[19]+0.03090675*BAR[20]-0.2050715*BAR[21]+0.07968493*BAR[22]-0.1085312*BAR[23]-0.3073632*BAR[24]+0.1479857 );
   double Syndrome1_20=Sigmoid1( 0.01779699*BAR[1]+0.1517631*BAR[2]+0.1832252*BAR[3]+0.4329565*BAR[4]-0.1528609*BAR[5]-0.2424133*BAR[6]+0.1942621*BAR[7]+0.1390828*BAR[8]-0.3387062*BAR[9]+0.3891163*BAR[10]+0.3485644*BAR[11]+0.06489421*BAR[12]-0.01458877*BAR[13]-0.1127466*BAR[14]+0.1122861*BAR[15]-0.1973242*BAR[16]+0.4340822*BAR[17]-0.633949*BAR[18]+0.1276167*BAR[19]+0.2476585*BAR[20]-0.4445719*BAR[21]+0.6248969*BAR[22]-0.2169943*BAR[23]-0.501359*BAR[24]-0.1358235 );

//--- 第二级征候:
   double Syndrome2_1=Sigmoid2( 0.2332734*Syndrome1_1-0.2002641*Syndrome1_2-0.03174414*Syndrome1_3-0.3868614*Syndrome1_4-0.1933812*Syndrome1_5-0.2366997*Syndrome1_6+0.3920829*Syndrome1_7+0.1015497*Syndrome1_8-0.1333193*Syndrome1_9+0.05584235*Syndrome1_10-0.2983295*Syndrome1_11+0.1034668*Syndrome1_12-0.4040487*Syndrome1_13-0.2103508*Syndrome1_14-0.2480657*Syndrome1_15-0.1906435*Syndrome1_16+0.2692898*Syndrome1_17+0.2760854*Syndrome1_18-0.1738693*Syndrome1_19-0.1861307*Syndrome1_20-0.07152162 );
   double Syndrome2_2=Sigmoid2( -0.1242675*Syndrome1_1+0.05587832*Syndrome1_2+0.1567961*Syndrome1_3+0.1077346*Syndrome1_4-0.2112047*Syndrome1_5+0.04008683*Syndrome1_6-0.1716478*Syndrome1_7+0.3083204*Syndrome1_8-0.1864694*Syndrome1_9+0.08867304*Syndrome1_10-0.06801239*Syndrome1_11-0.1810985*Syndrome1_12-0.05133555*Syndrome1_13+0.2981661*Syndrome1_14-0.01543425*Syndrome1_15-0.1859617*Syndrome1_16+0.027973*Syndrome1_17-0.1715439*Syndrome1_18-0.1249511*Syndrome1_19+0.5925598*Syndrome1_20-0.279602 );
   double Syndrome2_3=Sigmoid2( -0.4745722*Syndrome1_1-0.1248492*Syndrome1_2-0.1128288*Syndrome1_3+0.1485692*Syndrome1_4-0.3948999*Syndrome1_5+0.2633227*Syndrome1_6-0.2046695*Syndrome1_7-0.03632757*Syndrome1_8+0.259578*Syndrome1_9-0.07442582*Syndrome1_10+0.06552354*Syndrome1_11-0.2452848*Syndrome1_12-0.1599011*Syndrome1_13+0.1749917*Syndrome1_14-0.07113215*Syndrome1_15-0.1524421*Syndrome1_16+0.3606906*Syndrome1_17+0.3524929*Syndrome1_18+0.1315838*Syndrome1_19+0.1981817*Syndrome1_20+0.0126604 );
   double Syndrome2_4=Sigmoid2( -0.3605324*Syndrome1_1+0.2803221*Syndrome1_2+0.07412126*Syndrome1_3+0.2101911*Syndrome1_4-0.1933928*Syndrome1_5-0.2068641*Syndrome1_6+0.1302721*Syndrome1_7+0.04962961*Syndrome1_8+0.2879501*Syndrome1_9-0.04214102*Syndrome1_10-0.02194729*Syndrome1_11-0.0501424*Syndrome1_12+0.007969459*Syndrome1_13+0.1151657*Syndrome1_14+0.04063402*Syndrome1_15+0.1461606*Syndrome1_16-0.07482237*Syndrome1_17-0.3319329*Syndrome1_18+0.2494595*Syndrome1_19-0.09345333*Syndrome1_20-0.1831799 );
   double Syndrome2_5=Sigmoid2( -0.03081687*Syndrome1_1-0.419345*Syndrome1_2-0.01301429*Syndrome1_3+0.008855551*Syndrome1_4+0.2869771*Syndrome1_5+0.06881366*Syndrome1_6-0.1612982*Syndrome1_7-0.491662*Syndrome1_8+0.04266098*Syndrome1_9-0.7546657*Syndrome1_10+0.0472151*Syndrome1_11-0.5099863*Syndrome1_12+0.1196823*Syndrome1_13+0.2611973*Syndrome1_14-0.0241531*Syndrome1_15-0.5843646*Syndrome1_16+0.08374172*Syndrome1_17+0.041931*Syndrome1_18-0.181801*Syndrome1_19+0.6314354*Syndrome1_20+0.2967799 );
   double Syndrome2_6=Sigmoid2( 0.2783457*Syndrome1_1+0.05858535*Syndrome1_2+0.03348543*Syndrome1_3-0.09202126*Syndrome1_4+0.09466362*Syndrome1_5-0.01946918*Syndrome1_6-0.008507644*Syndrome1_7+0.1967683*Syndrome1_8-0.1593684*Syndrome1_9+0.2202749*Syndrome1_10-0.2754305*Syndrome1_11-0.08108314*Syndrome1_12+0.1606592*Syndrome1_13+0.03723634*Syndrome1_14+0.3494412*Syndrome1_15-0.139782*Syndrome1_16+0.03641316*Syndrome1_17-0.1216527*Syndrome1_18-0.2194063*Syndrome1_19+0.3015033*Syndrome1_20-0.1307777 );
   double Syndrome2_7=Sigmoid2( -0.1451617*Syndrome1_1-0.1851998*Syndrome1_2-0.2149245*Syndrome1_3-0.05804037*Syndrome1_4-0.03970402*Syndrome1_5+2.506166E-6*Syndrome1_6+0.223578*Syndrome1_7-0.1718342*Syndrome1_8+0.001228896*Syndrome1_9-0.03911417*Syndrome1_10+0.3167912*Syndrome1_11+0.2213001*Syndrome1_12-0.3518667*Syndrome1_13-0.6146168*Syndrome1_14-0.1061097*Syndrome1_15-0.3044312*Syndrome1_16-0.04269538*Syndrome1_17-0.1753355*Syndrome1_18+0.1989161*Syndrome1_19-0.3667244*Syndrome1_20+0.2514035 );
   double Syndrome2_8=Sigmoid2( -0.1430153*Syndrome1_1-Syndrome1_2+0.02704678*Syndrome1_3+0.09941091*Syndrome1_4+0.07057924*Syndrome1_5-0.3370984*Syndrome1_6+0.1565579*Syndrome1_7-0.6226992*Syndrome1_8-0.4750121*Syndrome1_9+0.0914355*Syndrome1_10+0.7518402*Syndrome1_11-0.3350138*Syndrome1_12-0.3099903*Syndrome1_13+0.01266479*Syndrome1_14-0.7965527*Syndrome1_15-0.1753905*Syndrome1_16-0.1435609*Syndrome1_17+0.1683903*Syndrome1_18+0.1800467*Syndrome1_19+0.02699256*Syndrome1_20+0.3138063 );
   double Syndrome2_9=Sigmoid2( -0.2611458*Syndrome1_1-0.03994129*Syndrome1_2-0.2299157*Syndrome1_3+0.3549923*Syndrome1_4-0.001759748*Syndrome1_5-0.1117837*Syndrome1_6+0.03037107*Syndrome1_7+0.2023677*Syndrome1_8+0.2628252*Syndrome1_9+0.09683131*Syndrome1_10+0.2576693*Syndrome1_11-0.06357097*Syndrome1_12-0.2162403*Syndrome1_13-0.2190126*Syndrome1_14-0.1675369*Syndrome1_15-0.2458067*Syndrome1_16-0.06660707*Syndrome1_17-0.2096998*Syndrome1_18+0.2432118*Syndrome1_19+0.06210691*Syndrome1_20+0.1555794 );
   double Syndrome2_10=Sigmoid2( 0.1120118*Syndrome1_1-0.09789048*Syndrome1_2-0.1146162*Syndrome1_3-0.02268722*Syndrome1_4-0.4754501*Syndrome1_5+0.1567527*Syndrome1_6+0.4281512*Syndrome1_7+0.1428995*Syndrome1_8+0.4317052*Syndrome1_9-0.1987304*Syndrome1_10-0.3471439*Syndrome1_11-0.2485701*Syndrome1_12+0.2200699*Syndrome1_13-0.1804247*Syndrome1_14+0.5553524*Syndrome1_15+0.004284344*Syndrome1_16-0.5408193*Syndrome1_17-0.2304406*Syndrome1_18+0.2462995*Syndrome1_19+0.1687378*Syndrome1_20+0.480715 );
   double Syndrome2_11=Sigmoid2( 0.2892572*Syndrome1_1+0.2819389*Syndrome1_2-0.2116477*Syndrome1_3-0.1031269*Syndrome1_4-0.2198152*Syndrome1_5-0.2882532*Syndrome1_6-0.7462316*Syndrome1_7+0.7820893*Syndrome1_8-0.05574411*Syndrome1_9-0.1144354*Syndrome1_10-0.1073154*Syndrome1_11+0.5092962*Syndrome1_12-0.07017706*Syndrome1_13-0.5550667*Syndrome1_14-0.5170746*Syndrome1_15-0.1299864*Syndrome1_16+0.03325708*Syndrome1_17-0.5107772*Syndrome1_18+0.04024922*Syndrome1_19+0.1836878*Syndrome1_20+0.0346345 );
   double Syndrome2_12=Sigmoid2( -0.10614*Syndrome1_1+0.06027444*Syndrome1_2+0.08108542*Syndrome1_3-0.1568731*Syndrome1_4+0.1509192*Syndrome1_5-0.1630516*Syndrome1_6+0.01426157*Syndrome1_7+0.02186926*Syndrome1_8+0.1099893*Syndrome1_9-0.02269597*Syndrome1_10-0.04576464*Syndrome1_11-0.161096*Syndrome1_12-0.1901706*Syndrome1_13-0.02513908*Syndrome1_14+0.1317106*Syndrome1_15-0.06866668*Syndrome1_16+0.1083753*Syndrome1_17+0.1449683*Syndrome1_18+0.006118122*Syndrome1_19+0.1255394*Syndrome1_20-0.3822223 );
   double Syndrome2_13=Sigmoid2( -0.01638931*Syndrome1_1+0.1172011*Syndrome1_2-0.1022018*Syndrome1_3+0.1098846*Syndrome1_4+0.3456185*Syndrome1_5-0.276273*Syndrome1_6-0.1697723*Syndrome1_7-0.1394644*Syndrome1_8+0.0530486*Syndrome1_9+0.04139024*Syndrome1_10-0.02131393*Syndrome1_11+0.1144992*Syndrome1_12-0.1791101*Syndrome1_13+0.124498*Syndrome1_14+0.2169005*Syndrome1_15+0.06764794*Syndrome1_16+0.3542189*Syndrome1_17+0.0647957*Syndrome1_18+0.01778502*Syndrome1_19-0.0183728*Syndrome1_20-0.09863564 );
   double Syndrome2_14=Sigmoid2( 0.1046498*Syndrome1_1+0.1199886*Syndrome1_2-0.3787079*Syndrome1_3+0.568437*Syndrome1_4-0.09216721*Syndrome1_5-0.07998162*Syndrome1_6-0.1422648*Syndrome1_7-0.220407*Syndrome1_8+0.00417607*Syndrome1_9+0.2042087*Syndrome1_10+0.2614584*Syndrome1_11+0.04491196*Syndrome1_12+0.1860093*Syndrome1_13-0.1642074*Syndrome1_14+0.3918036*Syndrome1_15+0.05427575*Syndrome1_16-0.0002294437*Syndrome1_17+0.008295977*Syndrome1_18-0.2818146*Syndrome1_19-0.3877438*Syndrome1_20+0.03536745 );
   double Syndrome2_15=Sigmoid2( -0.1754033*Syndrome1_1-0.0528489*Syndrome1_2-0.1744897*Syndrome1_3+0.1113354*Syndrome1_4+0.1185713*Syndrome1_5-0.0231303*Syndrome1_6+0.006316248*Syndrome1_7-0.08525342*Syndrome1_8+0.1568578*Syndrome1_9+0.2965699*Syndrome1_10+0.2781587*Syndrome1_11+0.2391527*Syndrome1_12-0.08555941*Syndrome1_13-0.2362186*Syndrome1_14+0.1128907*Syndrome1_15-0.04770778*Syndrome1_16-0.0139725*Syndrome1_17+0.1079882*Syndrome1_18-0.09141354*Syndrome1_19+0.3320866*Syndrome1_20-0.3015116 );
   double Syndrome2_16=Sigmoid2( 0.1962015*Syndrome1_1+0.0192374*Syndrome1_2-0.1578716*Syndrome1_3+0.03360523*Syndrome1_4+0.04818176*Syndrome1_5+0.2462966*Syndrome1_6-0.2103649*Syndrome1_7+0.01318523*Syndrome1_8-0.09349868*Syndrome1_9+0.08476428*Syndrome1_10-0.06272572*Syndrome1_11+0.2246324*Syndrome1_12+0.2539908*Syndrome1_13-0.2059217*Syndrome1_14-0.08641216*Syndrome1_15-0.09780023*Syndrome1_16+0.0005770256*Syndrome1_17-0.2842666*Syndrome1_18-0.05383059*Syndrome1_19-0.2822465*Syndrome1_20+0.2277268 );
   double Syndrome2_17=Sigmoid2( 0.5981864*Syndrome1_1+0.5172131*Syndrome1_2-0.2310352*Syndrome1_3-0.1814138*Syndrome1_4-0.2148922*Syndrome1_5+0.562911*Syndrome1_6+0.5865576*Syndrome1_7-0.2790301*Syndrome1_8-0.3841165*Syndrome1_9+0.3223535*Syndrome1_10+0.2096305*Syndrome1_11+0.08284206*Syndrome1_12+0.7050048*Syndrome1_13+0.4129859*Syndrome1_14+0.2116682*Syndrome1_15+0.2213966*Syndrome1_16-0.1637594*Syndrome1_17+0.1191863*Syndrome1_18-0.6626714*Syndrome1_19-0.9127383*Syndrome1_20-0.1505798 );
   double Syndrome2_18=Sigmoid2( -0.008298698*Syndrome1_1-0.1847953*Syndrome1_2-0.1930849*Syndrome1_3-0.1005524*Syndrome1_4+0.0737519*Syndrome1_5+0.04218475*Syndrome1_6-0.422835*Syndrome1_7+0.06019862*Syndrome1_8-0.2056148*Syndrome1_9+0.3398327*Syndrome1_10-0.2526269*Syndrome1_11-0.06098709*Syndrome1_12-0.1447722*Syndrome1_13-0.05216306*Syndrome1_14-0.09496115*Syndrome1_15+0.2071376*Syndrome1_16+0.03088453*Syndrome1_17-0.521363*Syndrome1_18-0.06449924*Syndrome1_19-0.4105364*Syndrome1_20+0.3204305 );
   double Syndrome2_19=Sigmoid2( -0.1376712*Syndrome1_1-0.0153131*Syndrome1_2+0.04377801*Syndrome1_3+0.08896239*Syndrome1_4+0.03197494*Syndrome1_5-0.02259021*Syndrome1_6+0.008662836*Syndrome1_7-0.1961185*Syndrome1_8-0.0720102*Syndrome1_9+0.05738823*Syndrome1_10-0.004060962*Syndrome1_11-0.3752605*Syndrome1_12+0.02065136*Syndrome1_13+0.1263955*Syndrome1_14-0.05906902*Syndrome1_15+0.4029721*Syndrome1_16-0.159444*Syndrome1_17-0.1619136*Syndrome1_18+0.3338208*Syndrome1_19-0.0656369*Syndrome1_20+0.1602566 );
   double Syndrome2_20=Sigmoid2( -0.003900121*Syndrome1_1+0.3159288*Syndrome1_2+0.2550703*Syndrome1_3+0.05409481*Syndrome1_4+0.06660215*Syndrome1_5-0.1948439*Syndrome1_6-0.370153*Syndrome1_7+0.5337713*Syndrome1_8-0.06716464*Syndrome1_9+0.550526*Syndrome1_10+0.4723933*Syndrome1_11+0.09457724*Syndrome1_12+0.5613732*Syndrome1_13+0.3709611*Syndrome1_14-0.07680532*Syndrome1_15-0.5097623*Syndrome1_16+0.4023384*Syndrome1_17+0.2330064*Syndrome1_18-0.09448317*Syndrome1_19+0.2668969*Syndrome1_20-0.2110061 );

//--- 第三级征候:
   double Syndrome3_1=Sigmoid3( -0.05101856*Syndrome2_1-0.04933448*Syndrome2_2+0.03248681*Syndrome2_3-0.05835526*Syndrome2_4-0.01888579*Syndrome2_5-0.07940733*Syndrome2_6-0.04341835*Syndrome2_7-0.07906266*Syndrome2_8+0.2054683*Syndrome2_9+0.1553352*Syndrome2_10-0.07296721*Syndrome2_11-0.01849408*Syndrome2_12-0.07505544*Syndrome2_13+0.08666297*Syndrome2_14-0.2001411*Syndrome2_15+0.07931387*Syndrome2_16+0.1598745*Syndrome2_17+0.01308129*Syndrome2_18+0.159161*Syndrome2_19+0.1903208*Syndrome2_20+0.0190388 );
   double Syndrome3_2=Sigmoid3( 0.0643296*Syndrome2_1+0.3451192*Syndrome2_2-0.1247545*Syndrome2_3+0.03276825*Syndrome2_4+0.303136*Syndrome2_5+0.03152885*Syndrome2_6+0.1118743*Syndrome2_7-0.3860323*Syndrome2_8-0.08593427*Syndrome2_9-0.2664599*Syndrome2_10+0.213205*Syndrome2_11-0.0977626*Syndrome2_12-0.2923501*Syndrome2_13-0.3133417*Syndrome2_14-0.1915279*Syndrome2_15+0.4333939*Syndrome2_16+0.02110274*Syndrome2_17+0.5802879*Syndrome2_18+0.03386912*Syndrome2_19+0.08908307*Syndrome2_20+0.06071822 );
   double Syndrome3_3=Sigmoid3( -0.08613513*Syndrome2_1+0.1200513*Syndrome2_2+0.3818525*Syndrome2_3-0.09603316*Syndrome2_4-0.2353039*Syndrome2_5-0.1816488*Syndrome2_6+0.002517342*Syndrome2_7-0.2414117*Syndrome2_8+0.2011739*Syndrome2_9-0.3057347*Syndrome2_10-0.4593749*Syndrome2_11-0.2228307*Syndrome2_12+0.03512295*Syndrome2_13+0.4402955*Syndrome2_14-0.1967632*Syndrome2_15+0.07873345*Syndrome2_16+0.1981131*Syndrome2_17-0.2677957*Syndrome2_18+0.1719814*Syndrome2_19-0.474854*Syndrome2_20+0.01101439 );
   double Syndrome3_4=Sigmoid3( 0.02534361*Syndrome2_1+0.1845266*Syndrome2_2+0.149674*Syndrome2_3-0.1454014*Syndrome2_4+0.00701888*Syndrome2_5+0.08219463*Syndrome2_6+0.05163066*Syndrome2_7-0.1836077*Syndrome2_8+0.1429968*Syndrome2_9+0.518382*Syndrome2_10-0.00966637*Syndrome2_11-0.1674386*Syndrome2_12+0.1387497*Syndrome2_13+0.1385897*Syndrome2_14-0.01148864*Syndrome2_15+0.3751494*Syndrome2_16-0.08906862*Syndrome2_17-0.06286599*Syndrome2_18+0.2061662*Syndrome2_19-0.07524439*Syndrome2_20-0.08077133 );
   double Syndrome3_5=Sigmoid3( 0.3856083*Syndrome2_1-0.01700347*Syndrome2_2-0.1044575*Syndrome2_3+0.111998*Syndrome2_4-0.5157402*Syndrome2_5-0.05508286*Syndrome2_6-0.3101066*Syndrome2_7-0.5261913*Syndrome2_8-0.05983765*Syndrome2_9+0.1723307*Syndrome2_10-0.2564277*Syndrome2_11+0.06385356*Syndrome2_12-0.07245655*Syndrome2_13+0.1154206*Syndrome2_14-0.3492871*Syndrome2_15+0.136372*Syndrome2_16+0.3627071*Syndrome2_17-0.3074959*Syndrome2_18+0.4425845*Syndrome2_19-0.9329191*Syndrome2_20+0.01476912 );
   double Syndrome3_6=Sigmoid3( 0.5246867*Syndrome2_1-0.2347829*Syndrome2_2+0.01062111*Syndrome2_3+0.2374777*Syndrome2_4-0.02361662*Syndrome2_5+0.1804156*Syndrome2_6+0.07669501*Syndrome2_7-0.142881*Syndrome2_8+0.2566245*Syndrome2_9+0.1024709*Syndrome2_10-0.04695484*Syndrome2_11-0.004103919*Syndrome2_12+0.3340242*Syndrome2_13-0.3702791*Syndrome2_14+0.1852374*Syndrome2_15+0.02175477*Syndrome2_16+0.09901489*Syndrome2_17-0.1502062*Syndrome2_18+0.3814779*Syndrome2_19-0.06319473*Syndrome2_20+0.2657273 );
   double Syndrome3_7=Sigmoid3( 0.1613003*Syndrome2_1-0.2738772*Syndrome2_2-0.03304096*Syndrome2_3+0.3934855*Syndrome2_4+0.3955218*Syndrome2_5-0.3004892*Syndrome2_6+0.1339742*Syndrome2_7+0.09475601*Syndrome2_8+0.03064043*Syndrome2_9-0.7264652*Syndrome2_10-0.4579849*Syndrome2_11-0.1183059*Syndrome2_12+0.2197721*Syndrome2_13-0.08493897*Syndrome2_14+0.2115426*Syndrome2_15-0.07834542*Syndrome2_16-0.3884689*Syndrome2_17-0.101394*Syndrome2_18+0.1002519*Syndrome2_19-0.07787764*Syndrome2_20+0.3529212 );
   double Syndrome3_8=Sigmoid3( -0.3544801*Syndrome2_1+0.03471621*Syndrome2_2-0.2373467*Syndrome2_3-0.2836286*Syndrome2_4+0.01646966*Syndrome2_5+0.06978795*Syndrome2_6-0.03310004*Syndrome2_7+0.01844743*Syndrome2_8+0.05259214*Syndrome2_9-0.05343668*Syndrome2_10+0.3971725*Syndrome2_11-0.08770485*Syndrome2_12-0.2040168*Syndrome2_13+0.1109144*Syndrome2_14-0.06249888*Syndrome2_15-0.5860764*Syndrome2_16+0.1217078*Syndrome2_17+0.2471277*Syndrome2_18-0.03716509*Syndrome2_19-0.1908655*Syndrome2_20+0.03838157 );
   double Syndrome3_9=Sigmoid3( 0.1542789*Syndrome2_1+0.3505224*Syndrome2_2+0.06042741*Syndrome2_3+0.08956298*Syndrome2_4-0.03655836*Syndrome2_5-0.3083843*Syndrome2_6+0.2483124*Syndrome2_7-0.1132483*Syndrome2_8-0.3571556*Syndrome2_9-0.04335312*Syndrome2_10+0.005499069*Syndrome2_11+0.371572*Syndrome2_12-0.1199554*Syndrome2_13+0.1160574*Syndrome2_14-0.01656827*Syndrome2_15+0.09481092*Syndrome2_16-0.07926448*Syndrome2_17+0.3847227*Syndrome2_18+0.1039986*Syndrome2_19-0.02874756*Syndrome2_20-0.2311832 );
   double Syndrome3_10=Sigmoid3( -0.5099882*Syndrome2_1-0.2619184*Syndrome2_2+0.2441412*Syndrome2_3-0.02311796*Syndrome2_4+0.004243354*Syndrome2_5-0.04681544*Syndrome2_6+0.1402575*Syndrome2_7-0.03166823*Syndrome2_8-0.2629028*Syndrome2_9-0.03275445*Syndrome2_10-0.311464*Syndrome2_11+0.3158014*Syndrome2_12-0.04689252*Syndrome2_13+0.1556217*Syndrome2_14-0.02266529*Syndrome2_15-0.15192*Syndrome2_16+0.02253294*Syndrome2_17+0.04638374*Syndrome2_18-0.4847055*Syndrome2_19-0.0543578*Syndrome2_20-0.4383866 );
   double Syndrome3_11=Sigmoid3( 0.09181526*Syndrome2_1-0.009475656*Syndrome2_2+0.08283823*Syndrome2_3+0.06638021*Syndrome2_4-0.04110251*Syndrome2_5+0.03041244*Syndrome2_6-0.2266526*Syndrome2_7+0.3537511*Syndrome2_8+0.2091044*Syndrome2_9-0.2312607*Syndrome2_10-0.01409533*Syndrome2_11-0.06294888*Syndrome2_12+0.1980267*Syndrome2_13+0.07864135*Syndrome2_14-0.01312789*Syndrome2_15+0.02964603*Syndrome2_16-0.1720168*Syndrome2_17-0.01523064*Syndrome2_18+0.07354444*Syndrome2_19+0.1534344*Syndrome2_20+0.04784121 );
   double Syndrome3_12=Sigmoid3( -0.01962976*Syndrome2_1-0.1254692*Syndrome2_2+0.01237085*Syndrome2_3-0.006583595*Syndrome2_4-0.06446695*Syndrome2_5-0.1581757*Syndrome2_6-0.01416831*Syndrome2_7+0.08909909*Syndrome2_8+0.02427519*Syndrome2_9+0.06101634*Syndrome2_10-0.07296847*Syndrome2_11-0.02960677*Syndrome2_12+0.1195403*Syndrome2_13+0.007260199*Syndrome2_14-0.005008513*Syndrome2_15+0.07686368*Syndrome2_16-0.1097991*Syndrome2_17+0.02348211*Syndrome2_18-0.01508969*Syndrome2_19+0.06078456*Syndrome2_20+0.1424098 );
   double Syndrome3_13=Sigmoid3( -0.1845686*Syndrome2_1-0.1120369*Syndrome2_2+0.1346949*Syndrome2_3+0.2425685*Syndrome2_4+0.1310953*Syndrome2_5-0.1957272*Syndrome2_6+0.2163845*Syndrome2_7+0.04189415*Syndrome2_8+0.05685329*Syndrome2_9-0.1108158*Syndrome2_10-0.04702755*Syndrome2_11-0.2698838*Syndrome2_12+0.05045844*Syndrome2_13+0.1487544*Syndrome2_14+7.648221E-5*Syndrome2_15-0.04902162*Syndrome2_16+0.3119571*Syndrome2_17-0.2076546*Syndrome2_18+0.1465537*Syndrome2_19+0.2386554*Syndrome2_20+0.09121808 );
   double Syndrome3_14=Sigmoid3( 0.015057*Syndrome2_1-0.07630379*Syndrome2_2+0.10373*Syndrome2_3-0.01276504*Syndrome2_4+0.01637872*Syndrome2_5+0.1570177*Syndrome2_6+0.02290879*Syndrome2_7+0.1426407*Syndrome2_8-0.3037595*Syndrome2_9-0.1183627*Syndrome2_10-0.05010238*Syndrome2_11-0.06874149*Syndrome2_12+0.0325584*Syndrome2_13-0.1127614*Syndrome2_14+0.1010367*Syndrome2_15+0.2743505*Syndrome2_16+0.02752565*Syndrome2_17-0.01011515*Syndrome2_18-0.1072115*Syndrome2_19-0.1723324*Syndrome2_20-0.1862434 );
   double Syndrome3_15=Sigmoid3( -0.0602835*Syndrome2_1+0.1044827*Syndrome2_2-0.03398157*Syndrome2_3+0.1103081*Syndrome2_4-0.2517793*Syndrome2_5-0.1388755*Syndrome2_6+0.1680355*Syndrome2_7+0.08541053*Syndrome2_8+0.2264198*Syndrome2_9+0.1319854*Syndrome2_10+0.2397746*Syndrome2_11+0.04893836*Syndrome2_12+0.07067535*Syndrome2_13+0.03666123*Syndrome2_14-0.2249698*Syndrome2_15+0.1039975*Syndrome2_16+0.03130547*Syndrome2_17+0.1295152*Syndrome2_18-0.1380298*Syndrome2_19-0.2716908*Syndrome2_20+0.3049682 );
   double Syndrome3_16=Sigmoid3( 0.006898584*Syndrome2_1+0.172121*Syndrome2_2+0.08287619*Syndrome2_3-0.2843233*Syndrome2_4+0.3360839*Syndrome2_5-0.06360124*Syndrome2_6+0.08605669*Syndrome2_7+0.1303328*Syndrome2_8+0.176666*Syndrome2_9+0.3064248*Syndrome2_10+0.03492442*Syndrome2_11-0.1337793*Syndrome2_12+0.2166045*Syndrome2_13+0.1651906*Syndrome2_14-0.2159452*Syndrome2_15-0.02087162*Syndrome2_16-0.1321865*Syndrome2_17+0.02330898*Syndrome2_18-0.1607926*Syndrome2_19+0.100959*Syndrome2_20+0.3113509 );
   double Syndrome3_17=Sigmoid3( 0.2484581*Syndrome2_1+0.07501616*Syndrome2_2-0.2955785*Syndrome2_3-0.06893355*Syndrome2_4-0.110545*Syndrome2_5+0.009258383*Syndrome2_6-0.04150206*Syndrome2_7-0.1581711*Syndrome2_8-0.1503464*Syndrome2_9-0.1641756*Syndrome2_10+0.2800875*Syndrome2_11+0.1470316*Syndrome2_12+0.08529772*Syndrome2_13-0.07939056*Syndrome2_14+0.1105667*Syndrome2_15-0.003909521*Syndrome2_16-0.1663841*Syndrome2_17+0.1384012*Syndrome2_18-0.2260507*Syndrome2_19-0.1310463*Syndrome2_20+0.03011392 );
   double Syndrome3_18=Sigmoid3( 0.2167049*Syndrome2_1+0.1083723*Syndrome2_2+0.03713056*Syndrome2_3-0.07394339*Syndrome2_4-0.08689396*Syndrome2_5+0.1893489*Syndrome2_6-0.004869457*Syndrome2_7+0.06987588*Syndrome2_8-0.1505099*Syndrome2_9+0.1717843*Syndrome2_10+0.07792218*Syndrome2_11+0.02835098*Syndrome2_12+0.03617713*Syndrome2_13+0.1599271*Syndrome2_14-0.1617647*Syndrome2_15-0.04720658*Syndrome2_16+0.004165665*Syndrome2_17-0.1073883*Syndrome2_18+0.06164433*Syndrome2_19+0.01017194*Syndrome2_20-0.1073146 );
   double Syndrome3_19=Sigmoid3( 0.1966043*Syndrome2_1-0.06785608*Syndrome2_2-0.02568222*Syndrome2_3+0.2323583*Syndrome2_4-0.1949882*Syndrome2_5-0.0180097*Syndrome2_6-0.1995831*Syndrome2_7-0.3007537*Syndrome2_8+0.03133066*Syndrome2_9-0.3836962*Syndrome2_10+0.8646971*Syndrome2_11-0.04459784*Syndrome2_12+0.1127359*Syndrome2_13+0.3645059*Syndrome2_14+0.3924035*Syndrome2_15+0.2070317*Syndrome2_16-0.1975317*Syndrome2_17+0.249992*Syndrome2_18-0.1090982*Syndrome2_19+0.9234442*Syndrome2_20+0.0260936 );
   double Syndrome3_20=Sigmoid3( -0.1054238*Syndrome2_1+0.01094678*Syndrome2_2+0.1854347*Syndrome2_3-0.03105933*Syndrome2_4-0.1428708*Syndrome2_5+0.1660853*Syndrome2_6-0.0540761*Syndrome2_7+0.08364562*Syndrome2_8+0.01462638*Syndrome2_9+0.05958234*Syndrome2_10+0.05540805*Syndrome2_11+0.1415959*Syndrome2_12-0.2088391*Syndrome2_13-0.02437577*Syndrome2_14+0.03789431*Syndrome2_15+0.1342704*Syndrome2_16+0.02136465*Syndrome2_17+0.1529594*Syndrome2_18-0.2515772*Syndrome2_19-0.009984408*Syndrome2_20-0.02554057 );

//--- 终级征候:
   BAR[0]=0.377357*Syndrome3_1-0.1995524*Syndrome3_2+0.44664*Syndrome3_3-0.2634062*Syndrome3_4-0.1150927*Syndrome3_5-0.3349093*Syndrome3_6-0.3639574*Syndrome3_7+0.2705039*Syndrome3_8+0.5313437*Syndrome3_9+0.2664694*Syndrome3_10+0.1713557*Syndrome3_11+0.1208919*Syndrome3_12-0.4120659*Syndrome3_13+0.3021899*Syndrome3_14+0.4149051*Syndrome3_15+0.7103375*Syndrome3_16+0.1180793*Syndrome3_17-0.2354599*Syndrome3_18-0.1013937*Syndrome3_19+0.3054902*Syndrome3_20+0.03919306;

//--- 终级征候的后期处理:
   BAR[0]=((BAR[0]*0.0180000001564622)+0.000599999912083149)/2;

   return (BAR[0]);
  }
//+------------------------------------------------------------------+

double Prognosis;

//+------------------------------------------------------------------+
#include <Trade/Trade.mqh>
//+------------------------------------------------------------------+
void OnTick()
  {
//--- 从神经网络接收价格预测
   Prognosis=CalcNeuroNet();
//--- 执行必要的交易动作
   Trade();
  }
//+------------------------------------------------------------------+
void Trade()
  {
   //--- 如果与预测不符,平仓
   if(PositionSelect(_Symbol))
     {
      long type=PositionGetInteger(POSITION_TYPE);
      bool close=false;
      if((type == POSITION_TYPE_BUY)  && (Prognosis <= 0)) close = true;
      if((type == POSITION_TYPE_SELL) && (Prognosis >= 0)) close = true;
      if(close)
        {
         CTrade trade;
         trade.PositionClose(_Symbol);
        }
     }

   //--- 如果无持仓,根据预测开仓
   if((Prognosis!=0) && (!PositionSelect(_Symbol)))
     {
      CTrade trade;
      if(Prognosis >  MinPrognosis) trade.Buy (Lots);
      if(Prognosis < -MinPrognosis) trade.Sell(Lots);
     }
  }

试验

在训练神经网络时,EA以提供数据的相同时间框架开始。我提醒这个EA是为欧元,h1(近10个月的研究)编写的。

当将预期收益与利差进行比较时,没有入口点。EA针对这种情况有内置的过滤器。将输入参数minPrediction设置为0.0005。

交易量常数为0.1手。

我们得到以下结果:

1

传说。21。元测试仪中的EA测试统计

2

传说。22。元测试器EA测试净值图

净值的增加表明神经网络EA发展的各个阶段都得到了正确的实现。

应该记住,EA可以在一段时间内接受培训并盈利,但不能保证在此期间之后盈利。要创建真正盈利的神经网络EA,我们需要对神经网络的工作原理有一个透彻的了解和深刻的交易经验。在这篇文章中,我演示了如何使用神经网络工具,现在由您来实现它。

结论

Neuropro是一个独特的程序。我们有机会看到一个神经网络在几分钟内从Neuropro移植到MetaTrader 5的EA,而手中只有工具。

许多其他的神经网络程序没有这个优势。这就是为什么我们强烈推荐Neuropro。

本文由MetaQuotes Software Corp.翻译自俄语原文
,网址为https://www.mql5.com/ru/articles/830。

附加文件下载zip neuropro ou allos.zip(7824.54 kb)、neuropro-export.mq5(5.78 kb)、neuropro.mq5(68.46 kb)

 

 


MyFxtop迈投(www.myfxtop.com)-靠谱的外汇跟单社区,免费跟随高手做交易!

 

免责声明:本文系转载自网络,如有侵犯,请联系我们立即删除,另:本文仅代表作者个人观点,与迈投财经(www.myfxtop.cn)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。

風險提示

MyFxtops邁投所列信息僅供參考,不構成投資建議,也不代表任何形式的推薦或者誘導行為。MyFxtops邁投非外匯經紀商,不接觸妳的任何資金。 MYFXTOPS不保證客戶盈利,不承擔任何責任。從事外彙和差價合約等金融產品的槓桿交易具有高風險,損失有可能超過本金,請量力而行,入市前需充分了解潛在的風險。過去的交易成績並不代表以後的交易成績。依據各地區法律法規,MyFxtops邁投不向中國大陸、美國、加拿大、朝鮮居民提供服務。

邁投公眾號

聯繫我們

客服QQ:981617007
Email: service@myfxtop.com

MyFxtops 邁投