客服热线:18391752892

DUMMYEA

   日期:2019-01-12     浏览:582    
马上注册,结交更多好友,下载更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 //+------------------------------------------------------------------+
//|                              DUMMYEA-三均线关系.mq4 |
//|               Copyright ?2010, metaQuotes Software Corp. |
//|                            http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright Copyright ?2010, metaQuotes Software Corp.
#property link      http://www.metaquotes.net
extern int LotsPersent= 10;
extern int MaxProfit= 10;//百分比
extern int MaxLoss= 10;//百分比
extern int Slippage = 3;
extern int MagicNumber = 123456789;
extern int MA1 = 13;
extern int MA2 = 34;
extern int MA3 = 55;
int Ticket;
int OrderTime;
bool OrderOpen=false;
double Equity = 0;
double HistoryBuyProfit;
double HistorySellProfit;
double NewHistoryBuyProfit;
double NewHistorySellProfit;
int init()
 {
   ObjectCreate( comment_label , OBJ_LABEL, 0, 0, 0);
   ObjectSet( comment_label , OBJPROP_XDISTANCE, 50);
   ObjectSet( comment_label , OBJPROP_YDISTANCE, 20);
   ObjectSetText( comment_label , DUMMYEA-三均线关系 , 20, Arial , Red);
   return(0);
 }
int deinit()
 {
   ObjectDelete( comment_label
   return(0);
 }
int start()
 {
//----
     double MA10=iMA(NULL,0,MA1,0,MODE_EMA,PRICE_CLOSE,0);
     double MA11=iMA(NULL,0,MA1,0,MODE_EMA,PRICE_CLOSE,1);
     double MA20=iMA(NULL,0,MA2,0,MODE_EMA,PRICE_CLOSE,0);
     double MA21=iMA(NULL,0,MA2,0,MODE_EMA,PRICE_CLOSE,1);
     double MA30=iMA(NULL,0,MA3,0,MODE_EMA,PRICE_CLOSE,0);
     double MA31=iMA(NULL,0,MA3,0,MODE_EMA,PRICE_CLOSE,1);
     //Print( MA= , MA0);
     if (Time[0] != OrderTime Time[1] != OrderTime) OrderOpen = false;
     double Lots =NormalizeDouble(AccountFreeMargin() / 1000.0 * (LotsPersent/ 100.0),1);//AccountFreeMargin() AccountBalance()
     int HoldingOrders = 0;
     if( OrdersTotal() != 0) {
       for (int i = 0; i OrdersTotal(); i++) {
         OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
         if (OrderSymbol()==Symbol() OrderMagicNumber()==MagicNumber){
            HoldingOrders++;
         }
       }
     }
     if(HoldingOrders==0)Equity=AccountEquity();
     if(MA11 MA21 MA10 =MA20 MA10 MA30 OrderOpen==false){
          if(NewLotsCount(OP_SELL) 0){NewHistorySellProfit+=NewHoldingSellProfit(); NewCloseAllSell();}
          if(LotsCount(OP_SELL) 0 NewLotsCount(OP_BUY)==0){
            Ticket=OrderSend(Symbol(),OP_BUY,LotsCount(OP_SELL),NormalizeDouble(Ask, Digits),Slippage,0,0, newdummy-buy ,MagicNumber+1,0,Yellow);
          }
          Ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask, Digits),Slippage,0,0, dummy-buy ,MagicNumber,0,Red);
          if(Ticket 0){
             if (OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)){
               OrderOpen=true;
               OrderTime=Time[0];
               Print( Pivot dummy-buy order opened : ,OrderOpenPrice());
             }
             else{
               Print( Error opening Pivot dummy-buy order : ,GetLastError());
               return(0);
             }
           }
     }else
     if(MA11 MA21 MA10 =MA20 MA10 MA30 OrderOpen==false){
          if(NewLotsCount(OP_BUY) 0){NewHistoryBuyProfit+=NewHoldingBuyProfit(); NewCloseAllBuy();}
          if(LotsCount(OP_BUY) 0 NewLotsCount(OP_SELL)==0){
            Ticket=OrderSend(Symbol(),OP_SELL,LotsCount(OP_BUY),NormalizeDouble(Bid, Digits),Slippage,0,0, newdummy-sell ,MagicNumber+1,0,Green);
          }
          Ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid, Digits),Slippage,0,0, dummy-sell ,MagicNumber,0,Blue);
          if(Ticket 0){
             if (OrderSelect(Ticket,SELECT_BY_TICKET,MODE_TRADES)){
               OrderOpen=true;
               OrderTime=Time[0];
               Print( Pivot dummy-sell order opened : ,OrderOpenPrice());
             }
             else{
               Print( Error opening Pivot dummy-sell order : ,GetLastError());
               return(0);
             }
         }
     }
     if(AccountEquity()-Equity =AccountEquity()*MaxProfit/100){
         CloseAllSell();CloseAllBuy(); NewCloseAllSell();NewCloseAllBuy();
         NewHistorySellProfit=0; HistoryBuyProfit=0; NewHistoryBuyProfit=0; HistorySellProfit=0;
     }
//     if(Equity-AccountEquity() =AccountEquity()*MaxLoss/100){CloseAllSell();CloseAllBuy();}
//       CloseAllLossBuy(); CloseAllLossSell();
     if(MA11 MA21 MA10 =MA20)CloseAllWinSell();
     if(MA11 MA21 MA10 =MA20)CloseAllWinBuy();
     if(iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,0) MA11 iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,0) MA10)CloseAllWinSell();
     if(iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,0) MA11 iMA(NULL,0,3,0,MODE_EMA,PRICE_CLOSE,0) MA10)CloseAllWinBuy();
//     if(High[1] MA11 High[0] MA10)CloseAllWinSell();
//     if(Low[1] MA11 Low[0] =MA10)CloseAllWinBuy();
      if(HoldingBuyProfit()+HistoryBuyProfit+NewHoldingSellProfit()+NewHistorySellProfit AccountEquity()*MaxProfit/100/2){
       CloseAllBuy(); NewCloseAllSell(); NewHistorySellProfit=0; HistoryBuyProfit=0;
      }
      if(HoldingSellProfit()+HistorySellProfit+NewHoldingBuyProfit()+NewHistoryBuyProfit AccountEquity()*MaxProfit/100/2){
       CloseAllSell(); NewCloseAllBuy(); NewHistoryBuyProfit=0; HistorySellProfit=0;
      }

//----
   return(0);
 }
//+------------------------------------------------------------------+
void CloseAllSell()
{
   bool CAS = FALSE;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_SELL OrderMagicNumber() == MagicNumber )
     CAS = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(OrderClosePrice(), Digits), Slippage, Yellow);
   }
}
void CloseAllBuy()
{
   bool CAB = FALSE;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUY OrderMagicNumber() == MagicNumber)
     CAB = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(OrderClosePrice(), Digits), Slippage, Yellow);
   }
}
void CloseAllWinSell()
{
   bool CAWS = FALSE;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_SELL OrderMagicNumber() == MagicNumber OrderProfit() 0.0 ){
       HistorySellProfit+=OrderProfit();
       CAWS = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(OrderClosePrice(), Digits), Slippage, Yellow);
     }
   }
}
void CloseAllWinBuy()
{
   bool CAWB = FALSE;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUY OrderMagicNumber() == MagicNumber OrderProfit() 0.0){
       HistoryBuyProfit+=OrderProfit();
       CAWB = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(OrderClosePrice(), Digits), Slippage, Yellow);
     }
   }
}
double HoldingBuyProfit()
{
   double BuyProfit = 0;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUY OrderMagicNumber() == MagicNumber)
     BuyProfit += OrderProfit();
   }
   return (BuyProfit);
}
double HoldingSellProfit()
{
   double SellProfit = 0;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_SELL OrderMagicNumber() == MagicNumber)
     SellProfit += OrderProfit();
   }
   return (SellProfit);
}
double NewHoldingBuyProfit()
{
   double NewBuyProfit = 0;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUY OrderMagicNumber() == MagicNumber+1)
     NewBuyProfit += OrderProfit();
   }
   return (NewBuyProfit);
}
double NewHoldingSellProfit()
{
   double NewSellProfit = 0;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_SELL OrderMagicNumber() == MagicNumber+1)
     NewSellProfit += OrderProfit();
   }
   return (NewSellProfit);
}
double LotsCount(int type)
{
   double BuyLots=0;
   double SellLots=0;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUY OrderMagicNumber() == MagicNumber )BuyLots+=OrderLots();
     if (OrderType() == OP_SELL OrderMagicNumber() == MagicNumber )SellLots+=OrderLots();
   }
   switch(type)
   {
     case OP_BUY: return (BuyLots);
     break;
     case OP_SELL: return (SellLots);
     break;
   }
}
double NewLotsCount(int type)
{
   double BuyLots=0;
   double SellLots=0;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUY OrderMagicNumber() == MagicNumber+1 )BuyLots+=OrderLots();
     if (OrderType() == OP_SELL OrderMagicNumber() == MagicNumber+1 )SellLots+=OrderLots();
   }
   switch(type)
   {
     case OP_BUY: return (BuyLots);
     break;
     case OP_SELL: return (SellLots);
     break;
   }
}
void NewCloseAllSell()
{
   bool CAS = FALSE;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_SELL OrderMagicNumber() == MagicNumber+1 )
     CAS = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(OrderClosePrice(), Digits), Slippage, Yellow);
   }
}
void NewCloseAllBuy()
{
   bool CAB = FALSE;
   for (int t=0; t OrdersTotal(); t++)
   {
     OrderSelect(t, SELECT_BY_POS, MODE_TRADES);
     if (OrderType() == OP_BUY OrderMagicNumber() == MagicNumber+1)
     CAB = OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(OrderClosePrice(), Digits), Slippage, Yellow);
   }
}

外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!


特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情
推荐行情
点击排行