文章 "用于在以仓位为中心的 MetaTrader 5 环境中跟踪订单的虚拟订单管理程序" - 页 3

 

读完这篇文章,我不由自主地产生了一个想法,那就是实现一个简化的仓位控制系统。我的想法是在注释中存储未平仓合约 的数据,然后对其进行解析。但我不知道在服务器上存储 的注释最大长度是多少?如何保证注释的存储?这是一个可选参数。一般来说, 的想法有生命权吗?

 
avoitenko:

读完这篇文章后,我不由自主地产生了一个想法,那就是实现一个简化的仓位控制系统。我的想法是在注释中存储未平仓合约的数据,然后对其进行解析。但我不知道服务器 可以存储的注释最大长度是多少?如何保证注释的存储?这是一个可选参数。一般来说,这个 想法 有生命权吗?


关于职位和命令中的注释。

以下是对话中的内容 -"MarketSell EURUSD TP 1.24622 SL 1.27134 (M30) - Test"(市场卖出欧元兑美元 TP 1.24622 SL 1.27134 (M30) - 测试),以下是未结头寸"Market Sell EURUSD TP 1.24622 S"(市场卖出欧元兑美元 TP 1.24622 S) 的注释...

此外,开发人员尚未实现修改注释的可能性(据我所知)。

PS

我认为评论肯定不适合这个功能...

 
Interesting:

关于头寸和订单中的评论

以下是对话中的内容 -"Market Sell EURUSD TP 1.24622 SL 1.27134 (M30) - Test",以下是未结头寸的注释中的内容"Market Sell EURUSD TP 1.24622 S"....

此外,开发人员尚未提供修改注释的可能性(据我所知)。

PS

我认为注释肯定不合适...

为什么不呢?在 256 个字符的编码中,31 个字符的组合数为 6.146e+381,您可以在这样的字符串中编码任何内容。

事实上,如果把注释本地化为简短的编码形式,就不需要这么多字符了。

毕竟,你可以写ob|ers ob- 打算在买入时开盘,acters- 错误地在卖出时开盘,而不是"今天想 在买入时开盘,错误 地在卖出时开盘"。

你不需要显微镜来破解坚果,那么一切都会迎刃而解。

 
Urain:

在 256 个字符的编码中,31 个字符的组合数为 6.146e+381,任何东西都可以编码成这样的字符串。

事实上,如果将评论本地化为简短的编码形式,就不需要这么多字符了。

毕竟,您可以写ob|ers ob- 打算在买入时开盘,acters- 错误地在卖出时开盘,而不是"今天想 在买入时开盘,错误 地在卖出时开盘"。

你不需要显微镜来破解坚果,那么一切都会迎刃而解。

在我看来,将所有内容存储在结构、集合和数组中,并在必要时将它们保存到文件中,这样会容易得多。

您也可以考虑 Magik....

 
Interesting:

在我看来,将所有内容都存储在组装好的结构和数组中,并在必要时将它们保存到文件中,要容易得多。

您也可以考虑 Magik....

是的,Magik 更可靠,因为它不能从服务器端修改、

不过,由于 Magik 代码是 10 进制,而字符串是 256 进制,因此存储的信息会更少。

 
Urain:

是的,magik 更可靠,因为它不会被服务器修改、

虽然信息量会少一些,因为 magik 代码只有 10 个字符,而字符串则有 256 个字符。

我认为,注释应该留给用户,让这些信息纯粹为用户而存在(是用户自己填写还是由专家填写对用户来说并不重要)。

但 Magik 应充分发挥其作用(如果需要,可以在其中隐藏大量信息)+ 并为此创建一个特定结构,以最大限度地存储有关仓位、订单和交易的信息。

启动智能交易系统时,可以从文件中读取头寸和平仓交易的数据,也可以在初始化块中进行计算,包括根据魔力计算(如果没有数据文件)。

工作结束时,当然要保存信息。

PS

或者类似的东西...

 

你好,保罗、

感谢您提供这个图书馆。

在我看来,无论我使用什么止盈值,交易都不会以该值平仓,即使我运行你的 FrAmaCross EA 并只用止盈值进行优化,结果也不会改变。

是我做错了什么,还是需要设置一个标志才能使用止盈?

查看您的代码时,您在 OrderSend 中调用 bSuccess=PositionChangeSizeAtServer(symbol,volume,ORDER_TYPE_BUY,stoploss); break;

没有使用止盈值

感谢您的宝贵时间

EK

Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5
 

我认为--如果我们能有自己的 VOM......在 mt5 中通过 MQ 实现此功能的更好方法是--将 mt5 终端中本地订单(#1,#2,#3)的 id 连接到 mt5 服务器上的 1 个全局订单(#5423523)。

我们只需要树形订单

+ #5423523 eurusd

- #1 买入

- #2 买入

+ #5423533美元兑日元

- # 3 卖出

- # 4 卖出

+ #5423533 GBPJPY

- # 5 卖出


然后在图表上我们有订单 #1 , 2# 等。

 

有人使用过这个图书馆吗?

这个图书馆看起来很有用。但有一些困难。

在编译示例智能交易系统 VirtualOrderManagerTester.mq5 时

出现错误:

TRADE_RETCODE_REQUEST' - 未声明标识符 StringUtilities.mqh 42 12

TRADE_RETCODE_REQUEST' - 需要常量表达式 StringUtilities.mqh 42 12

'ERR_TRADE_SELECT_TIMOUT' - 未声明标识符 StringUtilities.mqh 112 12

ERR_TRADE_SELECT_TIMOUT' - 需要常量表达式 StringUtilities.mqh 112 12

如何删除它们?

 
masharov:

有人使用过这个图书馆吗?

这个图书馆看起来很有用。但有一些困难。

在编译示例智能交易系统 VirtualOrderManagerTester.mq5 时

会出现错误:

TRADE_RETCODE_REQUEST' - 未声明标识符 StringUtilities.mqh 42 12

TRADE_RETCODE_REQUEST' - 需要常量表达式 StringUtilities.mqh 42 12

'ERR_TRADE_SELECT_TIMOUT' - 未声明标识符 StringUtilities.mqh 112 12

ERR_TRADE_SELECT_TIMOUT' - 需要常量表达式 StringUtilities.mqh 112 12

如何删除它们?

这些错误代码已不再适用,您只需注释掉 StringUtilities.mqh 文件中的第 42 行和第 112 行即可。

文章代码已更新。