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

 

在访问交易历史时,我对未决订单 和头寸真的感到困惑。

如果一个挂单触发并转为头寸,并且成功平仓(交易),那么它是作为一个订单还是作为一个头寸储存在历史缓存中?

我如何通过地位来解决它的问题或作为一个命令?

 
vladzeit:

在访问交易历史时,我对未决订单 和头寸真的感到困惑。

如果一个挂单触发并转为头寸,并且成功平仓(交易),那么它是作为一个订单还是作为一个头寸储存在历史缓存中?

我如何通过地位来解决它的问题或作为一个命令?

研究 一部分的文件应该会有帮助。

首先是一个订单,它进入了一个交易,然后是一个头寸。然后,如果是一个净值账户,有更多的订单和交易,最后有一个相反方向的订单,手数与现有头寸相等,从它那里有交易,没有头寸。它被关闭了,历史上没有头寸,只有创建、改变和关闭这个头寸的订单和交易。但所有这些都是与位置ID相连的。
Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 

4758

没能计算出利润或利润率


如何才能解决这个问题?

 
Alexey Viktorov:

研究这部分 文件应该会有帮助。

首先是一个订单,它进入了一个交易,然后是一个头寸。接下来,如果它是一个净值账户,有更多的订单和交易,最后有一个相反方向的订单,其手数与现有头寸相等,从它的交易和没有头寸。它被关闭了,历史上没有头寸,只有创建、改变和关闭这个头寸的订单和交易。但所有这些都是与位置ID相连的。

阿列克谢。我读过那本入门书,但你用自己的话解释了一切,比那里写的更简单...。一切都很清楚,可以理解。谢谢你)

 
vladzeit:

阿列克谢。我读过 那本入门书,但你用自己的话解释了一切,比那里写的更容易。一切都很清楚,可以理解。谢谢你)

请。




但我说的是 "研究这一节",而不是读它。这一切都在那里,但散落在这部分的各种功能描述中,这只是文档,不是初学者的书。也有其他文章。当然,其中一定有一个人谈到了这个问题。

 
Alexey Viktorov:
请。




但我说的是 "研究这一节",而不是读它。这一切都在那里,但散落在这一部分的各种功能的描述中,它只是文档,而不是初学者的入门读物。也有其他文章。当然,其中一定有一个人谈到了这个问题。

你是对的,我应该研究,而不仅仅是阅读,目前引起兴趣的东西。但是,我在跟随我的情绪和我的愿望,希望得到一个快速和实际的结果,以工作算法的形式实施。

我试图从mql5中获得我所需要的东西来解决这个狭窄的任务...因此,我在教育方面有很多差距)

我似乎已经能够认识字母了,但他们不想组成单词和句子)。

这也很难,因为没有确切的教科书,没有例子和练习,而且帮助是为那些已经有一些编程经验的人设计的,事实上只解释他们自己的语法。

当然,论坛上有很多信息,但由于mql5的新变化,一切都很分散,有时也不可靠。

我也许应该从mql4开始认识...那里显然有更多的教程,然后,在得到了基本的经验,一个想法之后,开始使用mql5,研究它的差异。

我部分是这样做的,在mql4中寻找例子,并试图通过类比在mql5中实现它们。但有时因为一些职能和原则的大相径庭,这让我更加迷茫))))。

显然,所有自学成才的人都要经历这个过程)。

你上面说的,我一定会考虑到,至少我会尝试)。

 

更新终端 后,专家顾问停止构建。

误差

'INIT_FAILED' - expression not boolean  

可能是什么问题?

//+------------------------------------------------------------------+
//| Lots or risk in percent for a deal from a free margin            |
//+------------------------------------------------------------------+
bool LotsOrRisk(const double lots,const double risk,const int digits_adjust)
  {
   if(lots<0.0 && risk<0.0)
     {
      Print(__FUNCTION__,",ERROR: Parameter(\"lots\" or \"risk\") can't be less than zero");
      return(false);
     }
   if(lots==0.0 && risk==0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" == 0.0 and \"risk\" == 0.0");
      return(false);
     }
   if(lots>0.0 && risk>0.0)
     {
      Print(__FUNCTION__,", ERROR: Trade is impossible: You have set \"lots\" > 0.0 and \"risk\" > 0.0");
      return(false);
     }
   if(lots>0.0)
     {
      string err_text="";
      if(!CheckVolumeValue(lots,err_text))
        {
         Print(__FUNCTION__,", ERROR: ",err_text);
         return(false);
        }
     }
   else if(risk>0.0)
     {
      if(m_money!=NULL)
         delete m_money;
      m_money=new CMoneyFixedMargin;
      if(m_money!=NULL)
        {
         if(!m_money.Init(GetPointer(m_symbol),Period(),m_symbol.Point()*digits_adjust))
            return(INIT_FAILED);
         m_money.Percent(risk);
        }
      else
        {
         Print(__FUNCTION__,", ERROR: Object CMoneyFixedMargin is NULL");
         return(INIT_FAILED);
        }
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+

这就是编译器所发誓的函数

return(INIT_FAILED);
 
ilvic:

更新终端 后,专家顾问停止构建。

误差

可能是什么问题?

这就是编译器所发誓的函数

LotsOrRisk()函数被声明为一个bool。这意味着它只能返回true OR false。

 
Juer:

显然,这更多是我的硬件的错......和我的系统。

将系统升级到vin10,用位扇区定位做了磁盘检查。好吧,我想我必须升级到SSD。

编译也花了10多分钟。要花这么长时间来编译是不正常的...

 
下午好。
该指标是否可以在图表上显示输入参数?也许有一个现成的例子?