MT5和速度在行动 - 页 6

 
A100:

建议你反复返回,直到读完整个当前队列或给定数量的事件。当交易活动结束后,会有一个计时器返回,你将可以一次性进入所有的活动。

好吧,我要说的是......。当然,当然,IMHO,但它要求在一个单独的线程中运行处理程序。所以,只是大声思考...

而如果你是为自己做的,你把一切都放在外面,每个处理者都会是类似的东西。

void OnXXX{
 gOnXXXMutex.Lock();
 COnXXXOverlapped overlapped=new COnXXXOverlapped(<param_list>);
 gOnXXXOverlappedList.PushBack(overlapped);
 gOnXXXMutex.Unlock();
 DLLOnXXX(<param_list>,overlapped,&gOnXXXMutex);
}
 
A100:
有一个更优雅的解决方案,没有OnTimer......考虑一下吧

自己想一想,为什么它不能工作。

 
fxsaber:

自己想一想,为什么它不能工作。

而且不需要思考--市场刚刚开盘,我检查了--一切正常,直到计算出线

if (наблюдаемая позиция закрылась по тейку)

交易事件 已被添加到队列中,可被读取

 
A100:

在这里,你不需要思考--市场刚刚开盘,我检查过了--一切都在运作,直到行。

交易事件已被添加到队列中,可被读取

对不起,但我甚至不会在你对正确操作的理解中解释什么。厌倦了要拼出简单的东西。

 
fxsaber:

我很抱歉,但我甚至不会在你对正确操作的理解中解释什么。我已经厌倦了对简单的事情进行解释。

如果你不想解释,就不要解释。我刚刚给你看了,加入

bool HandleNextEvent (ENUM_EVENT_TYPE);

并没有从根本上改变什么

 
A100:

并没有从根本上改变

这有很大的不同。只是似乎要花很多时间(结果未知)才能让这个想法在很多人的脑子里显而易见。

 
fxsaber:

这有很大的不同。只是似乎要花很多时间(结果未知)才能让这个想法在很多人的脑子里变得明显。

不是很多,因为根据爱因斯坦的简单理论:"如果你不能简单地解释它,你自己就不了解它"。

 
A100:

你不必这样做,因为根据爱因斯坦的简单理论:"如果你不能简单地解释它,那么你自己就没有完全理解它。"

是的,你没有得到它。

 
fxsaber:

是的,它对你不起作用。

而且我并没有试图解释什么--我举了一个例子并得到了结果。

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

MT5和速度在行动

A100, 2020.05.31 23:23

......市场刚刚打开,我检查了一下--一切都在工作,之前的 计算线

if (наблюдаемая позиция закрылась по тейку)

交易事件被添加到队列中,可以被读取

事实证明,你可以从OnMain()读取交易事件。你声称 不是这样
 
A100:

我并没有试图解释什么--我举了一个例子,得到了结果。

事实证明,你可以从OnMain()读取交易事件。你声称 的情况正好相反。

你没有理解任何东西。当我们真的返回时,我们正在进入形成的队列的On-function。它可能会导致暂停,从而无法在第一个OrderSend之后立即发送正确的第二个。

你建议通过在返回后保存所有的On-functions来积累队列,等待On-function,其中会有一个关于第一个OrderSend结束的消息。然后只发送第二个OrderSend。

同时,你不明白,在第一个OrderSend期间可以执行持仓,但它的OnTradeTransaction将比第一个OrderSend的OnTradeTransaction完成时间更晚(在同一微秒内,但更晚)进入队伍。