问吧! - 页 38 1...313233343536373839404142434445...182 新评论 Ioannis Sfairopoulos 2006.10.03 06:49 #371 伊恩, 检查Straddle&Trail专家。你可以在这里找到它https://www.mql5.com/en/forum/general MehdiForex 2006.10.03 07:03 #372 大家好。 我想在同一时间关闭所有的订单,但我做不到。 我试过这个代码,但它没有工作。 '''''''''''''''''''''''''''''''''''''''' total = OrdersTotal(); for(i=0;i < total;i++) { 如果(OrderSelect(i, SELECT_BY_POS)==true) { OrderClose(OrderTicket(),OrderLots(),Ask,80,CLR_NONE)。 OrderClose(OrderTicket(),OrderLots(),Bid,80,CLR_NONE)。 } } '''''''''''''''''''''''''''''''''''''''' 有人能帮助我吗? 如果你能帮助我,我将非常感激 Ioannis Sfairopoulos 2006.10.03 07:16 #373 迈赫迪。 把这段代码(程序)放在start()部分之外,当你如果满足了关闭所有交易的条件,就这样调用程序。 int start() { // 你的代码在这里 ..... 如果(你的条件在这里)ShutDownAllTrades()。 } void ShutDownAllTrades { int Retry; While (OrdersTotal()>0) { for (int cnt=OrdersTotal()-1;cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 如果(OrderType()==OP_BUY) { Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); } RefreshRates()。 OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow)。 Sleep(1000); } 否则如果(OrderType()==OP_SELL) { Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); } RefreshRates()。 OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow)。 Sleep(1000); } 否则 { Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); } OrderDelete(OrderTicket())。 Sleep(1000); } } } } HTH Yannis 关闭所有'/'打开'工具 战略展望系统 请大师帮助修改一个错误 MehdiForex 2006.10.03 11:15 #374 亲爱的扬尼斯。 谢谢你的帮助。 我祝愿你一切顺利。 MehdiForex 2006.10.03 11:42 #375 Yannis: 迈赫迪。把这段代码(程序)放在start()部分之外,当你如果满足了关闭所有交易的条件,就这样调用程序。 int start() { // 你的代码在这里 ..... 如果(你的条件在这里)ShutDownAllTrades()。 } void ShutDownAllTrades { int Retry; While (OrdersTotal()>0) { for (int cnt=OrdersTotal()-1;cnt>=0;cnt--) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); 如果(OrderType()==OP_BUY) { Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); } RefreshRates()。 OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow)。 Sleep(1000); } 否则如果(OrderType()==OP_SELL) { Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); } RefreshRates()。 OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow)。 Sleep(1000); } 否则 { Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); } OrderDelete(OrderTicket())。 Sleep(1000); } } } } HTH Yannis 亲爱的Yannis。 我按照你说的在 "int deinit() { }"之间添加了你的程序(从头开始),但是在编译void ShutDownAllTrades {之后出现了问题:'{'应该是逗号或分号。 我期待着你的答复。 非常感谢 Ioannis Sfairopoulos 2006.10.03 12:23 #376 哦,对不起。 缺少的是void ShutDownAllTrades()后面的()。 也要注意订单关闭函数 中名为 "滑点 "的变量。 你可能需要用你下单时使用的变量来替换它。 亚尼斯 MehdiForex 2006.10.03 12:34 #377 Yannis: 哦,对不起。缺少的是void ShutDownAllTrades()后面的()。 也要注意订单关闭函数中名为'Slippage'的变量。 你可能需要用你下单时使用的变量来替换它。 Yannis 它工作得非常好! 再次感谢 european 2006.10.03 16:26 #378 我使用的是MTF CCI指标,来自多时间框架指标线,它是一条黄色台阶线,见所附图片。 当该线高于100水平(超买)时,价格将下降,而当其低于-100(超卖)时,价格将上升。 唯一的问题是它并不总是刷新,我必须通过在图表上点击右键并选择 "刷新 "来手动完成。 我想问一下程序员。在MQ4中是否有任何功能可以在每个刻度 上自动进行这种刷新? 请提供建议。 欧佩安 附加的文件: mtf_cci.jpg 37 kb richx7 2006.10.03 17:51 #379 试试这个。 void ObjectsRedraw() 重新绘制图表上的所有对象 采样 ObjectsRedraw()。 你可能需要先使用ObjectCreate。 european 2006.10.04 05:03 #380 richx7: 试试这个。void ObjectsRedraw() 重新绘制图表上的所有对象 样本 ObjectsRedraw()。 你可能需要先使用ObjectCreate。 谢谢你的回答。 据我所知,ObjectsRedraw()刷新的是刚刚被 "创建 "和 "设置 "的对象。 我需要刷新一个不在对象列表中的指标,所以ObjectsRedraw()不起作用。 或者你知道如何引用一个现有的指标? 1...313233343536373839404142434445...182 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
伊恩,
检查Straddle&Trail专家。你可以在这里找到它https://www.mql5.com/en/forum/general
大家好。
我想在同一时间关闭所有的订单,但我做不到。
我试过这个代码,但它没有工作。
''''''''''''''''''''''''''''''''''''''''
total = OrdersTotal();
for(i=0;i < total;i++)
{
如果(OrderSelect(i, SELECT_BY_POS)==true)
{
OrderClose(OrderTicket(),OrderLots(),Ask,80,CLR_NONE)。
OrderClose(OrderTicket(),OrderLots(),Bid,80,CLR_NONE)。
}
}
''''''''''''''''''''''''''''''''''''''''
有人能帮助我吗?
如果你能帮助我,我将非常感激
迈赫迪。
把这段代码(程序)放在start()部分之外,当你如果满足了关闭所有交易的条件,就这样调用程序。
int start()
{ // 你的代码在这里 .....
如果(你的条件在这里)ShutDownAllTrades()。
}
void ShutDownAllTrades
{ int Retry;
While (OrdersTotal()>0)
{ for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
如果(OrderType()==OP_BUY)
{ Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); }
RefreshRates()。
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow)。
Sleep(1000);
}
否则如果(OrderType()==OP_SELL)
{ Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); }
RefreshRates()。
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow)。
Sleep(1000);
}
否则
{ Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); }
OrderDelete(OrderTicket())。
Sleep(1000);
}
}
}
}
HTH
Yannis
亲爱的扬尼斯。
谢谢你的帮助。
我祝愿你一切顺利。
迈赫迪。
把这段代码(程序)放在start()部分之外,当你如果满足了关闭所有交易的条件,就这样调用程序。
int start()
{ // 你的代码在这里 .....
如果(你的条件在这里)ShutDownAllTrades()。
}
void ShutDownAllTrades
{ int Retry;
While (OrdersTotal()>0)
{ for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{ OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
如果(OrderType()==OP_BUY)
{ Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); }
RefreshRates()。
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Yellow)。
Sleep(1000);
}
否则如果(OrderType()==OP_SELL)
{ Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); }
RefreshRates()。
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Yellow)。
Sleep(1000);
}
否则
{ Retry=0; while (Retry<5 && !IsTradeAllowed() ) { Retry++; Sleep(1000); }
OrderDelete(OrderTicket())。
Sleep(1000);
}
}
}
}
HTH
Yannis亲爱的Yannis。
我按照你说的在 "int deinit() { }"之间添加了你的程序(从头开始),但是在编译void ShutDownAllTrades {之后出现了问题:'{'应该是逗号或分号。
我期待着你的答复。
非常感谢
哦,对不起。
缺少的是void ShutDownAllTrades()后面的()。
也要注意订单关闭函数 中名为 "滑点 "的变量。
你可能需要用你下单时使用的变量来替换它。
亚尼斯
哦,对不起。
缺少的是void ShutDownAllTrades()后面的()。
也要注意订单关闭函数中名为'Slippage'的变量。
你可能需要用你下单时使用的变量来替换它。
Yannis它工作得非常好
!
再次感谢
我使用的是MTF CCI指标,来自多时间框架指标线,它是一条黄色台阶线,见所附图片。
当该线高于100水平(超买)时,价格将下降,而当其低于-100(超卖)时,价格将上升。
唯一的问题是它并不总是刷新,我必须通过在图表上点击右键并选择 "刷新 "来手动完成。
我想问一下程序员。在MQ4中是否有任何功能可以在每个刻度 上自动进行这种刷新?
请提供建议。
欧佩安
试试这个。
void ObjectsRedraw()
重新绘制图表上的所有对象
采样
ObjectsRedraw()。
你可能需要先使用ObjectCreate。
试试这个。
void ObjectsRedraw()
重新绘制图表上的所有对象
样本
ObjectsRedraw()。
你可能需要先使用ObjectCreate。谢谢你的回答。
据我所知,ObjectsRedraw()刷新的是刚刚被 "创建 "和 "设置 "的对象。
我需要刷新一个不在对象列表中的指标,所以ObjectsRedraw()不起作用。![](https://c.mql5.com/forextsd/smiles/frown.png)
或者你知道如何引用一个现有的指标?