在不同终端中运行的两个EA之间交换数据

 

本主题是 "2009年5月15日开始的NFA禁锁令 "的技术延续。

特别是,从这个帖子开始。

'NFA从2009年5月15日起禁止锁定

solandr 26.04.2009 12:06

2.如果你有一个美国经纪账户,你将把它分成2个同等规模的独立账户。在一个账户中,所有工具的头寸都只能买入,在另一个账户中,所有工具的头寸都只能卖出。在一个账户上禁止套期保值时,不违反这一规则,因为我们有两个账户。然后,我们需要制定一个方法来分配这两个不同账户上唯一的专家顾问的头寸。因为这不是我以前的任务,我想知道有什么方法可以在两个不同的账户上准确执行一个专家顾问的订单?

我想讨论在不同终端工作的两个EA之间进行数据交换的技术实现。

我认为最有希望的讨论方向是使用共享内存空间在EA之间传输信息,但任何其他选项都可以讨论。

也就是说,每个专家顾问都需要掌握来自其他终端的订单的全部信息。如何安排这个问题?

我想只要求在这个主题中讨论技术细节。提前感谢您!

 
所有的技术细节以及算法的实现早已被描述。使用搜索。
 
HIDDEN >> :
所有的技术细节以及算法的实现早已被描述。使用搜索。

你是指这篇文章还是别的什么?

为高效的专家工作自动选择DC"。

 
相反,它是"WinAPI文件操作"
 

对于你的任务,使用关于自动选择DC的文章中所描述的工具包是一种冒险。没有任何dlls,你可以只用文件就能搞定。

 

其中一个终端使用sqllite3 表明这是最简单的方法之一。

开发人员将所有的终端信息加载到这个数据库是一个好主意。

然后通过通常的功能,我们就可以获得阅读更多的结构化信息...

例如,现在分析日志以估计例如开仓的 质量,是一项非难事。

对不起,如果我离题了...

既然我们在谈论DB,我在寻找可能有助于在账户之间交换的方法。

如何写和读同一个 数据库单元?

也就是说,为了他们的目的,我们开始一个表 在她的字段中,让我们有条件地称为A、B、C、D, 有一行。

从计划上讲,它是这样的。


A
B
C
E
数据
123
1.2548
12.04.2009
购买
 
solandr >> :

本主题是 "2009年5月15日开始的NFA禁锁令 "的技术延续。

特别是,从这个帖子开始。

'NFA从2009年5月15日起禁止锁定

solandr 26.04.2009 12:06

2.如果你有一个美国经纪账户,你将把它分成2个同等规模的独立账户。在一个账户中,所有工具的头寸都只能买入,在另一个账户中,所有工具的头寸都只能卖出。在一个账户上禁止套期保值时,不违反这一规则,因为我们有两个账户。然后,我们需要制定一个方法来分配这两个不同账户上唯一的专家顾问的头寸。因为这不是我以前的任务,我想知道有什么方法可以在两个不同的账户上准确执行一个专家顾问的订单?

我想讨论在不同终端工作的两个EA之间进行数据交换的技术实现。

我认为最有希望的讨论方向是使用共享内存空间在EA之间传输信息,但任何其他选项都可以讨论。

也就是说,每个专家顾问都需要掌握来自其他终端的订单的全部信息。如何安排这个问题?

我想只要求在这个主题中讨论技术细节。提前感谢您!

我有几个想法

1-文件交换

2-可以使用各种窗口事件方法

3通过TCP/IP


文件共享在复杂程度上更简单


你必须谨慎对待文件共享

不同程序对同一文件的访问必须适当分开

在任何情况下,你需要对文件共享的工作方式有一个良好的认识。

 
kombat >> :


如果我们谈论的是mysql,那么我正在寻找可能对账户之间的交换也有用的方法。

如何在数据库中写入和读取相同的单元格?


小学,华生。通过SQL查询。

 
Reshetov >> :

这是最基本的,华生。通过SQL查询。

谢谢你,福尔摩斯!;)))

唯一的问题是如何做到这一点...

例如,我还没有屈服于这项任务。

(虽然我只是偶尔在上面工作)。

如果认真地说,问题是按具体的表坐标提出读/写请求。

 
kombat >> :

谢谢,福尔摩斯!;)))

唯一的问题是如何做到这一点...

例如,我还没有屈服于这项任务。

(虽然我只是偶尔在上面工作)。

严肃地说,问题是对特定的表坐标进行读/写查询。


SQL也能做到这一点

有一个问题...这两个EA是如何知道要搞乱SQL的?

他们将不得不在两个专家顾问系统中使用一个监视器,该监视器将使用一定量的时间来查看SQL,以了解EA是否已经 "写 "了什么。

文件交换也是如此!你必须经历同样的麻烦--每到一个量级的时候,你都要去找文件。

如果有什么变化,如果在另一个账户上交易的朋友报告了一些情况


--

更加节省资源,更好地使用一个事件

事件发生--踢人!

如果一个事件没有发生--不要踢!

每个专家都可能有冲动告诉他的朋友他的意图

这将是一个事件... 他就是这样踢他的睡友的

Windows是一个事件驱动的操作系统--最好朝这个方向发展。

--

 

原则上,对我来说,每隔一段时间检查/记录一个文件是绰绰有余的。

至于文件访问,一位同事向我提出了以下想法。在向一个文件写入时,我们称之为file.running之类的。一旦我们完成了对它的写入,我们就把它重命名为file.output。在文件被第二个专家顾问读取后,删除该文件。因此,我们让第一个专家顾问知道,我们可以在第一个EA的下一个操作周期内(在一定量的时间后)用传递的信息写一个新的文件。也许,为了访问分离的安全,我们可以使用一些标志。


我见过一些使用TCP/IP的例子,当数据通过本地主机127.0.0.1的某个端口发送时。每个专家顾问都知道另一个专家顾问的端口,并向其传输数据。 同时,它在自己的端口上监听,拦截来自其他专家顾问的数据。我有一个例子说明如何在VB脚本中做到这一点。我不知道如何能在EA中实现它。

是否有任何现成的例子来说明Expert Advisors通过TCP/IP的数据传输?