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

    利用布林线上下加仓和锁仓 

    风灰 LV5
    2014-07-28 · 24025 阅读
    以前得高人指点,此EA利用布林线上下加仓和锁仓,某些时间此程序取得的程序收益很稳定


    布林适时锁仓.ex4
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 51 个

    leonhanyang LV3

    发表于 2014-7-28 16:07:43 | 显示全部楼层

    好东西。啊

    626608733 LV5

    发表于 2014-7-29 00:16:05 | 显示全部楼层

    感谢分享!!!

    kekyo LV3

    发表于 2014-7-30 13:32:48 | 显示全部楼层

    感谢

    TIAN2825538 LV3

    发表于 2014-9-11 09:55:05 | 显示全部楼层

    #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 = {EachTickMode};
    extern double Lots = {Lots};
    extern int Slippage = {Slippage};
    extern bool UseStopLoss = {UseStopLoss};
    extern int StopLoss = {StopLoss};
    extern bool UseTakeProfit = {UseTakeProfit};
    extern int TakeProfit = {TakeProfit};
    extern bool UseTrailingStop = {UseTrailingStop};
    extern int TrailingStop = {TrailingStop};

    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                                                   |
       //+------------------------------------------------------------------+

    {Var}
    {VarBuy}
    {VarSell}
    {VarCloseBuy}
    {VarCloseSell}
       
       //+------------------------------------------------------------------+
       //| Variable End                                                     |
       //+------------------------------------------------------------------+

       //Check position
       bool IsTrade = False;

       for (int i = 0; i < Total; i ++) {
          OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
          if(OrderType() <= OP_SELL &&  OrderSymbol() == Symbol()) {
             IsTrade = True;
             if(OrderType() == OP_BUY) {
                //Close

                //+------------------------------------------------------------------+
                //| Signal Begin(Exit Buy)                                           |
                //+------------------------------------------------------------------+

                {SignalCloseBuy}

                //+------------------------------------------------------------------+
                //| Signal End(Exit Buy)                                             |
                //+------------------------------------------------------------------+

                if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
                   OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
                   if (SignalMail) SendMail(\"[Signal Alert]\", \"[\" + Symbol() + \"] \" + DoubleToStr(Bid, Digits) + \" Close Buy\");
                   if (!EachTickMode) BarCount = Bars;
                   IsTrade = False;
                   continue;
                }
                //Trailing stop
                if(UseTrailingStop && TrailingStop > 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)                                          |
                //+------------------------------------------------------------------+

                {SignalCloseSell}

                //+------------------------------------------------------------------+
                //| 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)                                              |
       //+------------------------------------------------------------------+

       {SignalBuy}
       {SignalSell}

       //+------------------------------------------------------------------+
       //| 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);
    }
    //+------------------------------------------------------------------+

    好老公 LV3

    发表于 2014-10-8 06:28:30 | 显示全部楼层

    ijohihigugygiuygiuygiuyg

    小溪水 LV5

    发表于 2014-11-1 01:34:42 | 显示全部楼层

    多谢分享 看看是什么

    bax03suj LV3

    发表于 2014-11-2 02:36:30 | 显示全部楼层

    看看是什么东西啊

    2693036043 LV0

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

    nice!!!!!!!!!!!!

    小鲁 LV3

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

    想学EA,拜师,谁收了我吧
    您需要登录后才可以回帖 登录 | 注册

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

    微信二维码

    有问题联系客服