[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 369 1...362363364365366367368369370371372373374375376...1145 新评论 bion 2009.12.29 20:42 #3681 我正在测试一个EA,我的Sleep()函数不工作。 我想让我的专家顾问在订单关闭后冻结很长时间,但它却一直在做假开仓。 bool cl() {if (OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType(); double l=OrderLots(); int tik=OrderTicket(); Alert("tik=", tik); }if (t==OP_BUY) OrderClose(tik,l,Bid,3,Red); if (t==OP_SELL) OrderClose(tik,l,Ask,3,Green); Sleep(300000000); } Christo Tsvetanov 2009.12.29 20:50 #3682 睡眠 在测试器上不起作用。 [删除] 2009.12.29 21:25 #3683 我想知道是否有可能让EA对指标的颜色变化做出反应,比如说绿-买-红-卖。 在屏幕上出现不同的图标......也许在MT4有一个功能? Петр 2009.12.29 21:39 #3684 unumi >> : 我想知道专家顾问是否有可能对指标颜色的变化做出反应,比如说绿色-买入-红色-卖出。 而对于屏幕上不同图标的出现......也许MT4有一个功能? 如果指标改变了颜色,那么要么a)它的线被绘制在不同的缓冲区上,所以只要轮询它们就可以了解状态(在MT4中动态缓冲区的颜色不能改变,与MT5不同),要么b)指标线是由网格对象绘制的--那么你只需要读取ObjectGet(....)。 这同样适用于图标--它们可以通过缓冲器作为代码输出,也可以作为对象输出。 [删除] 2009.12.29 21:45 #3685 Svinozavr >> : 如果指标改变颜色,那么要么a)它的线条由不同的缓冲区显示,只需轮询它们就能了解状态(在MT4中,缓冲区的颜色不能动态改变,与MT5不同),要么b)指标线条由gr.objects显示--那么你只需要读取ObjectGet(....)属性。 图标也是如此--它们可以使用缓冲区作为代码绘制,也可以作为对象绘制。 >> 谢谢你,我知道了。 [删除] 2009.12.29 23:54 #3686 晚上好。 你能给我建议吗,我有两个相关的问题。 1.如何在每次打勾时将数组元素 归零(如果根据例子需要)。 2.如何正确地把数组元素的值加起来。 比如说。 每次打勾时,数组中的元素被填充,可以填充1或2或3或4....。或15个元素。 但每次我都需要数组元素值的算术和。 Dmitry Fedoseev 2009.12.30 00:08 #3687 gvi2504 писал(а)>> 晚上好。 你能给我建议吗,我有两个相关的问题。 1.如何在每次打勾时将数组元素归零(如果根据例子需要)。 2.如何正确地把数组元素的值加起来。 比如说。 每次打勾时,数组中的元素被填充,可以填充1或2或3或4....。或15个元素。 但每次我都需要数组元素值的算术和。 1.ArrayInitialize(ArrayName,0)函数。 2.在填充数组的过程中,立即宣布一个变量,例如sum,给它赋值为0,然后在填充数组的过程中给这个变量添加一个值。 [删除] 2009.12.30 00:12 #3688 Integer >> : 1.ArrayInitialize(ArrayName,0)函数。 2.在数组被填满时,立即进行求和。 声明一个变量,例如求和,给它一个0的值,然后在数组被填满时给这个变量添加一个值。 很好。 正是你所需要的。>>非常感谢你。 Dmitry Fedoseev 2009.12.30 00:12 #3689 Bion писал(а)>> 睡眠(300000000)。 即使Sleep()在测试器中能起作用,这么长的睡眠也是不可能的。打开后,可以记忆时间。 LastTime=TimeCurrent()。 在start()函数的开头做检查。 如果(TimeCurrent()<LastTime+Pause)返回(0)。 暂停 - 开启后的 "睡眠 "时间(以秒为单位)。 bion 2009.12.30 14:04 #3690 Integer писал(а)>> 这么长的睡眠时间是不可能的,即使Sleep()在测试器中可以工作。打开后,你可以记住打开的时间。 LastTime=TimeCurrent()。 在start()函数的开头做检查。 如果(TimeCurrent()<LastTime+Pause)返回(0)。 暂停 - 打开后的 "睡眠 "时间(以秒为单位)。 我按照你的建议做了。 datetime LastTime。 datetime Pause=3600。 int start() { 如果(TimeCurrent()<LastTime+Pause)返回(0)。 ... bool cl() {if(OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType(); double l=OrderLots()。 int tik=OrderTicket();Alert("tik=", tik); } 如果(t==OP_BUY) OrderClose(tik,l,Bid,3,Red)。 如果(t==OP_SELL) OrderClose(tik,l,Ask,3,Green)。 LastTime=TimeCurrent()。 } 然而,在测试器中,订单按照条件打开,但对时间没有反应。 此外,测试者对参数 "挂单存在的时间 "没有反应,也就是说,到了删除的时间,订单没有被删除。 它应该是这样的吗? 我们怎样才能使测试人员考虑到订单关闭后的时间? [WARNING CLOSED!] Any newbie 编码帮助 关闭所有'/'打开'工具 1...362363364365366367368369370371372373374375376...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我正在测试一个EA,我的Sleep()函数不工作。
我想让我的专家顾问在订单关闭后冻结很长时间,但它却一直在做假开仓。
bool cl() {if (OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType(); double l=OrderLots(); int tik=OrderTicket(); Alert("tik=", tik); }if (t==OP_BUY) OrderClose(tik,l,Bid,3,Red); if (t==OP_SELL) OrderClose(tik,l,Ask,3,Green); Sleep(300000000); }
睡眠 在测试器上不起作用。
我想知道是否有可能让EA对指标的颜色变化做出反应,比如说绿-买-红-卖。
在屏幕上出现不同的图标......也许在MT4有一个功能?
我想知道专家顾问是否有可能对指标颜色的变化做出反应,比如说绿色-买入-红色-卖出。
而对于屏幕上不同图标的出现......也许MT4有一个功能?
如果指标改变了颜色,那么要么a)它的线被绘制在不同的缓冲区上,所以只要轮询它们就可以了解状态(在MT4中动态缓冲区的颜色不能改变,与MT5不同),要么b)指标线是由网格对象绘制的--那么你只需要读取ObjectGet(....)。
这同样适用于图标--它们可以通过缓冲器作为代码输出,也可以作为对象输出。
如果指标改变颜色,那么要么a)它的线条由不同的缓冲区显示,只需轮询它们就能了解状态(在MT4中,缓冲区的颜色不能动态改变,与MT5不同),要么b)指标线条由gr.objects显示--那么你只需要读取ObjectGet(....)属性。
图标也是如此--它们可以使用缓冲区作为代码绘制,也可以作为对象绘制。
>> 谢谢你,我知道了。
晚上好。
你能给我建议吗,我有两个相关的问题。
1.如何在每次打勾时将数组元素 归零(如果根据例子需要)。
2.如何正确地把数组元素的值加起来。
比如说。
每次打勾时,数组中的元素被填充,可以填充1或2或3或4....。或15个元素。
但每次我都需要数组元素值的算术和。
晚上好。
你能给我建议吗,我有两个相关的问题。
1.如何在每次打勾时将数组元素归零(如果根据例子需要)。
2.如何正确地把数组元素的值加起来。
比如说。
每次打勾时,数组中的元素被填充,可以填充1或2或3或4....。或15个元素。
但每次我都需要数组元素值的算术和。
1.ArrayInitialize(ArrayName,0)函数。
2.在填充数组的过程中,立即宣布一个变量,例如sum,给它赋值为0,然后在填充数组的过程中给这个变量添加一个值。
1.ArrayInitialize(ArrayName,0)函数。
2.在数组被填满时,立即进行求和。 声明一个变量,例如求和,给它一个0的值,然后在数组被填满时给这个变量添加一个值。
很好。
正是你所需要的。>>非常感谢你。
睡眠(300000000)。
即使Sleep()在测试器中能起作用,这么长的睡眠也是不可能的。打开后,可以记忆时间。
LastTime=TimeCurrent()。
在start()函数的开头做检查。
如果(TimeCurrent()<LastTime+Pause)返回(0)。
暂停 - 开启后的 "睡眠 "时间(以秒为单位)。
这么长的睡眠时间是不可能的,即使Sleep()在测试器中可以工作。打开后,你可以记住打开的时间。
LastTime=TimeCurrent()。
在start()函数的开头做检查。
如果(TimeCurrent()<LastTime+Pause)返回(0)。
暂停 - 打开后的 "睡眠 "时间(以秒为单位)。
我按照你的建议做了。
datetime LastTime。
datetime Pause=3600。
int start()
{
如果(TimeCurrent()<LastTime+Pause)返回(0)。
...
bool cl() {if(OrderSelect(0,SELECT_BY_POS)==true){ int t=OrderType();
double l=OrderLots()。
int tik=OrderTicket();Alert("tik=", tik);
}
如果(t==OP_BUY) OrderClose(tik,l,Bid,3,Red)。
如果(t==OP_SELL) OrderClose(tik,l,Ask,3,Green)。
LastTime=TimeCurrent()。
}
然而,在测试器中,订单按照条件打开,但对时间没有反应。
此外,测试者对参数 "挂单存在的时间 "没有反应,也就是说,到了删除的时间,订单没有被删除。
它应该是这样的吗?
我们怎样才能使测试人员考虑到订单关闭后的时间?