来自一个 "傻瓜 "的问题 - 页 165

 
Karlson:

重做这个并不难。

https://www.mql5.com/ru/code/470

谢谢! :-)

这是正确的做法。

当你重做时,你就开始明白了。

 
一个后续问题。订单号和票据之间有什么区别?一个和另一个的编号是如何进行的?什么以1开头,什么以0开头?车票是否按顺序编号?
 
kPVT:

这些指标没有任何问题。可以知道图表上 有多少和哪些指标,可以在图表上放一个指标或删除一个指标。

然而,对于专家顾问和脚本来说,它并没有实现,只是从EA本身调用ExpertRemove() 停止专家顾问的工作。

看起来指数上真的只有fnctional(虽然我没有检查到最后)。

我在MQL4中查看过,那里有一个函数。

string WindowExpertName()
Возвращает имя выполняющегося эксперта, скрипта, пользовательского индикатора или библиотеки, в зависимости от того,
из какой MQL4-программы вызвана данная функция.
我建议开发者在图表信息中加入必要的功能,并以这样的方式使之有可能从任何图表中获得ifna。
 

由于一个图表中只能有一个EA工作,所以这个信息可能不是为确定指标而创建的。

但如果有人需要,确实可以从其他图表中获得信息。

 
Karlson:

由于一个图表中只能有一个EA工作,所以这个信息可能没有为确定指标而创建。

但如果有人需要,确实可以从其他图表中获得信息。

我拄着拐杖仍然可以得到它,但我找不到任何标准功能。
 

我发现这个指标 可以从自己身上得到它的简称,但它的手柄却不是,这可能是由什么原因造成的。

这就是为什么如果你在指标中循环浏览所有的图表和指标窗口,你会达到 "本身",如果你不找到一个解决方法,就会被卡住。

当然,你可以在脚本或专家顾问中做到这一点,但我不得不在一个指标中做到这一点。

但这不是主要的,只是我又想到了这个问题。

- 如果在终端有一个特殊的空 "图表",没有符号、周期和其他周围环境,但也可以在上面抛出一个指标/脚本/专家,那就更好了。

一种用于各种面板和其他控制/控制其他常规图表和程序的板。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Свойства пользовательских индикаторов - Документация по MQL5
 
kPVT:

但这不是主要的问题,只是再想一想。

- 如果在终端有一个特殊的空白 "图表",没有符号和周期以及其他周围环境,但也可以在上面抛出一个指标/脚本/专家,那就更好了。

一种用于其他传统图表和程序的各种面板和其他控制/控制的板子。

真主 听你的,雷纳特。

我认为这个(一点也不新鲜)的想法应该积极推广,而且是在更广泛的背景下,即。

  • 我们需要不同类型的大窗口(标准图表只是其中一个选项)。 空白--对专家来说,也许是电子表格、浏览器窗口,当然还有不同类型的图表 呢(renko-kagi、tick chart等等)。
  • 专家和脚本应该与图表分开,导航窗口有一个特殊的标签(mql-Space),上面有一个运行中的mql-程序的树状表,那将是专家的主要锚点。绑定到一个特定的图表是可能的(可选),但不是必须的。在多货币终端中,仅对指标而言,与特定符号(和图表)的绑定并不太荒谬。

不幸的是,我完全知道这不会在MT5中实现(有99.9%的把握)。终端的结构,在其基础上,不允许轻易升级,甚至在这个特定的方面 进行扩展。但是,系统的发展不会随着MT5的出现而结束,到MT6的时候(也许这个过程已经开始了),我们必须让开发者在架构上完全实现这个方案,而不是继承通常的精简("一个图表-一个专家顾问","主窗口的每个标签=图表",等等)。

实施这样的架构有一些私人困难,但这些困难不是根本性的,是可以战胜的。但用户友好性将以数量级取胜。最后,开发商也会得到一些安慰--例如,特定类型的窗户可以分阶段逐步引入,在建筑层面上没有很大的压力。

阿门。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Отображение графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Отображение графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Отображение графиков - Документация по MQL5
 
MetaDriver:

真主 听你的,雷纳特。

我认为应该积极推广这个(一点也不新的)想法,而且是在一个更广泛的背景下,即。

  • 我们需要不同类型的大窗口(标准图表只是一种选择)。 空白--对于专家来说,也许是一个电子表格,一个浏览器窗口,当然还有不同类型的图表 呢(renko-kagi,tick chart,等等)。
  • 专家和脚本应该与图表分开,导航窗口有一个特殊的标签(mql-Space),上面有一个运行中的mql-程序的树状表,这将是专家的主要锚点。绑定到一个特定的图表是可能的(可选),但不是必须的。在多货币终端中,仅对指标而言,与特定符号(和图表)的绑定并不太荒谬。

不幸的是,我完全知道这不会在MT5中实现(有99.9%的把握)。终端的结构,在其基础上,不允许轻易升级,甚至在这个特定的方面 进行扩展。但是,系统的发展不会随着MT5的出现而结束,到MT6的时候(也许这个过程已经开始了),我们必须让开发者在架构上完全实现这个方案,而不是继承通常的精简("一个图表-一个专家顾问","主窗口的每个标签=图表",等等)。

实施这样的架构有一些私人困难,但这些困难不是根本性的,是可以战胜的。但用户友好性将以数量级取胜。最后,开发商也会得到一些安慰--例如,特定类型的窗户可以分阶段逐步引入,在建筑层面上没有很大的压力。

阿门。


这有什么好伤心的?

你做一个假的图表,然后布鲁克就变成了优雅的短裤,或者长裤 :) 对不起,这是个文字游戏。

 
Urain:

这有什么好伤心的?

制作一个假的图表,然后,小溪变成了优雅的短裤,或长裤:)对不起,我玩文字游戏。

不幸的是,mql5不允许从 "伪图表 "的标签中删除一个有趣的题词 "USDZAR",并替换为例如 "Hello UrainSpreadSheat",而且它也不能重新绘制标签。 你不能将所有图表中都需要的五个 "背景 "专家顾问(如时钟、交易面板等)附加到伪图表中。所以......你知道目前实施的局限性,不管你怎么努力。然后,第二项(将EA与符号分离)也同样重要,在目前的实施中没有人会这样做。
 

这个代码有什么问题。为什么"失败的取消订单#0在市场上买入0.00[无效的请求]"的错误一直出现?


   MqlTradeRequest order_remove_mql_trade_request = {0};
   order_remove_mql_trade_request.action = TRADE_ACTION_REMOVE;

   i = OrdersTotal();
   if(i > 0){
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY){
         for(i2 = 0;i2 <= i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_BUY_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}
      if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL){
         for(i2 = 0;i2 <= i;i2++){
            ul = OrderGetTicket(i2);
            OrderSelect(ul);
            if(OrderGetInteger(ORDER_TYPE) == ORDER_TYPE_SELL_LIMIT){
               order_remove_mql_trade_request.order = ul;
               OrderSend(order_remove_mql_trade_request,mql_trade_result);}}}}