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

 
Vitaly Muzichenko:

也许你想让带有图形的终端将标记发送到网络服务器,而其他终端则接收标记并将其显示在图表上。这不是一项容易的任务,但它是可以做到的

我怎样才能做到这一点,或者我应该读什么书来学习如何做到这一点?标记是自动发送并被其他用户接受,还是每次都需要作为模板上传?
 
Илья:
我如何做到这一点,或者我应该阅读什么来了解如何做到这一点?标记是自动发送并被其他用户接受,还是每次都需要像模板一样单独上传?

我认为你需要一个小按钮,在你做完标记后,按下它,然后发送。在接收机上也是如此,如果你想得到一个标记,那么就按第二个按钮。图上 总共有2个按钮,而且没有资源成本来不断监测它

 

如果激活限价单后,市场上始终有一个头寸,我如何限制下单?

在外汇交易中,我曾经检查过订单的数量--头寸。

if( CalculateBUYPositions()==1)
//// 
 int CalculateBUYPositions()
  {
   int total=0;
//ENUM_ORDER_TYPE   order_type=ORDER_TYPE_BUY;
   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
         if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
                   if(m_position.PositionType()==POSITION_TYPE_BUY)
                  
              {
            total++;
            }
//---
   return(total);
  }
  //

如果只有一个头寸,必须设置限价订单

我怎样才能取代这种状况呢?

 
lil_lil:

如果激活限价单后,市场上始终有一个头寸,我如何限制下单?

在外汇交易中,我曾经检查过订单的数量--头寸。

如果只有一个头寸,必须设置限价订单

我们如何才能取代这种状况?

这个问题并不清楚。你混淆了命令和立场。

你引用的代码 "CalculateBUYPositions() "是计算买入头寸的数量。


请重新表述你的问题。

 
Vladimir Karputov:

这个问题并不清楚。你混淆了命令和立场。

你引用的代码 "CalculateBUYPositions() "是计算买入点的数量。


重新表述你的问题。

在外汇方面,如果我有一个头寸,我下了一个限价单,限价单被激活,头寸的数量 增加,EA不会下更多的限价。

在外汇方面,如果有一个仓位限制,所有的限价单都被激活,那么仓位的数量就会增加,并且不再有限价单。我需要一个相等的,替代条件,--"如果有一个位置" CalculateBUYPositions()==1

 
lil_lil:

在外汇上,如果有一个头寸,我就下一个限价单,限价单被激活,头寸的数量 增加,EA就不再下限价单。

在外汇市场上,如果有一个头寸,限价单被激活,头寸的数量就会增加,EA就不会再下限价单。我需要一个相等的,替代条件,--"如果有一个位置" CalculateBUYPositions()==1

不,不是的。要说明的是,目前的符号上已经有一个位置。

  • 在对冲账户中,一旦挂单被触发,就会有一个额外的头寸。
  • 在触发挂单后,净额结算账户上的
    • 如果该挂单是针对当前符号,那么。
      • 现有职位将增加
      • 现有职位将被减少
      • 现有头寸将转入
      • 现有立场将逆转


为了澄清你的问题:你在寻找哪种账户类型,以及你需要跟踪什么。

 
lil_lil:

如果激活限价单后,市场上始终有一个头寸,我如何限制下单?

在外汇交易中,我曾经检查过订单的数量--头寸。

如果只有一个头寸,必须设置限价订单

如何才能改变这种状况?

这可以通过交易数量或开仓和修改仓位所涉及的订单数量来确定。你只需要为该职位的票据选择历史,并检查号码。如果存在一种变体,即该头寸增加了成交量,然后被相反的限价单或其他方式部分平仓,我们将需要循环交易,并将交易类型算作DEAL_ENTRY_IN和/或其他类型

Документация по MQL5: Торговые функции / HistorySelectByPosition
Документация по MQL5: Торговые функции / HistorySelectByPosition
  • www.mql5.com
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть  в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
 
谢谢你,我将头寸的手数与起始手数进行比较,如果它们不相等,我就退出。
 

第二天,将机器人从MT4改造成MT5。对待处理的订单 进行了设置--它是有效的。关于MqlTradeRequest的帮助。

   else if(orderType==ORDER_TYPE_BUY_STOP)
     {
      request.type =ORDER_TYPE_BUY_STOP;                                // тип ордера
      price        =SymbolInfoDouble(Symbol(),SYMBOL_ASK)+offset*point; // цена для открытия 
      request.price=NormalizeDouble(price,digits);                      // нормализованная цена открытия 
     }
   else if(orderType==ORDER_TYPE_SELL_STOP)
     {
      request.type     =ORDER_TYPE_SELL_STOP;                           // тип ордера
      price=SymbolInfoDouble(Symbol(),SYMBOL_ASK)-offset*point;         // цена для открытия 
      request.price    =NormalizeDouble(price,digits);                  // нормализованная цена открытия 
     }

在这两种情况下,问--看起来是一个错误。在第二种情况下,对于SELL_STOP,最好是使用Bid ??

 
STARIJ:

第二天,将机器人从MT4改造成MT5。对待处理的订单 进行了设置--它是有效的。关于MqlTradeRequest的帮助。

在这两种情况下,问--看起来是一个错误。在第二种情况下,SELL_STOP的Bid会更好。


卖出以出价方式打开,关闭以询问方式打开。