ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:65.85KB ,
资源ID:16445540      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16445540.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(mt4创建智能交易系统的步骤Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

mt4创建智能交易系统的步骤Word格式文档下载.docx

1、3. 对于快速数据通道设置内部变量4. 检测交易终端 是无效的吗?如果是:o 检测: 账户上的可用保证金.o 可能是看涨仓位 (BUY)? 开设看涨仓位并退出5. 可能是卖空仓位 (SELL)?o 开设卖空仓位并退出退出智能交易. 周期循环检验先前开仓o 如果是看涨仓位 应该平仓? 应该重新设定追踪止损? 如果是卖空仓位o 应该平仓?o 应该重新设定追踪止损?返回的结果很简单,只有4种。现在让我们尝试一步一步地区完成列出的计划:所有使用在智能交易程序中的变量必须按照 MetaQuotes Language 4 要求的指定。这就是为什么我们在程序的开始插入初始变量的原因extern double

2、 TakeProfit = 50;extern double Lots = 0.1;extern double TrailingStop = 30;extern double MACDOpenLevel=3;extern double MACDCloseLevel=2;extern double MATrendPeriod=26;MetaQuotes语言4 是需要“外部变量”辅助的。外部变量可以从外部设定,在智能交易程序源代码设定之后不可以修改。提供一个额外的灵活性。在我们的程序中,MATrendPeriod 变量作为外部变量指定。 在程序开始我们插入这个变量。2. 检测初始数据该代码部分通常

3、使用在所有的智能交易中。因为是一个标准的检测:/ 初始数据检测/ 确认智能交易运行正常非常重要/图表和用户设置不能出现任何错误 / 变量(Lots, StopLoss, TakeProfit, / TrailingStop) 我们的情况需要检测TakeProfit/ 图表中少于100 柱 if(Bars100) Print(少于 100柱); return(0); if(TakeProfit10)赢利少于10 / 检测TakeProfit3. 对于数据的快速通道设置内部变量在源代码中经常需要注意指标值或计算值。简化代码和数据放置在内部变量中。4. int start()5. 6. double

4、 MacdCurrent, MacdPrevious, SignalCurrent;7. double SignalPrevious, MaCurrent, MaPrevious;8. int cnt, ticket, total;9. 10. / 简化代码11. /数据放置在内部变量中12. MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);13. MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);14. SignalCurrent=iMACD(NULL,0,

5、12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);15. SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);16. MaCurrent=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0); MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1);现在,用 iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)代替,您可以在源代码中使用 MacdCu

6、rrent。17. 检测交易终端 是空的吗?在我们的智能交易中,我们仅使用开单和操作挂单。不过,使更安全,我们来认识一种 对于先前定单交易终端检测:total=OrdersTotal(); if(total1) 在分析市场状况之前,检测你的账户上可用的自由保证金可以开仓。if(AccountFreeMargin()(1000*Lots)没有资金.自由保证金 = , AccountFreeMargin();进入看涨仓位的条件: MACD 低于零, 向上并且穿过信号线向下。这就是我们在 MQL4中描述的 (注意我们在指标上的业务值保存在先前的变量中):/ 尽可能检测看涨仓位 (BUY) if(Ma

7、cdCurrentSignalCurrent & MacdPrevious MathAbs(MacdCurrent)(MACDOpenLevel*Point) & MaCurrentMaPrevious) ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, macd sample,16384,0,Green); if(ticket0) if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) BUY 开单 :,OrderOpenPrice(); else Print

8、(错误 opening BUY order :,GetLastError();附加的检验山丘的大小上面已经给出了描述。 MACDOpenLevel变量是一个用户指定变量,它不可能改变程序文本,但是却有很大的灵活性。在程序开始我们插入这个变量的描述。o 能交易示范 22010年02月18日 星期四 10:15 可能是卖空仓位(SELL)?进入卖空仓位的条件: MACD高于零,向上并且穿过信号线向下。注解如下:/ 尽可能的检测卖空仓位(SELL) if(MacdCurrent MacdCurrentSignalPrevious & MaCurrent ticket=OrderSend(Symbol

9、(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,16384,0,Red);SELL 开单 :错误SELL定单开仓 :return(0); 周期循环检验先前开仓/进入市场的正确性非常重要 / 但是更重要的是安全退出. for(cnt=0;cnt OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()(MACDCloseLevel*Point) OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); /平仓 /退出o 应该重设追踪止损马?我们设

10、定追踪止损只有在仓位盈利已经超过追踪水平点,并且新的止损水平点好于先前的水平。/ 检测追踪止损if(TrailingStop0) if(Bid-OrderOpenPrice()Point*TrailingStop) if(OrderStopLoss() OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop, OrderTakeProfit(),0,Green);我们停止操作符。 如果是卖空仓位else /卖空仓位 应该平仓吗?退出卖空仓位的条件: MACD穿过信号线,MACD低于零,向上并且穿过信号线向下。if(Ma

11、cdCurrent(Point*TrailingStop) if(OrderStopLoss()(Ask+Point*TrailingStop) | (OrderStopLoss()=0) OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop, OrderTakeProfit(),0,Red);关闭所有残留开仓。这样一步一步地编写我们的智能交易.智能交易示范 316步骤3 集中程序的结果代码让我们打开智能交易的设定:使用按钮打开属性.菜单。在窗口内指定运行参量的外部设定:从先前部分集中全部代码:/+-+/| MACD

12、 Sample.mq4 |/| Copyright 2005, MetaQuotes Software Corp. |/| |/| |int start() double MacdCurrent, MacdPrevious, SignalCurrent; double SignalPrevious, MaCurrent, MaPrevious; int cnt, ticket, total;/ 检测初始化数据/ 确定智能交易在图表中运行正常非常重要/ 用户在外部变量交易中不会产生任何错误/ 外部变量 (标准手数, 止损,赢利, / 追踪止损) 在这种情况下,我们检测图表中赢利水平要小于100

13、柱 / 检测赢利水平/ 简化代码和加速通道/ 数据被放置在内部变量中 MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1); SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0); SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); MaCurrent=iMA(NULL,

14、0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0); total=OrdersTotal(); / 没有指定开单 if(AccountFreeMargin()没有资金. 自由保证金 = / 尽可能检测看涨仓位 (BUY) MacdPreviousSignalPrevious & ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) Print(BUY 定单开仓 :错误BUY定单开

15、仓 : / 尽可能检测卖空仓位(SELL) MacdCurrent MaCurrent ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,SELL 定单开仓 : / 正确进入市场很重要, / 但正确退出市场更重要. for(cnt=0;cnt if(OrderStopLoss()Bid-Point*TrailingStop) OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

16、 else / 去卖空仓位 / 平仓 OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);/ 结束对于最后智能交易的确认,只需要指定外部变量值 Lots = 1, Stop Loss (S/L) = 0 (not used), Take Profit (T/P) = 120 (appropriate for one-hour intervals), Trailing Stop (T/S) = 30. 当然,你可以使用自己的值。按 编写按钮,如果没有任何错误信息出现 (你可以从 MetaEditor的列表中复制), 按 保存键保存智能交易。附件:MACD Sample.mq4 (3.8 Kb)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1