mql5语言的特点、微妙之处以及技巧 - 页 17

 
组合器
呃,如果它不可见,为什么?

如果不需要显示指标,这些参数可以不显示。

而且与旧代码的兼容性也不会受到影响。在测试 过程中,该指标 始终显示。

 
斯拉瓦

因为不可能通过指标句柄(计算部分)来设置显示属性(绘图部分)。BUG是指某些东西以一种方式编写,但以另一种方式工作。

这里需要一种不同的方法。通过短名称访问指标,如ChartIndicatorXXX功能组。类似于ChartIndicatorSetInteger(chart_id,sub_window,indicator_name,PROP_COLOR,mod,value)。

我们已经想好了,但还没来得及做这件事。

如果是为了以程序方式设置的指标,用指标句柄代替高亮不是更好吗?
 

关于交易、自动交易系统和交易策略测试的论坛

mql5语言的特殊性,技巧和窍门

fxsaber, 2017.02.25 16:02

  static bool HistoryDealSelect( MqlTradeResult &Result )
  {
    if ((Result.deal == 0) && (Result.order != 0))
    {
      if (::HistorySelectByPosition(::HistoryOrderGetInteger(Result.order, ORDER_POSITION_ID)))
        for (int i = ::HistoryDealsTotal() - 1; i >= 0; i--)
        {
          const ulong DealTicket = ::HistoryDealGetTicket(i);

          if (Result.order == ::HistoryDealGetInteger(DealTicket, DEAL_ORDER))
          {
            Result.deal = DealTicket;

            break;
          }
        }
    }

    return(::HistoryDealSelect(Result.deal));
  }
  // Учтены MT5-нюансы: Result.deal == 0
  static bool OrderSendSync( const MqlTradeRequest &Request, MqlTradeResult &Result )
同步性已不再有意义。只有负责Result.deal纠正的那块被强调。
 
fxsaber:
同步性不再有意义。只有负责Result.deal修正的那块被强调。
什么是 "结果.交易修正"?
 
阿列克谢-维克多罗夫
如果这是为程序化设置的指标而设,用指标句柄代替高亮不是更好吗?
不是更好。因为不改变架构是不可能的。我详细地描述了原因。
 
阿尔乔姆-特里什金
什么是 "结果.交易修正"?

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

fxsaber, 2017.02.23 15:34

来自BOD的消息。

不保证所产生的交易票据的完成。是否填充取决于仪器的执行模式和特定服务器的设置。

谁为一个非零的结果奠定了基础。交易--采取行动。

 
罗费尔德

如果不需要显示指标,这些参数可以不显示。

如果你想显示它,你可以把这些设置放在参数中。
 
fxsaber:

嗯......。我看到,你不能在非零结果的基础上进行银行交易。那么这句话是怎么说的呢?

// Учтены MT5-нюансы: Result.deal == 0

它们在哪里得到了说明?

 
Artyom Trishkin:

嗯......。我看到,你不能在非零结果的基础上进行银行交易。那么这句话是怎么说的呢?

它们在哪里得到了说明?


在OrderSendSync中,重载的(见上文)HistoryDealSelect 被调用。
 

fxsaber:

static bool OrderSendSync( const MqlTradeRequest &Request, MqlTradeResult &Result )

同步性不再有意义。只有负责Result.deal纠正的那块被强调。

让我问问为什么是静态的