指标杂项问题 - 页 7 1234567891011121314...16 新评论 honest_knave 2017.02.23 00:47 #61 是的,但你必须为它编码。例子。当地时间经纪人A经纪人B00:00(GMT)01:00(GMT+1)02:00(GMT+2)你不能使用PERIOD_D1,因为经纪人A的D1条在当地时间23:00开始(提前1小时)经纪人B的D1条在当地时间22:00开始(提前2小时)。所以您必须使用H1条的iBarShift和iHighest / iLowest(或CopyHigh/CopyLow)来手动创建您想要的 "日"。----这里有一个快速脚本,可以说明这个问题。把它放到图表上,你会看到它在服务器时间 23:00开始的 "一天 "周围画了一个矩形。#define strict#property show_inputs#define DAY 86400#define HOUR 3600extern int time_shift = -1; // Hours to shift server time byvoid OnStart() { time_shift*=HOUR; datetime oldest_bar = Time[Bars-1], midnight = oldest_bar-(oldest_bar%DAY); while(midnight<=TimeCurrent()) { datetime day_begin = midnight + time_shift, day_end = day_begin + DAY - 1; double high[], low[]; int high_cnt = CopyHigh(_Symbol, PERIOD_H1, day_begin, day_end, high), low_cnt = CopyLow (_Symbol, PERIOD_H1, day_begin, day_end, low); if(high_cnt>0 && low_cnt>0) { double day_high = high[ArrayMaximum(high)], day_low = low [ArrayMinimum(low)]; string obj_name = TimeToString(day_begin,TIME_DATE); ObjectCreate(0, obj_name, OBJ_RECTANGLE, 0, day_begin, day_high, day_end, day_low); } midnight+=DAY; } } Indicator Miscellaneous Questions Reading price, volume, spread, 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 Max Enrik 2017.02.23 11:51 #62 honest_knave:是的,但你必须为它编码。我应该研究这个例子。非常感谢。 Max Enrik 2017.02.25 23:11 #63 再次感谢你的伟大的例子。 经过你的评论,我很容易解决了我的问题。---我试着为不同的经纪商自动设置时间偏移,不幸的是,这并不奏效。问: 我可以写一些代码,为不同的经纪商自动设置时间偏移,这可能吗?(我还在尝试一些东西)非常感谢。 Max Enrik 2017.02.26 14:08 #64 我尝试了下面的代码,但它没有给我正确的值。问: 下面的代码有什么问题?(我没有弄清楚)datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);非常感谢。 honest_knave 2017.02.26 14:11 #65 Max Enrik:我尝试了下面的代码,但它没有给我正确的值。问: 下面的代码有什么问题?(我没有弄清楚)datetime start=(datetime)SymbolInfoInteger(Symbol(),SYMBOL_START_TIME);非常感谢。 似乎不是所有的经纪商都能正确设置。请看这里 Max Enrik 2017.02.26 14:20 #66 honest_knave: 似乎不是所有的经纪商都能正确地设置这一点。请看这里没有 机会了! 我只是在想专业的程序员和代码放弃了吗!?当然不是。 : /( 但我是)非常感谢。( 我有想法,我至少要试一试 - 以后 ) honest_knave 2017.02.26 14:32 #67 Max Enrik:没有 机会了! 我只是在想专业的程序员和代码放弃了吗!当然不是。 : /( 但我是 )非常感谢。( 我有想法,我至少要试试 - 以后 )总有一些变通的办法。例如,你可以回溯H1或M30条,寻找一个大于1条时间跨度的时间缺口(即市场在这个缺口期间是关闭的)。但是你需要注意周末和公共假期,以及不完整的历史。 Max Enrik 2017.02.26 15:11 #68 honest_knave:总有一些变通的办法。 例如,你可以回溯H1或M30条,寻找一个大于1条时间跨度的时间缺口(即市场在这个缺口期间关闭)。 但是你需要注意周末和公共假期,以及不完整的历史。 非常感谢你的有益评论。 Max Enrik 2017.02.27 00:58 #69 我只是需要学习日期时间,因为到目前为止,当我试图编写与日期时间有关的代码时,我总是花了很多时间在代码的那一部分。(即使我成功地完成了我的脚本,但我从来没有更清楚地了解过) 所以现在我试图获取当天的第一条数据(当前日的第一条1m、5m、15m、30m、1h等),但我不能。(我在google chrome浏览器上有很多标签与此有关--只是胡说八道)所以,谁能帮助我如何为一天中的第一根柱子(M1,5M等)写代码,并举例说明,谢谢。当然,明天我将继续研究这个问题。非常感谢你的帮助。 Marco vd Heijden 2017.02.27 13:49 #70 一天中的第一条应该是TimeHour()开始计数后的第一条。当然,这将是任何M1、M5、M15等的第一条,它们都是新条的开始。 1234567891011121314...16 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
是的,但你必须为它编码。
例子。
(GMT)
(GMT+1)
(GMT+2)
你不能使用PERIOD_D1,因为
所以您必须使用H1条的iBarShift和iHighest / iLowest(或CopyHigh/CopyLow)来手动创建您想要的 "日"。
----
这里有一个快速脚本,可以说明这个问题。
把它放到图表上,你会看到它在服务器时间 23:00开始的 "一天 "周围画了一个矩形。
#property show_inputs
#define DAY 86400
#define HOUR 3600
extern int time_shift = -1; // Hours to shift server time by
void OnStart()
{
time_shift*=HOUR;
datetime oldest_bar = Time[Bars-1],
midnight = oldest_bar-(oldest_bar%DAY);
while(midnight<=TimeCurrent())
{
datetime day_begin = midnight + time_shift,
day_end = day_begin + DAY - 1;
double high[],
low[];
int high_cnt = CopyHigh(_Symbol, PERIOD_H1, day_begin, day_end, high),
low_cnt = CopyLow (_Symbol, PERIOD_H1, day_begin, day_end, low);
if(high_cnt>0 && low_cnt>0)
{
double day_high = high[ArrayMaximum(high)],
day_low = low [ArrayMinimum(low)];
string obj_name = TimeToString(day_begin,TIME_DATE);
ObjectCreate(0, obj_name, OBJ_RECTANGLE, 0, day_begin, day_high, day_end, day_low);
}
midnight+=DAY;
}
}
是的,但你必须为它编码。
我应该研究这个例子。
非常感谢。
再次感谢你的伟大的例子。
经过你的评论,我很容易解决了我的问题。
---
我试着为不同的经纪商自动设置时间偏移,不幸的是,这并不奏效。
问: 我可以写一些代码,为不同的经纪商自动设置时间偏移,这可能吗?
(我还在尝试一些东西)
非常感谢。
我尝试了下面的代码,但它没有给我正确的值。
问: 下面的代码有什么问题?(我没有弄清楚)
非常感谢。
我尝试了下面的代码,但它没有给我正确的值。
问: 下面的代码有什么问题?(我没有弄清楚)
非常感谢。
似乎不是所有的经纪商都能正确地设置这一点。请看这里
没有 机会了!
我只是在想专业的程序员和代码放弃了吗!?当然不是。 : /( 但我是)
非常感谢。
( 我有想法,我至少要试一试 - 以后 )没有 机会了!
我只是在想专业的程序员和代码放弃了吗!当然不是。 : /( 但我是 )
非常感谢。
( 我有想法,我至少要试试 - 以后 )总有一些变通的办法。
例如,你可以回溯H1或M30条,寻找一个大于1条时间跨度的时间缺口(即市场在这个缺口期间是关闭的)。
但是你需要注意周末和公共假期,以及不完整的历史。
总有一些变通的办法。
例如,你可以回溯H1或M30条,寻找一个大于1条时间跨度的时间缺口(即市场在这个缺口期间关闭)。
但是你需要注意周末和公共假期,以及不完整的历史。
我只是需要学习日期时间,因为到目前为止,当我试图编写与日期时间有关的代码时,我总是花了很多时间在代码的那一部分。(即使我成功地完成了我的脚本,但我从来没有更清楚地了解过)
所以现在我试图获取当天的第一条数据(当前日的第一条1m、5m、15m、30m、1h等),但我不能。
(我在google chrome浏览器上有很多标签与此有关--只是胡说八道)
所以,谁能帮助我如何为一天中的第一根柱子(M1,5M等)写代码,并举例说明,谢谢。
当然,明天我将继续研究这个问题。
非常感谢你的帮助。
一天中的第一条应该是TimeHour()开始计数后的第一条。
当然,这将是任何M1、M5、M15等的第一条,它们都是新条的开始。