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

    新系统

    2011-12-08 · 7264 阅读
    +------------------------------------------------------------------+
      //|                                  FX185mq4 |
      //|                        Copyright @2006, Hua Ai (aha) |
      //|                                            |
      //+------------------------------------------------------------------+
      
      #property copyright \"Copyright @2006, Hua Ai (aha)\"
      #property link    \"\"
      
      /*
      Bago system can be categorized as a trend following system based on
      the cross of ema 5 and ema 12. When used properly on hourly chart it
      can capture daily swings of 100+ pips.
      
      The use of small number emas gives Bago system the sensitivity to
      generate early signals following 10-20 minutes scale waves, but also
      produces a great deal of false signals that can quickly drain a trader
      \'s account. So filters are extremely important for Bago system.
      
      While Bago system is largely a discretionary system, the integration of
      two excellent filters may make it possible to use a computer program
      generate signals with great high successful rate. This program is
      writtern to investigate this possiblity.
      
      The mechanism to generate a raw Bago signal is simple: ema 5 crosses
      ema 12 in the same direction as RSI 21 crosses 50 level. To abstract
      real signals, we need to pay attention to context: where the price are,
      and when the crosses happens.
      
      The greatest meaning of integrating Vegas tunnel into Bago system is,
      the tunnel as well as its fibo lines changes the original plain 2-d
      space into a twisted 2-d space. The twisted price trends now have the
      coordinates. With this coordinates system we may see the entry and exit
      with higher accuracy.
      
      So, this program will first construct the simple rules upon which the
      the raw signals are generated, then will add rules to filter those
      signals. Those new rules are quantified as parameters so they can be
      easily changed and optimized based on the output results.
      
      Enough talking, now come to business.
      */
      
      //Adjustable parameters
      /*
      extern int  TrailingStop    = 30;
      extern int  CrossEffectiveTime = 2;
      extern int  TunnelBandWidth  = 0;
      extern int  TunnelSafeZone    = 120;
      extern int  HardStopLoss    = 30;
      extern int  StopLossToFibo    = 20;
      
      extern bool  LondonOpen      = true;
      extern bool  NewYorkOpen      = true;
      extern bool  TokyoOpen      = true;
      */
      extern int  FasterEMA      = 5;
      extern int  SlowerEMA      = 12;
      extern int  RSIPeriod      = 21;
      
      extern double TotalLots      = 3.0;
      extern int  TPLevel1        = 55;
      extern double TPLevel1Lots    = 1.0;
      extern int  TPLevel2        = 89;
      extern double TPLevel2Lots    = 1.0;
      extern int  TPLevel3        = 144;
      
      //Parameters optimized for different pairs
      int  TrailingStop    = 30;
      int  CrossEffectiveTime = 2;
      int  TunnelBandWidth  = 0;
      int  TunnelSafeZone    = 120;
      int  HardStopLoss    = 30;
      int  StopLossToFibo    = 20;
      
      bool  LondonOpen      = true;
      bool  NewYorkOpen      = true;
      bool  TokyoOpen      = true;
      
      // Indicator buffers to mark the signal
      double      CrossUp[];
      double      CrossDown[];
      
      // State registers store cross up/down information
      bool      EMACrossedUp;
      bool      EMACrossedDown;
      bool      RSICrossedUp;
      bool      RSICrossedDown;
      bool      TunnelCrossedUp;
      bool      TunnelCrossedDown;
      
      // Cross up/down info should expire in a couple of bars.
      // Timer registers to control the expiration.
      int        EMACrossedUpTimer;
      int        RSICrossedUpTimer;
      int        EMACrossedDownTimer;
      int        RSICrossedDownTimer;
      
      //bool startup;
      //int SignalLabeled; // 0: initial state; 1: up; 2: down.
      //bool upalert,downalert;
      
      //+------------------------------------------------------------------+
      //| expert initialization function                      |
      //+------------------------------------------------------------------+
      int init()
      {
        if (Symbol() == \"EURUSD\")
        {
          TrailingStop      = 25;
          CrossEffectiveTime  = 2;
          TunnelBandWidth    = 5;
          TunnelSafeZone    = 120;
          HardStopLoss      = 30;
          StopLossToFibo    = 50;
          LondonOpen        = true; // ok
          NewYorkOpen      = true; // the best
          TokyoOpen        = false;// disaster  
        }
        else if (Symbol() == \"GBPUSD\")
        {
          TrailingStop      = 50;
          CrossEffectiveTime  = 2;
          TunnelBandWidth    = 8;
          TunnelSafeZone    = 160;
          HardStopLoss      = 30;
          StopLossToFibo    = 15;
          LondonOpen        = true; // ok
          NewYorkOpen      = false;// so so
          TokyoOpen        = true; // the best
        }
        else if (Symbol() == \"USDCHF\")
        {
          TrailingStop      = 70;
          CrossEffectiveTime  = 2;
          TunnelBandWidth    = 9;
          TunnelSafeZone    = 160;
          HardStopLoss      = 30;
          StopLossToFibo    = 30;
          LondonOpen        = true; // Great
          NewYorkOpen      = true; // Ok
          TokyoOpen        = true; // so so  
        }
        else if (Symbol() == \"AUDUSD\")
        {
          TrailingStop      = 60;
          CrossEffectiveTime  = 2;
          TunnelBandWidth    = 6;
          TunnelSafeZone    = 70;
          HardStopLoss      = 30;
          StopLossToFibo    = 30;
          LondonOpen        = true; // Great
          NewYorkOpen      = true; // Ok
          TokyoOpen        = true; // so so
        }
       
        // No cross
        EMACrossedUp = false;
        RSICrossedUp = false;
        TunnelCrossedUp = false;
        EMACrossedDown = false;
        RSICrossedDown = false;
        TunnelCrossedDown = false;
       
        // Reset timers
        EMACrossedUpTimer = 0;
        RSICrossedUpTimer = 0;
        EMACrossedDownTimer = 0;
        RSICrossedDownTimer = 0;
      
        //----
        return(0);
      }
      
      //+------------------------------------------------------------------+
      //| expert deinitialization function                      |
      //+------------------------------------------------------------------+
      int deinit()
      {
        //----
        EMACrossedUp = false;
        RSICrossedUp = false;
        TunnelCrossedUp = false;
        EMACrossedDown = false;
        RSICrossedDown = false;
        TunnelCrossedDown = false;
       
        EMACrossedUpTimer = 0;
        RSICrossedUpTimer = 0;
        EMACrossedDownTimer = 0;
        RSICrossedDownTimer = 0;
      
        //----
        return(0);
      }
      
      //+------------------------------------------------------------------+
      //| expert start function                            |
      //+------------------------------------------------------------------+
      int start() {
        int i, cnt, total, ticket, orders;
        double fasterEMAnow, slowerEMAnow;
        double fasterEMAprevious, slowerEMAprevious;
        double RSInow, RSIprevious;
        double VegasTunnelFast, VegasTunnelSlow;
        double VegasPriceCrossedL, VegasPriceCrossedS;
      
        if (Minute()=CrossEffectiveTime)
            RSICrossedUp = false; // Reset state register when crossed 3 bars ago
       
          // Check if there is a RSI cross down
          if ((RSInow < 50) && (RSIprevious > 50) && (RSICrossedDown == false))
          {
            RSICrossedUp  = false;
            RSICrossedDown = true;
          }
      
          if (RSICrossedDown == true)
            RSICrossedDownTimer++; // Record the number of bars the cross has happened
          else
            RSICrossedDownTimer=0; // Reset the timer once the cross is reversed
          
          if (RSICrossedDownTimer>=CrossEffectiveTime)
            RSICrossedDown = false; // Reset register when crossed 3 bars ago
      
          // Check if there is a EMA cross up
          if ( (fasterEMAnow > slowerEMAnow) &&
            (fasterEMAprevious < slowerEMAprevious) &&
            (EMACrossedUp == false) )
          {
            EMACrossedUp  = true;
            EMACrossedDown = false;
          }
      
          if (EMACrossedUp == true)
            EMACrossedUpTimer++; // Record the number of bars the cross has happened
          else
            EMACrossedUpTimer=0; // Reset the timer once the cross is reversed
          
          if (EMACrossedUpTimer>=CrossEffectiveTime)
            EMACrossedUp = false; // Reset register when crossed 3 bars ago
      
          // Check if there is a EMA cross down
          if ( (fasterEMAnow < slowerEMAnow) &&
            (fasterEMAprevious > slowerEMAprevious) &&
            (EMACrossedDown == false) )
          {
            EMACrossedUp  = false;
            EMACrossedDown = true;
          }
      
          if (EMACrossedDown == true)
            EMACrossedDownTimer++; // Record the number of bars the cross has happened
          else
            EMACrossedDownTimer=0; // Reset the timer once the cross is reversed
          
          if (EMACrossedDownTimer>=CrossEffectiveTime)
            EMACrossedDown = false; // Reset register when crossed 3 bars ago
      
          
          if ((Close[1]>VegasTunnelFast && Close[1]>VegasTunnelSlow) &&
            (Close[2]VegasPriceCrossedS+(TunnelBandWidth+StopLossToFibo)*Point)
                    OrderModify(OrderTicket(),Bid,VegasPriceCrossedS+(TunnelBandWidth+StopLossToFibo)*Point,OrderTakeProfit(),0);
                  continue;
                }
                else
                {
                  if(AskVegasPriceCrossedS+(TPLevel1+StopLossToFibo)*Point)
                      OrderModify(OrderTicket(),Bid,VegasPriceCrossedS+(TPLevel1+StopLossToFibo)*Point,OrderTakeProfit(),0);
                    continue;
                  }                        
      
                  // Reach 2nd TP level, close the 2nd lot, move up remainder stop to TPLevel2-StopLossToFibo
                  // Or start trailing stop
                  else if(AskVegasPriceCrossedS+(TPLevel2+StopLossToFibo)*Point)
                      OrderModify(OrderTicket(),Bid,VegasPriceCrossedS+(TPLevel2+StopLossToFibo)*Point,OrderTakeProfit(),0);
                    continue;
                  }   
      
                  // Reach 1nd TP level, close the 1st lot, move up remainder stop to TPLevel1-StopLossToFibo
                  else if(AskVegasPriceCrossedS+(TPLevel3+StopLossToFibo)*Point)
                      OrderModify(OrderTicket(),Bid,VegasPriceCrossedS+(TPLevel3+StopLossToFibo)*Point,OrderTakeProfit(),0);
                    continue;
                  }        
                }
              }
            }
          }
      
      /*  }
        if (Minute()==0 && Seconds()>30)
        {
      */
      
          // *********************************************************************
          // Based on states, determine entry situations.
          // *********************************************************************
      
          //Check the trading time
          if ( !((LondonOpen==true && Hour()>=7 && Hour()=12 && Hour()=0 && Hour()=23 && Hour()
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 16 个

    圆念 LV3

    发表于 2015-5-15 22:44:49 | 显示全部楼层


    继续,学习了

    最他妈不是人 LV3

    发表于 2015-5-15 23:00:56 | 显示全部楼层

    我靠

    ddyyhh LV3

    发表于 2015-5-16 00:15:39 | 显示全部楼层

    感谢分享

    许闻 LV3

    发表于 2015-5-18 21:22:50 | 显示全部楼层

    [s:145]

    暗色调 LV5

    发表于 2020-1-5 19:17:25 | 显示全部楼层

    真是 收益 匪浅

    请填写用户名 LV3

    发表于 2020-6-29 12:50:57 | 显示全部楼层

    没看完~~~~~~ 先顶,好同志

    狗官烨宝 LV4

    发表于 2020-7-9 22:23:05 | 显示全部楼层

    学习了,不错

    zhouyi LV6

    发表于 2020-7-16 13:00:55 | 显示全部楼层

    谢谢楼主分享

    坏女孩6 LV6

    发表于 2020-8-5 17:28:48 | 显示全部楼层

    谢谢楼主分享
    12下一页
    您需要登录后才可以回帖 登录 | 注册

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

    微信二维码

    有问题联系客服