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

 
trader781:

纠正

没有其他办法,把它放在其他地方,它将是错误的参数

它应该考虑到最近的一次。

我会试着改变它。

我试图使用标准的OrderModify(),但如果我同时不断地移动大量的订单,它就会被禁止。

谢谢你的批评。

毫无争议地宣布,这真的有那么难吗?

int Counts()
{код функции}

也调用一个空的,并把那里的elza放在大括号后面。

if(Counts()==0){че там нужно когда нет ордеров}
else {когда есть ордера}

而现在你有了这个。

if(Counts()==0){че там нужно когда else {когда есть ордера} нет ордеров}
 
Alekseu Fedotov:

试试吧 ^_~



它不起作用......仍然没有协议。
 
Movlat Baghiyev:
不起作用,没有交易,没有交易...。

它至少会把挂单放出来吗,不会,有什么错误?

...我把它修好了。

附加的文件:
0.mq4  8 kb
 
完成了论证。终端紧紧地挂着。
附加的文件:
count.mq4  19 kb
 
trader781:
完成论证。终端机挂紧。

因此,某种循环正在无休止地甩来甩去。

在代码的开头写上#property strict,然后修正,很多警告。

在最后一个函数中很可能被0除掉。

否则只有第一行会被执行,大括号区块会被遗弃。

一般来说,先在纸上用文字写出逻辑,否则就会摇摆不定。

 
Vitalie Postolache:


它应该根据图表上的小数点来执行一个带有浮动小数点的命令

归一化双倍数(Ask+TakeProfit*Point(),Digits)

你是如何看到一些线条没有被执行的?

 
trader781:

它应该根据图表上的小数点来执行一个带有浮动小数点的命令

归一化双倍数(Ask+TakeProfit*Point(),Digits)

你怎么知道有些行没有被执行?

是的,我在逻辑上有很大的问题。而如果把它写入一个整数变量,结果会剩下什么?这段代码的意义何在?

int lastlot,tp;
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);

在这里,部分代码是无主的,无论条件如何都会被执行,这有那么难理解吗?

else//+-------------если ордера уже есть
otype=FindLastOType(); //код, исполняющийся для else
{
код-сирота
}
 
Vitalie Postolache:

是的,逻辑上有很大问题。而如果把结果写到一个整数变量中,还剩下什么?这个代码的意义何在?

int lastlot,tp;
lastlot=NormalizeDouble(lastlot*Martin,3);
tp=NormalizeDouble(avg_price+TakeProfit*Point(),Digits);

部分代码是一个孤儿,不会被执行,这有这么难理解吗?

else//+-------------если ордера уже есть
otype=FindLastOType(); //код, исполняющийся для else
{
код, который никуда не идёт, сирота
}

停止

如果有订单

订单类型

{

则对该订单类型的操作将被执行

}

不是吗?

搞不清楚零除法从何而来
 
trader781:

停止

如果有订单

订单类型

{

则对该订单类型进行操作

}

不是吗?

是的,你是对的,只是代码的写法让前面的发言者误解了它。

补充:零除法 是指除以0,它在日志中告诉你哪一行

 
trader781:

停止

如果有订单

订单类型

{

则对该订单类型进行操作

}

不是吗?

以上已更正。在else之后的内容根据条件来执行。大括号区块是独立的,所以它与其他没有关系。

我搞不清楚零除法是怎么来的。

这就是

void ModifyOrders() //+------------модификация ввод тип
  {
   double avg_price; //+------------средняя цена
   price=0;//+------------цена
   bool z;//+------------выход в переменную
   double orderlots=0; //+------------лоты

   avg_price=NormalizeDouble(price/orderlots,Digits);//+------------то средняя ценаравна цена деленная на лот
@Vitaly Muzichenko 这里的 "误读 "在哪里?使用你的大脑。
原因: