黄金交易策略(Nerve Nnife.mql4):三档移动止盈机制设计

和中国电费一样,一档档的上。

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

mql4代码节选如下:

//第一张单上涨2500,开始SL跟踪300点
         if (count == 1 && !follow_p_3)
         {
            double ctp = calcTotalProfit(0, "buy", 888);
            if (!follow_p_1 && ctp / Point > order1_profit_point_trigger * multiple) 
            {
               follow_p_1 = true;
               followPrice_p_1 = ctp ;
               printfPro("第1档综合盈利开始追踪:" + ctp, true);
            }
            if(follow_p_1)
              {
               followPrice_p_1 = ctp > followPrice_p_1 ? ctp : followPrice_p_1;
              }
            if (follow_p_1 && (followPrice_p_1 - ctp) / Point > order1_SL * multiple)
            {
               //平仓
               Close_All_Order_DeadLine(Symbol(),"EA","B",888);
               printfPro("第1档综合盈利全平:" + ctp, true);
               reset(open_time);
            }
           
         }
         
    

第一档的默认参数,触发线是500,回调线是200,一个特别限制条件是,只有一张趋势单。也就是说,当一轮做单开始后,成功开仓了1单,当盈利达到0.5刀(1000本金时)就开始追踪止盈,一直追涨(空),直到盈利在当前最大值回撤0.2刀,止盈。

//1到5笔订单,综合获利1500微点后(可调整、显示SL线),通过综合利润SL跟踪500微点(可调整),触碰跟踪止赢即全部平仓(需要在天图中显示SL线)
         if (count >= 1)
         {
            double totalProfit = calcTotalProfit(0, "buy", 888);//当前盈亏
            if (!follow_p_3 && totalProfit / Point > order1_5_profit_point_trigger * multiple)
            {
               //进入第2档时,取消第1档追踪
               follow_p_1 = false;
               followPrice_p_1 = 0;
               
               follow_p_3 = true;
               followPrice_p_3 = totalProfit;
               printfPro("第2档综合盈利开始追踪:" + totalProfit, true);
               
            }
            if(follow_p_3)
              {
               followPrice_p_3 = totalProfit > followPrice_p_3 ? totalProfit : followPrice_p_3;
              }
            if (follow_p_3 &&  (followPrice_p_3 - totalProfit) / Point > order1_5_SL * multiple)
            {
               //全部平仓
               Close_All_Order_DeadLine(Symbol(),"EA","B",888);
               printfPro("第2档综合盈利全平:" + totalProfit, true);
               reset(open_time);
            }
         }

第2档移动止盈的默认参数是:2300和700,5张单内也适用。

//第3档综合移动止赢
   if (!follow_p_2 && calcTotalProfit(0, m15_down ? "sell" : "buy", 888) / Point > m15_m30_order_all_profit_point_trigger * multiple)
   {
      //进入第3档时,取消第1,2档追踪
      follow_p_1 = false;
      followPrice_p_1 = 0;
      follow_p_3 = false;
      followPrice_p_3 = 0;

      follow_p_2 =true;
      followPrice_p_2 = calcTotalProfit(0, m15_down ? "sell" : "buy", 888);
      printfPro("第3档综合盈利止赢开始追踪:" + calcTotalProfit(0, m15_down ? "sell" : "buy", 888));
   }
   if(follow_p_2)
     {
      followPrice_p_2 = calcTotalProfit(0, m15_down ? "sell" : "buy", 888) > followPrice_p_2 ? calcTotalProfit(0, m15_down ? "sell" : "buy", 888) : followPrice_p_2;
     }
   if (follow_p_2 && (followPrice_p_2 -  calcTotalProfit(0, m15_down ? "sell" : "buy", 888)) / Point > m15_m30_order_all_SL * multiple)
   {
      printfPro("第3档综合盈利全平:" + calcTotalProfit(0, m15_down ? "sell" : "buy", 888));
      
      //全平
      if(m15_down)
        {
         Close_All_Order_DeadLine(Symbol(),"EA","S",888);
        }else
           {
            Close_All_Order_DeadLine(Symbol(),"EA","B",888);
           }
      
      reset(open_time);
   }

第3档默认参数是:3400和1400。

第1、2档容易达到,也容易回调止盈,在趋势不稳定时可以尽甲安全离场,但盈利能力非常有限。正常情况下,1、2、3档会阶梯式递增,但我们其实还设计了一个开关,直达第3档,1、2档没有反向趋势时不启用,代码如下:

黄金交易策略(Nerve Nnife.mql4):三档移动止盈机制设计_第1张图片

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