【MQL4函数】开仓模块
要实现开仓当然非常简单,只要一个开仓函数就可以了,但是实际交易的时候可没有这么容易,我们会碰到两个问题。第一个问题就是手数的问题,我们的EA计算出来的手数有可能会小于最小手数,也有可能会大于最大手数,当小于最小手数时,我们不做单,当大于最大手数时我们把单子拆开来分成几单来做,这一部分内容可以参考第五节课。第二个问题就是开仓遇到的问题,比如说由于卡顿导致订单没有成交等等,此时我们需要立即再发送开单命令,直到成交为止。根据以上问题我们把程序写出来,代码如下:int orderopen(string sym,string direction,double lot,double sl,double tp,int mag,string comment){
int check;
double lot_min=MarketInfo(sym,MODE_MINLOT);
double lot_max=MarketInfo(sym,MODE_MAXLOT);
double lot_last=0;
int err=0;
int huadian=10;
double amount;
int i;
if(lot<lot_min)
{
Print("lot is too small");
return(1);
}
else if(lot>lot_max)
{
amount=MathCeil(lot/lot_max);
lot_last=lot-(amount-1)*lot_max;
for(i=(int)amount;i>0;i--)
{
if (i!=1)
{
if(direction=="BUY")
{
do
{
check=OrderSend(sym,OP_BUY,lot_max,MarketInfo(sym,
MODE_ASK),huadian,sl,tp,comment,mag,0,clrBlue);
if(check==-1)
{
err=GetLastError();
}
else
{
break;
}
}while(err==146 || err==135);
}
else if(direction=="SELL")
{
do
{
check=OrderSend(sym,OP_SELL,lot_max,MarketInfo(sym,
MODE_BID),huadian,sl,tp,comment,mag,0,clrRed);
if(check==-1)
{
err=GetLastError();
}
else
{
break;
}
}while(err==146 || err==135);
}
}
else
{
if(direction=="BUY")
{
do
{
check=OrderSend(sym,OP_BUY,lot_last,MarketInfo(sym,
MODE_ASK),huadian,sl,tp,comment,mag,0,clrBlue);
if(check==-1)
{
err=GetLastError();
}
else
{
break;
}
}while(err==146 || err==135);
}
else if(direction=="SELL")
{
do
{
check=OrderSend(sym,OP_SELL,lot_last,MarketInfo(sym,
MODE_BID),huadian,sl,tp,comment,mag,0,clrRed);
if(check==-1)
{
err=GetLastError();
}
else
{
break;
}
}while(err==146 || err==135);
}
}
}
}
else
{
if(direction=="BUY")
{
do
{
check=OrderSend(sym,OP_BUY,lot,MarketInfo(sym,
MODE_BID),huadian,sl,tp,comment,mag,0,clrBlue);
if(check==-1)
{
err=GetLastError();
}
else
{
break;
}
}while(err==146 || err==135);
}
if(direction=="SELL")
{
do
{
check=OrderSend(sym,OP_SELL,lot,MarketInfo(sym,
MODE_BID),huadian,sl,tp,comment,mag,0,clrRed);
if(check==-1)
{
err=GetLastError();
}
else
{
break;
}
}while(err==146 || err==135);
}
}
return(0);
}
感谢分享!
感谢分享 谢谢分享 感謝分享資訊 谢谢分享 谢分享 谢谢分享 谢谢分享 关注 這個確實蠻不錯的 这个真的很不错 学习了~ 感谢分享 谢谢分享 学习一下 看看。。感谢分享。。。。 谢谢分享 谢谢楼主的分享。 非常不错