Websocket如何? - 页 13

 
Igor Makanu:

还是有些不对劲,理论上这段代码应该工作。

C#

MQL5

我得到了编译错误,即t1参数不能被转换。

在C#中定义的MqlTick类型和在MQL中定义的MqlTick类型是不同的类型。
在夏普中改变类型名称,并只对该类型进行工作
或者将返回的值复制到Mql类型中

 
Vladimir Suslov:

在C#中定义的MqlTick类型和在MQL中定义的MqlTick类型是不同的类型。
在夏普中改变类型名称,并只与该类型一起工作
或将返回值复制到Mql类型中

还没有测试(电脑正忙于网络挂机!!!)。

但我想它会像你写的那样工作

一般来说,没有合适的MQL-C#交换文档,我的例子使用了结构字段对齐,在你的例子中,字段的大小是一样的,如果有其他类型,在交换数据 的时候会发生什么?- 我怀疑,最好的情况是时间错误,最坏的情况是--数据丢失。

在Habra上有一篇关于C#中结构处理的好文章,我记得,在C#中是默认对齐,但在MQL中是相反的--我以后有空的时候再找。

 
Igor Makanu:

没有检查(PC网络挂机城市忙!!)。

网络城市似乎到处都是死亡。我们在伏尔加格勒的也在徘徊。奇迹网站)))

 
Igor Makanu:

还没有测试(联网的城市电脑很忙!!)。

但我认为它会像你写的那样发挥作用

没有合适的MQL-C#交换文档,我的例子使用了结构字段对齐,在你的例子中,字段的大小是一样的,如果有其他类型,在交换数据时会发生什么?- 我怀疑,最好的情况是时间错误,最坏的情况是--数据丢失。

在Habra上有一篇关于在C#中使用结构的好文章,我记得在C#中,对齐是默认的,但在MQL中则相反 - 我以后会找到它,当我的电脑有足够的空间时。

我举了一个有两个配音的简单结构 的例子。
没有什么可以对齐。
一个更复杂的结构可能需要调整。
这一点必须要检查。

网络是好的)

Документация по MQL5: Основы языка / Типы данных / Структуры, классы и интерфейсы
Документация по MQL5: Основы языка / Типы данных / Структуры, классы и интерфейсы
  • www.mql5.com
Структура является набором элементов произвольного типа (кроме типа void). Таким образом, структура объединяет логически связанные данные разных типов. Объявление структуры Имя структуры нельзя использовать в качестве идентификатора (имени переменной или функции). Следует иметь ввиду, что в MQL5 элементы структуры следуют непосредственно друг...
 
Алексей Барбашин:

Fedor,只剩下最后一个测试案例:把tick结构从sharp弄到mql。想想如何实现它,所有的例子都在这里,Volodya展示了如何从sharp获得数据的结构。

我正在等待最后的结果。

我现在就去做。你怎么看?它能在MT4中运行吗?
 

我做到了。我通过聊天给你发了一条信息


 
Алексей Барбашин:

如果你需要传输大量的异质信息,那么最好采用与web socket相同的工作方式:在sharp端将信息打包成json,编码成字符串并返回为字符串,然后在mql端做反向转换。它的工作速度非常快,我测试过。:)

但如果可能的话,最好使用常规方法,例如相同的结构。:)

不,我需要结构,结构是实用的,谢谢。 我现在对C#+MQL5中的工作方式有了清晰的认识。


弗拉基米尔-苏斯洛夫

我举了一个有两个配音的简单结构 的例子。
没有什么可以对齐。
对于一个更复杂的结构,你可能需要对齐。
这需要进行检查。

网络是好的)

我发现了一篇关于C#中结构的文章https://habr.com/ru/post/114953/

总而言之,有足够的材料可以使用,谢谢

 

我要插一句话,因为所有的演员可能都已经厌倦了这个节目

内存/CPU消耗情况如何,特别是在同时运行几个这样的EA时?

如果他们从同一个过程开始,就不会被压制?

以我的愚见,一个未完成的(到目前为止)配方是采取Socket MQL,并使其中的http+websocket达到最小。至少它可以在VPS 的元报价上工作。当然,这是用手的夕阳,但看看文章--所以连MySQL都是这样解决的

 
Fedor Arkhipov:
我现在就去做。你怎么看?它能在MT4中运行吗?

只能通过文章中的方法https://www.mql5.com/ru/articles/249

MQL4不知道如何调用托管代码,或在C++中写一个包装器,用它来调用.Net或上面的文章,我去年检查过这篇文章--一切都可以工作,但有很多工作--很多陷阱,如果你有兴趣不要开始,你需要大量的时间在出现问题时去谷歌材料

 
Maxim Kuznetsov:

我要插一句话,理由很充分,所有的演员可能都被戏弄得很累了。


你可以租用一个普通的Windows VDS,并从DLL中运行它,你可以同时运行多个终端。