欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

Demo_FileWrite - MetaTrader 5 脚本

author emer | 101 人阅读 | 0 人评论 |

该脚本定义了由平滑异同移动平均线指示器并将它们保存在文件中。在脚本输入参数中,可以指定用于 MACD 指标计算的参数、货币对的名称和时间范围,以及我们分析数据的日期。带有指示器信号的文件将位于本地终端文件夹的“Data”子目录中。

首先,我们获取指定周期的指标值数组和时间数组:

//--- 结束时间是当前时间   日期完成=时间当前();//--- 接收 MACD 指标句柄  重置最后一个错误();
  整数macd_句柄=平滑异同移动平均线(InpSymbolName、InpSymbolPeriod、InpFastEMAPeriod、InpSlowEMAPeriod、InpSignalPeriod、InpAppliedPrice);
  如果(macd_句柄==INVALID_HANDLE)
     {
      //--- 未能接收指标句柄      打印格式“接收指标句柄时出错。错误代码 = %d”,获取最后一个错误());
      返回;
     }//--- 处于循环中,直到指标计算出其所有值  尽管计算的条数(macd_handle)==-1)
      睡觉10);// 暂停以允许指标计算其所有值
//--- 复制一段时间内的指标值  重置最后一个错误();
  如果复制缓冲区(macd_句柄,0,InpDateStart,date_finish,macd_buff)==-1)
     {
      打印格式“无法复制指标值。错误代码 = %d”,获取最后一个错误());
      返回;
     }//--- 复制指标值的适当时间  重置最后一个错误();
  如果复制时间(InpSymbolName、InpSymbolPeriod、InpDateStart、date_finish、date_buff)==-1)
     {
      打印格式“无法复制时间值。错误代码 = %d”,获取最后一个错误());
      返回;
     }

然后定义指标信号及其形成时间:

//--- 接收缓冲区大小   macd_大小=数组大小(macd_buff);//--- 分析数据并将指标信号保存到数组中  数组调整大小(sign_buff,macd_size-1);
  数组调整大小(time_buff,macd_size-1);
  为了整数我=1;i//--- 买入信号      如果(macd_buff[i-1]<0&& macd_buff[i]>=0)
        {
         标志缓冲区[标志大小]=真的;
         time_buff[sign_size]=date_buff[i];
         符号大小++;
        }
      //--- 卖出信号      如果(macd_buff[i-1]>0&& macd_buff[i]<=0)
        {
         标志缓冲区[标志大小]=错误的;
         time_buff[sign_size]=date_buff[i];
         符号大小++;
        }
     }

最后,我们使用以下命令将获得的信号值写入文件文件写入() 功能:


附件下载

📎 demo_filewrite.mq5 (4.76 KB)

Source: MQL5 #1626

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录