我的方法。核心是引擎。 - 页 158

 
Artyom Trishkin:

等等。你写道。

那么,谁有什么军队?

好吧,我把你对 "聪明人 "的无礼行为归结为一个事实,即你的俄语说得不是很好,不明白它意味着对与你交谈的人的一种贬义和轻蔑的态度。

为什么,你失去了你的幽默感还是什么?

 
Vasiliy Sokolov:

不幸的是,是的。两个根本不同的系统之间的回调接口是不可能的。

实际上,这个问题几乎是反问句)

IMHO,随着NET兼容性的增加,有必要为终端添加回调。至少一个)至少,要把事件推到终端队列中。

 
Artyom Trishkin:

如果通过定时器,你打算如何在测试器中工作?我以为你说你在做跨平台的代码。

Artyom,什么问题? 如果定时器不工作,它是从其他来源模仿的...

它甚至在 "战斗机器人 "中总是如此,因为EventSetTimer:-)

ps/军国主义主题有一种感染力......指挥所、战斗机器人...... "Galacteco危险"

 
Dmitriy Skub:

实际上,这个问题几乎是反问句)

IMHO,随着NET兼容性的增加,很有必要在终端增加回调功能。至少一个)至少,将事件推入终端队列。

我无法在MT5中捕获事件,Spy++由于某种原因无法看到 图表事件。 似乎使用了自写的类和事件模型而不是标准的Windows事件。

我也使用OnTimer,这就是为什么我试图在请求中接收最小的数据包,尽管在目前的PC速度下,我可能会变得很贪婪)))。

阿尔乔姆-特里什金

如果通过定时器,你打算如何在测试器中工作?我以为你说你做的是跨平台的代码。

当我尝试使用МТ5时,在C#下编写是一种真正的乐趣--我调用.dll,立即启动一个表单,并将所有图形放入一个单独的线程(Thread),仅此而已,之后我只是在C#和МТ5之间进行数据交换,带有按钮的图形表单像通常的寡妇应用程序一样工作--来自МТ5的请求只接收早期点击元素的状态,没有任何东西被制动或将要被制动;)

 
Maxim Kuznetsov:

Artyom,你的问题是什么? 如果定时器不工作,它是从其他来源模仿的......

在 "战斗机器人 "中甚至总是这样,因为EventSetTimer :-)

ps/军国主义主题有一种感染力......指挥所、战斗机器人...... "Galacteco危险"

嗯...我想问问瓦西里他是怎么做的。为了与我很久以前自己做的东西进行比较(当然不是没有Vasil的建议)。

 
Igor Makanu:

我没能在MT5中捕获事件,由于某些原因,Spy++不能看到 图表事件,似乎使用的是自己编写的类和事件模型,而不是标准的widows模型,在MT4中我可以毫无问题地发送widows事件。

我也使用OnTimer,这就是为什么我试图在请求中接收最小的数据包,尽管在目前的PC速度下,我可能会变得很贪婪)))。

当我尝试在MT5中使用OnTimer时,测试仪中的定时器生成没有问题,而且在C#下编写是一种真正的乐趣--我调用.dll,立即启动表单并将所有图形放在一个单独的线程(Thread)中,之后你只需在C#和MT5之间进行数据交换,带有按钮的图形表单就会像通常的Windows应用程序一样自行工作--MT5的请求只接收早期点击元素的状态,没有任何东西被减慢;)

我通过测试仪中的定时器在5分钟内完成。即使是它的简单使用(它是一个毫秒级的多用表)也会导致测试仪的严重减速。因此,只需拒绝可视化器中的定时器--在刻度上工作是同样的事情。做了两个模型--通过定时器和通过OnTick()的标志事件。通过实时的计时器,通过刻度线--在可视化器中。

大话--三个模型--也是通过OnChartEvent()--那里也只有实时的。

 
Igor Makanu:

我没能在MT5中捕获事件,由于某些原因,Spy++不能看到 图表事件,似乎使用的是自己编写的类和事件模型,而不是标准的widows模型,在MT4中我可以毫无问题地发送widows事件。

我也使用OnTimer,这就是为什么我试图在请求中接收最小的数据包,尽管在目前的PC速度下,我可能会变得很贪婪)))。

我尝试在MT5中使用OnTimer时,测试仪中的定时器生成没有问题,在C#下写代码是件很愉快的事--我调用.dll,立即启动表单,在一个单独的线程(Thread)中启动所有的图形,就这样,现在我只是 在C#和MT5之间进行数据交换,带有按钮的图形表单像一个普通的寡妇应用程序一样自己工作--在MT5请求中,只发送早期点击元素的状态,没有什么滞后,也不会滞后;)

如果你也能在MQL水平和夏普的其他东西上制作模型,那就太好了。那么逻辑是分开的,观点是分开的。前台处理设计和可用性,不处理交易后台。改变表格上的按钮配置或将一个表格分割成两个或三个,应该不会影响专家顾问的算法。

 
Vasiliy Sokolov:

彼得,如果你不介意的话,我会准备一篇文章,介绍如何利用与.Net库集成的新功能,在MQL中很容易地创建一个图形应用程序。文章的标题将是 "在VisualStudio中为交易专家创建基于.Net框架和C#的自定义表单"。

你的方法和你的想法让我很兴奋。我想知道是否有可能只用基本的编程技巧,就能为我的专家顾问快速而轻松地创建一个图形表格。我做了一个实验,结果发现这是有可能的!我得到一个这样的表格。

我们的想法是,用户将在VisualStudio编辑器中绘制所需的表格,所有将此窗口与MQL代码整合的必要工作都将在幕后以自动模式完成。为了做到这一点,我不得不写一个C#控制器--一种类似于你的内核的东西,然而,它只需要大约200行代码。

你可以在我开始的文章中了解这一切是如何进行的。

就是这样,瓦西里,你已经用大锅盖盖住了你的内核。

 
Dmitry Fedoseev:

就是这样,瓦西里,你用煤渣块盖住了你的头。

一般预计会是这样的结局,但目前还没有具体的文章...

尽管这样的文章有99%的可能性会在内核引擎之前问世。彼得需要保持在剩余的百分比上。

 
Artyom Trishkin:

我是通过测试仪中的定时器在5个月内完成的。即使仅仅是使用它(而且是毫秒级的多轮计时器)也会导致测试仪的严重减速。因此,只需拒绝可视化器中的定时器--在刻度上工作是同样的事情。做了两个模型--通过定时器和通过OnTick()的标志事件。在实时中通过计时器,在渲染器中通过刻度线。

ZS.我撒谎了--三个模型--也是通过OnChartEvent()--那里也是,只有实时的。

我还没有决定设计,我检查了它在测试器中的工作,没有任何问题,感谢@fxsaber 对#define代码的帮助--我在插入注入器时自动添加了OnTick(), OnTimer()处理程序...所以我可以在专家顾问的任何部分进行必要的调用。

我甚至不知道滞后在哪里? 我经常使用定时器--400毫秒,但呼叫只从.NET中获得。dll 2个数组int 10-ele-v和2个int(多少个按钮和多少个复选框,这样维度的数组),在物理上根本不可能慢下来,因为即使写在数组中的按钮被点击了,而在int数中我发了一个按钮,原则上数组是不需要的,作为备份如果用户精神崩溃,它比0.5秒会捣毁按钮))

我想我们有不同的任务--当涉及到TS的构建时,你不需要图形,而当涉及到TS的调试和可视化时,你不需要测试人员的速度;)


Maxim Kuznetsov:

如果你也做一个MQL级别的模型,其余的用Sharpay,那就太好了。那么逻辑是分开的,观点是分开的。前台处理的是设计和可用性,不参与交易后台。改变表格上的按钮配置或将一个表格分割成两个或三个,应该不会以任何方式影响专家顾问的算法。

我将把它作为一个提醒,好帖子。并把它写在描述中,如果我成熟的公众评论

原因: