




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ea 带注解/+-+/| Designed by bull, China |/| Copyright 2007, bull |/| |/+-+#define MAGICMA /+-+/| 注意没有指标文件那些property |/+-+extern int whichmethod = 1; /14 种下单方式 1 仅开仓, 2 有止损无止赢, 3 有止赢无止损, 4 有止赢也有止损extern double TakeProfit = 100; /止赢点数extern double StopLoss = 20; /止损点数extern double MaximumRisk = 0.3; /资金控制,控制下单量extern double TrailingStop =25; /跟踪止赢点数设置extern int maxOpen = 3; /最多开仓次数限制 extern int maxLots = 5; /最多单仓持仓量限制 extern int bb = 0; /非零就允许跟踪止赢extern double MATrendPeriod=26;/使用26均线 开仓条件参数 本例子int i, p2, xxx,p1, res;double Lots; datetime lasttime; /时间控制, 仅当一个时间周期完成才检查条件int init() /初始化 Lots = 1;lasttime = NULL;return(0); int deinit() return(0); /反初始化/主程序int start()CheckForOpen(); /开仓 平仓 条件检查 和操作if (bb0) CTP(); /跟踪止赢return(0);/+-下面是各子程序-+double LotsOptimized() /确定下单量,开仓调用 资金控制double lot=Lots;int orders=HistoryTotal(); / history orders totalint losses=0; / number of losses orders without a break/MarketInfo(Symbol(),MODE_MINLOT); 相关信息/MarketInfo(Symbol(),MODE_MAXLOT);/MarketInfo(Symbol(),MODE_LOTSTEP);lot=NormalizeDouble(MaximumRisk * AccountBalance()/AccountLeverage(),1); /开仓量计算if(lotmaxLots) lot=maxLots;return(lot); /平仓持有的买单void CloseBuy()if (OrdersTotal( ) 0 ) for(i=OrdersTotal()-1;i=0;i-) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)=false) break; if(OrderType()=OP_BUY) OrderClose(OrderTicket(),OrderLots(),Bid,3,White); Sleep(5000); /平仓持有的卖单void CloseSell()if (OrdersTotal( ) 0 ) for(i=OrdersTotal()-1;i=0;i-) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)=false) break; if(OrderType()=OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,White); Sleep(5000); /判断是否买或卖或平仓int buyorsell() /在这个函数计算设置你的交易信号 这里使用MACD 和MA 做例子 double MacdCurrent, MacdPrevious, SignalCurrent; double SignalPrevious, MaCurrent, MaPrevious; MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1); 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);if(MacdCurrentSignalCurrent & MacdPreviousMaPrevious) return (1); / 买 Ma在上升,Macd在0线上,并且两线上交叉if(MacdCurrent0 & MacdCurrentSignalPrevious & MaCurrentMaPrevious) return (-1); / 卖return (0); /不交易int nowbuyorsell = 0;void CheckForOpen()if (Time0 = lasttime ) return; /每时间周期检查一次 时间控制lasttime = Time0;nowbuyorsell = buyorsell(); /获取买卖信号if (nowbuyorsell = 1) /买先结束已卖的 CloseSell();if (nowbuyorsell = -1) /卖先结束已买的 CloseBuy();if (TimeDayOfWeek(CurTime() = 1) if (TimeHour(CurTime() 19 ) return; /周五晚11点后不做 if (OrdersTotal( ) = maxOpen) return ; /如果已持有开仓次数达到最大,不做if (nowbuyorsell=0) return; /不交易TradeOK(); /去下单交易void TradeOK() /去下单交易int error ;if (nowbuyorsell = 1) /买 switch (whichmethod) case 1: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,MAGICMA,0,Blue);break; case 2: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-StopLoss*Point,0,MAGICMA,0,Blue); break; case 3: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,Ask+TakeProfit*Point,MAGICMA,0,Blue);break; case 4: res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,MAGICMA,0,Blue);break; default : res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,MAGICMA,0,Blue);break; if (res =0) error=GetLastError(); if(error=134)Print(Received 134 Error after OrderSend() ! ); / not enough money if(error=135) RefreshRates(); / prices have changed Sleep(5000); return ; if (nowbuyorsell = -1) /卖 switch (whichmethod) case 1: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,MAGICMA,0,Red); break; case 2: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+StopLoss*Point,0,MAGICMA,0,Red); break; case 3: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TakeProfit*Point,MAGICMA,0,Red); break; case 4: res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,MAGICMA,0,Red); break; default : res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,MAGICMA,0,Red); break; if (res =0) error=GetLastError(); if(error=134) Print(Received 134 Error after OrderSend() ! ); / not enough money if(error=135) RefreshRates(); / prices have changed Sleep(5000); return ; void CTP() /跟踪止赢bool bs = false;for (int i = 0; i (TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT) /开仓价格 当前止损和当前价格比较判断是否要修改跟踪止赢设置 if (OrderStopLoss() (TrailingStop * MarketInfo(OrderSymbol(), MODE_POINT) /开仓价格 当前止损和当前价格比较判断是否要修改跟踪止赢设置 if (OrderStopLoss() (Ask + TrailingStop * MarketInfo(Orde
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华夏银行保定市容城县2025秋招结构化面试15问及话术
- 中信银行青岛市莱西市2025秋招数据分析师笔试题及答案
- 2025年四川屏山县事业单位上半年考核招聘工作人员的笔试高频难、易错点备考题库带答案详解
- 农发行赣州市安远县2025秋招结构化面试经典题及参考答案
- 平安银行泰州市泰兴市2025秋招笔试专业知识题专练及答案
- 农发行吉安市万安县2025秋招笔试综合模拟题库及答案
- 华夏银行天津市北辰区2025秋招小语种岗笔试题及答案
- 平安银行青岛市市南区2025秋招群面案例总结模板
- 农发行大连市瓦房店市2025秋招结构化面试15问及话术
- 浦发银行广州市天河区2025秋招笔试价值观测评题专练及答案
- 2025年泰和县工投建设集团有限公司及子公司招聘笔试参考题库含答案解析
- 企业事业部制信息化与数字化转型
- (新版)中国心理卫生协会心理咨询师考试复习题库(浓缩400题)
- 高支模工程监理细则
- 环氧乙烷应急救援预案
- 南昌大学 2018-2019学年第二学期期中考试大学英语试卷
- 2025-2030酒吧行业市场发展分析及投资前景研究报告
- 预防阿尔茨海默症
- 2025-2030中国妇科中成药市场营销趋势及投融资发展状况研究报告
- 艾滋病防治知识宣传
- 危重患者肠内营养的护理
评论
0/150
提交评论