初学者的问题 MQL5 MT5 MetaTrader 5 - 页 727 1...720721722723724725726727728729730731732733734...1503 新评论 Artyom Trishkin 2017.02.01 10:25 #7261 Vitaly Muzichenko:你能告诉我如何在创建对象时选择它,使它不会失去选择,在用户取消选择时也不会选择自己。在第四场比赛中很容易,但在第五场比赛中不起作用。以前是这样,而且工作得很好。void SetHLine(...,double p,bool sel) { if(ObjectFind(chart_ID,nm)!=0) { ObjectCreate(chart_ID,nm,OBJ_HLINE,0,0,0); ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel); ... } ObjectSetDouble(chart_ID,nm,OBJPROP_PRICE,p);}正如你所看到的,在创建时,我们可以一次选择或不选择正在创建的对象,它将不再改变,也不会有对它的引用,但在第五个中不起作用,它创建时没有选择。如何使mql5能够在创建时选择对象,然后在需要时手动管理 - 选择/不选择 objprop_selectable Vitaly Muzichenko 2017.02.01 10:42 #7262 嗯,是的,但图标并不显眼void SetArrow(string nm,string tooltxt="",datetime t=0,double p=0,color col=clrRed,long type=0) { if(ObjectFind(0,nm)!=0) { ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0); ObjectSetInteger(0,nm,OBJPROP_COLOR,col); ObjectSetInteger(0,nm,OBJPROP_SELECTED,true); ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true); ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false); ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt); } ObjectSetDouble(0,nm,OBJPROP_PRICE,p); ObjectSetInteger(0,nm,OBJPROP_TIME,t); } Questions from Beginners MQL5 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 错误、漏洞、问题 Vladimir Karputov 2017.02.01 10:48 #7263 Vitaly Muzichenko:是的,但图标没有被突出显示。void SetArrow(string nm,string tooltxt="",datetime t=0,double p=0,color col=clrRed,long type=0) { if(ObjectFind(0,nm)!=0) { ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0); ObjectSetInteger(0,nm,OBJPROP_COLOR,col); ObjectSetInteger(0,nm,OBJPROP_SELECTED,true); ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true); ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false); ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt); } ObjectSetDouble(0,nm,OBJPROP_PRICE,p); ObjectSetInteger(0,nm,OBJPROP_TIME,t); }一切都被强调了。 附加的文件: OBJ_ARROW.mq5 22 kb Vitaly Muzichenko 2017.02.01 11:08 #7264 Vladimir Karputov:一切都很突出。 妈的,我排除了一个功能,又检查了另一个功能,一切正常。谢谢你!我去睡觉了) Vitaly Muzichenko 2017.02.02 10:40 #7265 我注意到一个奇怪的特点,如果你这样设置,当你创建时,线条不会被高亮显示。ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);但如果你反其道而行之,那就不存在选择的问题。ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);出于某种原因,替换和值会改变和值? prostotrader 2017.02.02 10:59 #7266 Vitaly Muzichenko:我注意到一个奇怪的特点,如果你这样设置,当你创建时,线条不会被高亮显示。ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);但如果是相反的情况,选择就没有问题了。ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);出于某种原因,替换和值会改变和值?显然,当ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel)。 最后一条命令,图表被更新 Artyom Trishkin 2017.02.02 11:02 #7267 Vitaly Muzichenko:我注意到一个奇怪的特点,如果你这样设置,当你创建时,线条不会被高亮显示。ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);但如果你反其道而行之,那就不存在选择的问题。ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);出于某种原因,替换和值会改变和值? 最初,当你创建一个对象 时,你可能将其默认属性设置为不可选择。 然后你选择它(但该对象是不可选择的),结果是什么都没有被选中。 然后你把它设置为可选择。但现在 "喝酒太晚了"......。 Vitaly Muzichenko 2017.02.02 11:04 #7268 因此,这里是完整的代码。void SetVLine(long chart_ID=0,string nm="nm",datetime tm=0,int wd=1,int st=0,color cl=clrRed, string tooltxt="",bool sel=false,bool back=false) { if(ObjectFind(chart_ID,nm)<0) { ObjectCreate(chart_ID,nm,OBJ_VLINE,0,tm,0); ObjectSetInteger(chart_ID,nm,OBJPROP_TIME,tm); ObjectSetInteger(chart_ID,nm,OBJPROP_BACK,back); ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true); ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel); // ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true); ObjectSetString(chart_ID,nm,OBJPROP_TOOLTIP,tooltxt); ObjectSetInteger(chart_ID,nm,OBJPROP_COLOR,cl); ObjectSetInteger(chart_ID,nm,OBJPROP_WIDTH,wd); ObjectSetInteger(chart_ID,nm,OBJPROP_STYLE,st); } }是的,在所有对象类型上都仔细检查过,你必须先放"可 选择",然后放"选择"。谢谢你的参与和帮助解决! Questions from Beginners MQL5 [ARCHIVE]Any rookie question, so 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 111992086 2017.02.02 12:19 #7269 在MetaTrader5中,可以在3个区块中生成一个EA。1个区块提供来自一个指标或几个指标的信号。2块拖曳杆。3块风险。 我可以建议1.我可以在1个区块中添加自定义指标 吗?如果是的话,我应该如何做? 2.是否有可能纠正代码,使交易在两个方向上打开(现在,例如,如果买入交易被打开,卖出交易不会被打开,直到买入交易被关闭)。 Vladimir Karputov 2017.02.03 15:04 #7270 与本主题无关的评论已被移至 "MQL4 MT4 MetaTrader 4初学者的问题"。 1...720721722723724725726727728729730731732733734...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你能告诉我如何在创建对象时选择它,使它不会失去选择,在用户取消选择时也不会选择自己。在第四场比赛中很容易,但在第五场比赛中不起作用。
以前是这样,而且工作得很好。
if(ObjectFind(chart_ID,nm)!=0) {
ObjectCreate(chart_ID,nm,OBJ_HLINE,0,0,0);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
...
}
ObjectSetDouble(chart_ID,nm,OBJPROP_PRICE,p);
}
正如你所看到的,在创建时,我们可以一次选择或不选择正在创建的对象,它将不再改变,也不会有对它的引用,但在第五个中不起作用,它创建时没有选择。
如何使mql5能够在创建时选择对象,然后在需要时手动管理 - 选择/不选择
嗯,是的,但图标并不显眼
if(ObjectFind(0,nm)!=0) {
ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0);
ObjectSetInteger(0,nm,OBJPROP_COLOR,col);
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false);
ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt);
}
ObjectSetDouble(0,nm,OBJPROP_PRICE,p);
ObjectSetInteger(0,nm,OBJPROP_TIME,t);
}
是的,但图标没有被突出显示。
if(ObjectFind(0,nm)!=0) {
ObjectCreate(0,nm,type==0?OBJ_ARROW_BUY:OBJ_ARROW_SELL,0,0,0);
ObjectSetInteger(0,nm,OBJPROP_COLOR,col);
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(0,nm,OBJPROP_HIDDEN,false);
ObjectSetString(0,nm,OBJPROP_TOOLTIP,tooltxt);
}
ObjectSetDouble(0,nm,OBJPROP_PRICE,p);
ObjectSetInteger(0,nm,OBJPROP_TIME,t);
}
一切都被强调了。
一切都很突出。
我注意到一个奇怪的特点,如果你这样设置,当你创建时,线条不会被高亮显示。
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
但如果你反其道而行之,那就不存在选择的问题。
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
出于某种原因,替换和值会改变和值?
我注意到一个奇怪的特点,如果你这样设置,当你创建时,线条不会被高亮显示。
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
但如果是相反的情况,选择就没有问题了。
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
出于某种原因,替换和值会改变和值?
显然,当
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel)。
最后一条命令,图表被更新
我注意到一个奇怪的特点,如果你这样设置,当你创建时,线条不会被高亮显示。
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
但如果你反其道而行之,那就不存在选择的问题。
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
出于某种原因,替换和值会改变和值?
然后你选择它(但该对象是不可选择的),结果是什么都没有被选中。
然后你把它设置为可选择。但现在 "喝酒太晚了"......。
因此,这里是完整的代码。
string tooltxt="",bool sel=false,bool back=false) {
if(ObjectFind(chart_ID,nm)<0) {
ObjectCreate(chart_ID,nm,OBJ_VLINE,0,tm,0);
ObjectSetInteger(chart_ID,nm,OBJPROP_TIME,tm);
ObjectSetInteger(chart_ID,nm,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTED,sel);
// ObjectSetInteger(chart_ID,nm,OBJPROP_SELECTABLE,true);
ObjectSetString(chart_ID,nm,OBJPROP_TOOLTIP,tooltxt);
ObjectSetInteger(chart_ID,nm,OBJPROP_COLOR,cl);
ObjectSetInteger(chart_ID,nm,OBJPROP_WIDTH,wd);
ObjectSetInteger(chart_ID,nm,OBJPROP_STYLE,st);
}
}
是的,在所有对象类型上都仔细检查过,你必须先放"可 选择",然后放"选择"。
谢谢你的参与和帮助解决!
我可以建议1.我可以在1个区块中添加自定义指标 吗?如果是的话,我应该如何做?
2.是否有可能纠正代码,使交易在两个方向上打开(现在,例如,如果买入交易被打开,卖出交易不会被打开,直到买入交易被关闭)。