文章 "从 MQL4 迁移到 MQL5" - 页 11 1...45678910111213 新评论 vietlh216 2017.10.09 12:18 #101 大家好、 您知道如何在 MQL5 中使用 ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value) 吗?我尝试搜索 OBJPROP_FIRSTLEVEL,但在 MQL5 中没有找到它。mql4:void _SetFibLevel(string objname, int level, double value, string description)//+------------------------------------------------------------------+{ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);ObjectSetFiboDescription(objname,level,description);}----------------------------------- Stanislav Korotky 2017.10.09 13:15 #102 vietlh216:您知道如何在 MQL5 中使用 ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value) 吗?我尝试搜索 OBJPROP_FIRSTLEVEL,但在 MQL5 中没有找到它。mql4:void _SetFibLevel(string objname, int level, double value, string description)//+------------------------------------------------------------------+{ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);ObjectSetFiboDescription(objname,level,description);}-----------------------------------您可以阅读我的博文,了解现成的解决方案。 Yohana Parmi 2017.10.09 13:41 #103 Stanislav Korotky: 您可以阅读我的博文,了解现成的解决方案。非常有用,谢谢 :) vietlh216 2017.10.10 03:16 #104 Stanislav Korotky: 您可以阅读我的博文,了解现成的解决方案。感谢 Stanislav Korotky 提供的解决方案,但我不太擅长 MQL5,我仍然不知道如何将 OBJPROP_FIRSTLEVEL 转换为在 MQL5 中使用。在 MQL4 中:OBJPROP_FIRSTLEVEL+n210+n整数整数值,用于设置/获取具有索引 n 的斐波纳契对象级别值。索引 n 可以从 0(级别数-1)开始,但不能大于 31。但我在 MQL5 中没有找到它ex: MQL4 : ObjectSetFiboDescription(objname,level,description);->MQL5: ObjectSetString(0,objname,OBJPROP_LEVELTEXT,level,description); MQL4:ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);->MQL5:? Discussion of article "Migrating 在MQL5中创建交互式图形用户界面(第1部分):制作面板 从 MQL4 迁移到 MQL5 vietlh216 2017.10.10 03:29 #105 vietlh216: 感谢 Stanislav Korotky 提供的解决方案,但我对 MQL5 不太熟悉,仍然不知道如何在 MQL5 中转换 OBJPROP_FIRSTLEVEL。在 MQL4 中:OBJPROP_FIRSTLEVEL+n210+n整数整数值,用于设置/获取具有索引 n 的斐波纳契对象级别值。索引 n 可以从 0(级别数-1)开始,但不能大于 31。但我在 MQL5 中没有找到它ex: MQL4 : ObjectSetFiboDescription(objname,level,description);->MQL5: ObjectSetString(0,objname,OBJPROP_LEVELTEXT,level,description); MQL4:ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);->MQL5:? 啊,我找到了ObjectSetDouble(0,objname,OBJPROP_LEVELVALUE,level,value);^^ Stanislav Korotky 2017.10.10 13:22 #106 vietlh216: 啊,我找到了ObjectSetDouble(0,objname,OBJPROP_LEVELVALUE,level,value);^^您可以试试我的 include 的以下附录:class OBJPROP_DOUBLE_BROKER_EXTENDED: public OBJPROP_DOUBLE_BROKER { public: OBJPROP_DOUBLE_BROKER_EXTENDED(const ENUM_OBJECT_PROPERTY_DOUBLE property, const int modifier): OBJPROP_DOUBLE_BROKER(property, modifier) { } OBJPROP_DOUBLE_BROKER_EXTENDED *operator+(const int add) { i = add; return &this; } }; OBJPROP_DOUBLE_BROKER_EXTENDED OBJPROP_FIRSTLEVEL(OBJPROP_LEVELVALUE, 0); 之后,您的初始 MQL4 代码就可以正常工作了。 vietlh216 2017.10.11 08:22 #107 Stanislav Korotky: 您可以尝试对我的 include 进行以下增补:之后,您的初始 MQL4 代码就可以正常工作了。现在我明白它是如何工作的了,非常感谢 Stanislav Korotky。 Carl Schreiber 2018.06.27 18:17 #108 我建议更换 string StringConcatenate(..); 由 string StringFormat("",..); 这两个函数 都会返回一个字符串,这样在某些情况下就更容易替换了! Marcin Madrzak 2019.01.09 00:18 #109 Stanislav Korotky: 您可以尝试对我的 include 进行以下增补:之后,您的初始 MQL4 代码应能正常工作。我在您的 ind4to5 include 中添加了 OBJPROP_DOUBLE_BROKER_EXTENDED 类,但它似乎不起作用,因为在最新的 Metaeditor 版本中,1958 年调用 ObjectSetDouble(chart_ID,name,OBJPROP_PRICE1,price1)返回编译错误 "ObjectSetDouble" - 没有任何重载可应用于函数调用。有什么好办法吗? Marcin Madrzak 2019.01.09 01:29 #110 我自己发现,ind4to5 中没有包含 ObjectSetDouble。我在 mqh 中添加了以下代码,结果问题迎刃而解。 bool ObjectSetDouble(long chart_id, const string name, const OBJPROP_DOUBLE_BROKER &property, const double value) { return ObjectSetDouble(chart_id, name, property.p, property.i, value); } 1...45678910111213 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好、
您知道如何在 MQL5 中使用 ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value) 吗?我尝试搜索 OBJPROP_FIRSTLEVEL,但在 MQL5 中没有找到它。
mql4:
void _SetFibLevel(string objname, int level, double value, string description)
//+------------------------------------------------------------------+
{
ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);
ObjectSetFiboDescription(objname,level,description);
}
-----------------------------------
您知道如何在 MQL5 中使用 ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value) 吗?我尝试搜索 OBJPROP_FIRSTLEVEL,但在 MQL5 中没有找到它。
mql4:
void _SetFibLevel(string objname, int level, double value, string description)
//+------------------------------------------------------------------+
{
ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);
ObjectSetFiboDescription(objname,level,description);
}
-----------------------------------
您可以阅读我的博文,了解现成的解决方案。
您可以阅读我的博文,了解现成的解决方案。
非常有用,谢谢 :)
您可以阅读我的博文,了解现成的解决方案。
感谢 Stanislav Korotky 提供的解决方案,但我不太擅长 MQL5,我仍然不知道如何将 OBJPROP_FIRSTLEVEL 转换为在 MQL5 中使用。
在 MQL4 中:
OBJPROP_FIRSTLEVEL+n
210+n
整数
整数值,用于设置/获取具有索引 n 的斐波纳契对象级别值。索引 n 可以从 0(级别数-1)开始,但不能大于 31。
但我在 MQL5 中没有找到它
ex: MQL4 : ObjectSetFiboDescription(objname,level,description);->MQL5: ObjectSetString(0,objname,OBJPROP_LEVELTEXT,level,description);
MQL4:ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);->MQL5:?
感谢 Stanislav Korotky 提供的解决方案,但我对 MQL5 不太熟悉,仍然不知道如何在 MQL5 中转换 OBJPROP_FIRSTLEVEL。
在 MQL4 中:
OBJPROP_FIRSTLEVEL+n
210+n
整数
整数值,用于设置/获取具有索引 n 的斐波纳契对象级别值。索引 n 可以从 0(级别数-1)开始,但不能大于 31。
但我在 MQL5 中没有找到它
ex: MQL4 : ObjectSetFiboDescription(objname,level,description);->MQL5: ObjectSetString(0,objname,OBJPROP_LEVELTEXT,level,description);
MQL4:ObjectSet(objname,OBJPROP_FIRSTLEVEL+level,value);->MQL5:?
啊,我找到了
ObjectSetDouble(0,objname,OBJPROP_LEVELVALUE,level,value);
^^
啊,我找到了
ObjectSetDouble(0,objname,OBJPROP_LEVELVALUE,level,value);
^^
您可以试试我的 include 的以下附录:
之后,您的初始 MQL4 代码就可以正常工作了。
您可以尝试对我的 include 进行以下增补:
之后,您的初始 MQL4 代码就可以正常工作了。
现在我明白它是如何工作的了,非常感谢 Stanislav Korotky。
我建议更换
由
这两个函数 都会返回一个字符串,这样在某些情况下就更容易替换了!
您可以尝试对我的 include 进行以下增补:
之后,您的初始 MQL4 代码应能正常工作。
我在您的 ind4to5 include 中添加了 OBJPROP_DOUBLE_BROKER_EXTENDED 类,但它似乎不起作用,因为在最新的 Metaeditor 版本中,1958 年调用 ObjectSetDouble(chart_ID,name,OBJPROP_PRICE1,price1)返回编译错误 "ObjectSetDouble" - 没有任何重载可应用于函数调用。有什么好办法吗?
我自己发现,ind4to5 中没有包含 ObjectSetDouble。我在 mqh 中添加了以下代码,结果问题迎刃而解。