[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 358

 
Chiripaha:

这个参数负责删除箭头的颜色https://docs.mql4.com/ru/trading/OrderDelete- 你可以把它(参数)从那里完全删除,那么箭头就不会随便出现。如果你真的需要一个箭头,你最好重新阅读书中的变量类型 部分。

顺便说一下,我在编码方面同样不是特别成熟(有些人称它为编程,不区分这些概念--但它是编码)。于是就钻进参考书中,查找这些东西是什么。多咀嚼参考书和教科书。通常情况下,大多数问题在那里都有涉及。- 每个人都会这样做,即使是有经验的人,因为你不可能记住所有东西。这些都是参考材料。

clDelete - 正如你可能猜到的,cl是颜色,Delete是删除 删除的颜色。


非常感谢你的回答。我已经删除了clDelete 变量。

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());
          }

但在这种情况下,编译器会产生另一个错误。

'DeleteOrders' - 函数没有返回结果 C:\Program Files\Alpari NZ MT4\experts/delete.mq4 (68, 5)

如何解决这个问题。


 
solnce600:

大家下午好!

我试图使用Kim的功能来删除测试器中的所有挂单

当我试图编译它时,我得到一个错误,说'clDelete'变量没有定义。

'clDelete' - 未定义变量 C:\Program Files\Alpari NZ MT4\experts\Positive.mq4 (94, 38)

请告诉我--应该如何定义,在哪里定义?

谢谢你。

首先,反转循环。

    for (i = k - 1; i <= 0; i--)

并给OrderDelete() 函数它想要的东西。

 
TarasBY:

阵列枚举。

- 如果我对你的 "愿望 "理解正确的话。

伊戈尔,非常感谢你!

根据我的理解,没有特殊的功能,所以必须用蛮力。

 
Chiripaha:

伊戈尔,非常感谢你!

根据我的理解,没有特殊功能,所以必须是过犹不及。

没有标准的功能。
 
solnce600: 'DeleteOrders' - 函数没有返回结果 C:\Program Files\Alpari NZ MT4\experts\Orders.mq4 (68, 5)

你的函数(自己写的)DeleteOrders()没有返回任何东西。看看你的代码--你如何调用它。
 

非常感谢您的及时回复。

该环路已经部署完毕。

现在它产生了另一个错误

DeleteOrders' -函数 没有返回结果

而OrderDelete(OrderTicket())函数除了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());
 
TarasBY:
你的(自己写的)DeleteOrders()函数没有返回任何东西。看看你的代码--你如何调用它。
也就是说,在你的自定义函数代码的末尾应该有TRUE或FALSE行?
 
TarasBY:
你的(自己写的)函数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' - 函数没有返回结果

请告诉我我的错误是什么。

谢谢你。

 
solnce600:

在函数代码的末尾插入了返回真值 的行数

改变了函数的调用

R = DeleteOrders(true);
if(R ==true )

函数类型被遗忘了。

void bool DeleteOrders (string sy="", int op=-1, int mn=-1)
 
TarasBY:

功能的类型被遗忘。

都好了!!!非常感谢!!!。