您需要 登录 才可以下载或查看,没有帐号?注册
用来设定固定时间开多仓,并且自动设置止盈、止损操作系统。其中参数设置:
小时=指定小时数。常数12 代表12点,以MT4系统时间为准;
分钟=指定分钟数。常数 1代表01分。
(说明:如果时间参数设为:小时=12,分钟=02,则限定在时间12:02内自动下单,其余时间不操作。)
止损、止盈,均采用5位数平台,具体可根据你平台填入相应的数位,如:200=20点。
//
#define MAGICMA 20050610 //系统单编码
extern double 手数 = 0.1; //下单量
extern int 小时 = 12; //系统小时数
extern int 分钟 = 1; //系统分钟数
extern int 止损 = 200; //5位平台,4位平台为20
extern int 止盈 = 300; //5位平台,4位平台为30
//自定义函数:返回/整数型——计算下单量
int CalculateCurrentOrders(string symbol)
{
int buys=0,sells=0; //设局部变量
for(int i=0;i OrdersTotal();i++) //循环查找历史仓单
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
//如果 仓单类型=假 则跳出循环
if(OrderSymbol()==Symbol() OrderMagicNumber()==MAGICMA)
//如果 货币对=当前货币对 且 仓单号=本系统仓单号
{
if(OrderType()==OP_BUY) buys++;
//如果 仓单类型=多单 则 多单数=多单数+1
if(OrderType()==OP_SELL) sells++;
//如果 仓单类型=空单 则 空单数=空单数+1
}
}
if(buys 0) return(buys);
//如果 多单数 0,则 返回(多单数)
else return(-sells);
//否则,返回(-空单数)
}
//自定义函数:无返回型-开仓操作
void CheckForOpen()
{
int res; //设局部变量-整数型
if( TimeHour(TimeCurrent()) == 小时 TimeMinute(TimeCurrent()) == 分钟)
//如果 取当前小时数=小时 且 取当前分钟数=分钟
{
res=OrderSend(Symbol(),OP_BUY,手数,Ask,3,0,0, ,MAGICMA,0,Red);
//发送订单(当前货币对,买入,手数,买价,滑点3,无止损,无止赢,编号,挂单,标示红色箭头)
return;
}
}
//自定义函数:无返回型-平仓操作
void CheckForClose()
{
for(int i=0;i OrdersTotal();i++)
//循环检查
{
OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-Point*止损,
OrderOpenPrice()+Point*止盈,0,Red);
//修改挂单(仓单号,开仓价,止损价=开仓价-止损*点,止赢价=开仓价+止盈*点,挂单,标示红色箭头)
}
}
//主运行程序
void start()
{
if(Bars 100 || IsTradeAllowed()==false) return;
//如果 K线数 100 或者 允许自动交易=假 返回
if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
//如果 持仓=0 则 进行开仓操作
else CheckForClose();
//否则 进行平仓操作
}复制代码
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!