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

 
Artyom Trishkin:

抄袭。那么复制的东西有多少是被检查过的?

如果你使用的是带有平滑功能的指标,它需要比你预期的更多的条形图来进行计算。因此,你复制了并不意味着数据已被复制并完全可用。

检查数组的大小,如果数组没有达到要求的大小就退出OnTick(),这样做更容易。

如果在优化模式 下没有输出,但在正常模式下一切正常,该如何做?
输出到文件中,会不会有效果?

 
Sergey Likho:
如果交易中存在佣金和掉期,你能给我一个计算收支平衡价格的通用公式吗?

有一个简单的公式,适用于5位数的报价和美元的存款

手数x利润(点)=利润(美元)。

如果是买入,而且交易中有掉期和佣金,那么盈亏平衡价格将比开盘价高一点。
(如果没有掉期和佣金,盈亏平衡点就是开盘价)

但如果工具是异国的,或报价是4或2位数,或存款货币 是英镑。上面的公式没有帮助。
是否有一个通用的公式?

如果你有兴趣,这里有一个很好的代码,它考虑到了所有的问题 - https://www.mql5.com/ru/forum/58229#comment_1603761

Как получить усредненную цену позиции по двум (или более) лотам с разными ценами?
Как получить усредненную цену позиции по двум (или более) лотам с разными ценами?
  • 2015.05.01
  • www.mql5.com
Другими словами среднюю цену открытия позиции, при наличии нескольких лотов по разной цене.
 
请告诉我为什么最远的订单没有被关闭?我已经做了我应该做的一切,但它只是把清单上的顺序拿掉了。
int TimeSec;
//+------------------------------------------------------------------+
void start(){
if(NewSecRun()==false){return;} 
fOrderClose();}
//+------------------------------------------------------------------+
bool NewSecRun(){
if(TimeSec!=TimeSeconds(TimeCurrent())){
    TimeSec=TimeSeconds(TimeCurrent());
return (true);}   return (false);}  
//+------------------------------------------------------------------+
int fMarketOrders(int type){
   int c=0,aBuyCount=0,aSellCount=0;
     for(int i=0;i<OrdersTotal();i++){
       if(OrderSelect(i,SELECT_BY_POS)){
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
               case OP_SELL:aBuyCount++;break;
              }}else{return(-1);}}
   if(type==OP_BUY)c=aBuyCount;if(type==OP_SELL)c=aSellCount;
   return(c);}
//+------------------------------------------------------------------+
void fOrderClose(){     Comment("       ",fMarketOrders(OP_BUY)+fMarketOrders(OP_SELL) );
      if((fMarketOrders(OP_BUY)+fMarketOrders(OP_SELL))>=500){
          for(int i=0;i<OrdersTotal();i++){
          if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
          if(OrderType()==OP_SELL || OrderType()==OP_BUY){
    if( OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE) || OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE)){return;} }}} }  }
    
 
void fOrderClose()...
for
(int i=0;i<OrdersTotal();i++){           if(OrderSelect(i

在这里,我想。

 
Galim_V:

在这里,我想。

这个函数似乎选择的是第一笔交易。这就是我想要的方式。有什么不对吗?

 
Rustam Bikbulatov:

这个函数似乎选择的是第一笔交易。这就是我想要的方式。有什么不对吗?

我不是大师,但我没有看到这里有任何其他的封闭。从总数中选择。
 
            switch(OrderType()){
               case OP_BUY:aBuyCount++;break;
               case OP_SELL:aBuyCount++;break;

这就是BuyCount "大量 "增加而SellCount完全没有增加的情况。

 
Vladimir:

这就是BuyCount "大量 "增加而SellCount完全没有增加的情况。

谢谢你!我甚至没有注意到!我不这么认为,但也许这就是原因!"。

 

下午好!

我在mql5网站上买了一个指标,用于MT4终端,安装了它,一切正常......但一段时间前它停止了工作......我一直在和开发商、Forex Club的技术支持人员交谈(我有他们的终端),他们都无法帮助我。他们帮不了我,技术支持让我去mql.5论坛。

 
paka76:

下午好!

我在mql5网站上买了一个指标,用于MT4终端,安装了它,一切正常......但一段时间前它停止了工作......我一直在和开发商、Forex Club的技术支持人员交谈(我有他们的终端),他们都无法帮助我。他们帮不了我,技术支持让我去mql.5论坛。

对该指标的卖方。

原因: