📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    请教BULL,关于EA的问题!!!!

    千山 LV3
    2011-11-11 · 9346 阅读
    //+------------------------------------------------------------------+
      //| This MQL is generated by Expert Advisor Builder                  |
      //|                http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/ |
      //|                                                                  |
      //|  In no event will author be liable for any damages whatsoever.   |
      //|                      Use at your own risk.                       |
      //|                                                                  |
      //+------------------- DO NOT REMOVE THIS HEADER --------------------+
      
      #define SIGNAL_NONE 0
      #define SIGNAL_BUY   1
      #define SIGNAL_SELL  2
      #define SIGNAL_CLOSEBUY 3
      #define SIGNAL_CLOSESELL 4
      
      #property copyright \"Expert Advisor Builder\"
      #property link      \"http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/\"
      
      extern int MagicNumber = 0;
      extern bool SignalMail = False;
      extern bool EachTickMode = True;
      extern double Lots = 1.0;
      extern int Slippage = 3;
      extern bool UseStopLoss = True;
      extern int StopLoss = 30;
      extern bool UseTakeProfit = True;
      extern int TakeProfit = 60;
      extern bool UseTrailingStop = True;
      extern int TrailingStop = 15;
      
      int BarCount;
      int Current;
      bool TickCheck = False;
      //+------------------------------------------------------------------+
      //| expert initialization function                                   |
      //+------------------------------------------------------------------+
      int init() {
         BarCount = Bars;
      
         if (EachTickMode) Current = 0; else Current = 1;
      
         return(0);
      }
      //+------------------------------------------------------------------+
      //| expert deinitialization function                                 |
      //+------------------------------------------------------------------+
      int deinit() {
         return(0);
      }
      //+------------------------------------------------------------------+
      //| expert start function                                            |
      //+------------------------------------------------------------------+
      int start() {
         int Order = SIGNAL_NONE;
         int Total, Ticket;
         double StopLossLevel, TakeProfitLevel;
      
      
      
         if (EachTickMode && Bars != BarCount) TickCheck = False;
         Total = OrdersTotal();
         Order = SIGNAL_NONE;
      
         //+------------------------------------------------------------------+
         //| Variable Begin                                                   |
         //+------------------------------------------------------------------+
      
      
      double Buy1_1 = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, Current + 0);
      double Buy1_2 = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, Current + 0);
      
      double Sell1_1 = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, Current + 0);
      double Sell1_2 = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, Current + 0);
      
      
      
         
         //+------------------------------------------------------------------+
         //| Variable End                                                     |
         //+------------------------------------------------------------------+
      
         //Check position
         bool IsTrade = False;
      
         for (int i = 0; i < Total; i ++) {
            OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
            if(OrderType()  0) {                 
                     if(Bid - OrderOpenPrice() > Point * TrailingStop) {
                        if(OrderStopLoss() < Bid - Point * TrailingStop) {
                           OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
                           if (!EachTickMode) BarCount = Bars;
                           continue;
                        }
                     }
                  }
               } else {
                  //Close
      
                  //+------------------------------------------------------------------+
                  //| Signal Begin(Exit Sell)                                          |
                  //+------------------------------------------------------------------+
      
                  
      
                  //+------------------------------------------------------------------+
                  //| Signal End(Exit Sell)                                            |
                  //+------------------------------------------------------------------+
      
                  if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
                     OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
                     if (SignalMail) SendMail(\"[Signal Alert]\", \"[\" + Symbol() + \"] \" + DoubleToStr(Ask, Digits) + \" Close Sell\");
                     if (!EachTickMode) BarCount = Bars;
                     IsTrade = False;
                     continue;
                  }
                  //Trailing stop
                  if(UseTrailingStop && TrailingStop > 0) {                 
                     if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
                        if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
                           OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
                           if (!EachTickMode) BarCount = Bars;
                           continue;
                        }
                     }
                  }
               }
            }
         }
      
         //+------------------------------------------------------------------+
         //| Signal Begin(Entry)                                              |
         //+------------------------------------------------------------------+
      
         if (Buy1_1 > Buy1_2) Order = SIGNAL_BUY;
      
         if (Sell1_1 < Sell1_2) Order = SIGNAL_SELL;
      
      
         //+------------------------------------------------------------------+
         //| Signal End                                                       |
         //+------------------------------------------------------------------+
      
         //Buy
         if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
            if(!IsTrade) {
               //Check free margin
               if (AccountFreeMargin() < (1000 * Lots)) {
                  Print(\"We have no money. Free Margin = \", AccountFreeMargin());
                  return(0);
               }
      
               if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
               if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;
      
               Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, \"Buy(#\" + MagicNumber + \")\", MagicNumber, 0, DodgerBlue);
               if(Ticket > 0) {
                  if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
                                      Print(\"BUY order opened : \", OrderOpenPrice());
                      if (SignalMail) SendMail(\"[Signal Alert]\", \"[\" + Symbol() + \"] \" + DoubleToStr(Ask, Digits) + \" Open Buy\");
                              } else {
                                      Print(\"Error opening BUY order : \", GetLastError());
                              }
               }
               if (EachTickMode) TickCheck = True;
               if (!EachTickMode) BarCount = Bars;
               return(0);
            }
         }
      
         //Sell
         if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
            if(!IsTrade) {
               //Check free margin
               if (AccountFreeMargin() < (1000 * Lots)) {
                  Print(\"We have no money. Free Margin = \", AccountFreeMargin());
                  return(0);
               }
      
               if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
               if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;
      
               Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, \"Sell(#\" + MagicNumber + \")\", MagicNumber, 0, DeepPink);
               if(Ticket > 0) {
                  if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
                                      Print(\"SELL order opened : \", OrderOpenPrice());
                      if (SignalMail) SendMail(\"[Signal Alert]\", \"[\" + Symbol() + \"] \" + DoubleToStr(Bid, Digits) + \" Open Sell\");
                              } else {
                                      Print(\"Error opening SELL order : \", GetLastError());
                              }
               }
               if (EachTickMode) TickCheck = True;
               if (!EachTickMode) BarCount = Bars;
               return(0);
            }
         }
      
         if (!EachTickMode) BarCount = Bars;
      
         return(0);
      }
      //+------------------------------------------------------------------+
      
      
      
      我的原意是当KD中的K线大于D线的交叉点时,就空,小于就多,但是出来的效果确是K大于D线时这个空间他就多,,,我不知道该如何来确定当K大于D时这个点。。。
      还有就是这个EA一次只能下一次,平了才能接着再下1次单,才练习着做,有很多东西要学,望BULL能指正。。谢谢。。
      
      C:aaa.gif
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 30 个

    暗色调 LV5

    发表于 2012-11-22 00:12:46 | 显示全部楼层

    不错,支持下  

    问问 LV5

    发表于 2012-11-22 00:12:46 | 显示全部楼层

    既然来了,就留个脚印  

    月上萧萧 LV4

    发表于 2012-11-22 00:12:46 | 显示全部楼层

    华尔街EA研发中心,最具权威的EA开发服务商  

    福尔摩斯 LV6

    发表于 2012-11-22 00:12:46 | 显示全部楼层

    做一个,做好了,请看  

    江南枫 LV5

    发表于 2012-11-22 00:12:46 | 显示全部楼层

    发贴看看自己积分  

    laowang LV3

    发表于 2014-11-14 07:13:41 | 显示全部楼层


    继续,学习了

    lixun66 LV3

    发表于 2014-12-14 19:22:11 | 显示全部楼层

    研究研究

    爱不爱都没错 LV3

    发表于 2014-12-16 15:49:49 | 显示全部楼层

    找版主

    小三 LV3

    发表于 2014-12-16 15:50:06 | 显示全部楼层

    看看什么EA,,,
    123下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服