- 精华
- 0
- 在线时间
- 291 小时
- UID
- 1263
- 积分
- 1151
- 帖子
- 199
- 阅读权限
- 60
- 注册时间
- 2008-3-3
- 最后登录
- 2008-7-21
- 精华
- 0
- UID
- 1263
- 积分
- 1151
- 帖子
- 199
- 主题
- 70
- 阅读权限
- 60
- 注册时间
- 2008-3-3
- 最后登录
- 2008-7-21
|
//+-----------------------------------------------------------------------+
//| zljxxt1d1.mq4 |
//| Copyright wg3k 2008, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+-----------------------------------------------------------------------+
#property copyright "Copyright szdfc 2008, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
extern double dLots=0.1;
extern int iCrossX=5;
extern int iCrossY=10;
extern int iUnderX=5;
extern int iUnderY=10;
extern double dTakeProfit=50;
extern double dTrailingStop=20;
extern int iMaxPosition=1;
int iTotal,iTicketLong,iTicketShort;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double dCrossM1Current,dCrossM1Previous,dCrossM2Current,dCrossM2Previous;
dCrossM1Current=iMA(NULL,0,iCrossX,0,MODE_SMA,PRICE_CLOSE,0);
dCrossM1Previous=iMA(NULL,0,iCrossX,0,MODE_SMA,PRICE_CLOSE,1);
dCrossM2Current=iMA(NULL,0,iCrossY,0,MODE_SMA,PRICE_CLOSE,0);
dCrossM2Previous=iMA(NULL,0,iCrossY,0,MODE_SMA,PRICE_CLOSE,1);
double dUnderM1Current,dUnderM1Previous,dUnderM2Current,dUnderM2Previous;
dUnderM1Current=iMA(NULL,0,iUnderX,0,MODE_SMA,PRICE_CLOSE,0);
dUnderM1Previous=iMA(NULL,0,iUnderX,0,MODE_SMA,PRICE_CLOSE,1);
dUnderM2Current=iMA(NULL,0,iUnderY,0,MODE_SMA,PRICE_CLOSE,0);
dUnderM2Previous=iMA(NULL,0,iUnderY,0,MODE_SMA,PRICE_CLOSE,1);
if(Bars<100)
{
Alert("Bars 数量不够");
return(0);
}
if(dTakeProfit<10)
{
Alert("移动止损点数小于 10");
return(0);
}
iTotal=OrdersTotal();
//建仓
if(iTotal<iMaxPosition)
{
if(AccountFreeMargin()<(1000*dLots)) //如果资金不够就不交易
{
Print("您帐户中的资金不够开新仓. 剩余资金 = ", AccountFreeMargin());
return(0);
}
//买进
if(dCrossM1Previous<=dCrossM2Previous && dCrossM1Current>dCrossM2Current)
{
iTicketLong=OrderSend(Symbol(),OP_BUY,dLots,Ask,3,Ask-dTrailingStop*Point,0,"上穿:买进",0,0,Red);
// 上面的指令是开仓买入
if(iTicketLong>0)
{
if(OrderSelect(iTicketLong,SELECT_BY_TICKET,MODE_TRADES)) Print("买入: ",OrderOpenPrice());
}
else
{
Print("开多仓过程中出现故障 : ",GetLastError());
}
return(0);
}
//卖出
if(dUnderM1Previous>=dUnderM2Previous && dUnderM1Current<dUnderM2Current)
{
iTicketShort=OrderSend(Symbol(),OP_SELL,dLots,Bid,3,Bid+dTrailingStop*Point,0,"下穿:卖出",0,0,Yellow);
// 上面的指令是开仓卖出
if(iTicketShort>0)
{
if(OrderSelect(iTicketShort,SELECT_BY_TICKET,MODE_TRADES)) Print("卖出: ",OrderOpenPrice());
}
else
{
Print("开空仓过程中出现故障 : ",GetLastError());
}
return(0);
}
}
//平仓
if(iTotal>0)
{
//平空仓
if(iTicketShort>0)
{
if(dCrossM1Previous<dCrossM2Previous && dCrossM1Current<dCrossM2Current)
{
if(OrderClose(iTicketShort,dLots,Ask,3,Red))
{
iTicketShort=0;
Print("平空仓: ",OrderClosePrice());
}
else
{
Print("平空仓过程中出现故障 : ",GetLastError());
}
return(0);
}
}
//平多仓
if(iTicketLong>0)
{
if(dUnderM1Previous>dUnderM2Previous && dUnderM1Current<dUnderM2Current)//如果短期均线上穿长期均线,也可以说快线上穿慢线,或者也可以说是:金叉
{
if(OrderClose(iTicketLong,dLots,Bid,3,Red))
{
iTicketLong=0;
Print("平多仓: ",OrderClosePrice());
}
else
{
Print("平多仓过程中出现故障 : ",GetLastError());
}
return(0);
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+ |
|