8赞

1843评论

116收藏

一次一单的好EA——得救,源码也放出

 

评论|共 1843 个

正911737

发表于 5 天前 | 显示全部楼层

666

张坤20564

发表于 3 天前 | 显示全部楼层

#property copyright "Copyright © 2019 Phung Nguyen Duc"
#property link ""
#property version "1.10"

extern string LN1 = "------ Money Management ------";
extern double Risk=10;//风险度
extern bool UseMM=True;//是否风险度开仓
extern double Zddfd_208 = 0.1;//如果非风险度开仓,则采用该值
//extern double MyLotsSize = 0.0;
//extern double AutoLotsSize = 0.2;
//extern double MinLotsSize = 0.01;
//extern double MaxLotsSize = 30.0;
extern string LN2 = "------ Entry Point ------";
extern int SpreadsLimit = 13;
extern int MagicNumber = 888888;

int ddsd_421;
double ddsd_450;
string ddsd_465;
string ddsd_406;
int ddsd_478;
bool ddsd_444;
double ddsd_432;
double ddsd_489;
double ddsd_433=0.0;
double ddsd_488;
int ddsd_486;
double ddsd_456;
int ddsd_380;
int ddsd_504;
int ddsd_508;
int ddsd_516;
double RREi_510;
int RREi_344;
int RREi_348=0;
int RREi_352;
double RREi_356=2.0;
int RREi_360;
int RREi_364;
double RREi_368=7.5;
int RREi_372;
int RREi_376;  
double RREi_256;
int RREi_380;
int RREi_384;
int RREi_388;
int RREi_260 = 0;
int RREi_264;
int RREi_268;
int RREi_272 = 0;
int RREi_276;
int RREi_280;
string RREs_284 = "-";
int RRE_period_292 = 3;
int RRE_digits_296 = 0;
int RREi_300 = 0;
datetime RRE_time_304 = 0;
int RRE_count_308 = 0;
int RREi_312 = 0;
int Zddfi_184 = 140;
string Zddf_comment_192 = "";
double Zddfd_200 = 100000.0;

double Zddf_pips_216 = 10000.0;
int Zddf_ma_method_224 = MODE_LWMA;
int Zddfi_228 = 0;
int Zddfi_232 = 0;
int Zddfi_236 = 23;
int Zddfi_240 = 59;
int Zddfi_244 = 0;
double Zddf_pips_248 = 0.0;
int Zddf_digits_256 = 0;
double Zddf_point_260 = 0.0;
int Zddfi_268;
double Zddfd_272;
double Zddfd_280;
double Zddfd_288;
double Zddfd_296;
double Zddfd_304;
double Zddfd_312;
double Zddfd_320;
int Zddf_slippage_328 = 3;
bool Zddfi_332;
double Zddfd_336;
double Zddfda_344[30];
int Zddfi_348 = 0;
string Zddfs_dummy_352;
string Zddfs_unused_360 = "";
string Zddfs_unused_368 = "";
string Zddfs_unused_404 = "000,000,000";
string Zddfs_unused_412 = "000,000,255";
int Zddfi_432 = 40;
double Zddf_timeframe_436 = 240.0;
bool Zddfi_444 = TRUE;
int Zddfi_unused_448 = 6908265;
int TrailingStop = 2;
string TrailingStart = "-2";
int Buffer = 2;
bool MoneyManagement = TRUE;
int Activation_Code = 0;
int OP_TRD = 1;
double TufanEA_Mxt = 22.0;
double TrailingStep = 0.3;
double Lock = 0.3;
double MinLots = 0.01;
double MAX_LOT = 30.01;
double Spread = 0.8;
string Zddf_name_452 = "SpreadIndikatorObj";
double Zddfd_unused_460;
int Zddfi_unused_468 = 255;
int Zddfi_unused_472 = 11119017;
int Zddfi_unused_476 = 8388352;
bool Zddfi_unused_480 = TRUE;
double Zddf_ihigh_484;
double Zddf_ilow_492;
double Zddfd_500;
int Zddf_datetime_508;
int StopLoss;


// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
//Risk = Risk*4;

StopLoss = StopLoss*20;

   int timeframe_0;
   TrailingStop = MathRound(TrailingStop);
   TufanEA_Mxt = MathRound(TufanEA_Mxt);
   ArrayInitialize(Zddfda_344, 0);
   Zddf_digits_256 = Digits;
   Zddf_point_260 = Point;
   Print("Digits: " + Zddf_digits_256 + " Point: " + DoubleToStr(Zddf_point_260, Zddf_digits_256));
   double lotstep_4 = MarketInfo(Symbol(), MODE_LOTSTEP);
   Zddfi_268 = MathLog(lotstep_4) / MathLog(0.1);
   Zddfd_272 = MathMax(MinLots, MarketInfo(Symbol(), MODE_MINLOT));
   Zddfd_280 = MathMin(Zddfd_200, MarketInfo(Symbol(), MODE_MAXLOT));
   Zddfd_288 = Risk / 100.0;
   Zddfd_296 = NormalizeDouble(Zddf_pips_216 * Zddf_point_260, Zddf_digits_256 + 1);
   Zddfd_304 = NormalizeDouble(Risk * Zddf_point_260, Zddf_digits_256);
   Zddfd_312 = NormalizeDouble(TufanEA_Mxt * Zddf_point_260, Zddf_digits_256);
   Zddfd_320 = NormalizeDouble(Zddf_point_260 * Zddfi_184, Zddf_digits_256);
   Zddfi_332 = FALSE;
   Zddfd_336 = NormalizeDouble(Zddf_pips_248 * Zddf_point_260, Zddf_digits_256 + 1);
   if (!IsTesting()) {
      if (Zddfi_444) {
         timeframe_0 = Period();
         switch (timeframe_0) {
         case PERIOD_M1:
            Zddf_timeframe_436 = 5;
            break;
         case PERIOD_M5:
            Zddf_timeframe_436 = 15;
            break;
         case PERIOD_M15:
            Zddf_timeframe_436 = 30;
            break;
         case PERIOD_M30:
            Zddf_timeframe_436 = 60;
            break;
         case PERIOD_H1:
            Zddf_timeframe_436 = 240;
            break;
         case PERIOD_H4:
            Zddf_timeframe_436 = 1440;
            break;
         case PERIOD_D1:
            Zddf_timeframe_436 = 10080;
            break;
         case PERIOD_W1:
            Zddf_timeframe_436 = 43200;
            break;
         case PERIOD_MN1:
            Zddf_timeframe_436 = 43200;
         }
      }
      Zddfd_unused_460 = 0.0001;
      f0_1();
      f0_2();
   }
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   if (!IsTesting()) {
      for (int Ewfi_0 = 1; Ewfi_0 <= Zddfi_432; Ewfi_0++) ObjectDelete("Padding_rect" + Ewfi_0);
      for (int count_4 = 0; count_4 < 10; count_4++) {
         ObjectDelete("BD" + count_4);
         ObjectDelete("SD" + count_4);
      }
      ObjectDelete("time");
      ObjectDelete(Zddf_name_452);
   }
   Comment("");
   ObjectDelete("B3LLogo");
   ObjectDelete("B3LCopy");
   ObjectDelete("FiboUp");
   ObjectDelete("FiboDn");
   ObjectDelete("FiboIn");
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   int error_0;
   string Ewfs_4;
   int ticket_12;
   double price_16;
   bool bool_24;
   double Ewfd_28;
   double Ewfd_36;
   double price_44;
   double Ewfd_52;
   int Ewfi_60;
   int cmd_64;
   double Ewfd_68;
   double Ewfd_76;
   double ihigh_84 = iHigh(NULL, 0, 0);
   double ilow_92 = iLow(NULL, 0, 0);
   double ima_100 = iMA(NULL, 0, TrailingStop, Zddfi_244, Zddf_ma_method_224, PRICE_LOW, 0);
   double ima_108 = iMA(NULL, 0, TrailingStop, Zddfi_244, Zddf_ma_method_224, PRICE_HIGH, 0);
   double Ewfd_116 = ima_100 - ima_108;
   if (!Zddfi_332) {
      for (int pos_124 = OrdersHistoryTotal() - 1; pos_124 >= 0; pos_124--) {
         if (OrderSelect(pos_124, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderProfit() != 0.0) {
               if (OrderClosePrice() != OrderOpenPrice()) {
                  if (OrderSymbol() == Symbol()) {
                     Zddfi_332 = TRUE;
                     Ewfd_52 = MathAbs(OrderProfit() / (OrderClosePrice() - OrderOpenPrice()));
                     Zddfd_336 = (-OrderCommission()) / Ewfd_52;
                     break;
                  }
               }
            }
         }
      }
   }
   double Ewfd_128 = Ask - Bid;
   ArrayCopy(Zddfda_344, Zddfda_344, 0, 1, 29);
   Zddfda_344[29] = Ewfd_128;
   if (Zddfi_348 < 30) Zddfi_348++;
   double Ewfd_136 = 0;
   pos_124 = 29;
   for (int count_144 = 0; count_144 < Zddfi_348; count_144++) {
      Ewfd_136 += Zddfda_344[pos_124];
      pos_124--;
   }
   double Ewfd_148 = Ewfd_136 / Zddfi_348;
   double Ewfd_156 = NormalizeDouble(Ask + Zddfd_336, Zddf_digits_256);
   double Ewfd_164 = NormalizeDouble(Bid - Zddfd_336, Zddf_digits_256);
   double Ewfd_172 = NormalizeDouble(Ewfd_148 + Zddfd_336, Zddf_digits_256 + 1);
   double Ewfd_180 = ihigh_84 - ilow_92;
   if (Ewfd_180 > Zddfd_320) {
      if (Bid < ima_100) Ewfi_60 = -1;
      else
         if (Bid > ima_108) Ewfi_60 = 1;
   }
   int count_188 = 0;
   for (pos_124 = 0; pos_124 < OrdersTotal(); pos_124++) {
      if (OrderSelect(pos_124, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderMagicNumber() == MagicNumber) {
            cmd_64 = OrderType();
            if (cmd_64 == OP_BUYLIMIT || cmd_64 == OP_SELLLIMIT) continue;
            if (OrderSymbol() == Symbol()) {
               count_188++;
               switch (cmd_64) {
               case OP_BUY:
                  if (TufanEA_Mxt < 0.0) break;
                  Ewfd_36 = NormalizeDouble(OrderStopLoss(), Zddf_digits_256);
                  price_44 = NormalizeDouble(Bid - Zddfd_312, Zddf_digits_256);
                  if (!((Ewfd_36 == 0.0 || price_44 > Ewfd_36))) break;
                  bool_24 = OrderModify(OrderTicket(), OrderOpenPrice(), price_44, OrderTakeProfit(), 0, Lime);
                  if (!((!bool_24))) break;
                  error_0 = GetLastError();
                  Print("BUY Modify Error Code: " + error_0 + " Message: " + Ewfs_4 + " OP: " + DoubleToStr(price_16, Zddf_digits_256) + " SL: " + DoubleToStr(price_44, Zddf_digits_256) +
                     " Bid: " + DoubleToStr(Bid, Zddf_digits_256) + " Ask: " + DoubleToStr(Ask, Zddf_digits_256));
                  break;
               case OP_SELL:
                  if (TufanEA_Mxt < 0.0) break;
                  Ewfd_36 = NormalizeDouble(OrderStopLoss(), Zddf_digits_256);
                  price_44 = NormalizeDouble(Ask + Zddfd_312, Zddf_digits_256);
                  if (!((Ewfd_36 == 0.0 || price_44 < Ewfd_36))) break;
                  bool_24 = OrderModify(OrderTicket(), OrderOpenPrice(), price_44, OrderTakeProfit(), 0, Orange);
                  if (!((!bool_24))) break;
                  error_0 = GetLastError();
                  Print("SELL Modify Error Code: " + error_0 + " Message: " + Ewfs_4 + " OP: " + DoubleToStr(price_16, Zddf_digits_256) + " SL: " + DoubleToStr(price_44, Zddf_digits_256) +
                     " Bid: " + DoubleToStr(Bid, Zddf_digits_256) + " Ask: " + DoubleToStr(Ask, Zddf_digits_256));
                  break;
               case OP_BUYSTOP:
                  Ewfd_28 = NormalizeDouble(OrderOpenPrice(), Zddf_digits_256);
                  price_16 = NormalizeDouble(Ask + Zddfd_304, Zddf_digits_256);
                  if (!((price_16 < Ewfd_28))) break;
                  price_44 = NormalizeDouble(price_16 - StopLoss * Point, Zddf_digits_256);
                  bool_24 = OrderModify(OrderTicket(), price_16, price_44, OrderTakeProfit(), 0, Lime);
                  if (!((!bool_24))) break;
                  error_0 = GetLastError();
                  Print("BUYSTOP Modify Error Code: " + error_0 + " Message: " + Ewfs_4 + " OP: " + DoubleToStr(price_16, Zddf_digits_256) + " SL: " + DoubleToStr(price_44, Zddf_digits_256) +
                     " Bid: " + DoubleToStr(Bid, Zddf_digits_256) + " Ask: " + DoubleToStr(Ask, Zddf_digits_256));
                  break;
               case OP_SELLSTOP:
                  Ewfd_28 = NormalizeDouble(OrderOpenPrice(), Zddf_digits_256);
                  price_16 = NormalizeDouble(Bid - Zddfd_304, Zddf_digits_256);
                  if (!((price_16 > Ewfd_28))) break;
                  price_44 = NormalizeDouble(price_16 + StopLoss * Point, Zddf_digits_256);
                  bool_24 = OrderModify(OrderTicket(), price_16, price_44, OrderTakeProfit(), 0, Orange);
                  if (!((!bool_24))) break;
                  error_0 = GetLastError();
                  Print("SELLSTOP Modify Error Code: " + error_0 + " Message: " + Ewfs_4 + " OP: " + DoubleToStr(price_16, Zddf_digits_256) + " SL: " + DoubleToStr(price_44, Zddf_digits_256) +
                     " Bid: " + DoubleToStr(Bid, Zddf_digits_256) + " Ask: " + DoubleToStr(Ask, Zddf_digits_256));
               }
            }
         }
      }
   }
   if (count_188 == 0 && Ewfi_60 != 0 && Ewfd_172 <= Zddfd_296 && f0_0()) {
      Ewfd_68 = AccountBalance() * AccountLeverage() * Zddfd_288;
      if (!UseMM) Ewfd_68 = Zddfd_208;
      Ewfd_76 = NormalizeDouble(Ewfd_68 / MarketInfo(Symbol(), MODE_LOTSIZE), Zddfi_268);
      Ewfd_76 = MathMax(Zddfd_272, Ewfd_76);
      Ewfd_76 = MathMin(Zddfd_280, Ewfd_76);
      if (Ewfi_60 < 0) {
         price_16 = NormalizeDouble(Ask + Zddfd_304, Zddf_digits_256);
         price_44 = NormalizeDouble(price_16 - StopLoss * Point, Zddf_digits_256);
         ticket_12 = OrderSend(Symbol(), OP_BUYSTOP, Ewfd_76, price_16, Zddf_slippage_328, price_44, 0, Zddf_comment_192, MagicNumber, 0, Lime);
         if (ticket_12 <= 0) {
            error_0 = GetLastError();
            Print("BUYSTOP Send Error Code: " + error_0 + " Message: " + Ewfs_4 + " LT: " + DoubleToStr(Ewfd_76, Zddfi_268) + " OP: " + DoubleToStr(price_16, Zddf_digits_256) +
               " SL: " + DoubleToStr(price_44, Zddf_digits_256) + " Bid: " + DoubleToStr(Bid, Zddf_digits_256) + " Ask: " + DoubleToStr(Ask, Zddf_digits_256));
         }
      } else {
         price_16 = NormalizeDouble(Bid - Zddfd_304, Zddf_digits_256);
         price_44 = NormalizeDouble(price_16 + StopLoss * Point, Zddf_digits_256);
         ticket_12 = OrderSend(Symbol(), OP_SELLSTOP, Ewfd_76, price_16, Zddf_slippage_328, price_44, 0, Zddf_comment_192, MagicNumber, 0, Orange);
         if (ticket_12 <= 0) {
            error_0 = GetLastError();
            Print("BUYSELL Send Error Code: " + error_0 + " Message: " + Ewfs_4 + " LT: " + DoubleToStr(Ewfd_76, Zddfi_268) + " OP: " + DoubleToStr(price_16, Zddf_digits_256) +
               " SL: " + DoubleToStr(price_44, Zddf_digits_256) + " Bid: " + DoubleToStr(Bid, Zddf_digits_256) + " Ask: " + DoubleToStr(Ask, Zddf_digits_256));
         }
      }
   }
   string Ewfs_196 = "AvgSpread:" + DoubleToStr(Ewfd_148, Zddf_digits_256) + "  Commission rate:" + DoubleToStr(Zddfd_336, Zddf_digits_256 + 1) + "  Real avg. spread:" + DoubleToStr(Ewfd_172,
      Zddf_digits_256 + 1);
   if (Ewfd_172 > Zddfd_296) {
      Ewfs_196 = Ewfs_196
         + "\n"
      + "The EA can not run with this spread ( " + DoubleToStr(Ewfd_172, Zddf_digits_256 + 1) + " > " + DoubleToStr(Zddfd_296, Zddf_digits_256 + 1) + " )";
   }
   if (count_188 != 0 || Ewfi_60 != 0) {
   }
   if (!IsTesting()) {
      f0_1();
      f0_2();
   }
   return (0);
}

// 09CBB5F5CE12C31A043D5C81BF20AA4A
int f0_0() {
   if ((Hour() > Zddfi_228 && Hour() < Zddfi_236) || (Hour() == Zddfi_228 && Minute() >= Zddfi_232) || (Hour() == Zddfi_236 && Minute() < Zddfi_240)) return (1);
   return (0);
}

// 2569208C5E61CB15E209FFE323DB48B7
void f0_1() {
   double Ewfda_0[10];
   double Ewfda_4[10];
   double Ewfda_8[10];
   double Ewfda_12[10];
   int Ewfi_unused_16;
   int Ewfi_20;
   int Ewfi_24;
   int Ewfi_28;
   if (Period() < Zddf_timeframe_436) {
      ArrayCopySeries(Ewfda_0, 2, Symbol(), Zddf_timeframe_436);
      ArrayCopySeries(Ewfda_4, 1, Symbol(), Zddf_timeframe_436);
      ArrayCopySeries(Ewfda_8, 0, Symbol(), Zddf_timeframe_436);
      ArrayCopySeries(Ewfda_12, 3, Symbol(), Zddf_timeframe_436);
      Ewfi_28 = 3;
      for (int Ewfi_32 = 2; Ewfi_32 >= 0; Ewfi_32--) {
         Ewfi_20 = Time[0] + Period() * (90 * Ewfi_28);
         Ewfi_24 = Time[0] + 90 * (Period() * (Ewfi_28 + 1));
         if (ObjectFind("BD" + Ewfi_32) == -1) {
            if (Ewfda_8[Ewfi_32] > Ewfda_12[Ewfi_32]) Ewfi_unused_16 = 170;
            else Ewfi_unused_16 = 43520;
         } else {
            if (Ewfda_8[Ewfi_32] > Ewfda_12[Ewfi_32]) Ewfi_unused_16 = 170;
            else Ewfi_unused_16 = 43520;
         }
         Ewfi_28++;
         Ewfi_28++;
      }
   }
}

// 945D754CB0DC06D04243FCBA25FC0802
void f0_2() {
   int Ewfi_0 = iBarShift(NULL, PERIOD_D1, Time[0]) + 1;
   Zddf_ihigh_484 = iHigh(NULL, PERIOD_D1, Ewfi_0);
   Zddf_ilow_492 = iLow(NULL, PERIOD_D1, Ewfi_0);
   Zddf_datetime_508 = iTime(NULL, PERIOD_D1, Ewfi_0);
   if (TimeDayOfWeek(Zddf_datetime_508) == 0) {
      Zddf_ihigh_484 = MathMax(Zddf_ihigh_484, iHigh(NULL, PERIOD_D1, Ewfi_0 + 1));
      Zddf_ilow_492 = MathMin(Zddf_ilow_492, iLow(NULL, PERIOD_D1, Ewfi_0 + 1));
   }
   Zddfd_500 = Zddf_ihigh_484 - Zddf_ilow_492;
}

非凡到家

发表于 前天 23:08 | 显示全部楼层

knxia

雨泣♂炫_2063

发表于 昨天 16:13 | 显示全部楼层

看看

1 ...183184185
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则