第一范文网 - 专业文章范例文档资料分享平台

mt4创建智能交易系统的步骤

来源:用户分享 时间:2025/6/4 17:01:07 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

以 MQL4语言程序为原理展示一个以标准MACD 指标为基础简单的智能交易系统的创建。 在这个智能交易中,我们将看到一些特性的示例,像赢利水平的设定,追踪止损的设置等等。在我们的范例中,通过开仓和管理仓位来完成交易。 交易原理:

?

Long (BUY) entry – MACD指标在零以下, 从下至上并且穿过低端的信号线。

?

Short (SELL) entry – MACD 指标在零以上,从上至下并且穿过顶端的信号线。

Long exit – 赢利上限的执行,追踪止损的执行或当穿过 MACD 的信号线 (MACD 指标在零以上,从上至下并且穿过顶端的信号线)。 ? Short exit – 赢利上限的执行,追踪止损的执行或当穿过 MACD 的信号线 (MACD指标在零以下, 从下至上并且穿过低端的信号线)。

?

重要提示:从我们的分析上排除一些 MACD 指标微不足道的变化 (图表上的小 '山丘'),我们介绍一种补充检测‘山丘’大小的办法如下:指标的大小应该在最低价的最后5个单元(5*Point,对于 USD/CHF = 0.0005 和 USD/JPY = 0.05).

步骤 1 – 编写智能交易的描述

在智能交易的导航窗口处,点击鼠标右键并且选择在菜单中的“创建新智能交易”。创建智能交易的初始提醒将会询问你进入数据中心。在显示窗口,填写智能交易的名称(名称) - MACD Sample,作者(作者) -指出你的名字, 链接 (连接) -你网页的链接,注解 (注解) -

MACD-基本智能交易的测试范例。

步骤 2 –创建程序的基本结构

测试智能交易的源代码将只占据一点位置,但是还是有些量经常很难抓住,特别是我们不是专业的编成工作者 - 另外,我们不需要这些描述,不是吗? :) 一个标准智能交易的结构构想,让我们看看以下部分的描述: 1. 初始变量

2. 初始数据检测

o 检测图表,图表中的柱数

o 检测外部变量值:标准手, S/L, T/P, T/S

3. 对于快速数据通道设置内部变量

4. 检测交易终端 – 是无效的吗?如果是:

o 检测: 账户上的可用保证金... o 可能是看涨仓位 (BUY)?

? 开设看涨仓位并退出

5. 可能是卖空仓位 (SELL)?

o

开设卖空仓位并退出

退出智能交易...

周期循环检验先前开仓

o 如果是看涨仓位

? 应该平仓?

? 应该重新设定追踪止损?

? 如果是卖空仓位

o 应该平仓?

o 应该重新设定追踪止损?

?

返回的结果很简单,只有4种。

现在让我们尝试一步一步地区完成列出的计划:

1. 初始变量

所有使用在智能交易程序中的变量必须按照 MetaQuotes Language 4 要求的指定。这就是为什么我们在程序的开始插入初始变量的原因 extern double 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 变量作为外部变量指定。 在程序开始我们插入这个变量。

extern double MATrendPeriod=26;

2. 检测初始数据

该代码部分通常使用在所有的智能交易中。因为是一个标准的检测: // 初始数据检测

// 确认智能交易运行正常非常重要 //图表和用户设置不能出现任何错误 // 变量(Lots, StopLoss, TakeProfit,

// TrailingStop) 我们的情况需要检测TakeProfit // 图表中少于100 柱

if(Bars<100) {

Print(\少于 100柱\ return(0); }

if(TakeProfit<10) {

Print(\赢利少于10\

return(0); // 检测TakeProfit }

3. 对于数据的快速通道设置内部变量

在源代码中经常需要注意指标值或计算值。简化代码和数据放置在内部变量中。

4. int start() 5. {

6. double 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,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)代替,您可以在源代码中使用 MacdCurrent。

17.检测交易终端 –是空的吗?如果是:

在我们的智能交易中,我们仅使用开单和操作挂单。不过,使更安全,我们来认识一种 对于先前定单交易终端检测:

total=OrdersTotal(); if(total<1)

搜索更多关于: mt4创建智能交易系统的步骤 的文档
mt4创建智能交易系统的步骤.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9w9pd6a51c7g2499ip734mu7526kg600foi_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top