mql4语言的特点、微妙之处以及技巧 - 页 10 1...34567891011121314151617...36 新评论 [删除] 2018.05.07 05:22 #91 Alexey Viktorov:我无法理解什么是惊喜。在文档中,有一个订单类型的int值。 OP_BUY 0 购买 销量 1 出售 OP_BUYLIMIT 2 买入上限挂单 OP_SELLLIMIT 3 悬而未决的卖出限价单 OP_BUYSTOP 4 悬而未决的买入止损单 OP_SELLSTOP 5 悬而未决的卖出止损单#define OP_BALANCE 6#define OP_CREDIT 7 因此,对于6个单元格的阵列,你有时可以做得很过分。 fxsaber 2018.07.10 15:24 #92 关于交易、自动交易系统和测试交易策略的论坛 我想把EA的评论从左角移到右角? fxsaber, 2018.07.10 15:13 // Вывод комментария по примерным координатам void CommentXY( string Str, const uint X = 0, const uint Y = 0 ) { string Shift = NULL; StringInit(Shift, X >> 2, ' '); if (StringLen(Shift)) { StringReplace(Str, "\n", "\n" + Shift); Str = Shift + Str; } if (Y) { StringInit(Shift, Y / 14, '\n'); Str = Shift + Str; } Comment(Str); } 应用 void OnStart() { const uint Height = 200; const uint Width = 200; while (!IsStopped()) { CommentXY("Hello World!\nCommentXY", MathRand() * Width / SHORT_MAX, MathRand() * Height / SHORT_MAX); // Вывод комментария со сдвигом (ноль - левый-верхний угол). Sleep(200); } } fxsaber 2018.07.17 11:37 #93 关于交易、自动交易系统和交易策略测试的论坛 如何正确选择历史上的最后一个订单? fxsaber, 2018.07.17 03:27 MT4的交易历史是按收盘时间排序的,这一规则不会改变。 Artyom Trishkin 2018.07.17 11:42 #94 fxsaber: 你有来自开发商的官方回应吗?到目前为止,我只能看到你已经寻找、思考并决定。 fxsaber 2018.07.17 12:11 #95 Artyom Trishkin:你有来自开发商的官方回应吗?到目前为止,我只看到你自己在寻找、思考和决定。我对 "自给自足 "水平的结论并不比本主题开始时的这个结论好。 关于交易、自动交易系统和交易策略测试的论坛 mql4的特殊性,技巧和窍门 订单类型 和与之对应的价格。只要写上OrderClosePrice()就可以了。没有必要遭受胡言乱语/偏执狂的困扰。 Artyom Trishkin 2018.07.17 12:57 #96 fxsaber:我对 "自力更生 "水平的结论不比本主题开始时的这个结论大 没有必要受到胡言乱语/偏执狂的困扰。你一定是错过了大多数没有患 "偏执狂 "的人紧急重写代码的时间,因为EA一夜之间就崩溃了。因为对分流的依赖。这已经是很久以前的事了,但人们仍然有记忆。那些陷入困境的人开始编写与分类无关的代码。我没有惹上麻烦--我只是在论坛上看到了这个消息,并把它记在心里。 fxsaber 2018.07.17 13:29 #97 Artyom Trishkin:你一定错过了大多数没有患 "偏执狂 "的人因EA一夜之间崩溃而紧急重写代码的时间。因为对分流的依赖。这已经是很久以前的事了,但人们仍然有记忆。那些陷入困境的人开始编写与分类无关的代码。我没有惹上麻烦--我只是在论坛上读到了它,并把它记在心里。不幸的是,这个神话在论坛的历史中找不到任何支持。此外,开发商一直明确表示他们的立场是,作为一个原则问题,不能进行这种改变。 例如,你可以放心地写 if (OrderType() <= OP_SELL) ReverseType = 1 - OrderType(); 而不是 if ((OrderType() == OP_BUY) || (OrderType() == OP_SELL)) ReverseType = (OrderType() == OP_BUY) ? OP_SELL : OP_BUY; 你可以自由地写 关于交易、自动交易系统和交易策略测试的论坛 mql4语言的特殊性,技巧和窍门 fxsaber, 2018.04.03 16:15double Lots[] = {0, 0, 0, 0, 0, 0, 0, 0}; for (int i = OrdersTotal() - 1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS)) Lots[OrderType()] += OrderLots(); 等。 Ihor Herasko 2018.07.17 13:54 #98 fxsaber:不幸的是,这个神话在论坛的历史中找不到任何支持。此外,开发商一直明确表示他们的立场是,作为一个原则问题,不能进行这种改变。 例如,你可以随意写成以下样子 为什么要进行所有这些伪优化,其中的细微差别我们必须不断牢记?编写不依赖这种假设(命名常数 的含义)的代码真的这么难吗?除了显示对编译器的细微差别有一定的了解,但根本不是说它们更容易理解,这样的结构有什么意义呢? fxsaber 2018.07.17 14:11 #99 Ihor Herasko:为什么要进行所有这些伪优化,其中的细微差别必须时刻铭记在心?写出不依赖这种假设的代码真的那么难吗(这个或那个命名的常数 是什么意思)?除了显示出对编译器细微差别的一些知识外,这种结构的意义到底是什么,但根本不是说它们更容易理解?这很奇怪,我在阅读这种代码时没有任何问题。此外,它的阅读和理解速度比 "规范 "代码要快。 好吧,上面的例子与Lots[]是一个宝藏,展示了代码如何能在同一时间内变得超级长寿和清晰。请注意,这根本不是 "正统 "的。 可能,如果你看一下许多市场/自由工作的源代码,你不仅仅会遇到破烂不堪的 "规范 "代码,你还会遇到可怕的低效率的性能和同样重要的因素--阅读时的代码理解力。 同样是对继续的不灭之爱,对语言的可能性完全不尊重。100行的代码比200行的代码做同样的事情更容易被感知。这就是人们最初抱怨MQL5的原因。看看QB为MT5重新设计的MT4代码--很难理解TC的逻辑(代码大了很多倍)。到MT4原版看看代码会更容易。 Ihor Herasko 2018.07.17 15:11 #100 fxsaber:奇怪的是,我在阅读这样的代码时没有问题。此外,它的阅读和理解速度比 "规范 "代码要快。 在许多软件公司,这样的代码会让他们的手指被打掉。首先,你必须随时随地避免 "不必要的阅读"。例如,如果你在输入一个函数时使用一个条件。 if (<условие>) { } 建议写。 if (!<условие>) return; 这种方法真正保住了条件的附加。 好吧,上面关于Lots[]的例子是一个真正的宝库,展示了代码如何既是超大型的又是完全可以理解的。请注意,这根本不是 "正统 "的。 再一次,这是一个痛苦的问题。毕竟,没有人检查OrderType()函数返回了什么。或者,也许它返回-1或6?这是一个利用编译器属性的例子,你应该永远避免。你自己举了很多跨平台代码的例子。那么,为什么在这种情况下你要远离它呢?一个新的MQ编译器出来后,这段代码将不再能正确工作。 同样是对继续的不灭的爱,是对语言的可能性的完全无视。一个100行的代码比一个200行的代码做同样的事情要好理解得多。这就是人们最初抱怨MQL5的原因。看看QB为MT5重新设计的MT4代码--几乎无法理解TC的逻辑(代码大得多)。到MT4原版看看代码会更容易。继续下去也是一样的情况。像这样的代码。 if (OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == Symbol() && OrderMagicNumber() == m_nMagicNumber) { } 是更难读到的。 if (!OrderSelect(i, SELECT_BY_POS)) continue; if (OrderSymbol() != Symbol()) continue; if (OrderMagicNumber() != m_nMagicNumber) continue; 而在这两种情况下,执行的效率却是一样的。 1...34567891011121314151617...36 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我无法理解什么是惊喜。在文档中,有一个订单类型的int值。
OP_BUY
0
购买
销量
1
出售
OP_BUYLIMIT
2
买入上限挂单
OP_SELLLIMIT
3
悬而未决的卖出限价单
OP_BUYSTOP
4
悬而未决的买入止损单
OP_SELLSTOP
5
悬而未决的卖出止损单
#define OP_BALANCE 6
#define OP_CREDIT 7
因此,对于6个单元格的阵列,你有时可以做得很过分。
关于交易、自动交易系统和测试交易策略的论坛
我想把EA的评论从左角移到右角?
fxsaber, 2018.07.10 15:13
应用
关于交易、自动交易系统和交易策略测试的论坛
如何正确选择历史上的最后一个订单?
fxsaber, 2018.07.17 03:27
MT4的交易历史是按收盘时间排序的,这一规则不会改变。
你有来自开发商的官方回应吗?到目前为止,我只能看到你已经寻找、思考并决定。
你有来自开发商的官方回应吗?到目前为止,我只看到你自己在寻找、思考和决定。
我对 "自给自足 "水平的结论并不比本主题开始时的这个结论好。
关于交易、自动交易系统和交易策略测试的论坛
mql4的特殊性,技巧和窍门
订单类型 和与之对应的价格。只要写上OrderClosePrice()就可以了。
没有必要遭受胡言乱语/偏执狂的困扰。
我对 "自力更生 "水平的结论不比本主题开始时的这个结论大
没有必要受到胡言乱语/偏执狂的困扰。
你一定是错过了大多数没有患 "偏执狂 "的人紧急重写代码的时间,因为EA一夜之间就崩溃了。因为对分流的依赖。这已经是很久以前的事了,但人们仍然有记忆。那些陷入困境的人开始编写与分类无关的代码。我没有惹上麻烦--我只是在论坛上看到了这个消息,并把它记在心里。
你一定错过了大多数没有患 "偏执狂 "的人因EA一夜之间崩溃而紧急重写代码的时间。因为对分流的依赖。这已经是很久以前的事了,但人们仍然有记忆。那些陷入困境的人开始编写与分类无关的代码。我没有惹上麻烦--我只是在论坛上读到了它,并把它记在心里。
不幸的是,这个神话在论坛的历史中找不到任何支持。此外,开发商一直明确表示他们的立场是,作为一个原则问题,不能进行这种改变。
例如,你可以放心地写
而不是
你可以自由地写
关于交易、自动交易系统和交易策略测试的论坛
mql4语言的特殊性,技巧和窍门
fxsaber, 2018.04.03 16:15
等。
不幸的是,这个神话在论坛的历史中找不到任何支持。此外,开发商一直明确表示他们的立场是,作为一个原则问题,不能进行这种改变。
例如,你可以随意写成以下样子
为什么要进行所有这些伪优化,其中的细微差别我们必须不断牢记?编写不依赖这种假设(命名常数 的含义)的代码真的这么难吗?除了显示对编译器的细微差别有一定的了解,但根本不是说它们更容易理解,这样的结构有什么意义呢?
为什么要进行所有这些伪优化,其中的细微差别必须时刻铭记在心?写出不依赖这种假设的代码真的那么难吗(这个或那个命名的常数 是什么意思)?除了显示出对编译器细微差别的一些知识外,这种结构的意义到底是什么,但根本不是说它们更容易理解?
这很奇怪,我在阅读这种代码时没有任何问题。此外,它的阅读和理解速度比 "规范 "代码要快。
好吧,上面的例子与Lots[]是一个宝藏,展示了代码如何能在同一时间内变得超级长寿和清晰。请注意,这根本不是 "正统 "的。
可能,如果你看一下许多市场/自由工作的源代码,你不仅仅会遇到破烂不堪的 "规范 "代码,你还会遇到可怕的低效率的性能和同样重要的因素--阅读时的代码理解力。
同样是对继续的不灭之爱,对语言的可能性完全不尊重。100行的代码比200行的代码做同样的事情更容易被感知。这就是人们最初抱怨MQL5的原因。看看QB为MT5重新设计的MT4代码--很难理解TC的逻辑(代码大了很多倍)。到MT4原版看看代码会更容易。
奇怪的是,我在阅读这样的代码时没有问题。此外,它的阅读和理解速度比 "规范 "代码要快。
在许多软件公司,这样的代码会让他们的手指被打掉。首先,你必须随时随地避免 "不必要的阅读"。例如,如果你在输入一个函数时使用一个条件。
if (<условие>) { }
建议写。
这种方法真正保住了条件的附加。
好吧,上面关于Lots[]的例子是一个真正的宝库,展示了代码如何既是超大型的又是完全可以理解的。请注意,这根本不是 "正统 "的。
再一次,这是一个痛苦的问题。毕竟,没有人检查OrderType()函数返回了什么。或者,也许它返回-1或6?这是一个利用编译器属性的例子,你应该永远避免。你自己举了很多跨平台代码的例子。那么,为什么在这种情况下你要远离它呢?一个新的MQ编译器出来后,这段代码将不再能正确工作。
同样是对继续的不灭的爱,是对语言的可能性的完全无视。一个100行的代码比一个200行的代码做同样的事情要好理解得多。这就是人们最初抱怨MQL5的原因。看看QB为MT5重新设计的MT4代码--几乎无法理解TC的逻辑(代码大得多)。到MT4原版看看代码会更容易。
继续下去也是一样的情况。像这样的代码。
是更难读到的。
而在这两种情况下,执行的效率却是一样的。