NY Close Scalper源码分析

2019-01-30

1.3版,官网地址,看名字顾名思义是凌晨头皮类EA,代码也确实如此,有很复杂的GMT计算时间,固定用于M5,但采集了H1下最近10根K线的最早最低值,内置EURUSD、GBPUSD、EURCHF、USDCHF、EURGBP的参数,表明可能只能用于这几个品种。

其它可见英文官方说明,在常规行情中应该可以,回测是没用的,只能实盘检验,还好作者提供了一个信号,碰到消息市,尽量关闭本EA。

其中有特色的地方有,

1、分三种跟时间有关的出场,逻辑上也比较合理,因为凌晨头皮交易时段一般不会超过4小时,普遍的,作者设置第三种出场是入场后3小时,强行出场。


if ( OrderType() == 0 )
      {
         if ( Bid>AvgBID && ( Bid>=ODtargetPips * Pips + OrderOpenPrice() 
                           || TimeCurrent()>OrderOpenTime() + ODlastHours * SECONDS ) )
         {
            RefreshRates(); 
            zi_3_bo = OrderClose(OrderTicket(),OrderLots(),Bid,slippagePoints,Green) ;
            ODClosed = true ;
            continue;
         }
         if ( TimeCurrent()>OrderOpenTime() + ODastHours_B * SECONDS && Ask<BidBandLL )
         {
            RefreshRates(); 
            zi_4_bo = OrderClose(OrderTicket(),OrderLots(),Bid,slippagePoints,Green) ;
            ODClosed = true ;
            continue;
         }
         if ( !(TimeCurrent()>OrderOpenTime() + ODastHours_C * SECONDS) )   continue;
         RefreshRates(); 
         zi_5_bo = OrderClose(OrderTicket(),OrderLots(),Bid,slippagePoints,Green) ;
         ODClosed = true ;
         continue;
      }


2、对Ask\Bid计算布林通道


void CalBand()
{
  bool      zi_1_bo;
  double    zi_2_do=0.;
  double    AvgMIDDLE;
  double    zi_7_do;
  double    zi_9_do;
  double    zi_10_do;
  int       zi_11_in;
  int       zi_12_in;
//----- -----

  double    zi_3_do = 0.0 ;
  double    zi_4_do = 0.0 ;
 for (int i = zong_18_in ; i < zong_16_in + zong_18_in ; i = i + 1)
  {
  zi_3_do = zi_3_do + b[i] ;
  zi_4_do = zi_4_do + a[i] ;
  zi_2_do = (b[i] + a[i]) / 2.0 + zi_2_do ;
  if ( ( !(b[i]==0.0) && !(a[i]==0.0) ) )   continue;
  zi_1_bo = true ;
  break;
  
  }
 if ( zi_1_bo )
  {
  AvgBID = 0.0 ;
  AvgASK = 0.0 ;
  BidBandLL = 0.0 ;
  AskBandHH = 0.0 ;
  return;
  }
  //                              middle        21
   AvgMIDDLE = zong_19_do * Pips + zi_2_do / zong_16_in ;
   AvgBID = zi_3_do / zong_16_in + zong_19_do * Pips ;
   AvgASK = zi_4_do / zong_16_in + zong_19_do * Pips ;
   if ( useAskToCalBB )
   {
      zi_7_do = 0.0 ;
      for (int i = zong_18_in ; i < zong_16_in + zong_18_in ; i = i + 1)
      {
         zi_7_do = zi_7_do + MathPow((b[i] + a[i]) / 2.0 - AvgASK,2.0) ;
      }
      sigma=MathSqrt(zi_7_do / zong_16_in);
      BidBandLL = AvgMIDDLE - xSigma * sigma ;
      AskBandHH = AvgMIDDLE + xSigma * sigma ;
      return;
   }
   zi_9_do = 0.0 ;
   zi_10_do = 0.0 ;
   for (zi_11_in = zong_18_in ; zi_11_in < zong_16_in + zong_18_in ; zi_11_in = zi_11_in + 1)
   {
      zi_9_do = zi_9_do + MathPow(b[zi_11_in] - AvgBID,2.0) ;
   }
   for (zi_12_in = zong_18_in ; zi_12_in < zong_16_in + zong_18_in ; zi_12_in = zi_12_in + 1)
   {
      zi_10_do = zi_10_do + MathPow(a[zi_12_in] - AvgASK,2.0) ;
   }
   sigma = (MathSqrt(zi_9_do / zong_16_in) + MathSqrt(zi_10_do / zong_16_in)) / 2.0 ;
   BidBandLL = AvgBID - sigma * xSigma ;
   AskBandHH = AvgASK + sigma * xSigma ;
}


3、圣诞节后一周是不交易的

4、使用时间代码避开所有含GBP的品种在2015.5.7的行情,作者不地道

5、夏令时的计算,从2010年到2030年,都固化了,这也是一种写法


 bool isSST( datetime mu_0_da)
 {
  int       zi_2_in;
  int       zi_3_in;
  int       zi_4_in;
//----- -----

 zi_2_in = 11 ;
 zi_3_in = 3 ;
 zi_4_in = TimeYear(mu_0_da) ;
 if ( zi_4_in == 2010 )
  {
  zi_2_in = 14 ;
  zi_3_in = 7 ;
  }
 else
  {
  if ( zi_4_in == 2011 )
   {
   zi_2_in = 13 ;
   zi_3_in = 6 ;
   }
  else
   {
   if ( zi_4_in == 2012 )
    {
    zi_2_in = 11 ;
    zi_3_in = 4 ;
    }
   else
    {
    if ( zi_4_in == 2013 )
     {
     zi_2_in = 10 ;
     zi_3_in = 3 ;
     }
    else
     {
     if ( zi_4_in == 2014 )
      {
      zi_2_in = 9 ;
      zi_3_in = 2 ;
      }
     else
      {
      if ( zi_4_in == 2015 )
       {
       zi_2_in = 8 ;
       zi_3_in = 1 ;
       }
      else
       {
       if ( zi_4_in == 2016 )
        {
        zi_2_in = 13 ;
        zi_3_in = 6 ;
        }
       else
        {
        if ( zi_4_in == 2017 )
         {
         zi_2_in = 12 ;
         zi_3_in = 5 ;
         }
        else
         {
         if ( zi_4_in == 2018 )
          {
          zi_2_in = 11 ;
          zi_3_in = 4 ;
          }
         else
          {
          if ( zi_4_in == 2019 )
           {
           zi_2_in = 10 ;
           zi_3_in = 3 ;
           }
          else
           {
           if ( zi_4_in == 2020 )
            {
            zi_2_in = 8 ;
            zi_3_in = 1 ;
            }
           else
            {
            if ( zi_4_in == 2021 )
             {
             zi_2_in = 14 ;
             zi_3_in = 7 ;
             }
            else
             {
             if ( zi_4_in == 2022 )
              {
              zi_2_in = 13 ;
              zi_3_in = 6 ;
              }
             else
              {
              if ( zi_4_in == 2023 )
               {
               zi_2_in = 12 ;
               zi_3_in = 5 ;
               }
              else
               {
               if ( zi_4_in == 2024 )
                {
                zi_2_in = 10 ;
                zi_3_in = 3 ;
                }
               else
                {
                if ( zi_4_in == 2025 )
                 {
                 zi_2_in = 9 ;
                 zi_3_in = 2 ;
                 }
                else
                 {
                 if ( zi_4_in == 2026 )
                  {
                  zi_2_in = 8 ;
                  zi_3_in = 1 ;
                  }
                 else
                  {
                  if ( zi_4_in == 2027 )
                   {
                   zi_2_in = 14 ;
                   zi_3_in = 7 ;
                   }
                  else
                   {
                   if ( zi_4_in == 2028 )
                    {
                    zi_2_in = 12 ;
                    zi_3_in = 5 ;
                    }
                   else
                    {
                    if ( zi_4_in == 2029 )
                     {
                     zi_2_in = 11 ;
                     zi_3_in = 4 ;
                     }
                    else
                     {
                     if ( zi_4_in == 2030 )
                      {
                      zi_2_in = 10 ;
                      zi_3_in = 3 ;
  }}}}}}}}}}}}}}}}}}}}}
 return((TimeMonth(mu_0_da)>3 && TimeMonth(mu_0_da)<11)
 || (TimeMonth(mu_0_da)==3 && TimeDay(mu_0_da)>=zi_2_in) 
 || (TimeMonth(mu_0_da)==11 && TimeDay(mu_0_da)<zi_3_in)); 
}


6、记录开仓时和平仓时的滑点,并写入文件,这个功能超级有用。

 

圈内还有NY 2.6源码,经判读是高仿假冒作品,注意识别。

需要源码的请与QQ7318875联系。

NY Close使用说明书.docx

 

 NY Close Scalper是一款经典的头皮策略 可谓称得上是最强头皮策略 不使用马丁或网格,并为每个头寸使用固定的止损。 

符号:EURUSD,GBPUSD,EURCHF,USDCHF,USDCAD,EURAUD,EURCAD

时间范围:M5

网址过滤:
http://fxdata.cc
http://backup.fxdata.cc
http://breaking.fxdata.cc

EA介绍:https://www.mql5.com/en/market/product/28901


信号地址:https://www.mql5.com/en/signals/417005


本博客所有文章如无特别注明均为原创。作者:天泓评测
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)