TrendlineAlert
之前设计过趋势线的突破通知和交易 EA, 但只是支持单一趋势线, 这次完善支持多条趋势线的版本, 以利上下区间突破的通知或交易策略, 对数据消息市的操作将更为帮助. 因为许多小外汇评台在数据消息发布前或清淡市时, 点差常会不预期扩大而扫到提前预放的追买或追卖单, 利用 EA 来监测的好处是 EA 只用 bid 价咯而不考虑当时 bid/ask 价咯点差, 只有 bid 价咯突破趋势线才发出定单, 最大可能避开点差放大扫单的问题, 但缺点自然是要客户端接收到价咯再下单到评台成交之间时间延迟, 在快市时同样也会有滑点的问题, 利弊可以自行用模拟帐户验证.
使用说明:
1. EA 会自动抓取图表上的多条趋势线, 在当时价咯之上的趋势线判断为向上突破, 在价咯下为向下突破, 并自动生成跟随时间移动的价咯标签.
突破后, 自动发出通知 (有提示窗口, 声音, email 和与手机 MT4 间通知四个选项) 并可自动产生追买或追卖的交易单.
2. 突破后的趋势线, 会将价咯标签放大并改为特定颜色的浅色, 不再随时间移动, 以利判断这条趋势线已经作过突破而不再处理.
3. 在图表左侧, 显示当前商品名称, 周期, 服务器时间和价咯, 并显示这些趋势线当前的状态.
4. 关闭 MT4 后重启, EA 会自动再抓取这些趋势线, 上次已经突破的趋势线也会被记忆住.
5. EA 移除后, 自动消除图表上所有的趋势线,标签和文字.
6. 交易功能里的止盈和止损点数在外汇交易时是以小数点四位或两位的点数为单位, 当检测到评台为五位或三位时, 会自动将点数乘十.
7. 移动止损功能 (trailing stop) 默认为关闭, 如果开启, 当检测到当种商品的委托单没有设定固定止盈和止损设定, 会自动设置, 并开始移动止损功能. 移动止损功能还分固定移动和变动移动, 默认是固定移动, 逻辑细节请见代码.
8. 有时避免假突破, 可以将趋势线设高或低些, 或利用 EA 参数输入里的 PriceDelta , 设定突破再多几点才算真正突破, 默认为零, 也就是大于或小于趋势线即算突破, 在外汇小数点三位或五位评台, 这个点数和其他点数参数一样, EA 会自动乘十
编程简要笔记, 以利日后调试修改:
1. 对 EA 放置前图表上以存在的多条趋势线, 在 EA 初始化函数 OnInit() 内进行扫描, 并以下面字串逻辑合并在同一个字串, 之后再用 MQL4 里的 StringSplit(...) 以分隔字 ";" 切成字串数组 array 来处理.
0或1 + 趋势线object名称 + ";" 分隔字 ===> 0 代表还未突破, 1 代表已经突破的趋势线
2. EA 挂上后再放置或移除的趋势线, 使用 MT4 build 600 后新增的 OnChartEvent(...) 图表消息功能来处理. Object 新增或移除要获得消息, 另外在 OnInit() 作以下设定才能得到消息, 这是与其他消息不同的地方. 新增和移除的趋势线也按照第一条的方式加入 Trendline 名称至那个总表字串, 并自动加入或删除价咯标签.
ChartSetInteger(ChartID(),CHART_EVENT_OBJECT_CREATE,true);
ChartSetInteger(ChartID(),CHART_EVENT_OBJECT_DELETE,true);
3. 每当 EA 移除, 关闭 MT4, 修改 EA 参数, 在 MQL4 机制中皆会调用程序关闭的 OnDeinit(...) 但这里通常是作消除图表 objects 的地方, 如果只在 EA 移除时才作消除动作, 其他原因不动作, 对关闭的原因 int reason 需作判断, 这个 reason 列表于 MQL4 官网里的: http://docs.mql4.com/cn/constants/namedconstants/uninit
EA 参数设定说明:
input bool TradeEnabled = false; //是否开启突破追买或追卖交易功能, 默认为 不 开启
input double Lots = 1.0; // 交易手数
input int TargetProfit = 50; // 止盈点数, 在外汇小数点三位或五位评台 EA 会自动乘十
input int StopLoss = 50; // 止损点数, 在外汇小数点三位或五位评台 EA 会自动乘十
input int Slippage = 50; // 允许滑点点数, 在外汇小数点三位或五位评台 EA 会自动乘十
input bool AlertPopup = true; // 提示窗口, 默认为开启
input bool Sound = true; // 提示声音, 默认为开启
input bool EmailAlert = true; // 通知 email, 默认为开启
input bool MobileAlert = false; // 与手机MT4间的通知, 默认为关闭
input int PriceDelta = 0; // 突破再多几点才算真正突破, 默认为零, 也就是大于或小于趋势线即算突破, 在外汇小数点三位或五位评台 EA 会自动乘十
input bool ChineseDisplay = true; // 状态文字为中文或英文显示, 默认为中文显示
input int HourStart = 0; // EA 作用开始时间, 以本机时间为准, 默认是全天也就是 0-24 时
input int HourEnd = 24;
input bool TrailingStop = false; // 移动止损, 默认为关闭
input bool TrailingStopMoved = false; // 固定或变动移动止损, 默认为固定, 但上者功能关闭时也是被关闭
input int TrailingStopPoint = 5; // 移动止损点数, 在外汇小数点三位或五位评台 EA 会自动乘十
input bool DisplayQuote = true; // 是否在图表左侧显示当前商品名称, 周期, 服务器时间和价咯, 默认为显示
input bool DisplayTrendLineStatus = true; // 是否在图表左侧显示趋势线突破状态, 默认为显示
input bool AddPosition = false; // 是否作间隔加仓, 默认为关闭
input int PositionStepPoint = 10; // 间隔追买或追卖加仓的间隔点数, 在外汇小数点三位或五位评台 EA 会自动乘十
input int PositionStepNumber = 1; // 间隔追买或追卖加仓的间隔次数
|
评论内容只代表网友观点,与本站立场无关!
本网提供的公式文件说明:
* alg格式飞狐股票公式,可以用飞狐交易师或者交易师软件导入;
* fnc格式大智慧新一代公式指标,可以用大智慧股票软件使用,少部分可以用分析家股票软件引入使用;
* exp格式大智慧经典版股票公式,仅可以用大智慧经典版股票软件引入使用;
* tni和tnc格式通达信股票公式,仅可以用通达信新引入使用,例如可以用通达信股票软件引入使用;
* tne,tn6格式通达信公式,可以用通达信公式编辑器5.0版导入,推荐通达信金融终端版本;
* hxf格式同花顺股票公式,仅可以用同花顺股票软件引入使用。
以上的各种软件都可以在本网股票软件栏目找到!
* 关于股票公式时间限制,如果在引入大智慧公式,交易师公式或者飞狐公式的时候,发现公式名称栏是空白的,这时候调整电脑时间到1997年,又能出现公式名称,并且能正常显示,可能是公式使用期限已过。
* 关于还原公式源码如果你忘记了自己编写的大智慧公式,通达信公式,同花顺公式,操盘手公式,飞狐公式,博易大师公式,金字塔公式,文华公式和交易师公式等等公式的密码,本网可帮恢复源码,有.偿.服.务无意勿扰,点击在线咨询联系我。
* 关于股票公式源码编辑
本网提供的源码,一般都可以编辑成公式,如果不明白公式的编辑,在本页右侧教程录像可参考,或者找公式教程资料学习,请搜索:教程
* 如果您发现软件内容或者链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含源码均是由网上搜集,若侵犯了你的版权利益,请联系通知我们!