void DeleteOrders(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), ot;
if (sy=="") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ot=OrderType();
if (ot==OP_SELLSTOP) {
if (OrderSymbol()==sy && (op<0 || ot==op)) {
if (mn<0 || OrderMagicNumber()==mn)
{
OrderDelete(OrderTicket());
}
void DeleteOrders(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), ot;
if (sy=="") sy=Symbol();
for (i = k - 1; i <= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
ot=OrderType();
if (ot==OP_SELLSTOP) {
if (OrderSymbol()==sy && (op<0 || ot==op)) {
if (mn<0 || OrderMagicNumber()==mn)
{
OrderDelete(OrderTicket());
R = DeleteOrders(true); if(R ==true ) Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol(), 0,1)-1500*Point,1,iHigh( Symbol(), 0,1),iHigh( Symbol(), 0,1)-1610*Point, "jfh",123 );//ENA //Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol ( ), 0,1)-1000*Point,1,iHigh( Symbol ( ), 0,1)+330*Point,iHigh( Symbol ( ), 0,1)-1100*Point, "jfh",123 ) ;//ENA if (Ticket>0) X=iHigh( Symbol ( ), 0,1); if (OrderSelect ( ot-1,SELECT_BY_POS) if ( OrderType ( )==OP_SELLSTOP) DT = OrderOpenTime ();
} }
return(0);
void DeleteOrders(string sy="", int op=-1, int mn=-1) { int i, k=OrdersTotal(), ot;
if (sy=="") sy=符号(); for (i = k - 1; i <= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ ot=OrderType(); if (ot==OP_SELLSTOP) { if (OrderSymbol()==sy && (op<0 || ot==op){ if (mn<0 || OrderMagicNumber()==mn) { int W = OrderDelete(OrderTicket()); if (W==true) return(true);
这个参数负责删除箭头的颜色https://docs.mql4.com/ru/trading/OrderDelete- 你可以把它(参数)从那里完全删除,那么箭头就不会随便出现。如果你真的需要一个箭头,你最好重新阅读书中的变量类型 部分。
顺便说一下,我在编码方面同样不是特别成熟(有些人称它为编程,不区分这些概念--但它是编码)。于是就钻进参考书中,查找这些东西是什么。多咀嚼参考书和教科书。通常情况下,大多数问题在那里都有涉及。- 每个人都会这样做,即使是有经验的人,因为你不可能记住所有东西。这些都是参考材料。
clDelete - 正如你可能猜到的,cl是颜色,Delete是删除。 删除的颜色。
非常感谢你的回答。我已经删除了clDelete 变量。
但在这种情况下,编译器会产生另一个错误。
'DeleteOrders' - 函数没有返回结果 C:\Program Files\Alpari NZ MT4\experts/delete.mq4 (68, 5)
如何解决这个问题。
大家下午好!
我试图使用Kim的功能来删除测试器中的所有挂单
当我试图编译它时,我得到一个错误,说'clDelete'变量没有定义。
'clDelete' - 未定义变量 C:\Program Files\Alpari NZ MT4\experts\Positive.mq4 (94, 38)
请告诉我--应该如何定义,在哪里定义?
谢谢你。
首先,反转循环。
并给OrderDelete() 函数它想要的东西。
阵列枚举。
- 如果我对你的 "愿望 "理解正确的话。
伊戈尔,非常感谢你!
根据我的理解,没有特殊的功能,所以必须用蛮力。
伊戈尔,非常感谢你!
根据我的理解,没有特殊功能,所以必须是过犹不及。
非常感谢您的及时回复。
该环路已经部署完毕。
现在它产生了另一个错误
DeleteOrders' -函数 没有返回结果
而OrderDelete(OrderTicket())函数除了OrderTicket()和箭头颜色(我不需要)之外,还需要什么作为传递参数?
你的(自己写的)DeleteOrders()函数没有返回任何东西。看看你的代码--你如何调用它。
你的(自己写的)函数DeleteOrders()没有返回任何东西。看看你的代码--你如何调用它。
在函数代码的末尾插入了返回真值 的行数
改变了函数的调用
R = DeleteOrders(true);
if(R ==true )
Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol(), 0,1)-1500*Point,1,iHigh( Symbol(), 0,1),iHigh( Symbol(), 0,1)-1610*Point, "jfh",123 );//ENA
//Ticket=OrderSend(Symbol(),OP_SELLSTOP,0.1,iHigh( Symbol ( ), 0,1)-1000*Point,1,iHigh( Symbol ( ), 0,1)+330*Point,iHigh( Symbol ( ), 0,1)-1100*Point, "jfh",123 ) ;//ENA
if (Ticket>0)
X=iHigh( Symbol ( ), 0,1);
if (OrderSelect ( ot-1,SELECT_BY_POS)
if ( OrderType ( )==OP_SELLSTOP)
DT = OrderOpenTime ();
}
}
return(0);
void DeleteOrders(string sy="", int op=-1, int mn=-1) {
int i, k=OrdersTotal(), ot;
if (sy=="") sy=符号();
for (i = k - 1; i <= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
ot=OrderType();
if (ot==OP_SELLSTOP) {
if (OrderSymbol()==sy && (op<0 || ot==op){
if (mn<0 || OrderMagicNumber()==mn)
{
int W = OrderDelete(OrderTicket());
if (W==true)
return(true);
返回同样的错误。
'DeleteOrders' - 函数没有返回结果
请告诉我我的错误是什么。
谢谢你。
在函数代码的末尾插入了返回真值 的行数
改变了函数的调用
R = DeleteOrders(true);
if(R ==true )
函数类型被遗忘了。
功能的类型被遗忘。