外汇mt4编程:ea编写中级(第2版).doc_第1页
外汇mt4编程:ea编写中级(第2版).doc_第2页
外汇mt4编程:ea编写中级(第2版).doc_第3页
外汇mt4编程:ea编写中级(第2版).doc_第4页
外汇mt4编程:ea编写中级(第2版).doc_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

外汇mt4编程:ea编写中级(第2版) 外汇MT4编程: MT4 EA编写中级(第2版共十六课)原创:李沂鸿(柒侠伍义)国家:马来西亚 第1章:初级EA以下是初级EA /ea 不读这个注解/#property copyright 柒侠伍义_初级EA教程_商业版本datetime 限制一根柱子下注一次 =0; /自定义extern double下注数量=0.1; /自定义extern double止损=200; /自定义extern double止盈=200; /自定义extern double 滑点=30; /自定义externbool 使用音乐=true; /true=要用 false=不要用externbool 使用弹出提示=false; /true=要用 false=不要用string ea名字 =柒侠伍义_初级EA教程;extern double开始交易时间=3; /自定义交易时间extern double结束交易时间=23; /自定义交易时间double魔术号码=16384; /自定义魔术号码double 死亡日期年=2009; /自定义ea终止日期double 死亡日期月=12; /自定义ea终止日期double 死亡日期日=12; /自定义ea终止日期double 死亡日期时=12; /自定义ea终止日期double 用户账户=90240764; /自定义指定用户帐号double 赢钱目标 =10000;/自定义赢太多了不要做单double 输钱目标=500; /自定义输太惨了不要做单string 交易商 = FOREX.com;/自定义交易商extern string 货币对1 =EURUSD; /自定义指定货币对extern string 货币对2 =EURJPY; /自定义指定货币对extern string 货币对3 =GBPUSD; /自定义指定货币对double时间周期1=30,时间周期2=60; /自定义时间周期/ea 不读这个注解/int start() /ea 开始运行 /开始主程式HideTestIndicators(true);/命令ea隐藏ea中的指标if(AccountFreeMarginCheck(Symbol(),OP_BUY,下注数量)<=0| GetLastError()=134) return;/命令ea如果保证金不足不要交易if(AccountFreeMarginCheck(Symbol(),OP_SELL,下注数量)<=0| GetLastError()=134)return;/命令ea如果保证金不足不要交易/ea 不读这个注解/ if( /开始如果OrdersTotal()=0 /没有单可以下注&&Close0-Open0>200*Point /判断上升趋势&&Close1-Open1>200*Point /判断上升趋势&&Close2-Open2>200*Point /判断上升趋势&&Close3-Open3>200*Point /判断上升趋势&& 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次&& IsDemo() /限制模拟户口运行&& DayOfWeek()!=0 /礼拜不要交易&& DayOfWeek()!=6 /星期6不要交易&& DayOfWeek()!=5 /星期5不要交易&&(Hour()>开始交易时间&&Hour()<结束交易时间)/限制交易时间:早上3点到晚上10点可以交易&&Year()=2009 /限制交易时间:只限2009年可以运行&&(Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时) /ea死亡日期&& AccountNumber()=用户账户/指定用户账户&&(AccountBalance()<赢钱目标&&AccountBalance()>输钱目标) /赢太多了不要做单 输太惨了不要做单&&AccountCompany()=交易商 /指定交易商方可交易&&(Symbol()=货币对1|Symbol()=货币对2|Symbol()=货币对3) /指定货币对&&(Period()=时间周期1|Period()=时间周期2) /指定时间周期运行)OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,+ea名字+,魔术号码,0,Green);限制一根柱子下注一次 =Time0;if(使用音乐)PlaySound(Conditions.wav);if(使用弹出提示)Alert( M,Period(),Symbol(),buy开仓,余额资金:,AccountBalance(), ); / end if 结束如果 /ea 不读这个注解/ if( /开始 如果OrdersTotal()=0 /没有单可以下注&&Open0-Close0>200*Point /判断下降趋势&&Open1-Close1>200*Point /判断下降趋势&&Open2-Close2>200*Point /判断下降趋势&&Open3-Close3>200*Point /判断下降趋势&& 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次&& IsDemo() /限制模拟户口运行&& DayOfWeek()!=0 /礼拜不要交易&& DayOfWeek()!=6 /星期6不要交易&& DayOfWeek()!=5 /星期5不要交易&&(Hour()>开始交易时间&&Hour()<结束交易时间)/限制交易时间:早上3点到晚上10点可以交易&&Year()=2009 /限制交易时间:只限2009年可以运行&&(Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时) /ea死亡日期&& AccountNumber()=用户账户/指定用户账户&&(AccountBalance()<赢钱目标&&AccountBalance()>输钱目标) /赢太多了不要做单 输太惨了不要做单&&AccountCompany()=交易商 /指定交易商方可交易&&(Symbol()=货币对1|Symbol()=货币对2|Symbol()=货币对3) /指定货币对&&(Period()=时间周期1|Period()=时间周期2) /指定时间周期运行)OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,+ea名字+,魔术号码,0,Red);限制一根柱子下注一次 =Time0;if(使用音乐)PlaySound(Conditions.wav);if(使用弹出提示)Alert( M,Period(),Symbol(),sell开仓,余额资金:,AccountBalance(), ); / end if结束如果 /ea 不读这个注解/ return(0); /叫 ea重复运行每秒大概可能重新运算100次 /startto end 结束主程式 第2章:删除不是很重要的自定义为了方便学习 1. /ea 不读这个注解/2. #property copyright 柒侠伍义_初级EA教程_商业版本3. datetime 限制一根柱子下注一次 =0; /自定义4. extern double 下注数量=0.1; /自定义5. extern double 止损=200; /自定义6. extern double 止盈=200; /自定义7. extern double 滑点=30; /自定义8. extern bool 使用音乐=true; /true=要用 false=不要用9. extern bool 使用弹出提示=false; /true=要用 false=不要用10. string ea名字 = 柒侠伍义_初级EA教程;11. /extern double 开始交易时间=3; /自定义交易时间12. /extern double 结束交易时间=23; /自定义交易时间13. double 魔术号码=16384; /自定义魔术号码14. /double 死亡日期年=2009; /自定义ea终止日期15. /double 死亡日期月=12; /自定义ea终止日期16. /double 死亡日期日=12; /自定义ea终止日期17. /double 死亡日期时=12; /自定义ea终止日期18. /double 用户账户=90240764; /自定义指定用户帐号19. /double 赢钱目标 =10000;/自定义赢太多了不要做单20. /double 输钱目标 =500; /自定义输太惨了不要做单21. /string 交易商 = FOREX.com; /自定义交易商22. /extern string 货币对1 = EURUSD; /自定义指定货币对23. /extern string 货币对2 = EURJPY; /自定义指定货币对24. /extern string 货币对3 = GBPUSD; /自定义指定货币对25. /double 时间周期1=30,时间周期2=60; /自定义时间周期26. /ea 不读这个注解/27. int start() /ea 开始运行28. /开始主程式29. 30. HideTestIndicators(true);/命令ea隐藏ea中的指标31. if(AccountFreeMarginCheck(Symbol(),OP_BUY,下注数量)<=0| GetLastError()=134) return;/命令ea如果保证金不足不要交易32. if(AccountFreeMarginCheck(Symbol(),OP_SELL,下注数量)<=0| GetLastError()=134)return;/命令ea如果保证金不足不要交易33. 34. /ea 不读这个注解/35. 36. if( /开始如果37. OrdersTotal()=0 /没有单可以下注38. &&Close0-Open0>200*Point /判断上升趋势39. &&Close1-Open1>200*Point /判断上升趋势40. &&Close2-Open2>200*Point /判断上升趋势41. &&Close3-Open3>200*Point /判断上升趋势42. && 限制一根柱子下注一次 !=Time0/限制一根柱子下注一次43. /&& IsDemo() /限制模拟户口运行44. /&& DayOfWeek() !=0 /礼拜不要交易45. /&& DayOfWeek() !=6 /星期6不要交易46. /&& DayOfWeek() !=5 /星期5不要交易47. /&&(Hour()>开始交易时间&&Hour()<结束交易时间)/限制交易时间:早上3点到晚上10点可以交易48. /&& Year()=2009/限制交易时间:只限2009年可以运行49. /&&(Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时)/ea死亡日期50. /&& AccountNumber()=用户账户/指定用户账户51. /&&(AccountBalance()<赢钱目标&&AccountBalance()>输钱目标) /赢太多了不要做单 输太惨了不要做单52. /&& AccountCompany()=交易商/指定交易商方可交易53. /&&(Symbol()=货币对1|Symbol()=货币对2|Symbol()=货币对3) /指定货币对54. /&&(Period()=时间周期1|Period()=时间周期2) /指定时间周期运行55. )56. OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,+ea名字+,魔术号码,0,Green);57. 限制一根柱子下注一次 =Time0;58. if(使用音乐)PlaySound(Conditions.wav);59. if(使用弹出提示)Alert( M,Period(),Symbol(),buy开仓,余额资金:,AccountBalance(), );60. / end if 结束如果61. 62. /ea 不读这个注解/63. 64. 65. if( /开始 如果66. OrdersTotal()=0 /没有单可以下注67. &&Open0-Close0>200*Point /判断下降趋势68. &&Open1-Close1>200*Point /判断下降趋势69. &&Open2-Close2>200*Point /判断下降趋势70. &&Open3-Close3>200*Point /判断下降趋势71. && 限制一根柱子下注一次 !=Time0/限制一根柱子下注一次72. /&& IsDemo() /限制模拟户口运行73. /&& DayOfWeek() !=0 /礼拜不要交易74. /&& DayOfWeek() !=6 /星期6不要交易75. /&& DayOfWeek() !=5 /星期5不要交易76. /&&(Hour()>开始交易时间&&Hour()<结束交易时间)/限制交易时间:早上3点到晚上10点可以交易77. /&& Year()=2009/限制交易时间:只限2009年可以运行78. /&&(Year()<=死亡日期年&&Month()<=死亡日期月&&Day()<=死亡日期日&&Hour()<=死亡日期时)/ea死亡日期79. /&& AccountNumber()=用户账户/指定用户账户80. /&&(AccountBalance()<赢钱目标&&AccountBalance()>输钱目标) /赢太多了不要做单 输太惨了不要做单81. /&& AccountCompany()=交易商/指定交易商方可交易82. /&&(Symbol()=货币对1|Symbol()=货币对2|Symbol()=货币对3) /指定货币对83. /&&(Period()=时间周期1|Period()=时间周期2) /指定时间周期运行84. )85. OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,+ea名字+,魔术号码,0,Red);86. 限制一根柱子下注一次 =Time0;87. if(使用音乐)PlaySound(Conditions.wav);88. if(使用弹出提示)Alert( M,Period(),Symbol(),sell开仓,余额资金:,AccountBalance(), );89. / end if 结束如果90. 91. 92. /ea 不读这个注解/93. 94. return(0); /叫 ea 重复运行 每秒大概可能重新运算100次95. /start to end 结束主程式 第3章:真正删除不重要的是不是好看一点了?哈哈和。 1. 2. /ea 不读这个注解/3. #property copyright 柒侠伍义_初级EA教程_商业版本4. datetime 限制一根柱子下注一次 =0; /自定义5. extern double下注数量=0.1; /自定义6. extern double 止损=200; /自定义7. extern double 止盈=200; /自定义8. extern double 滑点=30; /自定义9. externbool 使用音乐=true; /true=要用 false=不要用10. externbool 使用弹出提示=false; /true=要用 false=不要用11. string ea名字 =柒侠伍义_初级EA教程;12. double 魔术号码=16384; /自定义魔术号码13. /ea 不读这个注解/14. int start() /ea 开始运行15. /开始主程式16. HideTestIndicators(true);/命令ea隐藏ea中的指标17. if(AccountFreeMarginCheck(Symbol(),OP_BUY,下注数量)<=0| GetLastError()=134) return;/命令ea如果保证金不足不要交易18. if(AccountFreeMarginCheck(Symbol(),OP_SELL,下注数量)<=0| GetLastError()=134)return;/命令ea如果保证金不足不要交易19. /ea 不读这个注解/20. 21. if( /开始如果22. OrdersTotal()=0 /没有单可以下注23. &&Close0-Open0>200*Point /判断上升趋势24. &&Close1-Open1>200*Point /判断上升趋势25. &&Close2-Open2>200*Point /判断上升趋势26. &&Close3-Open3>200*Point /判断上升趋势27. && 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次28. )29. OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,+ea名字+,魔术号码,0,Green);30. 限制一根柱子下注一次 =Time0;31. if(使用音乐)PlaySound(Conditions.wav);32. if(使用弹出提示)Alert( M,Period(),Symbol(),buy开仓,余额资金:,AccountBalance(), );33. / end if 结束如果 34. /ea 不读这个注解/35. 36. if( /开始 如果37. OrdersTotal()=0 /没有单可以下注38. &&Open0-Close0>200*Point /判断下降趋势39. &&Open1-Close1>200*Point /判断下降趋势40. &&Open2-Close2>200*Point /判断下降趋势41. &&Open3-Close3>200*Point /判断下降趋势42. && 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次43. )44. OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,+ea名字+,魔术号码,0,Red);45. 限制一根柱子下注一次 =Time0;46. if(使用音乐)PlaySound(Conditions.wav);47. if(使用弹出提示)Alert( M,Period(),Symbol(),sell开仓,余额资金:,AccountBalance(), );48. / end if结束如果 49. 50. /ea 不读这个注解/51. return(0); /叫 ea重复运行每秒大概可能重新运算100次52. /startto end 结束主程式 第4章:把复杂变简单-子程式注意变法!把这个ea saveas另外一个新的名字,比如:my3ea /ea 不读这个注解/#property copyright 柒侠伍义_初级EA教程_商业版本datetime 限制一根柱子下注一次 =0; /自定义extern double下注数量=0.1; /自定义extern double止损=200; /自定义extern double止盈=200; /自定义extern double 滑点=30; /自定义externbool 使用音乐=true; /true=要用 false=不要用externbool 使用弹出提示=false; /true=要用 false=不要用string ea名字 =柒侠伍义_初级EA教程;double魔术号码=16384; /自定义魔术号码/ea 不读这个注解/int start() /ea 开始运行 /开始主程式HideTestIndicators(true);/命令ea隐藏ea中的指标if(AccountFreeMarginCheck(Symbol(),OP_BUY,下注数量)<=0| GetLastError()=134) return;/命令ea如果保证金不足不要交易if(AccountFreeMarginCheck(Symbol(),OP_SELL,下注数量)<=0| GetLastError()=134)return;/命令ea如果保证金不足不要交易/ea 不读这个注解/ 策略管理(); /子程式/ea 不读这个注解/ return(0); /叫 ea重复运行每秒大概可能重新运算100次 /startto end 结束主程式/ea 不读这个注解/void 策略管理() /子程式if( /开始如果OrdersTotal()=0 /没有单可以下注&&Close0-Open0>200*Point /判断上升趋势&&Close1-Open1>200*Point /判断上升趋势&&Close2-Open2>200*Point /判断上升趋势&&Close3-Open3>200*Point /判断上升趋势&& 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次)OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,+ea名字+,魔术号码,0,Green);限制一根柱子下注一次 =Time0;if(使用音乐)PlaySound(Conditions.wav);if(使用弹出提示)Alert( M,Period(),Symbol(),buy开仓,余额资金:,AccountBalance(), ); / end if 结束如果 /ea 不读这个注解/ if( /开始 如果OrdersTotal()=0 /没有单可以下注&&Open0-Close0>200*Point /判断下降趋势&&Open1-Close1>200*Point /判断下降趋势&&Open2-Close2>200*Point /判断下降趋势&&Open3-Close3>200*Point /判断下降趋势&& 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次)OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,+ea名字+,魔术号码,0,Red);限制一根柱子下注一次 =Time0;if(使用音乐)PlaySound(Conditions.wav);if(使用弹出提示)Alert( M,Period(),Symbol(),sell开仓,余额资金:,AccountBalance(), ); / end if结束如果 /结束子程式 第5章:把复杂变简单-子程式中的子程式 /ea 不读这个注解/#property copyright 柒侠伍义_初级EA教程_商业版本datetime 限制一根柱子下注一次 =0; /自定义extern double下注数量=0.1; /自定义extern double止损=200; /自定义extern double止盈=200; /自定义extern double 滑点=30; /自定义externbool 使用音乐=true; /true=要用 false=不要用externbool 使用弹出提示=false; /true=要用 false=不要用string ea名字 =柒侠伍义_初级EA教程;double魔术号码=16384; /自定义魔术号码/ea 不读这个注解/int start() /ea 开始运行 /开始主程式HideTestIndicators(true);/命令ea隐藏ea中的指标if(AccountFreeMarginCheck(Symbol(),OP_BUY,下注数量)<=0| GetLastError()=134) return;/命令ea如果保证金不足不要交易if(AccountFreeMarginCheck(Symbol(),OP_SELL,下注数量)<=0| GetLastError()=134)return;/命令ea如果保证金不足不要交易/ea 不读这个注解/ 策略管理(); /子程式/ea 不读这个注解/ return(0); /叫 ea重复运行每秒大概可能重新运算100次 /startto end 结束主程式/ea 不读这个注解/void 策略管理() /子程式if( /开始如果OrdersTotal()=0 /没有单可以下注&&Close0-Open0>200*Point /判断上升趋势&&Close1-Open1>200*Point /判断上升趋势&&Close2-Open2>200*Point /判断上升趋势&&Close3-Open3>200*Point /判断上升趋势&& 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次)买上(); / end if 结束如果 /ea 不读这个注解/ if( /开始 如果OrdersTotal()=0 /没有单可以下注&&Open0-Close0>200*Point /判断下降趋势&&Open1-Close1>200*Point /判断下降趋势&&Open2-Close2>200*Point /判断下降趋势&&Open3-Close3>200*Point /判断下降趋势&& 限制一根柱子下注一次!=Time0 /限制一根柱子下注一次)OrderSend(Symbol(),OP_SELL,下注数量,Bid,滑点,Bid+止损*Point,Bid-止盈*Point,+ea名字+,魔术号码,0,Red);限制一根柱子下注一次 =Time0;if(使用音乐)PlaySound(Conditions.wav);if(使用弹出提示)Alert( M,Period(),Symbol(),sell开仓,余额资金:,AccountBalance(), ); / end if结束如果 /结束策略管理子程式/void 买上() /买上子程式开始OrderSend(Symbol(),OP_BUY,下注数量,Ask,滑点,Ask-止损*Point,Ask+止盈*Point,+ea名字+,魔术号码,0,Green);限制一根柱子下注一次 =Time0;if(使用音乐)PlaySound(Conditions.wav);if(使用弹出提示)Alert( M,Period(),Symbol(),buy开仓,余额资金:,AccountBalance(), );/结束买上 第6章:把复杂变简单-卖下子程式你应当学会把买上变成子程式试一试把 卖下变成子程式 /-#property copyright 柒侠伍义_初级EA教程_商业版本datetime 限制一根柱子下注一次 =0; /自定义extern double下注数量=0.1; /自定义extern double止损=200; /自定义extern double止盈=200; /自定义extern double 滑点=30; /自定义externbool 使用音乐=true; /true=要用 false=不要用externbool 使用弹出提示=false; /true=要用 false=不要用string ea名字 =柒侠伍义_初级EA教程;double魔术号码=16384; /自定义魔术号码/-int start() /ea 开始运行 /开始主程式HideTestIndicators(true);/命令ea隐藏ea中的指标if(AccountFreeMarginCheck(Symbol()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论