[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 132

 
Sergey_Rogozin:

那么我想就是这样了。

是这样吗?

int start()
 {
   ArrayResize(ValueArr,size);
   ValueArr[size-1] = GetValue();
   size++;
   return();
 }
 
alsu:

现在我明白了。

谢谢你。

 
IgorM:

没有这样的内置函数,你必须自己编写,我在这里展示了一个例子:https://www.mql5.com/ru/forum/131277/page113


谢谢

 
IgorM:

没有这样的内置函数,你必须自己编写,我在这里展示了一个例子:https://www.mql5.com/ru/forum/131277/page113

以及如何规定专家顾问只有这一个开仓交易的条件。
 

alsu:

int start()
 {
   ArrayResize(ValueArr,size);
   ValueArr[size-1] = GetValue();
   size++;
   return();
 }

那么你就不需要size-1,否则第一次运行时索引为0-1,数组大小为 零。

那么它应该是这样的。

int start()
 {
   size++;
   ArrayResize(ValueArr,size);
   ValueArr[size-1] = GetValue();
   return();
 }
 
artmedia70:

那么你就不需要size-1,否则索引将是0-1,而数组的大小在第一次运行时将是零。

然后它是这样的。



在程序开始时有初始化 int size=1。

 
IgorM:

没有这样的内置函数,你必须自己编写,我在这里展示了一个例子:https://www.mql5.com/ru/forum/131277/page113

为什么当我附上这段代码时,它开出的交易数量多得令人难以置信?
 
alsu:

在程序的开始有一个初始化 int size=1;


没有抓到...我只记得第一个,尺寸原本是零。
 
sto_mat:

为什么当我附上这段代码时,它开启的交易数量多得令人难以置信?


这不可能,因为在代码中。

double history(){
int time = 0;double profit = 0;//обьявляем необходимые нам переменные куда мы положим интересующие нас характеристики ордера
for(int i = OrdersHistoryTotal();i>=0;i--){// Перебираем все закрытые ордера
  if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//если ордер с таким номером (i) в списке закрытых ордеров есть ( не путать с тикетом)
    if(OrderSymbol() == Symbol()){//если выбранный ордер был открыт по нашей валютной паре
      if(time<OrderCloseTime()){//(сравниваем его с хранящимся в пероеменной time) 
        time=OrderCloseTime();//если время закрытия ордера больше - ложим его в переменную
        profit=OrderProfit();//и заодно запоминаем прибыль ордера
      }
    }
  }
}
//по окончании этой процедуры в наших переменных будут сидет наибольшее время закрытия, и его профит. Или по нулям если история чистая.
//теперь мы можем выставлять условия в зависимости от результата процедуры
   
if(profit == 0 &&time == 0){//действия если история чистая

}
if(profit >= 0){//действия если последний ордер был прибыльным, или нулевым

}
if(profit <  0 ){//действия если последний ордер был убыточным

}
return(0);
}


没有交易https://book.mql4.com/ru/trading/ordersend

 
IgorM:


它不可能是相同的,因为在代码中。

没有交易https://book.mql4.com/ru/trading/ordersend


我已经插入了

if(profit == 0 &&time == 0){//如果历史记录是干净的,则采取行动

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,Bid-6*Point)。


返回。
}
如果(利润>=0){//如果最后一笔订单是盈利的,或者是零,则采取行动

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-12*Point,Bid+12*Point) 。


返回。
}
如果(利润<0 ){/行动 如果(利润<0 ){/行动 如果最后一个订单无利可图

OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Bid+15*Point,Bid-15*Point)。


返回。
}
return(0);
}