16评论

0收藏

求EA 高手指点

avatar 佳宝 | 5301 人阅读 | 16 人评论 | 2013-10-06

下面是我编写的一个EA程序,订单开单没问题,平单时候和预期的不一样,希望多单在当前周期开盘价格如果低于前五个周期的最低价则平仓单,空单反之,求高手指点。
//+------------------------------------------------------------------+
//|                            PBX Sample.mq4 |
//|                      Copyright ?2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+

extern double TakeProfit = 500;
extern double Lots = 1;
extern double TrailingStop = 500;


//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double PBX1Current;
   double PBX6Current,PBX1Previous;
   double PBX6Previous;
   int cnt, ticket, total;
   datetime Closetime,Opentime;
   
  if(Bars<100)
     {
      Print("bars less than 100");
      return(0);  
     }
   if(TakeProfit<10)
     {
      Print("TakeProfit less than 10");
      return(0);  // check TakeProfit
     }
// to simplify the coding and speed up access
// data are put into internal variables
   PBX1Current = (iMA(NULL, 0, 4, 0, MODE_EMA, PRICE_CLOSE, 0) + iMA(NULL, 0, 8, 0, MODE_SMA, PRICE_CLOSE, 0) + iMA(NULL, 0, 16, 0, MODE_SMA, PRICE_CLOSE, 0)) / 3.0;
   PBX6Current = (iMA(NULL, 0, 24, 0, MODE_EMA, PRICE_CLOSE, 0) + iMA(NULL, 0, 48, 0, MODE_SMA, PRICE_CLOSE, 0) + iMA(NULL, 0, 96, 0, MODE_SMA, PRICE_CLOSE, 0)) / 3.0;
   PBX1Previous = (iMA(NULL, 0, 4, 0, MODE_EMA, PRICE_CLOSE, 1) + iMA(NULL, 0, 8, 0, MODE_SMA, PRICE_CLOSE, 1) + iMA(NULL, 0, 16, 0, MODE_SMA, PRICE_CLOSE, 1)) / 3.0;
   PBX6Previous = (iMA(NULL, 0, 24, 0, MODE_EMA, PRICE_CLOSE, 1) + iMA(NULL, 0, 48, 0, MODE_SMA, PRICE_CLOSE, 1) + iMA(NULL, 0, 96, 0, MODE_SMA, PRICE_CLOSE, 1)) / 3.0;
  
   total=OrdersTotal();
   if(total<1)
     {
      // no opened orders identified
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      // check for long position (BUY) possibility
      
      if(PBX1Current>PBX6Current&&PBX1Previous<PBX6Previous)// 金叉
        {
        
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,10,Ask-TrailingStop*Point,0,"PBX sample",787912,0,Green);
         if(ticket>0)
           {            
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))  Print("BUY order opened : ",OrderOpenPrice(),OrderOpenTime());
             }
         else Print("Error opening BUY order : ",GetLastError());
         return(0);
        }
      // check for short position (SELL) possibility
      if(PBX1Current<PBX6Current && PBX1Previous>PBX6Previous)//死叉
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+TrailingStop*Point,0,"PBX sample",787912,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError());
         return(0);
        }
      return(0);
     }
   // it is important to enter the market correctly,
   // but it is more important to exit it correctly...   
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            if(iOpen(Symbol(),0,0)<Low[iLowest(Symbol(),0,MODE_LOW,5,1)])
                {
               
                 OrderClose(OrderTicket(),OrderLots(),Bid,10,Violet); // close position
                    if(OrderSelect(16384,SELECT_BY_TICKET,MODE_HISTORY)==true)
                       Closetime=OrderCloseTime();
               
                 return(0); // exit
                }
             else{
                Print(iOpen(Symbol(),0,0),"Low",Low[iLowest(Symbol(),0,MODE_LOW,5,1)]);
                return(0); // exit
             }   
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
           
         else  // go to short position
           {
            // should it be closed?
            // if(Bullmediancurrent>Bullmedianprevious )
            //if(SigmaCurrent>SigmaPrevious)
            if(iOpen(Symbol(),0,0)>High[iHighest(Symbol(),0,MODE_HIGH,5,1)])
              {
               OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
               
               return(0); // exit
              }
            else
            {Print(iOpen(Symbol(),0,0),"High",High[iHighest(Symbol(),0,MODE_HIGH,5,1)]);
                return(0); // exit
            }
            
            // check for trailing stop
            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);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
// the end.
""
还没有人打赏,支持一下

评论|共 16 个

feigo

发表于 2014-6-10 00:05:30 | 显示全部楼层

zhuan dian jinbi

w417ee

发表于 2014-6-12 14:15:51 | 显示全部楼层

赚币整下载,挺好的

wx_pe0EPOj0

发表于 2017-10-5 23:20:38 | 显示全部楼层

挺好的      

常承奚

发表于 2020-6-21 21:46:14 | 显示全部楼层

看帖回帖是美德!:lol

ssvlq

发表于 2020-8-3 17:59:37 | 显示全部楼层

谢谢楼主分享

当我最需要爱

发表于 2020-8-28 22:32:19 | 显示全部楼层

帮你顶下哈!!

kforex

发表于 2020-8-29 12:29:18 | 显示全部楼层

谢谢楼主分享

lip160

发表于 2020-11-20 13:36:05 | 显示全部楼层

顶下

孤狼(软件高手)

发表于 2020-11-21 21:22:07 | 显示全部楼层

12下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则