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

 

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

comp, 2016.03.23 09:49

我如何通过ChartID知道图表周期?ChartGetInteger不允许在一个动作中做到这一点

到目前为止,我已经想出了一个拐杖式的解决方案,即保存一个模板并解析其中的周期。

如何正常发现?

使用ChartPeriod

图表周期

返回指定图表的周期 值。

ENUM_TIMEFRAMESChartPeriod(
longchart_id=0// 图表ID
);

参数

chart_id=0

[图表的ID。0表示当前的图表。

返回的值

ENUM_TIMEFRAMES类型。如果没有图表,则返回0

 
Karputov Vladimir:

使用ChartPeriod

谢谢你。
 

下午好!

如何确定一键交易面板的状态(展开或折叠)?

 
告诉我如何在这个初学者的主题中搜索到正确的问题。该主题已经发展成为一个巨大的问题和答案层,因此不再可能手动搜索。如果你已经犹豫不决地问了一个问题,它可能早就在这里得到了回答,但搜索是在整个网站上进行的,而不是在这个特定的 "初学者 "部分?
 
Alexander:
告诉我如何在这个初学者的主题中搜索到正确的问题。这个主题已经发展成为一个巨大的问题和答案层,因此手动搜索已经不可能了。问一个问题已经犹豫了,也许它已经在这里回答了很久,而且搜索是在整个网站上进行的,而不是在这个特定的部分 "为初学者"?

在谷歌搜索中输入:搜索网站:https://www.mql5.com/ru/forum/6343

"可搜索 "是你正在寻找的东西。

 
关于µl4语言的问题--为什么"创建对象"功能在优化过程中不起作用,当使用一个对象来存储几个变量的数据时,结果比使用openfail->failrid->failclose功能时快20倍,这使优化和测试的速度非常慢?
 

下午好!

我不知道如何处理过去250个交易时段 的两个小时的条形图,例如从下午3点到下午5点的服务器时间。

能否请您给我一个概念性的建议?

mql5

 
Stairway_2_7:

下午好!

我不知道如何处理过去250个交易时段 的两个小时的条形图,例如从下午3点到下午5点的服务器时间。

能否请您给我一个概念性的建议?

mql5

使用带有时间查询的函数

int  CopyOpen( 
   string           symbol_name,     // имя символа 
   ENUM_TIMEFRAMES  timeframe,       // период 
   datetime         start_time,      // с какой даты 
   datetime         stop_time,       // по какую дату 
   double           open_array[]     // массив для копирования цен открытия 
   );
 

谢尔盖。

谢谢你的答复!

对于我的任务来说,更方便的做法是

空白的OnStart()

{

datetime start =StringToTime("2016.03.25 15:00")。

datetime stop =StringToTime("2016.03.25 15:55")。

MqlRates rates[];

ArraySetAsSeries(rate,true)。

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rate)。

如果(copied>0)

{

Print("Copied bars: "+copied);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d" 。

串出。

int size=fmin(copied,10);

for(int i=0;i<size;i++)

{

out=i+": "+TimeToString(rate[i].time);

out=out+"+StringFormat(format,

rates[i].open,

rates[i].high,

rates[i].low。

rates[i].close。

rates[i].tick_volume)。

打印(out)。

}

}

else Print("Failed to get historical data on symbol ",Symbol())。

}

如何删除星期六和星期日?

更准确地说,对过去的,比如说,250个交易日做一个类似的操作?

 
Stairway_2_7:

谢尔盖。

谢谢你的答复!

对于我的任务来说,更方便的做法是

空白的OnStart()

{

datetime start =StringToTime("2016.03.25 15:00")。

datetime stop =StringToTime("2016.03.25 15:55")。

MqlRates rates[];

ArraySetAsSeries(rate,true)。

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rate)。

如果(copied>0)

{

Print("Copied bars: "+copied);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d" 。

串出。

int size=fmin(copied,10);

for(int i=0;i<size;i++)

{

out=i+": "+TimeToString(rate[i].time);

out=out+"+StringFormat(format,

rates[i].open,

rates[i].high,

rates[i].low。

rates[i].close。

rates[i].tick_volume)。

打印(out)。

}

}

else Print("Failed to get historical data on symbol ",Symbol())。

}

如何删除星期六和星期日?

更准确地说,如何对过去,比如说,250个交易日进行类似的操作?

尝试用这种结构来工作

struct MqlDateTime 
  { 
   int year;           // год 
   int mon;            // месяц 
   int day;            // день 
   int hour;           // час 
   int min;            // минуты 
   int sec;            // секунды 
   int day_of_week;    // день недели (0-воскресенье, 1-понедельник, ... ,6-суббота) 
   int day_of_year;    // порядковый номер в году (1 января имеет номер 0) 
  };