售价476美金的商业EA源码奉献

阅读 :

//用于15分钟。

//EA名字叫“高级外汇智能交易系统”

//-------------------------------------------------------------------------
extern string G_Parameters = "---- Trade Management ----";
extern int MaxTrades = 1;
extern double TakeProfit = 30;//30/40//50
extern int StopLoss = 75;
extern bool UseHourTrade = FALSE;
extern int FromHourTrade = 6;
extern int ToHourTrade = 18;
extern int magic = 3557;
extern string MM_Parameters = "---- Money Management ----";
extern double Lots = 1.0;
extern bool MM = FALSE;
extern bool AccountIsMicro = FALSE;
extern int Risk = 15;
double gd_144 = 1.0;
int g_error_152;

 

double setpoint() {
   double ld_ret_0;
   if (Digits <= 3) ld_ret_0 = 0.01;
   else ld_ret_0 = 0.0001;
   return (ld_ret_0);
}

int init() {
   string ls_0 = "2019.08.08";
   int l_str2time_8 = StrToTime(ls_0);
   if (TimeCurrent() >= l_str2time_8) {
      Print("The trial version has been expired");
      return (0);
   }
   if (Period() != PERIOD_M15) {
      Print("Please select 15 min period.");
      return (0);
   }
   SetDigits();
   HideTestIndicators(TRUE);
   return (0);
}

void SetDigits() {
   if (Digits == 5 || Digits == 3) gd_144 = 10;
}

void deinit() {
   Comment("");
}

int orderscnt() {
   int l_count_0 = 0;
   for (int l_pos_4 = 0; l_pos_4 < OrdersTotal(); l_pos_4++) {
      if (OrderSelect(l_pos_4, SELECT_BY_POS, MODE_TRADES))
         if (OrderSymbol() == Symbol() && magic == OrderMagicNumber()) l_count_0++;
   }
   return (l_count_0);
}

int start() {
   double ld_0;
   double ld_8;
   int l_ticket_16;
   //ads();
   double l_ihigh_20 = iHigh(NULL, 0, 1);
   double l_ihigh_28 = iHigh(NULL, 0, 2);
   double l_ihigh_36 = iHigh(NULL, 0, 1);
   double l_ihigh_44 = iHigh(NULL, 0, 2);
   double l_ilow_52 = iLow(NULL, 0, 1);
   double l_ilow_60 = iLow(NULL, 0, 2);
   double l_ilow_68 = iLow(NULL, 0, 1);
   double l_ilow_76 = iLow(NULL, 0, 2);
   double l_ima_84 = iMA(NULL, 0, 3, 0, MODE_EMA, PRICE_CLOSE, 1);
   double l_ima_92 = iMA(NULL, 0, 13, 0, MODE_EMA, PRICE_CLOSE, 1);
   double l_ima_100 = iMA(NULL, 0, 36, 0, MODE_EMA, PRICE_CLOSE, 1);
   double l_imomentum_108 = iMomentum(NULL, 0, 100, PRICE_OPEN, 0);
   double l_iadx_116 = iADX(NULL, 0, 41, PRICE_CLOSE, MODE_MAIN, 0);
   double l_irsi_124 = iRSI(NULL, 0, 31, PRICE_CLOSE, 0);
  // Comments();
   if (MM) Lots = subLotSize();
   int l_ord_total_132 = OrdersTotal();
   if (l_ord_total_132 < 1) {
      if (l_ihigh_20 < l_ima_100 || l_ima_84 > l_ima_92 || (l_ilow_52 > l_ilow_60 && l_ilow_76 > l_ilow_60 && l_ihigh_36 > l_ihigh_28) && l_imomentum_108 > 100.0 && l_iadx_116 > 19.0 &&
         l_irsi_124 > 70.0) {
         if (orderscnt() < MaxTrades) {
            if (StopLoss == 0) ld_0 = 0;
            else ld_0 = Ask - StopLoss * setpoint() * gd_144;
            if (TakeProfit == 0.0) ld_8 = 0;
            else ld_8 = Ask + TakeProfit * setpoint() * gd_144;
            l_ticket_16 = OrderSend(Symbol(), OP_BUY, Lots, NormalizeDouble(Ask, Digits), 2, 0, 0, "Ripper", magic, 0, Blue);
            if (l_ticket_16 <= 0) {
               g_error_152 = GetLastError();
               if (g_error_152 > 0) Print("BuyOrderSend failed: ", g_error_152, ": ", g_error_152);
            } else OrderModify(l_ticket_16, OrderOpenPrice(), NormalizeDouble(ld_0, Digits), NormalizeDouble(ld_8, Digits), 0, CLR_NONE);
            PlaySound("Alert.wav");
         }
      }
      if (l_ilow_52 > l_ima_100 || l_ima_92 > l_ima_84 || (l_ihigh_28 > l_ihigh_20 && l_ihigh_28 > l_ihigh_44 && l_ilow_60 > l_ilow_68) && l_imomentum_108 < 100.0 && l_iadx_116 < 21.0 &&
         l_irsi_124 < 30.0) {
         if (orderscnt() < MaxTrades) {
            if (StopLoss == 0) ld_0 = 0;
            else ld_0 = Bid + StopLoss * setpoint() * gd_144;
            if (TakeProfit == 0.0) ld_8 = 0;
            else ld_8 = Bid - TakeProfit * setpoint() * gd_144;
            l_ticket_16 = OrderSend(Symbol(), OP_SELL, Lots, NormalizeDouble(Bid, Digits), 2, 0, 0, "Ripper", magic, 0, Red);
            if (l_ticket_16 <= 0) {
               g_error_152 = GetLastError();
               if (g_error_152 > 0) Print("SellOrderSend failed: ", g_error_152, ": ", g_error_152);
            } else OrderModify(l_ticket_16, OrderOpenPrice(), NormalizeDouble(ld_0, Digits), NormalizeDouble(ld_8, Digits), 0, CLR_NONE);
            PlaySound("Alert.wav");
         }
      }
      return (0);
   }
   return (0);
}

void Comments() {
   string ls_0 = "";
   string ls_8 = "/n";
   string ls_16 = ""
      + "/n"
      + " Copyright ?2010, ForexRipperEA"
      + "/n"
      + "======================"
      + "/n"
      + "BROKER INFORMATION:"
      + "/n"
      + "Broker:        " + AccountCompany()
      + "/n"
      + "======================"
      + "/n"
      + "MARGIN INFORMATION:"
      + "/n"
      + "Free Margin:            " + DoubleToStr(AccountFreeMargin(), 2) + ls_8 + "Used Margin:            " + DoubleToStr(AccountMargin(), 2)
      + "/n"
   + "======================" + ls_8;
   for (int l_count_24 = 0; !IsStopped() && !IsConnected(); l_count_24++) {
      ls_0 = "Not connected.";
      Sleep(150);
   }
   if (UseHourTrade)
      if (!(Hour() >= FromHourTrade && Hour() <= ToHourTrade)) ls_0 = "Non-Trading Hours!";
   Comment(ls_16 + ls_0);
}

double subLotSize() {
   double ld_ret_0 = MathCeil(AccountFreeMargin() * Risk / 1000.0) / 100.0;
   if (AccountIsMicro == FALSE) {
      if (ld_ret_0 < 0.1) ld_ret_0 = Lots;
      if (ld_ret_0 > 0.5 && ld_ret_0 < 1.0) ld_ret_0 = 0.5;
      if (ld_ret_0 > 1.0) ld_ret_0 = MathCeil(ld_ret_0);
      if (ld_ret_0 > 100.0) ld_ret_0 = 100;
   } else {
      if (ld_ret_0 < 0.01) ld_ret_0 = Lots;
      if (ld_ret_0 > 1.0) ld_ret_0 = MathCeil(ld_ret_0);
      if (ld_ret_0 > 100.0) ld_ret_0 = 100;
   }
   return (ld_ret_0);
}

本文标题:售价476美金的商业EA源码奉献 - MT4平台MQL4编程学习
本文地址:http://www.waihuibang.com/fxschool/autotrading/mql4/40648.html

相关文章

  • 初窥EA(自动交易系统)

    随着国内金融市场的进一步开放和扩大,人们花在投资上的时间和精力,会越来越多,而投资就必然有风险。单纯的人工看盘分析行情进行交易,显然愈来愈力不从心,因为投资者所面对的是每时每刻都在变化增...

    MQL4编程学习
  • 什么是EA(智能交易系统)?

      什么是外汇EA EA,中文全名叫智能交易系统,是通过电脑模拟人为操作来完成交易。交易员通过将交易思路进行编程,从而使电脑按照交易员的交易思路进 行无心态干扰的交易过程。 为什么要使用EA?EA使用的好处在哪里?...

    MQL4编程学习
  • 一个案例看懂外汇交易中的机器学习
    一个案例看懂外汇交易中的机器学习

    随着“AlphaGo”、“无人驾驶”、“大数据处理”等名词不断出现在公众的视野中的时候,人工智能和机器学习这些词被不断的提起。甚至很多人认为:2016年是算法时代的元年,2017年人工智能将会得到更加快速的发展。笔者也...

    MQL4编程学习
  • 思考:大数据时代的EA

    动心思写这篇文章的原因很简单,因为现在是大数据时代。说“大数据”太夸张了,没错,我就做一次标题党好了。 传统的统计都是基于取样方法的,也就是说因为数据量太大了,无法全面分析,而创造的一种方法,大多数情况下,最多抽取...

    MQL4编程学习
  • 错误146 ("交易作业忙") 和如何处理

    来自智能交易和脚本的交易,只能够提供一个并在交易作业中开启 (来自智能交易和脚本的自动交易作业)。这就是为什么如果智能交易业务作业忙,其他的智能交易或脚本在此刻不能调用函数生成错误146 (ERR_TRADE_CONTEXT_BUSY)。 换句话说,只有一个智能交易(脚本)可以准时交易。所以其他智能交易尝试开始交易将被错误 146停止。文章将会找到问题的解决方案。 ...

    MQL4编程学习
你可能感兴趣