初学者的问题 MQL5 MT5 MetaTrader 5 - 页 904

 
请你告诉我,在用真实数据调试时,错误可能是什么原因:"指定的符号没有被选中"。
谢谢你!
MT5
 
IlyaDemidenko:
请告诉我们,在实际数据中出现的调试错误可能是什么原因:"指定的符号没有被选中"。
谢谢你!
MT5

在测试之前(从MetaEditor运行测试之前),进入MetaEditor设置,查看 "Debug "标签。在这个标签中,你可以看到将用于测试的符号。

现在打开终端,检查所选符号是否在 "市场观察 "窗口中。


 
Vladimir Karputov:

在测试之前(从MetaEditor运行测试之前),进入MetaEditor设置,查看 "Debug "标签。在这个标签中,你可以看到将用于测试的符号。

现在打开终端,检查所选符号是否在 "市场观察 "窗口中?

非常感谢你 )
进程开始 ))

 
你好。最后一天下午5:30的价格。我怎么才能知道呢?即下午5:30的任何一个酒吧的收盘价
 
bij:
你好。最后一天17:30的价格。如何认识它?即下午5:30的任何一个酒吧的收盘价

阅读CopyOpen(第二种形式的调用)。

 
Vladimir Karputov:

阅读CopyOpen(第二种形式的调用)。

谢谢,不明白除了time=D'2018.07.26 17:30',如何设置时间。

        time=???;      //Как сюда передать 17:30 прошлого дня?
        int barIndex = iBarShift(NULL,PERIOD_M1, time);        // Определение индекса бара, соответствующего времени time
        double openPrice = CopyOpen(NULL, PERIOD_M1, barIndex);// Определение Bid цены открытия бара barIndex
 
bij:

谢谢你,我没有意识到如何设置时间。

我只是做了一个快速的脚本。

//+------------------------------------------------------------------+
//|                                                  TestOpenDay.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property script_show_inputs
//--- enums
enum ENUM_DAY
  {
   DAY_CURRENT,            // Сегодня
   DAY_YESTERDAY,          // Вчера
   DAY_BEFORE_YESTERDAY    // Позавчера
  };
//--- input parameters
input ENUM_DAY InpDay      =  DAY_YESTERDAY; // День:
input uint     InpHours    =  17;            // Часы
input uint     InpMinutes  =  30;            // Минуты
//--- global variables
datetime day;
int      day_shift;
int      hours;
int      minutes;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   hours=int(InpHours> 23 ? 23 : InpHours);
   minutes=int(InpMinutes>59 ? 59 : InpMinutes);
   day_shift=(int)InpDay;
   day=iTime(NULL,PERIOD_D1,day_shift);
   Print("Сегодня: ",TimeToString(TimeCurrent(),TIME_DATE),", день: ",InputDayToString(),", дата/время: ",TimeToString(GetTime(day)));
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime GetTime(const datetime time)
  {
   MqlDateTime tm;
   if(!TimeToStruct(time,tm))
      return 0;
   tm.hour=hours;
   tm.min=minutes;   
   return StructToTime(tm);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string InputDayToString(void)
  {
   return(InpDay==DAY_CURRENT? "Сегодня" : InpDay==DAY_YESTERDAY ? "Вчера" : "Позавчера");
  }
//+------------------------------------------------------------------+

日志将显示所选择的日子,其日期和启动后的时间。

 
Artyom Trishkin:

我刚刚做了一个快速脚本。

日志将显示所选的日子,其日期和启动后的时间。

谢谢你,我想在历史指标中放一条线到17:30的价格,每天都这样。我如何设定每一天呢?不写每个日期,只写时间17:30

我就是这样把线放在当天的收盘价 上,每天都是如此。

 if(!TrendCreate(0,"close"+time[i],0,iTime(NULL,PERIOD_D1,i+1),iClose(NULL,PERIOD_D1,i+1),iTime(NULL,PERIOD_D1,i),0,clrLime,STYLE_SOLID,2,false,false,false,false,0))
        {
         continue;
        }
 
bij:

谢谢你,我想在历史指标中放一条线到17:30的价格,每天都这样。我如何设定每一天呢?

我就是这样把它设置为当天的收盘价,每天都是如此。

如果过去的日期(年、月、日)不等于现在的日期,而小时和分钟等于设定的,那么就放一行。

或者:如果前一个日期(年、月、日)等于当前日期,或者小时和分钟不等于设定的,则继续。

在任何情况下,都会有跳过的情况--不是所选时间框架的每个条形都有设定的时间。

 
Artyom Trishkin:

如果过去的日期(年、月、日)不等于当前日期,并且小时和分钟等于指定的...

if(iTime(NULL,PERIOD_D1,i+1)!=iTime(NULL,PERIOD_D1,i)&&这里怎么写?)