初学者的问题 MQL5 MT5 MetaTrader 5 - 页 405

 
Leanid Aladzyeu:

下面是代码。

if(OrderStopLoss()>Ask+(TrailingStop+TrailingStep)*Point)

你没有考虑OrderStopLoss()等于零的可能性。而零在任何情况下都会小于表达式Ask+(TrailingStop+TrailingStep)*Point 条件将返回错误。

 
if((OrderStopLoss()>Ask+(TrailingStop+TrailingStep)*Point)||OrderStopLoss()==0)
试试吧,看看是否有效。我还没有真正接触到代码。
 

谢谢你维塔利-阿纳涅夫弗拉基米尔-祖博夫!

我正在编写一个基于RSI指标的EA,该EA的原理是通过指标开仓,但也将通过同一指标平仓(我不知道收盘价)。

如果(OrderType()==OP_BUY && irsa <=20 || irsa >=40 )

OrderClose(ticket,Lot,Ask,Slippage,Blue)。

return(0);

这个条件没有得到满足。为什么?(它打开并立即关闭订单,如此循环下去)。

这里是主要问题。我的专家顾问将与大量的订单一起工作,我需要计算市场上所有订单的平均价、最高价和最低价,我如何找到所有订单的收盘价以实现总利润和其他类似操作?

 
Leanid Aladzyeu:

正如参考文献中指出的那样,给出了一个错误。

是的!?那么它给你的是什么样的错误呢?编译器是怎么说的?

 
Leanid Aladzyeu:

谢谢你维塔利-阿纳涅夫弗拉基米尔-祖博夫!

我正在编写一个基于RSI指标的EA,该EA的原理是通过指标开仓,但也将通过同一指标平仓(我不知道收盘价)。

如果(OrderType()==OP_BUY && irsa <=20 || irsa >=40 )

OrderClose(ticket,Lot,Ask,Slippage,Blue)。

return(0);

这个条件没有得到满足。为什么?(它打开并立即关闭订单,如此循环下去)。

这里是主要问题。我的专家顾问将处理大量的订单,我需要计算所有订单在市场上的平均价、最高价和最低价,我如何找到所有订单的收盘价以实现总利润和其他类似操作?

在关闭头寸之前,不会知道头寸的收盘价。之后,你可以用函数OrderClosePrice()找出交易历史中的收盘价。

它开仓并立即平仓,因为平仓条件已经满足。检查关闭条件的逻辑。尝试以这种方式开始写。

if(OrderType()==OP_BUY && (irsa <=20 || irsa >=40))
{
  OrderClose(ticket,Lot,Ask,Slippage,Blue);

 return(0); 
}

阅读关于逻辑表达式计算的优先权的参考资料。

"你需要计算市场上所有订单的平均价、最高价和最低价" - 对不起,我们说的是什么价格?未结订单的价格?一个货币对的当前价格?所有未结头寸的总利润将达到而没有任何损失时的价格?

 
Tapochun:

是的!?那它发出的错误是什么样的呢?编译器是怎么说的?

对不起,没有错误,但样本方法对我不起作用(我在拖网时出现错误)。
 
Vitalii Ananev:

仓位的收盘价在平仓前是不知道的。然后可以在交易历史中找到OrderClosePrice()函数。

它打开并立即平仓,因为平仓条件得到满足。检查关闭条件的逻辑。尝试以这种方式开始写。

请阅读关于逻辑表达式计算的优先权的帮助。

那么,如何在例如一个网格中,需要一个总的TP或(和)总的价格。

也许有一个(几个)缓冲区,价格应该被保存,或者指标本身有一个缓冲区,最后一个订单的开盘价 被保存(你可以从那里获取并保存价格到我们的全球缓冲区)。

 
Leanid Aladzyeu:

例如,如果我们设置一个网格,我们将需要一个总的TP或(和)一个总的价格。

也许有一个(几个)缓冲区来保存价格,或者在指标本身,也许有一个缓冲区,最后一个订单的开盘价 被存储(从那里我们可以采取并保存到我们的全球缓冲区)。

我建议从教科书《科瓦廖夫》开始学习语言(你可以在我们的网站上找到它)。当然,它有点过时了,但结合文件,一切都会好起来的
 
Leanid Aladzyeu:

谢谢你维塔利-阿纳涅夫弗拉基米尔-祖博夫!

我正在编写一个基于RSI指标的EA,该EA的原理是通过指标开仓,但也将通过同一指标平仓(我不知道收盘价)。

如果(OrderType()==OP_BUY && irsa <=20 || irsa >=40 )

OrderClose(ticket,Lot,Ask,Slippage,Blue)。

return(0);

这个条件没有得到满足。为什么?(它打开并立即关闭订单,如此循环下去)。

这里是主要问题。如果你的EA将处理大量的订单,你需要计算市场上所有订单的平均价、最高价和最低价,你如何找到所有订单的收盘价以实现总利润和其他类似操作?

你正试图关闭一个上升趋势的买入订单,如果你不了解基本的东西--阅读文件。

还是你习惯于经验法则?

 
Leanid Aladzyeu:

例如,如果我们设置一个网格,我们将需要一个总的TP或(和)一个总的价格。

也许有一个(几个)缓冲区来保存价格,或者在指标本身中可能有一个缓冲区,最后一个订单的开盘价 被保存在那里(从那里我们可以采取并保存到我们的全球缓冲区)。

你应该计算出所有头寸的平均开仓价。并在此基础上计算所有头寸的总获利。仓位的开放价格是已知的(OrderOpenPrice())。把所有的东西加起来,然后除以空缺职位的数量。