论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
  • 3
  • 4
  • 5
前往
共 89 条
siassamy
注册时间2015-08-02
[原创]学习雷锋好榜样----手把手教编写EA
发表于:2016-04-18 12:06只看该作者
40楼 电梯直达
电梯直达
嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎嘎灌灌灌灌灌
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
秀策
注册时间2014-10-15
kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-19 00:13只看该作者
42楼
我们复习回想一下,EA是一个文件,由很多函数组成,函数由很多语句组成,语句由固定语法的符号组成。这个语法就是MQL4. 前面我已经讲过函数语法,现在我举个例子。现在要做一个区间的判断,用均线差值小于20作为标准,我给这个函数取名: double MAHighDifference(); double MALowDifference(); 函数还可以调用函数,由简单的小功能,累加成复杂一点的功能。 函数名取好了,下一节讲实现这个功能的函数体。
海科二元
注册时间2016-04-18
kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-19 07:25只看该作者
45楼
开始编的时候,才想起EA名字没有取名。取名是个大学问,万能的韬客,谁能贡献一个? 在没有合适名字前,我先取一个叫拓客小强EA。 新建EA模板很简单,取好名字,后面就一个个功能模块编,直致编完再调式。 QQ图片20160419152221.png
mitzi
注册时间2012-01-10
发表于:2016-04-19 09:30只看该作者
46楼
加油楼主,我在等着继续上您的课呢
Drawdown
注册时间2013-09-18
发表于:2016-04-19 09:40只看该作者
47楼
这个好,通宝明天补上。
kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-19 12:25只看该作者
48楼
想了想,取前3根3日均价累加减去再往后3根3日均价累加,取绝对值再除以3,得出差值,做了测算20点以内差值出现概率15%左右,附代码。 QQ图片20160419202446.png

点评

直接贴代码好不好?发表于 2016-04-19 13:45
tiandiyiqi
注册时间2014-11-27
积极参与奖
发表于:2016-04-19 13:45只看该作者
49楼
kimfufree 发表于 2016-4-19 20:25
想了想,取前3根3日均价累加减去再往后3根3日均价累加,取绝对值再除以3,得出差值,做了测算20点以内差值 ...
直接贴代码好不好?

点评

贴代码是可以的。增加两个变量,存最近高低点均价参考价,用来做买卖参考点。double gHighReferencePrice; double gLowReferencePrice; double MAHighDifference(int start_bar) { double l_sumhighnew3bars;发表于 2016-04-19 14:17
个性签名

韬客社区www.talkfx.co

kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-19 14:17只看该作者
50楼
tiandiyiqi 发表于 2016-4-19 21:45
直接贴代码好不好?
贴代码是可以的。增加两个变量,存最近高低点均价参考价,用来做买卖参考点。double gHighReferencePrice; double gLowReferencePrice; double MAHighDifference(int start_bar) { double l_sumhighnew3bars; double l_sumhighold3bars; l_sumhighnew3bars=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_HIGH,start_bar); l_sumhighnew3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_HIGH,start_bar+1); l_sumhighnew3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_HIGH,start_bar+2); l_sumhighold3bars=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_HIGH,start_bar+3); l_sumhighold3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_HIGH,start_bar+4); l_sumhighold3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_HIGH,start_bar+5); gHighReferencePrice = NormalizeDouble(l_sumhighnew3bars/3,Digits); //PrintFormat("high difference=%.4f.",MathAbs(l_sumhighnew3bars-l_sumhighold3bars)/3); return MathAbs(l_sumhighnew3bars-l_sumhighold3bars)/3; } double MALowDifference(int start_bar) { double l_sumlownew3bars; double l_sumlowold3bars; l_sumlownew3bars=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_LOW,start_bar); l_sumlownew3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_LOW,start_bar+1); l_sumlownew3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_LOW,start_bar+2); l_sumlowold3bars=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_LOW,start_bar+3); l_sumlowold3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_LOW,start_bar+4); l_sumlowold3bars+=iMA(NULL,PERIOD_D1,3,0,MODE_SMA,PRICE_LOW,start_bar+5); gLowReferencePrice = NormalizeDouble(l_sumlownew3bars/3,Digits); //PrintFormat("low difference=%.4f.",MathAbs(l_sumlownew3bars-l_sumlowold3bars)/3); return MathAbs(l_sumlownew3bars-l_sumlowold3bars)/3; } 再贴一个EA运行前统计有多少柱符合20点震荡交易天数。 int OnInit() { //--- int high_bars_cnt=0; int low_bars_cnt=0; for(int i=1;i< iBars(NULL,PERIOD_D1)-7;i++) { if (MAHighDifference(i)<0.0020) high_bars_cnt++; if (MALowDifference(i)<0.0020) low_bars_cnt++; } PrintFormat("Total=%d, high=%d, low=%d.",iBars(NULL,PERIOD_D1)-7,high_bars_cnt,low_bars_cnt); //--- return(INIT_SUCCEEDED); }

评分

参与人数1
积分
金币
人气
时间
理由
0
0
0
2016-04-19
赞一个!
kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-20 13:15只看该作者
51楼
知识,智慧,越付出,贡献越多,收获越大。 区间判断有了,我们就看下单时机,我选每5分钟检查一次,高于高点参考价减20点,下卖单,50点止损。 低于低点参考价加20点,下买单,50点止损。代码如下: datetime cur_m5time; void CheckForOpenOrder() { bool res; if (cur_m5time !=iTime(NULL,PERIOD_M5,0)) cur_m5time = iTime(NULL,PERIOD_M5,0); else return; if (MAHighDifference(1)<0.0020) { if(Bid > (gHighReferencePrice - 0.0020)) { res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+50*0.0001,0,"high",MAGICMA,0,Red); } } if (MALowDifference(1)<0.0020) { if(Ask < (gLowReferencePrice + 0.0020)) { res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-50*0.0001,0,"low",MAGICMA,0,Blue); } } }
个性签名

汇神专一郎

microscale
注册时间2014-02-08
kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-21 12:18只看该作者
53楼
直接贴代码要审核,还是贴图片快速,最后会以完整EA出现的。 开仓有了,关仓以每5分钟检查一次,超过50点赢利,平仓。最后增加一个移动止损功能。 QQ图片20160421201814.png
1神无月1
注册时间2014-08-24
积极参与奖白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
慈悲为怀
注册时间2008-04-20
发表于:2016-04-22 13:03只看该作者
55楼
问个问题: 如何保证EA不受到黑客的攻击,应该能设立密码,但好像也防不住。

点评

如果黑客能攻击到你的ea,说明你的整个机器都沦陷了,加什么密码。发表于 2016-04-22 15:19
还有这档事? 头脑有知识,其它不重要。他能攻击你的EA,他能攻击你的知识吗?发表于 2016-04-22 14:59
scalping
注册时间2015-01-14
发表于:2016-04-22 13:11只看该作者
56楼
顶! 想知道cur_time变量,后面怎么用的。

点评

没什么特殊用途,他记住5分钟时钟,清0后,程序可以再跑进来一次,而不要再等5分钟。发表于 2016-04-22 14:52
kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-22 14:52只看该作者
57楼
本帖最后由 kimfufree 于 2016-4-22 22:56 编辑
scalping 发表于 2016-4-22 21:11
顶! 想知道cur_time变量,后面怎么用的。
哦,COPY错了,应该是cur_m5time。 cur_time另一个函数用的。没什么特殊用途,他记住5分钟时钟,清0后,程序可以再跑进来一次,而不要再等5分钟。

点评

是的,我也怀疑是写错了,没敢直接说。发表于 2016-04-22 15:12
kimfufree
注册时间2007-01-29
天秤座
楼主发表于:2016-04-22 14:59只看该作者
58楼
慈悲为怀 发表于 2016-4-22 21:03
问个问题: 如何保证EA不受到黑客的攻击,应该能设立密码,但好像也防不住。
还有这档事? 头脑有知识,其它不重要。他能攻击你的EA,他能攻击你的知识吗?

点评

我的期货账户密码是8位,那是几年前没有字母的密码,黑客一周给改了3次, 反而是我到期货公司重新设立。 我的方案每周就能翻倍,但怎么实行是个问题!你们无法想象被一群黑客干扰的情景。暂时EA还是不能编。发表于 2016-04-22 15:18
scalping
注册时间2015-01-14
发表于:2016-04-22 15:12只看该作者
59楼
kimfufree 发表于 2016-4-22 22:52
哦,COPY错了,应该是cur_m5time。 cur_time另一个函数用的。没什么特殊用途,他记住5分钟时钟,清0后, ...
是的,我也怀疑是写错了,没敢直接说。
  • 1
  • 2
  • 3
  • 4
  • 5
前往
共 89 条

本站免责声明:

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

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

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

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

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

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