有没有可能在MT5中实现总头寸结构的可靠核算?

 

这个话题已经被提出 过很多次了。

Svinozavr писал(а)>>

先生们!花点时间从你那丰满的论战中抽身出来,钻研一下这个提案。

在MT4中,也许可以写一个文件包含在EA中,这将 "拦截 "EA的交易信号并形成净头寸的信号。当然,在专家顾问交易中,应该用那些信号会被拦截的离子代替。

这将解决你们所有的争端,这些争端似乎永远不会结束。你只需要运行同一个EA的两个版本--一个是手数,另一个是由手数组成的净头寸。

请朝这个方向思考。它是建设性的。(否则,我们都会在这里打起来的,看在上帝的份上!))。

这里有一份两份 早在春天关于这个话题的声明。唯一的问题是,开发人员错误地高估了他们在MT5中实现的在交易服务器上存储虚拟头寸。

锁定不是问题。这里描述了MT5概念本身不可靠的原因。以及合乎逻辑的私人后果。

以目前公布的MT5功能,在同一交易工具上编写一个可靠的MQL5专家顾问来同时进行手动交易是不可能的!

P.S 在这里和这里,我问过测试员他们如何看待MT5中这个问题的解决方案...我向开发商提出的类似问题也没有得到答案。

 
Выдох вдох хорошо дышать
Чёрный горох да нелегко глотать
Пуля и ствол нажал и разошлись
Где добро где зло попробуй разберись
А что мне надо да только свет в оконце
А что мне снится что кончилась война
Куда иду я туда где светит солнце
Вот только братцы добраться до темна
Шаг другой до счастья долеко
Эй брат постой я знаю не легко
Вымой лицо побрейся улыбнись
Выйди на крыльцо свободе поклонись
А что мне надо да только свет в оконце
А что мне снится что кончилась война
Куда иду я туда где светит солнце
Вот только братцы добраться до темна
А что нам надо да только свет в оконце
А что нам снится что кончилась война
Куда идём мы туда где светит солнце
Вот только братцы добраться до темна

Галанин С.  
 
getch писал(а)>>

这个话题已经被提出 过很多次了。

这里是一个第二个 关于这个问题的声明,早在春天。唯一的问题是,开发人员错误地高估了他们在MT5中实现的在交易服务器上存储虚拟头寸的功能。

锁定不是问题。这里描述了MT5概念本身不可靠的原因。以及合乎逻辑的私人后果。

以目前公布的MT5功能,在MQL5中编写一个可靠的专家顾问,在同一交易工具上同时进行手动交易是不可能的

P.S 在这里和这里,我问过测试员他们如何看待MT5中这个问题的解决方案...对于这样的问题,我也没有从开发商那里得到答案。

坦率地说,我不认为有这么大的问题,特别是对EA来说。

只要OrderComment() 存在并执行 ,任何策略(除了手动执行的策略)都可以像以前一样,通过 在注释中 写入 Magic 并从中提取 实现 你只需要写,或者说覆盖 OrderMagicNumber() 函数 ,这似乎是不存在的。

而对于手动交易来说,最好是能在屏幕上观察到这个评论(相对于MT4的账户历史标签),那么就没有什么可考虑的了,除了在评论中存储信息的可靠性。

 
你对这个问题没有什么概念。如果有人至少提出HOPEFUL考虑汇总职位结构的想法,那么这个分支就会死掉,所以我也有一个原始的狭隘的心态。如果没有,那么这是一个严重的问题,必须由开发商来解决。
 

这里提出了一种实施方法,但它并不可靠。

Renat писал(а)>>

你正在得出错误的结论。而medgies和评论的工作方式与MT4相同。

请等待发布,以便自己检查。

主要内容和评论被保存在订单执行 历史中,但不保存在总位置中。

你是否建议通过分析历史来解决上述问题?

让我再重复一遍,现在在MT4中,任何策略都要获取当前状态的信息,并继续其工作,就像它没有被打断一样。这些信息可以从公开的职位中获得。在MT5中不能这样做,因为只有稀缺的总头寸信息,仅此而已。你可以分析FILLED订单的历史,但同样,这并不可靠,因为不是所有的历史都可以用来分析(MQL5可以使用Magic过滤器抽出FILLED订单的历史吗?),它可能是巨大的,需要相当长的时间来分析。

所以你建议根据MT5中的FILLED订单历史来恢复该策略对总头寸的贡献?

 
Integer >> :

这个问题在MT4中也被提出来了--这是一种可靠的标记打火机的方法,但我们可以看到,在解决这个问题上没有任何进展,相反,它甚至走得更远。

在MT4中核算总头寸的结构是没有问题的。你可以轻松可靠地在MT4上编写和运行一个交易工具的独立专家顾问,并仍然在那里进行手动交易。而在MT5中,你甚至不能可靠地(在不破坏策略逻辑的情况下)在同一交易工具上与EA一起进行手动交易。

 
getch писал(а)>>

在MT4中核算总头寸的结构是没有问题的。你可以轻松可靠地在MT4上编写和运行一个交易工具的独立顾问,并且仍然在那里进行手动交易。而在MT5中,你甚至不能可靠地(在不破坏策略逻辑的情况下)在同一交易工具上与专家顾问一起进行手动交易。

问题的本质是清晰透明的,因为我曾经在几个这样的项目中工作过。例如,在FK的臭名昭著的Rumus或IDsystem。我不知道它将如何在MT5中实现,因为我还没有使用它,仍然迫不及待。至少这种方法至少可以确定专家顾问的一些行动,聊胜于无。

随着MT5的出现,我们将尝试寻找更可靠的选择。

 

另一种方法是通过MQL5的高级API实现,但同样不可靠。

nen писал(а)>>

这是一个不正确的说法。你需要先尝试MQL5 ,然后再谈复杂化的顺序

要改变多年来获得的编程过程逻辑是很难的。但是,MQL5中的程序可以比MQL4中的程序更复杂,而且花费的时间会更少。有 这么多的新功能,现在很难想象整个创新的范围。有用的创新的数量。

-------

太糟糕了,你将不得不从MQL4到MQL5重写所有的东西。

当然,你可以!但在大多数情况下,在MQL4->MQL5的移植中,情况并非如此。

nen,请分享您对MQL5中策略实施的看法,它允许在一个交易工具中启动几个独立的策略。

从标准MT4交割中提取任何简单的策略,使其成为通用(独立)策略。

使用MQL4,只需10行代码,不到5分钟。

在MQL5,它是...甚至无法想象。

我认为这个问题的解决方案是在MQL5中创建一个比MQL5本身更高级别的API。该API将实现交易功能,允许使用虚拟头寸,这将具有MT4头寸的所有功能。我相信(一个简单的预言),这种API的各种版本会出现在CodeBase MQL5中,他们会随着时间的推移消除错误,一切都会变得完美。交易员只需插入这个API,那么上述问题和类似问题的解决也将在5分钟内完成。

但是,不幸的是,这种解决方案仍然不可靠,因为虚拟头寸的逻辑链接数据库将不会存储在交易服务器上。

P.S.通过这个API,MQL5的强大手段,将有一个界面用于处理这些虚拟手的位置 - 类似于MT4。

 
getch писал(а)>>

这里提出了一种实施方法,但它并不可靠。

雷纳特写 道(a) >>

你正在得出错误的结论。而medgies和评论的工作方式与MT4相同。

请等待发布,以便自己检查。

魔术和评论被保存在订单执行历史中,但不保存在总位置中。

OrderMagicNumber()至少在MT5的帮助中,我没有找到,所以MT5中的魔法在哪里以及如何存储,都不清楚。

 
fwiq >> :

OrderMagicNumber()至少在MT5的帮助中,我没有找到,所以MT5中的魔法在哪里以及如何存储,并不清楚。

struct MqlTradeRequest
  {
   ENUM_TRADE_REQUEST_ACTIONS    action;           // Тип выполняемого действия
   ulong                         expert;           // Штамп эксперта (идентификатор)
   ulong                         order;            // Тикет ордера
   string                        symbol;           // Имя торгового инструмента
   double                        volume;           // Запрашиваемый объем сделки в лотах
   double                        price;            // Цена 
   double                        stoplimit;        // Уровень StopLimit ордера
   double                        sl;               // Уровень Stop Loss ордера
   double                        tp;               // Уровень Take Profit ордера
   ulong                         deviation;        // Максимально приемлемое отклонение от запрашиваемой цены
   ENUM_ORDER_TYPE               type;             // Тип ордера
   ENUM_ORDER_TYPE_FILLING       type_filling;     // Тип ордера по исполнению
   ENUM_ORDER_TYPE_TIME          type_time;        // Тип ордера по времени действия
   datetime                      expiration;       // Срок истечения ордера (для ордеров типа ORDER_TIME_SPECIFIED)
   string                        comment;          // Комментарий к ордеру
   char                          reserved[128];    // Зарезервировано
  };
 
getch писал(а)>>

另一种方法是通过MQL5的高级API实现,但同样不可靠。

倪妮 写道 >>

这是一个不正确的说法。你需要先尝试MQL5 ,然后再谈复杂的顺序

要改变多年来获得的编程过程逻辑是很难的。但是,MQL5中的程序可以比MQL4中的程序更复杂,而且花费的时间会更少。有 这么多的新功能,现在很难想象整个创新的范围。有用的创新的数量。

-------

太糟糕了,你将不得不从MQL4到MQL5重写所有的东西。

当然,你可以!但在大多数情况下,在MQL4->MQL5的移植中,情况并非如此。

nen,请分享您对MQL5中策略实施的看法,它允许在一个交易工具中启动几个独立的策略。

从标准MT4交割中提取任何简单的策略,使其成为通用(独立)策略。

使用MQL4,只需10行代码,不到5分钟。

在MQL5,它是...甚至无法想象。

我认为这个问题的解决方案是在MQL5中创建一个比MQL5本身更高级别的API。该API将实现交易功能,允许使用虚拟头寸,这将具有MT4头寸的所有功能。我相信(一个简单的预言),这种API的各种版本会出现在CodeBase MQL5中,他们会随着时间的推移消除错误,一切都会变得完美。交易员只需插入这个API,那么上述问题和类似问题的解决也将在5分钟内完成。

但是,不幸的是,这种解决方案仍然不可靠,因为虚拟头寸的逻辑链接数据库将不会存储在交易服务器上。

P.S. 通过这个API,MQL5的强大手段将创建一个界面,用于手工操作这些虚拟头寸--类似于MT4。

它太复杂了,没有必要进行这种不必要的工作。最有可能的是,我们可以用一套简单的为这种会计而开发的类来做,在平台本身上工作,没有太多多余的东西。但这里有一个完整的IMHO。