开发人员!你甚至会测试你所创造的东西吗? - 页 9

 
Mikalas:

C-4 在我看来,获得行动信息要比获得其他信息更重要。

比历史更有趣。我们需要知道关于该仪器的两件事。

1. 担保书。

2.职务

在我看来,分析交易要重要得多,因为它们处于最低水平,你可以通过它们了解订单和头寸,但事实并非如此。但事实并非如此。

在你的例子中,OnInit()在程序开始时被执行一次。但必须只有一个检查块。它使EA的状态与当前情况同步。而且,新的数据从哪里来并不重要,从初始化时的订单历史 中,从执行时的历史中,还是从OnTradeTransaction事件中。结果必须是相同的,因为也只有一个区块负责。

 

Vasiliy - 这是一段 "原始 "的代码。

这很简单--你接受一个订单,然后与它合作....。

my_order = temp_order;

一条线!

 
papaklass:

OnTradeTransaction事件以其目前的形式是否需要?

事实证明不是这样的,因为我们仍然要从历史中获取信息。
 

Mikalas:

我刚刚注意到,该产品必须经过测试(我是用自己的钱来测试的)!我想这是一个很好的例子。

我认为这是在离题。

所以呢,你给我杂志和密码?

我有心情在这里帮忙。

 
C-4:
事实证明不是这样的,因为我们仍然要从历史中获取信息。

哦,我的天啊!它在历史上有效吗?

papaklass可能是指OnTradeTransaction 返回错误?

 

sergeev ->我有心情在这里帮忙。

对不起,但我不需要任何帮助。

 
Mikalas:

sergeev ->我有心情在这里帮忙。

对不起,但我不需要任何帮助。

为什么你要流口水9页?
 
Mikalas:

Vasiliy - 这是一段 "原始 "的代码。

这很简单--你接受一个订单,然后与它合作....。

一条线!

这不是一句话或一百句话的问题。这是关于方法的问题。A.k. 下面是作为例子的代码,看看我的意思。无论是否有TradeTransaction事件,它都能保证跟踪新订单的到来,无论是初始化还是新订单的到来。

/*Какое бы событие не наступило, оно будет обработано OnRefresh()*/

OnInit()
{
    OnRefresh();
}

void OnTimer(void)
{
    OnRefresh();
}

void  OnTradeTransaction(
      const MqlTradeTransaction&    trans,
      const MqlTradeRequest&        request,
      const MqlTradeResult&         result
   )
{
     OnRefresh();
}

///
/// Следит за поступлением новых трейдов и ордеров.
///

void OnRefresh()
{
    HistorySelect(0, TimeCurrent());
    for(; ordersCountNow < HistoryOrdersTotal(); ordersCountNow++)
    {  
       printf(HistoryOrderGetTicket(dealsCountNow));
    }
}

///
/// Текущее количество ордеров.
///
int ordersCountNow;
 
papaklass:

这就是我所说的。

为什么这个OnTradeTransaction没有被分离成单独的事件。

- OnOrderCreate //发出一个订单。

- OnOrderModify // 修改一个活动订单。

- OnOrderDelete //删除该订单。

- OnPositionOpen //打开位置。

- OnPositionModify //设置/修改停止,改变位置的音量

- OnPositionClosed //使用止损或市场订单关闭头寸。

等等。

通过这种方法,交易员将订阅并处理他感兴趣的事件。

我确实收到了所有我感兴趣的活动,那里有一个部门!"。
 

C-4,当然会被处理,但为什么需要OnRefresh()呢?

一切都在OnTradeTransaction() 中共享。我不缺乏信息。