


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抚州市中石化2025秋招面试半结构化模拟题及答案市场营销与国际贸易岗
- 普洱市中石化2025秋招笔试模拟题含答案市场营销与国际贸易岗
- 2025年地理招聘考试题及答案
- 国家能源成都市2025秋招面试专业追问及参考电气工程岗位
- 大唐电力成都市2025秋招半结构化面试模拟30问及答案
- 定西市中储粮2025秋招笔试粮食政策与企业文化50题速记
- 蚌埠市中储粮2025秋招面试专业追问题库战略研究博士岗
- 阿拉善盟中石化2025秋招面试半结构化模拟题及答案油田勘探开发岗
- 2025年小学直升考试题及答案
- 2025年厂务电工考试题及答案
- 肝癌超声课件教学课件
- 合规岗位季度工作计划
- 制造业生产管理:Excel2024版高效培训教程
- 通信工程建设标准强制性条文汇编(2023版)-定额质监中心
- 漫展嘉宾合同模板
- 药物分析考试题及答案(新版)
- 第一单元 单元检测试卷(一)(解析版)高中思想政治 统编版 必修四
- 小餐饮保证食品安全的规章制度
- +初+中数学有理数的加减混合运算(教学课件)++七年级数学上册(华东师大版)
- 2024年高考英语复习:阅读理解(应用文专攻20篇解析版)
- 2024年山东省潍坊市中考历史试卷(含答案逐题解析)
评论
0/150
提交评论