/********************Script program start function*******************/voidOnStart()
{
datetime newYear[];
int bars = Bars(_Symbol, PERIOD_D1, D'2020.01.01', TimeCurrent())-1;
CopyTime(_Symbol, PERIOD_D1, bars, 1, newYear);
printf("Первый торговый день %s %s", EnumToString(ENUM_DAY_OF_WEEK((newYear[0]/PeriodSeconds(PERIOD_D1)+4)%7)), TimeToString(newYear[0]));
}/******************************************************************/
结果
2023.05.1413:37:02.118 !!0 (EURUSD,D1) Первый торговый день MONDAY2022.01.0300:002023.05.1413:38:18.547 !!0 (EURUSD,D1) Первый торговый день MONDAY2021.01.0400:002023.05.1413:38:35.906 !!0 (EURUSD,D1) Первый торговый день THURSDAY2020.01.0200:00
请帮助我理解。在ObjectMove(0, "LineAB", prevTime, prevPrice, newAx, newAy); 这一行中,参数计数错误。错误出在哪里?
https://www.mql5.com/ru/docs/objects/objectmove
如何使用 MQL4.5 查找任何一年一月第一个交易日的数字?
不能。您只能自己收集此类数据。
如何使用 MQL4.5 求出任何一年一月第一个交易日的数字?
结果
结果
为什么决定今天是交易日?是否存在报价?如果有报价但不能交易--我想这就是问题所在。
是什么决定了今天是交易日?是有报价吗?如果有报价但不能交易--我想这就是问题所在。
打开 MT 看看。为什么不看就问这些问题?条形图就在那里,具有 OHLC 的所有属性。其他一切只是您的想象.....。
我注意到,一月开始的交易日有三种:
我甚至可以在 MQL4 中编写一个子程序来确定新年第一个交易日的日期。
int inp_Year=2016; // 将感兴趣年份的数字输入变量
datetimefirst_day_New_Year=StringToTime(IntegerToString(inp_Year)+".01.02 00:00");//我们将记录交易年度开始的确切日期的变量,如果某一年的交易始于 1 月 2 日,如果 1 月 2 日是工作日
if (TimeDayOfWeek(first_day_New_Year)==0) first_day_New_Year=StringToTime(StringSubstr(TimeToString(first_day_New_Year),0,4)+".01.03 00:00"); //3 某年 1 月开始交易,如果 1 月 2 日是星期日
if (TimeDayOfWeek(first_day_New_Year)==6) first_day_New_Year=StringToTime(StringSubstr(TimeToString(first_day_New_Year),0,4)+"".01.04 00:00"); //4 某年 1 月的交易开始,如果 1 月 2 日是星期六
Comment("first trading day in ", inp_Year, " year= ",first_day_New_Year);