黄金交易策略(Nerve Nnife.mql4):做单手数设计

黄金交易策略(Nerve Nnife.mql4):做单手数设计_第1张图片

 完整EA:
Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客

NK的做单量是由参数设定的,以下分别是参数项:

黄金交易策略(Nerve Nnife.mql4):做单手数设计_第2张图片

考虑到复利的情况,若10000本金,在以上三个参数的设计下,第1单的购买量是0.01*10,第2单是0.01*10*2,第3单是0.01*10*4...

对应的开单代码如下:

//跟踪点差是否满足开仓条件
         if (count == 0  && (TimeLocal() + End_Time_After_H*60*60) <= StrToTime(End_Time))//第一笔开仓
         {
            if(follow)//一定是m1_down同向
            {
                followPrice = followPrice < Bid ? Bid : followPrice;
                if(isDown(1, 0, HeikenAshiSmoothed) == UP || breakThrough("up", Ask)) //追踪开仓的过程中1分钟上行情反转或反向突破,即停止追踪
                  {
                   follow = false;
                   followPrice = 0;
                   nextOrderTime = TimeCurrent() + 60 * 1;//等待60秒
                   printfPro("反向突破等待" + (60 * 1) + "秒", false);
                  }
               
            }
            if (isDown(small_timeframe,offset,small_indicator) == DOWN && follow && (followPrice - Bid) / Point > order1_interval && TimeCurrent() > nextOrderTime)
            {
          
               OrderSend(Symbol(),OP_SELL,order1_lots * multiple,MarketInfo(Symbol(),MODE_BID),0,0,0,"1",888,0,clrGreen);
               printf("大小趋势相同买入空单1");
               count = 1;
               lastPrice = MarketInfo(Symbol(),MODE_BID);
               nextOrderTime = TimeCurrent() + open_time;
               follow = false;
               followPrice = 0;
            }
         }else if (count >= 1 && count < 5 )//第二到五笔开仓
         {

            //落差大于500点小趋势反过来,开始跟踪买入空单
            if  (isDown(small_timeframe,offset,small_indicator) == DOWN && !follow && (Bid - lastPrice) / Point > order2_5_trigger && TimeCurrent() > nextOrderTime)
            {
               follow = true;      
               followPrice = Bid;
            }
            if(follow)
              {
               followPrice = Bid > followPrice ? Bid : followPrice;
               if(isDown(1, 0, HeikenAshiSmoothed) == UP  || breakThrough("up", Ask)) //追踪开仓的过程中1分钟上行情反转,即停止追踪
                  {
                   follow = false;
                   followPrice = 0;
                   nextOrderTime = TimeCurrent() + 60 * 1;//等待60秒
                   printfPro("反向突破等待" + (60 * 1) + "秒", false);
                  }
              }
            if (isDown(small_timeframe,offset,small_indicator) == DOWN  && follow && (followPrice - Bid) / Point > order2_5_interval)//下降300点,买入
            {
               //买入空单
               count ++;
               double buyTotalLots = calcBuyOrSellTotalLots((int)((Bid - lastPrice) / Point / 2), 0);//计算买入量
               OrderSend(Symbol(),OP_SELL,buyTotalLots > (order2_5_lots * multiple * MathPow(2,count - 1)) ? order2_5_lots * multiple * MathPow(2,count - 1) : buyTotalLots,MarketInfo(Symbol(),MODE_BID),0,0,0,"" + count,888,0,clrGreen);
               
               printf("大小趋势相同买入空单" + count);
               lastPrice = MarketInfo(Symbol(),MODE_BID);
               nextOrderTime = TimeCurrent() + open_time;
               follow = false;
               followPrice = 0;
            }

         
         }

你可能感兴趣的:(量化交易EA,金融)