• kunxingtx
    了解作者
  • WINDOWS
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 1
    收藏次数
  • 10 积分
    下载积分
  • 50
    下载次数
  • 2017-10-16 22:54
    上传日期
外汇交易mt4交易策略。自编ea。收益率40%。
mt4.zip
  • mt4.txt
    7.7KB
内容介绍
//+------------------------------------------------------------------+ //| 1H_单柱定趋势.mq4 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //--- input parameters input int Input_m=160; input double Input_x=1.0; input double Input_y=0.9; input double Input_z=2.0; input int Input_rate=30; //static int output; //输出值为 -1 0 1,-1为跌,0无方向,1为涨 //static double mydaystart; //static int m; //幅度值m,可取 10、15、20 //static int LastTime; int output; //输出值为 -1 0 1,-1为跌,0无方向,1为涨 double mydaystart; double m; //幅度值m,可取 10、15、20 datetime LastTime; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- mydaystart=AccountBalance();// m=Input_m; //int m=10; //int ticket; LastTime=0; output=0; //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(LastTime!=Time[0]) { double lots=MathCeil(AccountBalance()/Input_rate)*0.01; m=Input_m; double open_1h=Open[1]; double close_1h=Close[1]; Print("开盘价为",open_1h); Print("收盘价为",close_1h); if(MathAbs(open_1h-close_1h)>m*Point) { if(open_1h-close_1h>0) {output=-1;}; if(open_1h-close_1h<0) {output=1;}; } if(output==-1) { //OrderSend(Symbol(),OP_SELLLIMIT,lots,close_1h+m/2*Point,30,close_1h+m*3/2*Point,close_1h-3*m*Point,"卖",imagic,TimeCurrent()+3600*24,clrNONE); int lots_number=1; while(lots>10){lots=lots/2*100*0.01;lots_number=lots_number*2;} if(Input_x>0)while(lots_number>0){iOpenLimitOrders("SellLimit",lots,close_1h+m*Input_x*Point,int(m*Input_y),int(Input_z*m),3);lots_number--;} if(Input_x==0)while(lots_number>0){iOpenOrders("Sell",lots,int(m*Input_y),int(Input_z*m),3);lots_number--;} CloseOrder("Buy"); } if(output==1) { //OrderSend(Symbol(),OP_BUYLIMIT,lots,close_1h-m/2*Point,30,close_1h-m*3/2*Point,close_1h+3*m*Point,"买",imagic,TimeCurrent()+3600*24,clrNONE); int lots_number=1; while(lots>10){lots=lots/2*100*0.01;lots_number=lots_number*2;} if(Input_x>0)while(lots_number>0){iOpenLimitOrders("BuyLimit",lots,close_1h-m*Input_x*Point,int(m*Input_y),int(Input_z*m),3);lots_number--;} if(Input_x==0)while(lots_number>0){iOpenOrders("Buy",lots,int(m*Input_y),int(Input_z*m),3);lots_number--;} CloseOrder("Sell"); } LastTime=Time[0]; output=0; } //+------------------------------------------------------------------+ } void iOpenOrders(string myType,double myLots,int myLossStop,int myTakeProfit,int lot_time)//开市价单函数 { int mySPREAD=int(MarketInfo(Symbol(),MODE_SPREAD)); double BuyLossStop=Ask-myLossStop*Point; double BuyTakeProfit=Ask+myTakeProfit*Point; double SellLossStop=Bid+myLossStop*Point; double SellTakeProfit=Bid-myTakeProfit*Point; if(myLossStop<=0) //如果止损设为0 { BuyLossStop=0; SellLossStop=0; } if(myTakeProfit<=0) //如果止盈设为0 { BuyTakeProfit=0; SellTakeProfit=0; } if(myType=="Buy") if(OrderSend(Symbol(),OP_BUY,myLots,Ask,mySPREAD,BuyLossStop,BuyTakeProfit,"买",1,TimeCurrent()+3600*lot_time,clrNONE)) Print("买单下单成功"); else Print("OrderSend失败错误代码是",GetLastError()); if(myType=="Sell") if(OrderSend(Symbol(),OP_SELL,myLots,Bid,mySPREAD,SellLossStop,SellTakeProfit,"卖",1,TimeCurrent()+3600*lot_time,clrNONE)) Print("卖单下单成功"); else Print("OrderSend失败错误代码是",GetLastError()); } void iOpenLimitOrders(string myType,double myLots,double LimitPrice,int myLossStop,int myTakeProfit,int lot_time)//开Limit单函数 { int mySPREAD=int(MarketInfo(Symbol(),MODE_SPREAD)); double BuyLossStop=LimitPrice-myLossStop*Point; double BuyTakeProfit=LimitPrice+myTakeProfit*Point; double SellLossStop=LimitPrice+myLossStop*Point; double SellTakeProfit=LimitPrice-myTakeProfit*Point; if(myLossStop<=0) //如果止损设为0 { BuyLossStop=0; SellLossStop=0; } if(myTakeProfit<=0) //如果止盈设为0 { BuyTakeProfit=0; SellTakeProfit=0; } if(myType=="BuyLimit") if(OrderSend(Symbol(),OP_BUYLIMIT,myLots,LimitPrice,mySPREAD,BuyLossStop,BuyTakeProfit,"买",1,TimeCurrent()+3600*lot_time,clrNONE)) Print("买单limit下单成功"); else Print("OrderSend失败错误代码是",GetLastError()); if(myType=="SellLimit") if(OrderSend(Symbol(),OP_SELLLIMIT,myLots,LimitPrice,mySPREAD,SellLossStop,SellTakeProfit,"卖",1,TimeCurrent()+3600*lot_time,clrNONE)) Print("卖单limit下单成功"); else Print("OrderSend失败错误代码是",GetLastError()); } void CloseOrder(string myType)//平仓指定交易,myType可为"Sell","Buy" { //int j = OrdersTotal(); for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(myType=="Buy") { if(OrderType()==OP_BUY) {int ticket=OrderTicket(); double Lots=OrderLots(); string symbol=OrderSymbol(); if(OrderClose(ticket,Lots,MarketInfo(symbol,MODE_BID),10,Red)) { Print("平仓买单成功"); i--; } else Print("OrderClose失败错误代码是",GetLastError()); } if(OrderType()==OP_BUYLIMIT) { int ticket1=OrderTicket(); if(OrderDelete(ticket1,Red)) { Print("未成交订单删除成功",i,"总订单数:",OrdersTotal()); i--; } else Print("OrderDelete失败错误代码是",GetLastError()); } } if(myType=="Sell") { if(OrderType()==OP_SELL) {int ticket=OrderTicket(); double Lots=OrderLots(); string symbol=OrderSymbol(); if(OrderClose(ticket,Lots,MarketInfo(symbol,MODE_ASK),10,Green)) { Print("平仓卖单成功"); i--; } else Print("OrderClose失败错误代码是",GetLastError()); } if(OrderType()==OP_SELLLIMIT) { int ticket1=OrderTicket(); if(OrderDelete(ticket1,Green)) { Print("未成交订单删除成功",i,"总订单数:",OrdersTotal()); i--; } else Print("OrderDelete失败错误代码是",GetLastError()); } } } else Print("未选中订单错误代码:",GetLastError()); Print("现在i值",i,"总订单数:",OrdersTotal()); } }
评论
  • shzq 2019-03-06 03:21:33
    不知道有没有中文设置对照表
相关推荐
  • MT4趋势指标.zip
    MT4趋势指标
  • 经典MT4外汇交易策略源代码.zip
    运行在外汇MT4平台上,对价格数据进行分析,提供交易信号或全自动交易
  • MT4.rar
    快速记住这一点:如果它是一个上升趋势,你想从低位开始并将你的斐波那契水平... 好吧,我们的交易策略指南团队开发了一个专有的斐波那契黄金区 指标,一旦放在图表上,它将立即绘制 最后一次摆动的斐波纳契回撤水平。
  • mt4Mql.zip
    MQL4编写的移动平均自动交易策略。 可在MT4上编译并执行。买卖信号执行条件为移动平均线金叉发生后生成买入信号。
  • MT4jiaocheng.zip
    技术指标教程,可以用计算机实现自动化交易,改变人交易的延迟性。
  • MT4 MetaTrader Version 4.06
    5、支持智能交易系统——可以自己编写交易策略,关联真实帐户,自动交易。 图表分析功能亦非常强大:8种画线工具,8个交易时段,29种技术指标,分析行情走势得心应手。 文件大小不到1.4M,安装之后不到4M,与系统...
  • SimpleTrendReversalEA:MT4 EA用于简单的趋势反转策略
    MT4 EA用于mrdfx发明的简单趋势反转策略 在此处阅读有关该策略的更多信息: 想法: 在S&R线下方/上方设置SL x点 当价格遇到下一个SR线时平仓部分,然后追踪剩余的头寸 根据SL和下一条S&R线计算RR 版本历史: ...
  • EA31337:EA31337 Lite,Advanced和Rider-适用于MT4MT5平台的多策略高级交易机器人
    此EA(专家顾问)实现了协调算法,以具有完全用户可自定义参数的优先级和管理多时间框架策略,从而使货币交易更上一层楼。 它使实时交易变得轻松自如。 请访问以获取可用的文档页面。 关于该项目 该项目旨在提供...
  • MT4十大交易系统.rar
    mt4功能 编写的策略,如何使用,需要不断的模式
  • 人事管理系统(VFP版).rar
    给别人做过的一个毕业设计。用VFP做的。