


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MT4自动交易系统实例四实际运行测试合格程序(可以在进行优化)extern double TakeProfit = 950; /盈利50点就出场extern double Lots =6;/每单手数0.1extern double TrailingStop = 370;/移动止损30extern double MACDOpenLevel=3;/开仓指标之一extern double MACDCloseLevel=2;/平仓指标之一extern double MATrendPeriod=26;/取26指数平滑平均线int start() double MacdCurrent, MacdPrevious, SignalCurrent;/即当前MACD(红绿柱子),之前一根的MACD,和一般来说参数是9的对EMA移动平均线 double SignalPrevious, MaCurrent, MaPrevious;/前一根K线的signal,现在的MA,前一根的MA int cnt, ticket, total;/cnt是,ticket是判断开平仓是否成功的,其实就是flag.total是持仓单数量./ initial data checks/ it is important to make sure that the expert works with a normal/ chart and the user did not make any mistakes setting external / variables (Lots, StopLoss, TakeProfit, / TrailingStop) in our case, we check TakeProfit/ on a chart of less than 100 bars if(Bars15) Print(bars less than 100);/如果K线小于100根,那么判断不能做. return(0); if(TakeProfit400)/如果设定的利润小于10点,那么判断程序有问题(10点太少了) Print(TakeProfit less than 10); return(0); / check TakeProfit / to simplify the coding and speed up access/ data are put into internal variables MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0);/初始化MACD/signal与MA. MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);/iMacd最后一个参数是往回移动值,即取上一根K线的数据 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,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,0); MaPrevious=iMA(NULL,0,MATrendPeriod,0,MODE_EMA,PRICE_CLOSE,1); total=OrdersTotal();/total定义为orders数量.(持仓单) if(total1) /如果total小于1,那么进入保证金充足判定. / no opened orders identified if(AccountFreeMargin()(1000*Lots)/如果保证金足够(1手1000),那么进入下一个判定:开仓判定. Print(We have no money. Free Margin = , AccountFreeMargin();/证金不足 return(0); / check for long position (BUY) possibility /开仓判定: if(MacdCurrentSignalCurrent & MacdPrevious(MACDOpenLevel*Point) & MaCurrentMaPrevious)/并且MA呈上升趋势,那么就尝试多单开仓. ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,macd sample,16384,0,Green);/尝试多单开仓,盈利目标50点(TakeProfit) if(ticket0)/无固定止损.ticket是1时成功. / if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) Print(BUY order opened : ,OrderOpenPrice();/表示多单已开仓. / else Print(Error opening BUY order : ,GetLastError(); /ticket=0时开仓失败,打印错误结果. return(0); / check for short position (SELL) possibility if(MacdCurrent0 & MacdCurrentSignalPrevious & /如果MACD大于0,并且MACD下破signal,并且Macd的绝对值大于3*1点 MacdCurrent(MACDOpenLevel*Point) & MaCurrent0) if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES) Print(SELL order opened : ,OrderOpenPrice();/表示空单已开仓. else Print(Error opening SELL order : ,GetLastError(); /否则开仓失败,打印错误结果. return(0); return(0); / it is important to enter the market correctly, / but it is more important to exit it correctly. for(cnt=0;cnttotal;cnt+)/平仓判定. OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);/选择第cnt个单子. if(OrderType()0 & MacdCurrentSignalPrevious &/如果Macd高位死叉,出场. MacdCurrent(MACDCloseLevel*Point) OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); / close position return(0); / exit / check for trailing stop if(TrailingStop0) /如果有移动止损,判定: / if(Bid-OrderOpenPrice()Point*TrailingStop)/如果当前的卖价减去开仓价格大于移动止损 /那么判定:(现在已经上升了一段了) if(OrderStopLoss()Bid-Point*TrailingStop)/如果现止损值小于卖价减去移动止损 OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);/那么更改止损值到现在的卖价-移动止损 return(0); else / go to short position / should it be closed? if(MacdCurrentSignalCurrent & MacdPrevious(MACDCloseLevel*Point)/同理,判断空单是否需要平仓. OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); / close position return(0); / exit / check for trailing stop if(TrailingStop0) if(OrderOpenPrice()-Ask)(Point*TrailingStop)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 46034-2025公众聚集场所投入使用营业消防安全检查规则
- 2025年养老评估师初级考试备考习题集
- 2025年安全生产安全培训手册培训题及答案
- 2025年初级金融从业资格认证模拟题集
- 員工岗前培训协议
- 2025年社区养老服务评估师面试模拟题解析
- 2025年安全生产安全培训测试模拟题及答案
- 2025年旅游管理行业从业资格考试试卷及答案解析
- 2025年机器人维护团队协作模式面试题
- 2025年水电维修工面试常见题
- 人教PEP版(2024)新四年级上册 教材解读
- 纪念中国人民抗日战争暨世界反法西斯战争胜利80周年
- 2025四川省高级人民法院招聘聘用制审判辅助人员30人考试备考题库及答案解析
- 保密教育培训课件内容
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 2024-2025学年人教版数学五年级下学期期末试卷(含答案)
- 第1章制图基础-金大鹰
- 清欠工作管理制度管理办法
- 护理质量管理会议记录范文
- 干砌石护坡施工工艺标准
- 教育资料(2021-2022年收藏的)有色金属国际贸易操作实务概要
评论
0/150
提交评论