论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
前往
共 24 条
查看:1213回复:23
shanghaijill
注册时间2018-02-06
MQL4 编程知识
楼主发表于:2019-02-09 00:43只看该作者倒序浏览
1楼 电梯直达
电梯直达
以MagicNumber命名的特殊参数被添加到定单识别符中,交易者可以使用多种函数来管理开仓,挂单并且获取平仓信息。
TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 01:04只看该作者
2楼
int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) 参量: symbol - 交易货币对。 cmd - 购买方式。可以是购买方式列举的任意值。 volume - 购买手数。 price - 收盘价格。 slippage - 最大允许滑点数。 stoploss - 止损水平。 takeprofit - 赢利水平。 comment - 注解文本。注解的最后部分可以由服务器改变。 magic - 定单指定码。可以作为用户指定识别码使用。 expiration - 定单有效时间(只限挂单)。 arrow_color - 图表上箭头颜色。如果参量丢失或存在CLR_NONE价格值不会在图表中画出。 即,当定单被放置时,可以给定单指定独有的数字。这个数字将用于区分其他定单。当手动交易时,不使用(尽可能)这个特性,但是在智能交易(自动交易)运作时,此特性是不可替代的。
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 01:12只看该作者
3楼
范例1: 在客户端内交易者和智能交易同时运行。 任务: 智能交易的运行必须按照它自己的形式计算,对于手动开仓不会干涉。 解决: 开仓的智能交易必须指定独特的MagicNumber(零除外)。接下来的日子里,智能交易只会管理提前设定的 MagicNumber 的定单。 范例 2: 在客户端内两个不同计算方法的智能交易同时运行。 任务: 智能交易只管理自己的定单。. 解决: 当开仓时,每个智能交易必须使用自己的 MagicNumber(零除外)。接下来的日子里,智能交易只会管理提前设定的MagicNumber的定单。 范例 3: 在客户端内几个智能交易,交易者和协助智能交易执行的不标准追踪止损同时运行。 任务: 交易的智能交易必须按照自己的形式计算,并且不干涉手动开仓。协助智能交易执行的追踪止损可以在手动开仓处修改,但是其他智能交易不能够开仓。 解决: 智能交易必须使用独有的MagicNumbers并且管理自己的仓位。协助智能交易修改的这些仓位,其 MagicNumber等于 0。 以上三个范例都很现实,用户可以提前解决问题。在这三个范例情况中,都是使用MagicNumber来解决问题的。这不是唯一解决问题的途径,但是最简单的途径。
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 03:17只看该作者
4楼
//获得最新订单的开仓价 start函数里的使用: ================================================== double LastBuyOpenPrice; LastBuyOpenPrice=GetBuyOrderOpenPrice(); ================================================== //函数定义 double GetBuyOrderOpenPrice()//如果没有指定的持仓单,则返回-1 { for(int i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderSymbol()==Symbol() && OrderType()==OP_BUY ) { return(OrderOpenPrice()); } } return(-1);
个性签名

韬客社区www.talkfx.co

shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 03:24只看该作者
5楼
// 如果在搜索中生成错误,转至下一个仓位 if ( !OrderSelect( z, SELECT_BY_POS ) ) { _GetLastError = GetLastError(); Print("OrderSelect( ", z, ", SELECT_BY_POS ) - 错误 #", _GetLastError ); continue; } 请教高手,这个语句是必须的吗?不写会妨碍EA的执行效果吗?
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-09 11:56只看该作者
6楼
使用函数的智能交易程序稍稍慢了一点
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-12 01:19只看该作者
7楼
return是可以跳出双重for循环 for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ return "success"; } } 这个语法是可以跳出for循环的,尽管是双重循环。
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-12 04:53只看该作者
8楼
合并.............
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 02:43只看该作者
9楼
Lots = 0.1 if(AccountFreeMargin()<(1000*Lots)) { Print("We have no money. Free Margin = ", AccountFreeMargin()); return(0); } 这个的代码的意思是,假设我们的可用保证金小于100的话,我们就停止开仓。其目的主要是保护我们的资金,不然我们的资金无限制的开仓
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 02:46只看该作者
10楼
报警开关之写法一 for (i=limit-1;i>=0;i--) { if(......&& Time[0]>bartime &&.....){ Alert(Symbol(), " ", ......); bartime=Time[0]; } }
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 02:47只看该作者
11楼
几个账户有关的术语的确切含义 余额Balance: 有仓时==净值;(开仓后则不一定) 净值Equity: 开仓后则包含了盈亏 已用Margin: 当前持有单所占用的资金(已用保证金) 可用Free: 净值 - 已用
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 04:30只看该作者
12楼
return :表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。 return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。 总结:return -1和0其实是没什么区别的,只是大家习惯性更倾向于返回-1为错,返回0为正确而已!程序是自己写的,如果程序员要把-1当作正确返回也是可行的!
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 05:32只看该作者
13楼
RefreshRates(); 刷新预定义变量和系列数组的数据 是开平仓失败时重新要价的 重新要价是按原来的价格吗? 没准 你手动下单的时候,有时候行情速度太快,会提示你价格已经变动了,是否按照最新价格下单 ea下单也有这个问题,一般都是判断下单失败后,调用一下这函数,刷新一下价格。 挂单一般没这问题
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 05:37只看该作者
14楼
要善于使用print作为排错方法,输出关键位置的数值,来帮助自己判断程序是否正确
个性签名

韬客社区www.talkfx.co

shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 05:53只看该作者
15楼
不知是否一分钟数据太多,我的mt4不能进行backward test了,没有反应,想进1分钟图就死掉, 怎么办好? 有两种可能: 1、历史数据太多。方法: 到History目录里,进入你当前账号所在目录,删掉历史文件 2、图表加载的指标编的的不好,计算量过大。方法:找一下图表上是哪个指标,到indicator目录下将这个指标的ex4删除,然后重新进入MT4看看
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 07:43只看该作者
16楼
通过全局变量可以让某个值在各个函数中传递,各个函数也都可以修改这个变量的值,起到一种互通有无的作用
如玉是天使
注册时间2018-03-27
发表于:2019-02-14 08:29只看该作者
17楼
代码不严谨,MQL4有更新了
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-14 08:34只看该作者
18楼
如玉是天使 发表于 2019-2-14 16:29
代码不严谨,MQL4有更新了
在哪里看更新的? 我这些是网上找的
如玉是天使
注册时间2018-03-27
发表于:2019-02-14 08:38只看该作者
19楼
你是刚开始学习吗?建议学习牛大的视频,在FX520网站上,现在的代码要求有些小地方有改动
shanghaijill
注册时间2018-02-06
楼主发表于:2019-02-20 05:48只看该作者
20楼
如玉是天使 发表于 2019-2-14 16:38
你是刚开始学习吗?建议学习牛大的视频,在FX520网站上,现在的代码要求有些小地方有改动
谢谢告知 我发现我的EA有时候符合下单条件却没有下单,不知道怎么解决?
  • 1
  • 2
前往
共 24 条

本站免责声明:

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

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

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

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

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

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