MQL5的未来是MQL5+甚至是MQL6 - 页 10

 
我希望看到goto,你可以大大简化代码,更不用说可读性了。毕竟,有条件的循环基本上也是过早地退出循环。
 
dimka8:
我希望看到goto,你可以大大简化代码,更不用说可读性了。事实上,有条件的循环也是过早地退出循环。
不,我不想这样 :)
 
dimka8:
我希望看到goto,你可以大大简化代码,更不用说可读性了。事实上,有条件的循环也是过早地退出循环。

你从哪里来...

 

一句话或两句话。

强制性跨平台....

 
Vasiliy Sokolov:

你从哪里来...

来自BASIC的
 
Alexander Bereznyak:
从BASIC开始。

甚至更简单的Hiasm。

经典作品呢?

for(...) {
for (...) {
while (...) {
if (...) goto stop;
...
}
}
}
printf("error in program\n");
 

如果能引入项目的概念,那就太好了。随着OOP的采用,现在所有的程序都由几个文件组成。如果你编辑一个插件,在编译前要不断地去看主文件的标签,这很不方便。或者一个拐杖:引入一个可编程的按钮 "编译",你可以把你正在工作的项目的主文件绑定到它上面。

EMPTY_VALUE 可以扩展到所有允许它的类型(int, double, string等)。这是一件小事,但你可以在很多地方使用它,而不是自己编造。

在测试器中,做一个像MT中的十字准线工具。

当然,你可以发明在价格图下的一个指标窗口中叠加几个指标的变体。


舒适是由小的细节构成的。开发商并不真正愿意接受这种想法,他们不断地将一些东西全球化。也许我们有时应该停下来,把时间花在小修小补上--用户舒适度?))))))

例子:为了在图表上测量某物三次,你必须在十字线按钮上点击三次(或按组合键)。图表下的ME中的指标窗口不能互换:必须删除所有指标,然后按正确顺序设置。同样,要设置几个指标,有必要进入菜单--菜单--选择指标几次。而出于某种原因,有一个指标清单的工具,它没有简化这种情况,也没有给出任何新的东西....,我想每个人都会在MQL、ME、MT、测试器中不假思索地给出这样的例子....。地狱!大惊小怪!对于所有的清晰和简单的包装,它是非常不舒服的,发展不足。

https://www.mql5.com/ru/docs/basis/types/integer/enumeration 是关于转移的帮助文章。很清楚他们是什么,他们看起来像什么......。但如何使用它,有什么好处?如果你懒得用文字写的话,给我一个简单的例子。

我认为,如果你真的想改进一些东西,你应该与那些在不同方向上积极使用该软件包(编程、手工交易、测试等)的固定用户群建立联系,并从他们那里收集合理的建议来改进你所拥有的东西,而不是在人群中询问,因为每个人都会想要所有东西。否则,一切都将停留在字母上。

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

在调试器上。

例如,有一个表达式的形式是

(int)(MathFloor((ticks_stored-1)/ticks_in_candle)-MathFloor(i/ticks_in_candle) )。

在当前的调试实现中,在调试器中计算表达式的结果将是可用的,如果你做了

CandleNumber=(int)(MathFloor((ticks_stored-1)/ticks_in_candle)-MathFloor(i/ticks_in_candle)) 。

并通过Shift+F9将变量CandleNumber添加到观察列表中。

如果我想从表达式的一部分计算中得到一个结果,例如MathFloor(i/ticks_in_candle),我将这个表达式添加到观察列表中

我得到一个无法评估的表达式。

也许我做错了什么,请分享你的经验,但问题是,在调试时,我不仅不能看到声明的变量 值,而且不能看到任意表达式的计算结果(当然,我说的是那些在当前观察时刻所有变量都已经初始化的表达式)。

此外,我想在调试时看到数组的信息。 例如,我们有UpTick[]数组,目前只有一个数组元素可供监测。

为什么不实现将一个数组添加到监督中,并打开一个单独的模式窗口,其中所有的元素和它们的索引都可以使用。

索引类型值

0 int 1

1 int 2 等等。

如果阵列很大,需要大量的内存 - 限制采样。

一般来说,作为一个结果--实现调试器更广泛的功能,即可以监控任意的表达式、变量、数组。

 
agvozdezkiy:
EMPTY_VALUE扩展到所有允许它的类型(int、double、string等)这是一个小东西,但它可以用在很多地方,你不必自己发明。

每个人都已经发明了它。使用NULL常数。

在测试器中,创建一个十字准线工具,就像在MT中一样。

例子:为了在图表上测量某物三次,你需要在十字线按钮上点击三次(或按组合键)。

让我告诉你一个秘密--它已经实施了。你需要点击鼠标滚轮,它将是一个十字准线。

你也许可以想出一个选项,在价格图下的一个指标窗口中叠加几个指标。

长期以来,一直有可能做到这一点。你把指标从导航器中拖到已经连接了指标的窗口中。

图表下的ME中的指标窗口不能互换:必须删除所有指标,然后按正确顺序设置。

IMHO,这不是最有用的东西。

你必须多次进入菜单--菜单--选择指标来设置一些指标。此外,由于某种原因,还有一个工具指标清单,在这种情况下,它并没有简化,也没有提供任何新的东西....

有一个导航器、收藏夹、模板和配置文件。一切都可以设置。阅读终端上的帮助,你会发现许多新的东西!

https://www.mql5.com/ru/docs/basis/types/integer/enumeration - 关于转让的帮助文章。很清楚他们是什么,他们看起来像什么......。但如何使用它们,有什么好处?举个简单的例子,如果你懒得用文字写的话。

枚举被用来使代码更易读,并删除常量,用人类熟悉的实体来代替它们。

例如,枚举ENUM_DAY_OF_WEEK的值可用于与结构MqlDateTime的day_of_week值进行比较。也就是说,你可以这样写

        MqlDateTime dt;
        TimeCurrent( dt );
        if( dt.day_of_week == 0 )
           {
            // Что-то делаем в воскресенье
           }

或者你可以用不同的方式来写。

        MqlDateTime dt;
        TimeCurrent( dt );
        if( dt.day_of_week == SUNDAY )
           {
            // Что-то делаем в воскресенье
           }

SUNDAY是一个命名的int类型的常量,值为0。

你认为对于一个阅读代码的人来说,如何才能更清楚地了解它?
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Kozitsyn:

列表是用来使代码更易读的

还有一个无限有用的应用。比如说。

enum ENUM_OPEN_DIRECTION {
     OPEN_BUY,       // только Buy
     OPEN_SELL,      // только Sell
     OPEN_BOTH,      // Buy + Sell
     OPEN_NONE       // не торговать
};
input ENUM_OPEN_DIRECTION  Trade_Direction = OPEN_BOTH;    // Направление торговли:

而用户得到一个下拉列表,可以选择你在评论中写的4个项目--"只买"、"只卖 "等。对于在用户设置窗口中列出一组指标、时间框架、一组条件等非常有用。