任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 650 1...643644645646647648649650651652653654655656657...1178 新评论 --- 2014.07.02 15:03 #6491 AlexeyVik: 我的理解是,他需要从另一个图表中获得对象参数。如果来自另一个图表,让他使用带有图表标识符的函数变体。 也没有问题。 Alexey Viktorov 2014.07.02 15:12 #6492 sergeev:如果它来自一个不同的图表,让它使用一个带有图表标识符的函数变体。 也没有问题。 完全正确,但我还不需要使用图表标识符,我只是在理论上熟悉它,这就是为什么我建议选择将对象映射到当前图表上。 realgentleman 2014.07.02 15:59 #6493 rov_kvn: 那很好啊!这正是问题所在。谢谢你,亲爱的同志! Roman Zhitnik 2014.07.02 16:31 #6494 sergeev:如果它来自一个不同的图表,让它使用一个带有图表标识符的函数变体。 也没有问题。 根据我的理解,在我的例子中,唯一的选择是价格用ObjectGetDouble(),日期用ObjectGetInteger()。 我试着在当前的TF中获取价格,chart_id = 0。double price1 = ObjectGetDouble(0,"Supply",3);- 价值,因为它应该是。我尝试了两种ID和价值,从这里https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes,而不是0,但它返回0。一个 "正确的 "图表_ID应该是什么样子? Alexey Viktorov 2014.07.02 16:40 #6495 .roman.: 根据我的理解,在我的例子中,唯一的选择是价格用ObjectGetDouble(),日期用ObjectGetInteger()。 我想获得当前TF中的价格,chart_id = 0。- 价值,因为它应该是。我尝试了两种ID和价值,从这里https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes,而不是0,但它返回0。一个 "正确的 "图表_ID应该是什么样子? chart_id = 0不是TF,是当前图表。你需要找到拥有所需对象的图表的chart_id。这就是我由于暂时没有必要而没有做的事情。 --- 2014.07.02 17:02 #6496 .roman.: 根据我的理解,在我的例子中,唯一的选择是价格用ObjectGetDouble(),日期用ObjectGetInteger()。 试图获取当前TF中的价格,chart_id = 0double price1 = ObjectGetDouble(0,"Supply",3);什么是3?- 价值是应该的。我尝试了两种ID和价值,从这里https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes,而不是0,但它返回0。一个 "正确的 "图表_ID应该是什么样子? TF期与chart_id有什么关系?你对使用什么的理解有一个不切实际的漏洞描述你的问题,不要太晦涩难懂,围绕着内涵。我需要什么? 要从一个对象中检索数据? - ObjectGet 你为什么不喜欢它? Roman Zhitnik 2014.07.02 17:07 #6497 sergeev:什么是3? 矩形的下限的价格值。https://docs.mql4.com/constants/objectconstants/enum_object_property TF周期与图表ID有什么关系? 我不知道怎么做。这就是为什么我想自己做,问,因为我失败了。 sergeev: 描述你的任务,不要黑着脸到处摸索。你到底需要什么? 从一个对象中获取数据? - ObjectGet 它有什么问题?你真的在问吗?我已经写了3次,我需要从另外两个时间段(H4和D)获得矩形数据(用于建立矩形的2个价格坐标和2个时间坐标),同时在第三个时间段(H1)。ObjectGet不适合,因为它不能从另一个时间段接收任何东西。 该指标在所有时间段都画矩形,我给它添加了代码,它将传输其他时间段的矩形坐标,而不切换到其他时间段。 我不知道如何解释它的其他方式。 Alexey Viktorov 2014.07.02 18:24 #6498 .roman.: 矩形下限的价格值。https://docs.mql4.com/constants/objectconstants/enum_object_property 我不知道怎么做。这就是为什么我想通过直觉和询问来做,因为这没有用。 你真的在问吗?我已经写了3次,我需要从其他两个时间段(H4和D)获得矩形数据(2个价格坐标和2个时间坐标来建立矩形),同时在第三个时间段(H1)。ObjectGet不合适,因为我不能用它从另一个时间段获得任何东西。 它在所有的时间段上画矩形,我正在给它添加代码,通过这些代码,它将传递其他时间段的矩形坐标,而不切换到它们。 我不知道如何以其他方式解释。 只要明白,另一个时间框架和另一个图表或图形是不同的概念,相应地,解决问题的方法也不同。 Roman Zhitnik 2014.07.02 18:32 #6499 AlexeyVik: 理解不同的TF和不同的图或图表是不同的概念,因此是解决问题的不同方法。 所以我只乐意理解和接受任何解决方案,如果我有想法的话。这就是为什么我在征求如何实施的意见。 [删除] 2014.07.02 19:50 #6500 Top2n:谢谢你!收到。只是在OrderSelect错误的情况下,除了继续,不清楚如何停止。删除了迟到的信息,做了与描述几乎相同的事情。有时你可以把返回值和错误符号结合起来。当把一些数值作为错误的标志是有意义的。例如,一个等于0的平均价格。然后,只要OrderSelect() 返回一个错误符号,我们的函数就会立即返回一个错误符号。#property strict /******************************************************************************/ double CenaUsrednenija(const int type,const int Magic){ double nn = 0, bb = 0; for(int i = OrdersTotal() - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if(OrderSymbol() == Symbol() && OrderType() == type && OrderMagicNumber() == Magic) { double op = OrderOpenPrice(); double llot = OrderLots(); bb += op * llot; nn += llot; Print(" type = ", type, " Цена открытия = ", op, " Лот = ", llot, " itog = op * llot = ", op * llot, " factb = bb / nn = ", bb / nn); } } else { return 0; // Цена == 0 - признак ошибки (OrderSelect() не смогла выбрать ордер) } } return nn != 0 ? NormalizeDouble(bb / nn, _Digits) : 0; // Делить на 0 не следует } /******************************************************************************/ void OnStart() { Print("CenaUsrednenija(OP_BUY, 536525) = ", CenaUsrednenija(OP_BUY, 536525)); }独自运行,我得到了它。23:32:03 Script 1 EURUSD,H1: loaded successfully 23:32:03 1 EURUSD,H1: initialized 23:32:03 1 EURUSD,H1: type = 0 Цена открытия = 1.36626 Лот = 0.1 itog = op * llot = 0.136626 factb = bb / nn = 1.36626 23:32:03 1 EURUSD,H1: type = 0 Цена открытия = 1.36931 Лот = 0.1 itog = op * llot = 0.136931 factb = bb / nn = 1.367785 23:32:03 1 EURUSD,H1: CenaUsrednenija(OP_BUY, 536525) = 1.36779 23:32:03 1 EURUSD,H1: uninit reason 0 23:32:03 Script 1 EURUSD,H1: removed这似乎是真的...是的,我没有在Print()中使用条件表达式来避免假设的除以0,因为这个Print()是调试用的。 1...643644645646647648649650651652653654655656657...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我的理解是,他需要从另一个图表中获得对象参数。
如果来自另一个图表,让他使用带有图表标识符的函数变体。
也没有问题。
如果它来自一个不同的图表,让它使用一个带有图表标识符的函数变体。
也没有问题。
那很好啊!这正是问题所在。谢谢你,亲爱的同志!
如果它来自一个不同的图表,让它使用一个带有图表标识符的函数变体。
也没有问题。
根据我的理解,在我的例子中,唯一的选择是价格用ObjectGetDouble(),日期用ObjectGetInteger()。
我试着在当前的TF中获取价格,chart_id = 0。
- 价值,因为它应该是。我尝试了两种ID和价值,从这里https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes,而不是0,但它返回0。一个 "正确的 "图表_ID应该是什么样子?
根据我的理解,在我的例子中,唯一的选择是价格用ObjectGetDouble(),日期用ObjectGetInteger()。
我想获得当前TF中的价格,chart_id = 0。
- 价值,因为它应该是。我尝试了两种ID和价值,从这里https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes,而不是0,但它返回0。一个 "正确的 "图表_ID应该是什么样子?
根据我的理解,在我的例子中,唯一的选择是价格用ObjectGetDouble(),日期用ObjectGetInteger()。
试图获取当前TF中的价格,chart_id = 0
什么是3?
- 价值是应该的。我尝试了两种ID和价值,从这里https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes,而不是0,但它返回0。一个 "正确的 "图表_ID应该是什么样子?
你对使用什么的理解有一个不切实际的漏洞
描述你的问题,不要太晦涩难懂,围绕着内涵。
我需要什么? 要从一个对象中检索数据?
- ObjectGet 你为什么不喜欢它?
什么是3?
矩形的下限的价格值。https://docs.mql4.com/constants/objectconstants/enum_object_property
我不知道怎么做。这就是为什么我想自己做,问,因为我失败了。
描述你的任务,不要黑着脸到处摸索。你到底需要什么? 从一个对象中获取数据? - ObjectGet 它有什么问题?
你真的在问吗?我已经写了3次,我需要从另外两个时间段(H4和D)获得矩形数据(用于建立矩形的2个价格坐标和2个时间坐标),同时在第三个时间段(H1)。
ObjectGet不适合,因为它不能从另一个时间段接收任何东西。
该指标在所有时间段都画矩形,我给它添加了代码,它将传输其他时间段的矩形坐标,而不切换到其他时间段。 我不知道如何解释它的其他方式。
矩形下限的价格值。https://docs.mql4.com/constants/objectconstants/enum_object_property
我不知道怎么做。这就是为什么我想通过直觉和询问来做,因为这没有用。
你真的在问吗?我已经写了3次,我需要从其他两个时间段(H4和D)获得矩形数据(2个价格坐标和2个时间坐标来建立矩形),同时在第三个时间段(H1)。
ObjectGet不合适,因为我不能用它从另一个时间段获得任何东西。
它在所有的时间段上画矩形,我正在给它添加代码,通过这些代码,它将传递其他时间段的矩形坐标,而不切换到它们。 我不知道如何以其他方式解释。
理解不同的TF和不同的图或图表是不同的概念,因此是解决问题的不同方法。
谢谢你!收到。只是在OrderSelect错误的情况下,除了继续,不清楚如何停止。
删除了迟到的信息,做了与描述几乎相同的事情。
有时你可以把返回值和错误符号结合起来。当把一些数值作为错误的标志是有意义的。例如,一个等于0的平均价格。
然后,只要OrderSelect() 返回一个错误符号,我们的函数就会立即返回一个错误符号。
独自运行,我得到了它。
这似乎是真的...
是的,我没有在Print()中使用条件表达式来避免假设的除以0,因为这个Print()是调试用的。