新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 38

 
Vitalie Postolache:

然后把参数传给函数,因为它被提供了。虽然去掉它比较好,但同义词就出来了。

而且,并非循环中的所有订单都会被重新计算。

for(i=OrdersTotal()-1; i>=0; i--)
我有一个很好的想法,就是与同一股票中的其他EA进行比较。
我纠正了它,插入了一个参数,把它放到了全局范围内,现在它产生了一个警告,说这个参数已经被其他函数用作输入了

覆盖的票据,从最后一个有马丁的订单开始工作。

然后,如何删除'count'隐藏的全局声明,在第...

让它发挥应有的作用是很有趣的。

到目前为止,测试器显示出相当好的结果,有时 "专家顾问中出现无法克服的错误"。

 

问候。

偶然发现了这种格式的录音。

if (OrderSelect(ticket, SELECT_BY_TICKET)) OrderModify(ticket, OrderOpenPrice(), SL, TP, 0;

即......这里的条件性if语句已经被一个 bool类型的 贸易函数 取代,而不是一个表达式。我的理解是否正确,这样的写法等于 。

如果OrderSelect(ticket,SELECT_BY_TICKET))==true {OrderModify(ticket,OrderOpenPrice(), SL, TP,0};?

我在帮助和教程中都找过了--我没有发现这样的格式。

我可以用这种方式直接写不同类型的函数而不是表达式吗?如果是这样,算法会是什么?

 
trader781:
我把它修好了,把一个参数放到了全局范围,现在它产生了一个警告,说这个参数已经被其他函数用作输入了

有覆盖的票,从上次与马丁的订单开始工作

然后如何删除'count'的声明,隐藏全局声明的行...

让它发挥应有的作用是很有意思的。

到目前为止,测试器显示出相当好的结果,但有 "专家顾问中不可克服的错误"。

请给我看更正后的版本,因为猜测出来的是没有代码的。
 
spoiltboy:

问候。

偶然发现了这种格式的录音。

if (OrderSelect(ticket, SELECT_BY_TICKET)) OrderModify(ticket, OrderOpenPrice(), SL, TP, 0;

即......这里的条件性if语句已经被一个 bool类型的 贸易函数 取代,而不是一个表达式。我的理解是否正确,这样的写法等于 。

如果OrderSelect(ticket,SELECT_BY_TICKET))==true {OrderModify(ticket,OrderOpenPrice(), SL, TP,0};?

我在帮助和教程中都找过了--我没有发现这样的格式。

我可以用这种方式直接写不同类型的函数而不是表达式吗?如果是这样,算法会是什么?

就像这样如果(OrderSelect(ticket,SELECT_BY_TICKET))==true {OrderModify(ticket,OrderOpenPrice(), SL, TP,0}; 将不会工作。该条件不能被抛出括号。

如果(OrderSelect(ticket,SELECT_BY_TICKET)==true){OrderModify(ticket,OrderOpenPrice(), SL, TP,0} 你可以。

 
Vitalie Postolache:

就像如果(OrderSelect(ticket,SELECT_BY_TICKET))==true {OrderModify(ticket,OrderOpenPrice(), SL, TP,0}; 将不会工作该条件不能被抛出括号。

如果(OrderSelect(ticket,SELECT_BY_TICKET)==true){OrderModify(ticket,OrderOpenPrice(), SL, TP,0} 你可以。

是的,我漏掉了一个带括号的错字。否则,这个问题是有意义的。
 
Vitalie Postolache:
请给我看更正后的版本,因为没有代码,它是猜测的。

好的。

算是完成了我能做的。说明已经完成。目标是了解为什么它不能按照我想要的方式工作。

附加的文件:
count.mq4  19 kb
 
//+------------------------------------------------------------------+
//|                                                      ОТЛОЖКИ.mq4 |
//+------------------------------------------------------------------+
extern double StopLoss     = 1000; //Стоплосс ордера  
extern double TakeProfit   = 1500; //Тейкпрофит ордера
extern double TrailingStop = 1000; // трал
extern int    Delta        = 100; //Расстояние от цены для установки ордера
extern double LOT          = 0.1; //Объём позиции
extern int    Magic        =200;
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  if (TrailingStop!=0) Trailing();
  
   //ИНДИКАТОР RSI
   double RSI0=iRSI(NULL,0,5,PRICE_CLOSE,0);
   double RSI1=iRSI(NULL,0,5,PRICE_CLOSE,1);
  
   int b,s,p,res;
   double BuyPrice=Ask+Delta*Point;
   double SellPrice=Bid-Delta*Point;
  
   for (int i=0; i<OrdersTotal(); i++)
    {
     if (OrderSelect(i, SELECT_BY_POS)==true)
      {  
        if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
        if (OrderType()==OP_BUYSTOP) b++;
        if (OrderType()==OP_SELLSTOP) s++;        
      }  
    }
      double SL,TP;
//---- buy stop
   if(RSI0>50&&RSI1<50)
     {
          
      res=OrderSend(Symbol(),OP_BUYSTOP,LOT,BuyPrice,0,BuyPrice-StopLoss*Point,BuyPrice+TakeProfit*Point,"ОТЛОЖКИ",Magic,OP_SELLSTOP,Blue);
     }        
//---- sell stop  
   if(RSI0<50&&RSI1>50)
     {

      res=OrderSend(Symbol(),OP_SELLSTOP,LOT,SellPrice,0,SellPrice+StopLoss*Point,SellPrice-TakeProfit*Point,"ОТЛОЖКИ",Magic,OP_BUYSTOP,Red );
     }
//---- buy stop делете
      if(RSI0<50&&RSI1>50)
    {
     OrderDelete( OrderTicket());
    
    }
//---- sell stop делете
      if(RSI0>50&&RSI1<50)
    {
     OrderDelete( OrderTicket());
    
    }
//----
   return(0);
  }
//--------------------------------------------------------------------
//---------ФУНКЦИЯ ТРАЛА----------------------------------------------
//--------------------------------------------------------------------

void Trailing()
{
   for(int i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if(OrderSymbol()==Symbol()||OrderMagicNumber()==Magic)
       if(OrderType()==OP_BUY)
         {
          if(TrailingStop>0)  
            {                
              if(Bid-OrderOpenPrice()>TrailingStop)
               {
                 if(OrderStopLoss()<Bid-TrailingStop)
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop,OrderTakeProfit(),0,Green);
                  }
               }
            }
         }
        
        if(OrderType()==OP_SELL)
         {
           if(TrailingStop>0)  
            {                
              if((OrderOpenPrice()-Ask)>TrailingStop)
               {
                 if((OrderStopLoss()>(Ask+TrailingStop)) || (OrderStopLoss()==0))
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+TrailingStop,OrderTakeProfit(),0,Red);
                  }
               }
            }
         }  
   }
}
//+------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------+--------------------------------------------------------------------+
未删除的订单,请帮助
 

未删除的订单,请帮助
你是如何得到一张未开封的订单的票的?
 
trader781:
你是如何得到未开封订单的票据的?
对吗,我就是不能把它放进去。
for (int i=0; i<OrdersTotal(); i++)
    {
     if (OrderSelect(i, SELECT_BY_POS)==true)
      {  
        if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
        if (OrderType()==OP_BUYSTOP)
             if (сигнал_bue) OrderDelete(OrderTicket());
                 else b++;
        if (OrderType()==OP_SELLSTOP)
             if (сигнал_sell) OrderDelete(OrderTicket());
                 else s++;
      }  
    }
 
Movlat Baghiyev:
对吗,我就是不能把它放进去。
for (int i=0; i<OrdersTotal(); i++)
    {
     if (OrderSelect(i, SELECT_BY_POS)==true)
      {  
        if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) p++;
        if (OrderType()==OP_BUYSTOP)
             if (сигнал_bue) OrderDelete(OrderTicket());
                 else b++;
        if (OrderType()==OP_SELLSTOP)
             if (сигнал_sell) OrderDelete(OrderTicket());
                 else s++;
      }  
    }
我不知道该如何解释。但这绝对是一部杰作。
原因: