当地时间和新勾股时间相差一分半钟。该怎么做。 - 页 6 123456789 新评论 [删除] 2019.03.20 15:00 #51 prostotrader:仔细 看一下代码! TimeTradeServer() 只用来确定日期,仅此而已(这个检查是为了 "以防万一")! TimeTradeServer() 可以完全省略。我已经看过了。我同意,我写得不对,但在我看来,这个函数仍然不能解决问题。说实话,我不太清楚为什么需要它。看来,你。 1.获取从一个刻度开始的毫秒数。 2.你把蜱虫分解成它的组成部分。 3.然后你又重新组装了虱子!?这就是我不清楚的地方,这是为了什么?你将总是得到最初传递给函数的相同的值。或者,也许我错过了什么? 然后你把这个刻度的时间与前一个刻度的时间进行比较。 我们确实需要知道服务器的时间,不是吗?没有服务器时间,我们无法确定一个角色的线程是否落后于其他角色的线程。 也就是说,你的代码没有与服务器时间绑定,也没有将服务器时间与线程时间进行比较,而这正是我们需要做的。要理解的不是单个符号的跳动所带来的堆栈滞后(就像我最初进入这个讨论时想的那样),而是一组符号从服务器到终端的数据传输的延迟。 prostotrader 2019.03.20 15:03 #52 Alexey Kozitsyn:这种检查似乎需要通过TimeGMTOffset来完成。我稍后将勾勒一个例子。只是很有趣,你是一个有经验的人(不是一个初学者)。 你根本不需要任何时间,除了传来的虱子的时间!你需要的是什么? 记住最后一次勾选的时间(初始化时),然后所有的比较都以这个时间为准 prostotrader 2019.03.20 15:04 #53 Alexey Kozitsyn:我已经看了一下。我同意,我写得有些不正确,但在我看来,这个函数仍然没有解决手头的任务。说实话,我不太清楚为什么需要它。看起来你是。 3.然后再重新组装蜱虫!?这就是我不清楚的地方,它是为了什么?你将总是得到最初传递给函数的相同的值。还是我错过了什么? 这段代码是从我的专家顾问中 "提取 "出来的,在这里我检查tick是否是最新的,时间是否在规定的范围内。 交易会 由以下人员添加 需要对tick进行 "分解 "以确定准确的(毫秒)时间(没有日期),因为在我的EA的会话设置中 我只设置了时间 input string TimeStMon = "10:00:00"; //Время начала утренней сессии input string TimeStDay = "14:05:00"; //Время начала дневной сессии input string TimeStEvn = "19:05:00"; //Время начала вечерней сессии [删除] 2019.03.20 15:16 #54 prostotrader:这实在是太可笑了,你是一个有经验的人(不是一个新手)。 你根本不需要任何时间,除了传来的虱子的时间!你需要的是什么? 记住最后一次勾选的时间(初始化时),然后所有的比较都以这个时间为准我稍后会写我的例子,我会更详细地了解这个问题。我不排除也许我错了(以及pivomoe)而你是对的。 [删除] 2019.03.20 15:17 #55 prostotrader:这段代码是从我的EA中 "拉 "出来的,我检查了tick的相关性和tick所在 的时间。 交易会 添加 需要对tick进行 "分解 "以确定准确的时间(不含日期),因为在我的EA的会话设置中 我只设置了时间 没错,是我的错,错过了。 prostotrader 2019.03.20 15:45 #56 Alexey Kozitsyn:没错,是我的错,我没有看到这一点。只是TC最初并不清楚他想得到什么(也可能是被误解了)。 在这里,运行它并检查。 //+------------------------------------------------------------------+ //| Time.mq5 | //| Copyright 2019 | //| | //+------------------------------------------------------------------+ enum FRESH_TICK { UNKNOWN_TICK, NEW_TICK, CUR_TICK, OLD_TICK }; // MqlTick stored_ticks[]; bool is_book; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { int result = CopyTicks(Symbol(), stored_ticks, COPY_TICKS_ALL, 0, 1); if(result > 0) { is_book = MarketBookAdd(Symbol()); if(is_book == false) return(INIT_FAILED); } else return(INIT_FAILED); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(is_book == true) MarketBookRelease(Symbol()); } //+------------------------------------------------------------------+ // Expert Book event function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if(symbol == Symbol()) { MqlTick a_ticks[]; int result = CopyTicks(symbol, a_ticks, COPY_TICKS_ALL, 0, 1); if(result > 0) { FRESH_TICK tick_state = CheckTickTime(a_ticks[0]); switch(tick_state) { case UNKNOWN_TICK: Print(EnumToString(UNKNOWN_TICK), " - Тик не определен."); //Тик не определен break; case NEW_TICK: Print(EnumToString(NEW_TICK), " - Новый тик"); //Торговое время, можно отсылать ордера; break; case CUR_TICK: Print(EnumToString(CUR_TICK), " - Текущий тик"); //По усмотрению разработчика; break; case OLD_TICK: Print(EnumToString(OLD_TICK), " - Старый тик"); //По усмотрению разработчика; break; } } } } //+------------------------------------------------------------------+ //| Expert Check Market Time function | //+------------------------------------------------------------------+ FRESH_TICK CheckTickTime(MqlTick &a_tick) { if(a_tick.time_msc > stored_ticks[0].time_msc) { stored_ticks[0] = a_tick; return(NEW_TICK); } else { if(stored_ticks[0].time_msc == a_tick.time_msc) { if((stored_ticks[0].ask == a_tick.ask) && (stored_ticks[0].bid == a_tick.bid) && (stored_ticks[0].flags == a_tick.flags) && (stored_ticks[0].last == a_tick.last) && (stored_ticks[0].time == a_tick.time) && (stored_ticks[0].volume == a_tick.volume) && (stored_ticks[0].volume_real == a_tick.volume_real)) { return(CUR_TICK); } else return(OLD_TICK); } else return(OLD_TICK); } return(UNKNOWN_TICK); } [删除] 2019.03.20 15:49 #57 prostotrader:只是TC一开始并不确定他想得到什么。 在这里,运行它并检查它。 迈克尔,对新蜱虫的到来/对旧蜱虫的检查没有问题。对你的代码也没有问题。这个问题是不同的。你需要检查这种情况。 14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) Получен НОВЫЙ тик по символу GAZR-3.19 time_msc= 2019.03.20 14:53:11.638 14:53:10.277 ProverkaAktyalnostiTikov (RTS-3.19,H1) ХОТЯ до этого был получeн тик RTS-3.19 time_msc 2019.03.20 14:53:13.695 prostotrader 2019.03.20 15:51 #58 Alexey Kozitsyn:迈克尔,对新蜱虫的到来/对旧蜱虫的检查没有问题。对你的代码也没有任何疑问。这个问题是不同的。我需要检查以下情况。 我调整了代码(见上文),(OLD_TICK)出现了。 而且知道新的软件包可能包含一个 "旧的 "钩子,开发者必须酌情使用它。 [删除] 2019.03.20 15:52 #59 prostotrader:我调整了代码(见上文),(OLD_TICK)出现了。这并不重要...不同的字符流。 prostotrader 2019.03.20 15:54 #60 Alexey Kozitsyn:这并不重要...不同的字符流。那么我根本就不明白我NEED????。 如果当前的时间是 SERVER - 你需要忘记它,直到他们广播它!"。 或使用什么是TimeTradeServer() 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
仔细 看一下代码!
TimeTradeServer() 只用来确定日期,仅此而已(这个检查是为了 "以防万一")!
TimeTradeServer() 可以完全省略。
我已经看过了。我同意,我写得不对,但在我看来,这个函数仍然不能解决问题。说实话,我不太清楚为什么需要它。看来,你。
1.获取从一个刻度开始的毫秒数。
2.你把蜱虫分解成它的组成部分。
3.然后你又重新组装了虱子!?这就是我不清楚的地方,这是为了什么?你将总是得到最初传递给函数的相同的值。或者,也许我错过了什么?
然后你把这个刻度的时间与前一个刻度的时间进行比较。
我们确实需要知道服务器的时间,不是吗?没有服务器时间,我们无法确定一个角色的线程是否落后于其他角色的线程。
也就是说,你的代码没有与服务器时间绑定,也没有将服务器时间与线程时间进行比较,而这正是我们需要做的。要理解的不是单个符号的跳动所带来的堆栈滞后(就像我最初进入这个讨论时想的那样),而是一组符号从服务器到终端的数据传输的延迟。
这种检查似乎需要通过TimeGMTOffset来完成。我稍后将勾勒一个例子。
只是很有趣,你是一个有经验的人(不是一个初学者)。
你根本不需要任何时间,除了传来的虱子的时间!你需要的是什么?
记住最后一次勾选的时间(初始化时),然后所有的比较都以这个时间为准
我已经看了一下。我同意,我写得有些不正确,但在我看来,这个函数仍然没有解决手头的任务。说实话,我不太清楚为什么需要它。看起来你是。
3.然后再重新组装蜱虫!?这就是我不清楚的地方,它是为了什么?你将总是得到最初传递给函数的相同的值。还是我错过了什么?
这段代码是从我的专家顾问中 "提取 "出来的,在这里我检查tick是否是最新的,时间是否在规定的范围内。
交易会
由以下人员添加
需要对tick进行 "分解 "以确定准确的(毫秒)时间(没有日期),因为在我的EA的会话设置中
我只设置了时间
这实在是太可笑了,你是一个有经验的人(不是一个新手)。
你根本不需要任何时间,除了传来的虱子的时间!你需要的是什么?
记住最后一次勾选的时间(初始化时),然后所有的比较都以这个时间为准
我稍后会写我的例子,我会更详细地了解这个问题。我不排除也许我错了(以及pivomoe)而你是对的。
这段代码是从我的EA中 "拉 "出来的,我检查了tick的相关性和tick所在 的时间。
交易会
添加
需要对tick进行 "分解 "以确定准确的时间(不含日期),因为在我的EA的会话设置中
我只设置了时间
没错,是我的错,错过了。
没错,是我的错,我没有看到这一点。
只是TC最初并不清楚他想得到什么(也可能是被误解了)。
在这里,运行它并检查。
只是TC一开始并不确定他想得到什么。
在这里,运行它并检查它。
迈克尔,对新蜱虫的到来/对旧蜱虫的检查没有问题。对你的代码也没有问题。这个问题是不同的。你需要检查这种情况。
迈克尔,对新蜱虫的到来/对旧蜱虫的检查没有问题。对你的代码也没有任何疑问。这个问题是不同的。我需要检查以下情况。
我调整了代码(见上文),(OLD_TICK)出现了。
而且知道新的软件包可能包含一个 "旧的 "钩子,开发者必须酌情使用它。
我调整了代码(见上文),(OLD_TICK)出现了。
这并不重要...不同的字符流。
这并不重要...不同的字符流。
那么我根本就不明白我NEED????。
如果当前的时间是 SERVER - 你需要忘记它,直到他们广播它!"。
或使用什么是TimeTradeServer()