Demo_FileWrite - MetaTrader 5 脚本
该脚本定义了由平滑异同移动平均线指示器并将它们保存在文件中。在脚本输入参数中,可以指定用于 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小时后评论,即可解锁附件下载
立即登录
