德国斯诺克比赛直播|2012斯诺克世锦赛
外汇ea之家
现在注册
已注册用户请  登录
精品资源
国外系统汉化
外汇ea之家    EA入门学院

基于移动平均线的智能交易系统的代码

  •   qq_天空_rSS · 2019-6-1 18:28:16 · 132 次点击 回帖奖励 ·倒序浏览 ·阅读模式     
    //基于移动平均线的智能交易系统的代码 ,整个程序非常简洁但EA的功能又非常齐全,实现?#36865;?#20840;由电脑自动下单和平仓,整个程序只用了一个START()


      //+------------------------------------------------------------------+


      extern double 赢利目标 = 20;
      extern double 止损 = 30;
      extern double 手数 = 2;
      extern double 跟踪止赢 = 50;
      extern int 短均周期 = 5;
      extern int 长均周期 = 60;
      
      //+---------------------------主函数---------------------------------+
      
      int start()
          {
           int cnt,
               编号,
               单总数;
           double 短均,
                 长均;


           if (Bars < 100)
              {
               Print("bars less than 100");
               return (0);
              }


           if (赢利目标 < 10)
                {
                Print("赢利目标低于 10");
                return (0);
                }


           短均 = iMA(NULL, 0, 短均周期, 0, MODE_EMA, PRICE_CLOSE, 0);
           长均 = iMA(NULL, 0, 长均周期, 0, MODE_EMA, PRICE_CLOSE, 0);


           static int 穿越 = 0;
           穿越 = 穿越子函数(长均, 短均);


           单总数 = OrdersTotal();
           if (单总数 < 1)
              {
               if (穿越 == 1)  // 满足空仓条件,开空仓
                  {
                   编号 = OrderSend(Symbol(),
                                    OP_SELL,
                                    手数,
                                    Bid,
                                    3,
                                    Bid + 止损 * Point,
                                    Bid - 赢利目标 * Point,
                                    "EMA_CROSS",
                                    12345,
                                    0,
                                    Green);
                  if (编号 > 0)
                     {
                      if (OrderSelect(编号, SELECT_BY_TICKET, MODE_TRADES))
                          Print("SELL单开在: ", OrderOpenPrice());
                     }
                   else
                      Print("开卖单出错: ", GetLastError());
                  return (0);
                  }
               if (穿越 == 2) // 满足多仓条件,开多仓
                  {
                   编号 = OrderSend(Symbol(),
                                    OP_BUY,
                                    手数,
                                    Ask,
                                    3,
                                    Ask - 止损 * Point,
                                    Ask + 赢利目标 * Point,
                                    "EMA_CROSS",
                                    12345,
                                    0,
                                    Red);
                   if (编号 > 0)
                      {
                       if (OrderSelect(编号, SELECT_BY_TICKET, MODE_TRADES))
                          Print("BUY单开在: ", OrderOpenPrice());
                      }
                    else
                       Print("开买单出错 : ", GetLastError());
                   return (0);
                   }
               return (0);
               }
               
    //---- 跟踪止盈止损
           for (cnt = 0; cnt < 单总数; cnt++)
               {
               OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
                  if (OrderType() <= OP_SELL && OrderSymbol() == Symbol())
                     {
                      if (OrderType() == OP_SELL) // long position is opened
                         {
    //----跟踪止损
                          if (跟踪止赢 > 0)
                             {
                              if (Bid - OrderOpenPrice() > Point * 跟踪止赢)
                                 {
                                  if (OrderStopLoss() < Bid - Point * 跟踪止赢)
                                     {
                                      OrderModify(OrderTicket(),
                                                  OrderOpenPrice(),
                                                  Bid - Point * 跟踪止赢,
                                                  OrderTakeProfit(),
                                                  0,
                                                  Green);
                                      return (0);
                                     }
                                 }
                             }
                         }
                       else // go to short position
                         {
    // check for trailing stop
                          if (跟踪止赢 > 0)
                             {
                              if ((OrderOpenPrice() - Ask) > (Point * 跟踪止赢))
                                 {
                                  if ((OrderStopLoss() > (Ask + Point * 跟踪止赢)))
                                     {
                                      OrderModify(OrderTicket(),
                                                  OrderOpenPrice(),
                                                  Ask + Point * 跟踪止赢,
                                                  OrderTakeProfit(),
                                                  0,
                                                  Red);
                                      return (0);
                                      }
                                 }
                             }
                         }
                     }
               }
      //----
           return (0);
           }
          
      //+-----------------------穿越 子函数()------------------------------+
      
      // 移动平均线多空条件判断,
      int 穿越子函数(double 线1, double 线2)
         {
          static int 最后方向 = 0;
          static int 当前方向 = 0;
    //首个load不工作, 等待第一次穿越!
          static bool 第一时间 = true;
          if (第一时间 == true)
             {
             第一时间 = false;
             return (0);
             }
      //----因主循环中有单数限制,所以当大于时下单后不会再不停下单
          if (线1 > 线2)
             当前方向 = 2; //多头市场 上穿做多
          if (线1 < 线2)
             当前方向 = 1; //空头市场 下穿做空
      //----
          if (当前方向 != 最后方向)  //changed
             {
             最后方向 = 当前方向;
             return(最后方向);
             }
          else
             {
             return (0);  //方向未改变
             }
         }
      //+--------------------------------------------------------------------+

    132 次点击  
    收藏  加入淘专辑0
    0 回复
    添加一条新回复
    您需要登录后才可以回帖 登录 | 注册

    请勿自己恶意顶贴
    汇友网  官方微信
    关于我们   广告投放   我们的愿景   帮助中心   ?#34892;?/a>   ?#39068;?/a>   外汇交易平台大全   涨姿势  
    最大的外汇智能交易社区!
    外汇EA有风险, 请不要让EA左右您的意志,交易造成的亏损,EA之家不承担责任!
    快速回复 返回顶部 返回列表
    德国斯诺克比赛直播 天津佛罗伦萨小镇 哈德斯菲尔德vs沃特福德 时时彩玩法规则 哈德斯菲尔德大学吧 皇家社会对贝蒂斯 1982法国红酒波尔多 云南时时彩官网 坦克世界 都灵vs卡里亚利 中国福利彩票快乐10分开奖结果