请观看如何免费下载自动交易
请在Telegram上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
脚本

按时间标记位置脚本 - MetaTrader 5脚本

显示:
3896
等级:
(6)
已发布:
2021.06.23 05:17
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

无论是进行策略分析,还是进行交易系统设计,时间是一个非常重要的参照因素,特别是在进行历史数据回溯验证的时候,如果想快速定位到某个时间点,就需要找到一个办法在行情图表上进行明显的标记,比如在什么时间点出现了亏损、什么时间点出现了盈利,使用按时间标记功能,就可以快速标记所有位置,便于统计、分析。在这个例子中,我们运用的是画竖线的方式,并区分不同颜色的线,来实现需求。

画线对象
需要用到画对象函数ObjectCreate(),指定对象类型为OBJ_VLINE,创建画线对象便可以设置颜色、宽度、风格等相关属性。
 int chart_id = 0;
 string line_name = TimeToString(D'2021.04.01 00:00:00');
 if(!ObjectCreate(chart_id,line_name,OBJ_VLINE,0,D'2021.04.01 00:00:00',0))
     {
        printf(": failed to create a line! Error code = ",GetLastError());
     }
 //设置属性
 ObjectSetInteger(chart_id,line_name,OBJPROP_COLOR,line_color);         //设置颜色
 ObjectSetInteger(chart_id,line_name,OBJPROP_STYLE,line_style);         //设置风格
 ObjectSetInteger(chart_id,line_name,OBJPROP_WIDTH,line_width);         //设置宽度


时间位置
这个例子实现画出2021年4月份所有00:00:00开市的位置时间线,首先需要取到所有符合条件的时间数据,再用for循环画出所有对象。取时间数据可以用CopyTime()函数,通过指定起始时间、结束时间,将这段时间周期内的所有时间数据取到。通过判断时间是否是00:00:00就是满足需求的时间位置。
 datetime time_lines[];
 ENUM_TIMEFRAMES time_period = PERIOD_H1;
 datetime time_start = D'2021.01.01 00:00:00';
 datetime time_end = D'2021.04.21 00:00:00';
 CopyTime(Symbol(),time_period,time_start,time_end,time_lines);
这里用time_lines数组将所有数据进行了存储,是datetime时间格式,怎么判断是否为开市时间呢,用TimeToStruct()函数将格式进行转换为MqlDateTime时间结构体,就可以得到时、分、秒,进行条件判断。
MqlDateTime time_struct ;
TimeToStruct(time_lines[i],time_struct);
if(time_struct.hour == 0 && time_struct.min == 0 && time_struct.sec == 0)
      {
//画线对象
      }

针对其实时间、终止时间、时间周期,可以将这些参数放到脚本头部作为输入参数进行更加灵活的控制,当然也可以将线条的颜色、宽度、样式等也作为输入参数,就有一个功能更加丰富灵活的按时间标记位置脚本了,需要特别注意的是添加#property script_show_inputs,才能显示脚本输入参数。
input datetime time_start = D'2021.01.01 00:00:00';
input datetime time_end = D'2021.04.21 00:00:00';
input ENUM_TIMEFRAMES time_period = PERIOD_H1;
input color line_color = clrRed;
input ENUM_LINE_STYLE line_style = STYLE_SOLID;
input int line_width = 2;

实现源码
//+------------------------------------------------------------------+
//|                                                    sign by price.mq5 |
//|                                        wx=> wentxiong |
//|                                        http://www.popoding.club/ |
//+------------------------------------------------------------------+
#property copyright "Wen Tao Xiong"
#property link      "https://www.mql5.com/zh/users/xiongsir/seller"
#property version   "1.00"

#property script_show_inputs

input color line_clr = clrBlue;
input ENUM_LINE_STYLE line_style = STYLE_SOLID;
input int line_width = 3;

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---

   double price_max = 2.00000;
   double price_min = 1.00000;
   double price_int[];
   ArrayResize(price_int,300);
   double price_tmp = price_min;
   int m = 0;
   for(m = 0 ; price_tmp <= price_max ; m++)
     {
      price_int[m] = price_tmp;
      price_tmp = price_tmp + 0.00500;
     }
   ArrayRemove(price_int,m);


   for(int i = 0 ; i < ArraySize(price_int); i++)
     {

      string line_name = DoubleToString(price_int[i]);
      if(!ObjectCreate(0,line_name,OBJ_HLINE,0,0,price_int[i]))
        {
         printf("draw a line error :d%", GetLastError());
        }


      ObjectSetInteger(0,line_name,OBJPROP_COLOR,line_clr);
      ObjectSetInteger(0,line_name,OBJPROP_STYLE,line_style);
      ObjectSetInteger(0,line_name,OBJPROP_WIDTH,line_width);
     }

  }
//+------------------------------------------------------------------+

按价格标记位置脚本 按价格标记位置脚本

价格是行情分析的重要参照因素,尤其是以支撑阻力位为核心的交易系统中,寻找合适的进场和出场价格位置是首要任务。那么按价格标记出这些参照位置就对分析、统计有实际意义。

六类挂单一键取消脚本 六类挂单一键取消脚本

MT5挂单类型有六种,能够很好地适应回调和突破场景,在一些突破策略交易系统中应用较多,当挂单条件不再有效的时候,就会涉及到挂单的取消操作。六种挂单应用说明如下: Buy Limit(回踩买入):在当前价格下方,等待行情下跌到挂单位置触发买入单。 Sell Limit(回踩卖出):在当前价格上方,等待行情上涨到挂单位置触发卖出单。 Buy Stop(突破买入):在当前价格上方,等待行情上涨到挂单位置触发买入单。 Buy Stop(突破卖出):在当前价格下方,等待行情下跌到挂单位置触发卖出单。 Buy Stop Limit(突破回踩买入):在当前价格上方,等待行情上涨到突破位置后,再下跌到回踩位置,触发买入单。 Sell Stop Limit(突破回踩卖出):在当前位置下方,等待行情下跌到突破位置后, 再上涨到回踩位置,触发卖出单。

mt5剩余时间的指标 mt5剩余时间的指标

这是mt4 转 mt5的 剩余时间的指标,分享大家

MT5一键开仓 MT5一键开仓

MT5一键开仓脚本。包含两个脚本,一键开多单和一键开空单。可以设置魔术数,手数,止损点数,止盈点数,注释。