订单选择功能问题 - 页 2

 
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               Print("OrderClose error ",GetLastError());
           }
         break;
        }
     }
//---
  }
for(int i=0;i<OrdersTotal();i++)
 

一种新的艺术类型。

交易讽刺。

我喜欢它。

 
boopa26:

1.不需要C知识。Mql4是不同的功能

boopa26不浪费人们的时间

  1. 你认为你不知道如何写代码就可以写代码。函数是不相关的。
    boopa26 :想写订单选择函数来关闭订单,没有for循环或while循环。
    那你刚才 为什么要发布 确实使用循环的代码?你在浪费我们的时间。
  2. 在有多个订单的情况下(一个EA多个图表,多个EA,手动交易
 
for(last_index_inside_trade_pool=OrdersTotal()-1;last_index_inside_trade_pool>=0;last_index_inside_trade_pool--)

   {if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
       OrderMagicNumber()==magic_number&&
       OrderType()==OP_SELL)

       OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);


    if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==0)

       Print("OrderSelectError: ",GetLastError());}

上面的代码看起来像我在浪费你的时间吗? 呃......可能不是 WHRoeder

这不是一件容易的事,但上面的代码可以关闭订单,但不明白。

Boopa26认为

static int last_index_inside_trade_pool = OrdersTotal()-1

while last_index_inside_trade_pool >=0 do code below. Do last_index_inside_trade_pool--

下面的代码找到订单,检查 订单,关闭订单,做GetLastError()。

虽然不明白

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
 
boopa26: 上面的代码看起来像我在浪费你的时间吗?
是的,我问了两个问题,而你完全无视它们。
 

那你为什么只贴出 使用循环的代码

循环的代码可以用不同的方式来做同样的事情。

static int last_index_inside_trade_pool;
//below start()
last_index_inside_trade_pool=OrdersTotal()-1;

  if(OrdersTotal()>0&&
     iMA(NULL,0,1,0,MODE_SMMA,PRICE_CLOSE,1)>iMA(NULL,0,10,0,MODE_SMMA,PRICE_CLOSE,1)&&
     OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES)==1&&
     OrderMagicNumber()==99999&&
     OrderType()==OP_SELL)

    {last_index_inside_trade_pool--;
     OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Red);}

没有循环,但结果是一样的。 Boopa26更喜欢用if条件,而不是for循环,while循环。

你认为你可以在不知道如何写代码的情况下写代码。函数是不相关的。

我知道如何做if conditions while cycles for cycles基本数学。这是一个好的开始,WHRoeder。为什么?因为有函数。Mql4确实做了C编程的例子* () ==等,但因为有函数而不一样。

 

什么开关顺序选择功能从0到1?

if(OrderSelect(last_index_inside_trade_pool,SELECT_BY_POS,MODE_TRADES))==1

在订单总数大于0后,订单选择函数是否从0切换到1?


文件

"返回值

如果函数成功,它返回真,否则返回假。要获得错误信息,必须调用GetLastError() 函数。"

如果函数成功,它返回1?

 

我喜欢这个人:-)

你是只在这个论坛上写,还是有其他链接?

如果你是在舞台上做这个,我在哪里可以买到票?

 

只有这个论坛

EDDIE你对订单选择功能 有什么了解吗?

 
boopa26:

那你为什么只贴出 使用循环的代码

循环的代码可以用不同的方式来完成相同的功能,而不用循环。

没有循环,但结果是一样的。 Boopa26更喜欢用if条件,而不是for循环,while循环。

你认为你可以在不知道如何写代码的情况下写代码。函数是不相关的。

我知道如何做if conditions while cycles for cycles 基础数学。这是一个好的开始,WHRoeder。为什么?因为有了FUNCTIONS

你想知道为什么你的代码仍然不能工作?因为你仍然不知道 "基础知识",如果你遵循 "步骤1",学会正确地用 "C "编码,你就会更擅长用MQL编码(因为它类似于C和C++)!你的结果是什么?

你甚至不能理解 "函数"(第3步)!因为 "OrderSelect() "是什么意思?文档中明确指出,"OrderSelect()"返回的是布尔值,而什么时候开始返回的是整数?你甚至没有检查 "OrderClose() "的结果,也没有检查你的代码中的任何部分是否发生了运行时错误

你的结果。你的结局是 "烧焦的木炭",由于你拒绝接受我们的建议,你也浪费了我们的时间!