
//+------------------------------------------------------------------+
#property copyright "2009"#property link " "int MagicNumber = 0;
string EAname ="顺势";int MAGICMA = 2000;//定义资金管理--------------------------------------------------------+extern string _资金管理_ ="任选一个";extern bool zijiguanli1= true;//false true、、extern bool zijiguanli2= false;//false true、、extern bool zijiguanli3= false;//false true、、// 定义各参数--------------------------------------------------------+
extern int FastEMA = 12;extern int SlowEMA = 26;extern int SignalSMA = 9;//定义指标函数--------------------------------------------------------+
//定义止赢止损,滑点---------------------------------------------------+
//定义下单信息--------------------------------------------------------+
//有关保证金-----------------------------------------------------------+
double BaoZhenJing;//+------------------------------------------------------------------+
int 分析=0,buy1=1,buy2=1,buy3=1,buy4=1,sell1=1,sell2=1,sell3=1,sell4=1;
//+------------------------------------------------------------------+
//| expert initialization function |//+------------------------------------------------------------------+int init(){//以后或许有用到return(0);}//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit(){//以后或许有用到return(0);}//+------------------------------------------------------------------+//| expert start 主程式//+------------------------------------------------------------------+int start(){MoneyManagement();//资金管理ma();//指标管理zhangchang();//战场管理jiancha();//检查TrailingStop();//移动止损xianshi();//表明管理return(0);
}//资金管理-------------------------------------------------------------+
void MoneyManagement() {lotstart=(AccountBalance()*lotab/10000);lots=lotstart;if(cheng==0){cheng=1;}CurrentBasket=AccountEquity()-AccountBalance();/////////////////////////////////////////////////////////////////if(zijiguanli1){ LotMM = lots;}/////////////////////////////////////////////////////////////////if(zijiguanli2){if(CurrentBasket<0 ) {LotMM=NormalizeDouble(lots*(OrdersTotal()*cheng)+lotstart,2);}if(CurrentBasket==0 ) {LotMM=NormalizeDouble(LotMM*0,2);}}/////////////////////////////////////////////////////////////////if(zijiguanli3){if(s+b==0){aa=1;}if(s+b==1){aa=3;}if(s+b==2){aa=7;}if(s+b==3){aa=11;}if(s+b==4){aa=20;}if(s+b==5){aa=31;}if(s+b==6){aa=42;}if(s+b==7){aa=54;}if(s+b==8){aa=66;}if(s+b==9){aa=76;}if(s+b>=10){aa=66;}if(CurrentBasket<0 ) {LotMM=NormalizeDouble(lotstart*aa,2);}if(CurrentBasket==0 ) {LotMM=NormalizeDouble(LotMM*0,2);}}/////////////////////////////////////////////////////////////////if(LotMM//指标管理MA--------------------------------------------------------+
void ma() {ema120 = iMA(NULL, PERIOD_M5, 120, 0, MODE_EMA, PR洲际交易所_CLOSE, 0);
sma20 = iMA(NULL, PERIOD_M5, 20, 0, MODE_SMA, PR洲际交易所_CLOSE, 0);sma21 = iMA(NULL, PERIOD_M5, 20, 0, MODE_SMA, PR洲际交易所_CLOSE, 0+1);ema15 = iMA(NULL, PERIOD_M5, 15, 0, MODE_EMA, PR洲际交易所_CLOSE, 0);ema16 = iMA(NULL, PERIOD_M5, 15, 0, MODE_EMA, PR洲际交易所_CLOSE, 0+1);}
//战场管理---------------------------------------------------------+
void zhangchang() {//--- 假使开仓保证金胜过上限,则返还不交易。 ------------------if( AccountMargin() / (AccountMargin() + AccountFreeMargin()) >= 1 ) { return(0);}BaoZhenJing = MarketInfo( Symbol(), MODE_MARGINREQUIRED);// 一个标准手需保证金金额。BaoZhenJing = BaoZhenJing * LotMM ; // 下单需用的保证金if( (AccountMargin()+BaoZhenJing) / (AccountMargin()+AccountFreeMargin()) >= 1 ) { return(0);}//+-------------------------------------------------------------------+if(s+b==111){buyme();
sellme();CloseSell();CloseBuy();closeall();}datetime Time0 = 0;
if (Time0 != Time[0]){Time0 = Time[0];if((b==0 && ema120if(sma20>ema15 b>0){CloseBuy();
}if(sma20//平仓持有的买单-------------------------------------------------------+
void CloseBuy(){if (OrdersTotal( ) > 0 )//平仓持有的卖单--------------------------------------------------------+
void CloseSell(){if (OrdersTotal( ) > 0 )//平仓所有--------------------------------------------------------+
void closeall(){if (OrdersTotal( ) > 0 )void TrailingStop()
{for(cnt=OrdersTotal();cnt>=0;cnt--){OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);if (OrderSymbol() == Symbol() )//&& OrderMagicNumber()==MAGICMA){if (OrderType()==OP_SELL){if(TrailingStop>0){if((OrderOpenPrice()-Ask)>(Point*TrailingStop)){if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)){OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);return(0);}}}}if (OrderType()==OP_BUY)
{if(TrailingStop>0){if(Bid-OrderOpenPrice()>Point*TrailingStop){if(OrderStopLoss()}
//检 查--------------------------------------------------------------+void jiancha(){b=0;s=0;for (int cnt=0; cnt<=OrdersTotal();cnt++){OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);if (OrderSymbol()==Symbol() ){mode=OrderType();LastOrderType=OrderType();if (OrderType() == OP_SELL){ s++; LastPricesell=OrderOpenPrice();}if (OrderType() == OP_BUY ){ b++; LastPricebuy=OrderOpenPrice();
}LastPrice=OrderOpenPrice();if (OrderType()==OP_SELL) {OpenSells++;}if (OrderType()==OP_SELLSTOP) {OpenSellStops++;}if (OrderType()==OP_BUY) {OpenBuys++;}if (OrderType()==OP_BUYSTOP) {OpenBuyStops++;}}}}//表明报告-----------------------------------------------------------+
void xianshi(){string name_8 = "xianshi1";ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8, "伺服器时间::"+TimeToStr(CurTime( ))+"", 13, "Arial", White);ObjectSet(name_8, OBJPROP_CORNER, 0);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 15);ame_8 = "Lableyeddrice1";
ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8, "M"+Period()+" 货币 "+Symbol()+"", 10, "Arial", Silver);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 130);ObjectSet(name_8, OBJPROP_YDISTANCE, 32);//////这个表明上方
name_8 = "LableCurPrice2";ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr(Ask, Digits)+"::买上", 15, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 30);//////这个表明以下
name_8 = "Lab345rPrice3";ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr(Bid, Digits)+"::卖下", 15, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 50);ame_8 = "Acc87lance";
ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr( AccountBalance(), 2)+"::账面资金", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 70);ame_8 = "LableC5rice6";
ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr( AccountEquity(), 2)+"::净值资金", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 90);ame_8 = "Labl456rice6";
ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr( AccountMargin(), 2)+"::保证资金", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 110);ame_8 = "Labl4hcjce6";
ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr( AccountFreeMargin(), 2)+"::可用资金", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 130);ame_8 = "Accvf7lance";
ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr( AccountProfit(), 2)+"::账面盈亏", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 150);aa=s+b;name_8 = "Accvfee7lance";ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+DoubleToStr( aa, 0)+"::s+b", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 170);name_8 = "Acccvfee7lance";ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+b+"::buy", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 190);name_8 = "Acccwvfee7lance";ObjectDelete(name_8);ObjectCreate(name_8, OBJ_LABEL, 0, 0, 0);ObjectSetText(name_8,""+s+"::sell", 13, "Arial", Lime);ObjectSet(name_8, OBJPROP_CORNER, 1);ObjectSet(name_8, OBJPROP_XDISTANCE, 15);ObjectSet(name_8, OBJPROP_YDISTANCE, 210);return(0);
}