论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
前往
共 35 条
查看:754回复:34
shanghaijill
注册时间2018-02-06
[EA]MQL4 编程疑问
楼主发表于:2019-02-09 03:27只看该作者倒序浏览
1楼 电梯直达
电梯直达
// 如果在搜索中生成错误,转至下一个仓位 if ( !OrderSelect( z, SELECT_BY_POS ) ) { _GetLastError = GetLastError(); Print("OrderSelect( ", z, ", SELECT_BY_POS ) - 错误 #", _GetLastError ); continue; } 请教高手,这个语句是必须的吗?不写会妨碍EA的执行效果吗?
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 03:37只看该作者
2楼
感觉这个语句没什么意义emoji-image
汇虎
注册时间2010-10-16
积极参与奖天秤座
woshanshui
注册时间2014-10-28
发表于:2019-02-09 07:13只看该作者
4楼
本帖最后由 woshanshui 于 2019-2-9 15:15 编辑 .
shanghaijill
注册时间2018-02-06
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 07:43只看该作者
6楼
谢谢汇虎,祝您新年虎虎生威emoji-image
shanghaijill
注册时间2018-02-06
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 10:48只看该作者
8楼
个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
notomboy
注册时间2016-04-29
积极参与奖摩羯座捐赠爱心基金前十名
AlwaysRemember
注册时间2018-03-05
发表于:2019-02-09 11:12只看该作者
10楼
很久没看MQL4了, 得去看那个continue跳转到哪里去了,它会影响程序运行的。continue常用在for循环或者switch/case的。MQL4大致上是迷你版的C。 也就是说,这个if()如果判断是false,即没找到的话,continue会跳过后面的一些语句,开始下一个循环。如果你删掉continue,程序会执行后面的一段语句。所以不能删,这段程序是有效的。
AlwaysRemember
注册时间2018-03-05
发表于:2019-02-09 11:22只看该作者
11楼
有些老糊涂了,不记得continue是不是switch/case的配套语句了,break是的。continue是放之四海皆可用的短路语句。 总之,这段语句是有效的,不能删除。
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 11:25只看该作者
12楼
AlwaysRemember 发表于 2019-2-9 19:22
有些老糊涂了,不记得continue是不是switch/case的配套语句了,break是的。continue是放之四海皆可用的短路 ...
for
( int
z = _OrdersTotal - 1
; z >= 0
; z -- ) {// 如果在搜索中生成错误,转至下一个仓位
if
( !OrderSelect
( z, SELECT_BY_POS
) ) { _GetLastError = GetLastError
(); Print
("OrderSelect( "
, z, ", SELECT_BY_POS ) - 错误 #"
, _GetLastError ); continue
; } // 如果当前的货币对没有开仓,
// 忽略过
if
( OrderSymbol
() != Symbol
() ) continue
; 下面省略
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 11:27只看该作者
13楼
continue是结束当前的开始下一个循环,break是跳出循环/结束循环。
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 11:32只看该作者
14楼
我的意思是想不出什么情况会产生错误,如果说搜索不到订单,直接写搜索到的情况不就行了吗?也就是 OrderSelect( z, SELECT_BY_POS )后面直接写 if ( OrderSymbol() == Symbol() )及其他语句不行吗?
偶然间黑觉
注册时间2018-07-25
发表于:2019-02-09 11:40来自移动端只看该作者
15楼
没写过ea,不过按照程序逻辑最好不要去掉。这一段是为了防止程序处理错误的时候不中断还可以继续运行,如果你去掉真的碰到错误了你整个一夜就宕掉了
一个菠萝
注册时间2018-06-22
发表于:2019-02-09 21:10来自移动端只看该作者
16楼
剪切 运行 如果无法运行 粘贴回去
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-10 05:34只看该作者
17楼
我的意思是直接写搜索成功的语句,不写不成功的语句不行吗?
woshanshui
注册时间2014-10-28
发表于:2019-02-10 08:32只看该作者
18楼
shanghaijill 发表于 2019-2-10 13:34
我的意思是直接写搜索成功的语句,不写不成功的语句不行吗?
这段代码的本意应该是,检查开仓是否成功,若不成功,则输出错误原因。一般来说去掉这些代码,不影响效果。但究竟是否有用,还得联系一段上下文,来判断。
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-10 09:04只看该作者
19楼
woshanshui 发表于 2019-2-10 16:32
这段代码的本意应该是,检查开仓是否成功,若不成功,则输出错误原因。一般来说去掉这些代码,不影响效果 ...
谢谢前辈解答emoji-image 这段程序我是在《简单的订单管理》中一个例子的开头看到的。
偶然帅
注册时间2007-02-19
发表于:2019-02-10 09:43只看该作者
20楼
不是必须的。 这一段的用处是 让你知道:选择订单为什么失败了?可能的原因是什么? 很多时候选择失败就失败了,不用处理,选择失败了也就操作不了啥,不会有任何后果。
  • 1
  • 2
前往
共 35 条

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]