客服热线:18391752892

变色龙EA.mq4

   日期:2019-01-12     浏览:131    
马上注册,结交更多好友,下载更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 //+------------------------------------------------------------------+
//|                                   变色龙EA.mq4 |
//|                         中国自动化交易联盟-红之汇著 |
//|                                   QQ:712933993 |
//+------------------------------------------------------------------+
#property copyright 中国自动化交易联盟-红之汇著
#property link      QQ:712933993
#property copyright
#property link     
#include WinUser32.mqh
extern string RENEGADEFX = ------RENEGADE FX.COM------
extern bool DisplayInfo = TRUE;
extern string TRADING_Options = --- TRADING LOGIC OPTIONS ---
extern string MoleOptions = ---------MOLE OPTIONS--------
extern bool EnableMoleLogic = FALSE;
extern bool EnableMoleCloseLogic = TRUE;
extern bool StopTradeonReversal = FALSE;
extern int MoleChartTimeframe = 1440;
extern string StorkOptions = ---------STORK OPTIONS-------
extern bool EnableStorkLogic = FALSE;
extern string TokyoExpressOptions = ----TOKYO EXPRESS OPTIONS----
extern bool EnableTokyoExpressLogic = FALSE;
extern string MagicNumbers = --------MAGIC NUMBERS--------
extern int MagicNumberLong = 111111;
extern int MagicNumberShrt = 111111;
extern int EquityMagicNumber = 111111;
extern string TRADING_Inputs = --- TRADING INPUTS ---
extern double LotsLong = 0.25;
extern double LotsShrt = 0.25;
extern int Slippage = 3;
extern int ProfitTargetLong = 0;
extern int ProfitTargetShrt = 0;
extern int StopLossLong = 0;
extern int StopLossShrt = 0;
extern int TrailingStartLong = 0;
extern int TrailingStopLong = 0;
extern int TrailingStartShrt = 0;
extern int TrailingStopShrt = 0;
extern int MaxTradesLong = 1;
extern int MaxTradesShrt = 1;
extern int MaxTrades = 2;
extern string DirectionalFilters = ---DIRECTIonAL FILTERS---
extern bool onlyUpOrDownLong = FALSE;
extern bool onlyUpOrDownShrt = FALSE;
extern string RSI_Inputs = ----- RSI INPUTS -----
extern int Shift = 0;
extern int RSI_TimeframeLong = 240;
extern int RSI_PeriodsLong = 12;
extern int RSI_TimeframeShrt = 240;
extern int RSI_PeriodsShrt = 12;
extern double RSI_Buy_Level = 50.0;
extern double RSI_Sell_Level = 50.0;
extern int ThresholdLong = 50;
extern int ThresholdShrt = 50;
extern string PSAR_Inputs = ----- DYNAMIC TRAILING STOP -----
extern bool UsePSARTrailingLong = FALSE;
extern bool UsePSARTrailingShrt = FALSE;
extern int PSARTIMEframeLong = 1440;
extern double PSARStepLong = 0.005;
extern double PSARMaxLong = 0.2;
extern int PSARTIMEframeShrt = 240;
extern double PSARStepShrt = 0.005;
extern double PSARMaxShrt = 0.2;
extern string RetraceRSI_Inputs = ----RETRACE FILTERS ----
extern bool RetraceFilterLong = FALSE;
extern bool RetraceFilterShrt = FALSE;
extern int LongPeriods = 3;
extern int LongTimeframe = 60;
extern int ShortPeriods = 2;
extern int ShortTimeframe = 60;
extern string BreakoutFilters = -----BREAKOUT FILTERS-----
extern bool bLevelFilterLong = FALSE;
extern double bLowerLevelLong = 0.0;
extern double bUpperLevelLong = 0.0;
extern bool bLevelFilterShrt = FALSE;
extern double bLowerLevelShrt = 0.0;
extern double bUpperLevelShrt = 0.0;
extern string RangeFilters = -----RANGE FILTERS-----
extern bool rLevelFilterLong = FALSE;
extern double rLowerLevelLong = 0.0;
extern double rUpperLevelLong = 0.0;
extern bool rLevelFilterShrt = FALSE;
extern double rLowerLevelShrt = 0.0;
extern double rUpperLevelShrt = 0.0;
extern string EquityManagement = --- EQUITY MANAGEMENT --
extern bool UseMagicNumber = TRUE;
extern bool UseSymbol = TRUE;
extern double EquityProfitTarget = 125.0;
extern double EquityStopLoss = 0.0;
extern double EquityTrailing = 0.0;
extern double EquityTrailStart = 0.0;
extern string MoneyManagements = ---MonEY MANAGEMENT---
extern bool MoneyManagement = FALSE;
extern bool BrokerAllowsFractionalLots = TRUE;
extern bool BrokerAllows5Digits = FALSE;
extern double Risk = 0.25;
extern string Martingale = ----- MARTINGALE HEDGE FEATURE -----
extern bool UseStandardHedge = FALSE;
extern bool MgHedgeLong = TRUE;
extern bool MgHedgeShort = TRUE;
extern int PipsDownLong = 50;
extern int PipsDownShort = 50;
extern int LongMagicNumberToHedge = 111111;
extern int ShortMagicNumberToHedge = 111111;
extern int MgStopLossLong = 0;
extern int MgStopLossShort = 0;
extern int MgTakeProfitLong = 0;
extern int MgTakeProfitShort = 0;
extern double MgLotsMultiplier = 1.25;
extern int MgMaxTrades = 500;
extern int MgMagicNumber = 111111;
extern int MgTrailingStart = 0;
extern int MgTrailingStop = 0;
extern string caors = ----- CLOSE ALL ON REVERSAL -----
extern bool CloseAllonReversal = FALSE;
extern int caorLongPeriods = 20;
extern int caorLongTimeframe = 60;
extern int caorShortPeriods = 10;
extern int caorShortTimeframe = 60;
extern double caorSignalReadPeriod = 5.0;
int gi_676 = 0;
int gi_680 = 0;
int gi_unused_684 = 0;
int gi_688 = 1;
int gi_692 = 0;
double gd_696 = 0.0;
double gd_704 = 0.0;
int gi_unused_712 = 0;
int gi_unused_716 = 0;
int init() {
   if (IsTesting()) HideTestIndicators(TRUE);
   GlobalVariableSet(StringConcatenate(MagicNumberLong, Symbol(), - Chameleon LastAnchorLong ), MarketInfo(Symbol(), MODE_ASK));
   GlobalVariableSet(StringConcatenate(MagicNumberShrt, Symbol(), - Chameleon LastAnchorShort ), MarketInfo(Symbol(), MODE_BID));
   gi_692 = MarketInfo(Symbol(), MODE_SPREAD);
   int l_mb_code_0 = 0;
   switch (UninitializeReason()) {
   case REASON_ACCOUNT:
     l_mb_code_0 = MessageBox( You just switched accounts! n Do you want to run the EA on this account as well? , Warning , MB_YESNO);
     if (l_mb_code_0 != IDYES) return (-1);
   case REASON_PARAMETERS:
     GlobalVariableSet(StringConcatenate(MagicNumberLong, Symbol(), - Chameleon LastAnchorLong ), MarketInfo(Symbol(), MODE_ASK));
     GlobalVariableSet(StringConcatenate(MagicNumberShrt, Symbol(), - Chameleon LastAnchorShort ), MarketInfo(Symbol(), MODE_BID));
   case REASON_CHARTCHANGE:
   case REASON_CHARTCLOSE:
   case REASON_RECOMPILE:
     break;
   }
   Comment(
   int li_unused_8 = Time[0];
   if (BrokerAllows5Digits) gi_688 = 10;
   return (0);
}
int deinit() {
   Comment(
   return (0);
}
int start() {
   int li_0;
   double ld_4;
   double ld_12;
   double l_irsi_20;
   double l_irsi_28;
   double l_irsi_36;
   string l_dbl2str_44;
   double ld_52;
   double ld_60;
   double l_irsi_68;
   double l_irsi_76;
   int li_unused_84 = Time[0];
   int li_88 = 0;
   int li_92 = 0;
   int li_96 = 0;
   double l_ima_100 = iMA(NULL, MoleChartTimeframe, 3, 0, MODE_EMA, PRICE_CLOSE, 1);
   double l_ima_108 = iMA(NULL, MoleChartTimeframe, 11, 0, MODE_EMA, PRICE_HIGH, 1);
   double l_ima_116 = iMA(NULL, MoleChartTimeframe, 3, 0, MODE_EMA, PRICE_CLOSE, 0);
   double l_ima_124 = iMA(NULL, MoleChartTimeframe, 11, 0, MODE_EMA, PRICE_LOW, 1);
   double l_ima_132 = l_ima_100;
   double l_ima_140 = l_ima_124;
   double l_ima_148 = l_ima_116;
   double l_ima_156 = l_ima_124;
   double l_ima_164 = l_ima_100;
   double l_ima_172 = l_ima_108;
   double l_ima_180 = l_ima_116;
   double l_ima_188 = l_ima_108;
   double l_ima_196 = l_ima_100;
   double l_ima_204 = l_ima_108;
   double l_ima_212 = l_ima_116;
   double l_ima_220 = l_ima_108;
   double l_ima_228 = l_ima_100;
   double l_ima_236 = l_ima_124;
   double l_ima_244 = l_ima_116;
   double l_ima_252 = l_ima_124;
   double l_istochastic_260 = iStochastic(NULL, PERIOD_D1, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_268 = iStochastic(NULL, PERIOD_D1, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
   double l_istochastic_276 = iStochastic(NULL, PERIOD_H4, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_284 = iStochastic(NULL, PERIOD_H4, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
   double l_istochastic_292 = iStochastic(NULL, PERIOD_H1, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_300 = iStochastic(NULL, PERIOD_H1, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
   double l_istochastic_308 = iStochastic(NULL, PERIOD_M15, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 1);
   double l_istochastic_316 = iStochastic(NULL, PERIOD_M15, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 1);
   double l_istochastic_324 = iStochastic(NULL, PERIOD_D1, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_332 = iStochastic(NULL, PERIOD_D1, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
   double l_istochastic_340 = iStochastic(NULL, PERIOD_H4, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_348 = iStochastic(NULL, PERIOD_H4, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
   double l_istochastic_356 = iStochastic(NULL, PERIOD_H1, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
   double l_istochastic_364 = iStochastic(NULL, PERIOD_H1, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
   double l_istochastic_372 = iStochastic(NULL, PERIOD_M15, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 1);
   double l_istochastic_380 = iStochastic(NULL, PERIOD_M15, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 1);
   TrailingAllLong(TrailingStartLong, TrailingStopLong, MagicNumberLong, ThresholdLong);
   TrailingAllShrt(TrailingStartShrt, TrailingStopShrt, MagicNumberShrt, ThresholdShrt);
   if (UsePSARTrailingLong) TrailingAllPSARLong(TrailingStopLong, MagicNumberLong, ThresholdLong, PSARTIMEframeLong, PSARStepLong, PSARMaxLong);
   if (UsePSARTrailingShrt) TrailingAllPSARShrt(TrailingStopShrt, MagicNumberShrt, ThresholdShrt, PSARTIMEframeShrt, PSARStepShrt, PSARMaxShrt);
   if (MoneyManagement) {
     LotsLong = MM(Symbol(), Risk, MoneyManagement, BrokerAllowsFractionalLots);
     LotsShrt = MM(Symbol(), Risk, MoneyManagement, BrokerAllowsFractionalLots);
   }
   double ld_388 = 0.0;
   double ld_396 = CalcProfit(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol);
   if (EquityProfitTarget != 0.0)
     if (ld_396 = EquityProfitTarget) CloseAllOrders(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol);
   if (EquityStopLoss != 0.0)
     if (ld_396 = 0 - EquityStopLoss) CloseAllOrders(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol);
   double ld_404 = NormalizeDouble(100.0 * (ld_396 / AccountBalance()), 2);
   if (GlobalVariableCheck(MagicNumberLong + CHAMELEON-START-TRAIL ) == FALSE) gd_696 = 0.0;
   if (EquityTrailStart 0.0 EquityTrailing 0.0 ld_404 EquityTrailStart) {
     gd_704 = ld_404 - EquityTrailing;
     if (gd_704 gd_696) gd_696 = gd_704;
     if (gd_696 0.0) GlobalVariableSet(MagicNumberLong + CHAMELEON-START-TRAIL , gd_696);
   }
   if (ld_404 0.0 ld_404 gd_696 gd_696 != 0.0) {
     CloseAllOrders(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol);
     GlobalVariableDel(MagicNumberLong + CHAMELEON-START-TRAIL
   }
   if (EnableMoleLogic EnableMoleCloseLogic l_ima_196 = l_ima_204 l_ima_212 = l_ima_220) {
     li_92 = 3;
     CloseAllLongs(Symbol(), MagicNumberLong);
   }
   if (CountLongs(Symbol(), MagicNumberLong) MaxTradesLong CountAll(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol) MaxTrades) {
     ld_4 = 0.0;
     ld_12 = 0.0;
     l_irsi_20 = iRSI(NULL, RSI_TimeframeLong, RSI_PeriodsLong, PRICE_CLOSE, Shift);
     l_irsi_28 = iRSI(NULL, LongTimeframe, LongPeriods, PRICE_CLOSE, Shift);
     l_irsi_36 = iRSI(NULL, ShortTimeframe, ShortPeriods, PRICE_CLOSE, Shift);
     if (l_irsi_20 = 0.0 || l_irsi_28 = 0.0 || l_irsi_36 = 0.0) return (0);
     if ((!bLevelFilterLong !rLevelFilterLong) || (rLevelFilterLong Bid rLowerLevelLong Ask rUpperLevelLong) || (bLevelFilterLong Bid bLowerLevelLong ||
       Ask bUpperLevelLong)) {
       li_88 = 0;
       if (EnableMoleLogic l_ima_132 = l_ima_140 l_ima_148 = l_ima_156) li_92 = 1;
       if (EnableStorkLogic l_istochastic_260 = l_istochastic_268 l_istochastic_276 = l_istochastic_284 l_istochastic_292 = l_istochastic_300 l_istochastic_308 = l_istochastic_316) li_88 = 1;
       if (!StopTradeonReversal || l_ima_116 l_ima_124 !EnableMoleLogic || li_92 == 1 !EnableStorkLogic || li_88 == 1 (EnableTokyoExpressLogic l_irsi_20 = RSI_Buy_Level) ||
         (!EnableTokyoExpressLogic l_irsi_20 = RSI_Buy_Level) gi_680 != -1 || !CloseAllOnReversal) {
         if (CheckTrade(Symbol(), MagicNumberLong, ThresholdLong, OP_BUY)) {
           ld_12 = MarketInfo(Symbol(), MODE_ASK) - GlobalVariableGet(StringConcatenate(MagicNumberLong, Symbol(), - Chameleon LastAnchorLong ));
           ld_4 = GlobalVariableGet(StringConcatenate(MagicNumberLong, Symbol(), - Chameleon LastAnchorLong )) - MarketInfo(Symbol(), MODE_ASK);
           if (ld_12 = ThresholdLong * Point * gi_688) {
             if (CheckTrade(Symbol(), MagicNumberLong, ThresholdLong, OP_BUY)) {
               li_0 = EnterLong(LotsLong, ProfitTargetLong, StopLossLong, MagicNumberLong);
               if (li_0 0) GlobalVariableSet(StringConcatenate(MagicNumberLong, Symbol(), - Chameleon LastAnchorLong ), MarketInfo(Symbol(), MODE_ASK));
             }
           } else {
             if (!OnlyUpOrDownLong) {
               if (ld_4 = ThresholdLong * Point * gi_688) {
                 if (RetraceFilterLong) {
                   if (l_irsi_36 l_irsi_28) {
                     if (CheckTrade(Symbol(), MagicNumberLong, ThresholdLong, OP_BUY)) {
                       li_0 = EnterLong(LotsLong, ProfitTargetLong, StopLossLong, MagicNumberLong);
                       if (li_0 0) GlobalVariableSet(StringConcatenate(MagicNumberLong, Symbol(), - Chameleon LastAnchorLong ), MarketInfo(Symbol(), MODE_ASK));
                     }
                   }
                 } else {
                   if (CheckTrade(Symbol(), MagicNumberLong, ThresholdLong, OP_BUY)) {
                     li_0 = EnterLong(LotsLong, ProfitTargetLong, StopLossLong, MagicNumberLong);
                     if (li_0 0) GlobalVariableSet(StringConcatenate(MagicNumberLong, Symbol(), - Chameleon LastAnchorLong ), MarketInfo(Symbol(), MODE_ASK));
                   }
                 }
               }
             }
           }
         }
       }
     }
   }
   if (EnableMoleLogic EnableMoleCloseLogic l_ima_228 = l_ima_236 l_ima_244 = l_ima_252) {
     li_96 = 4;
     CloseAllShrts(Symbol(), MagicNumberShrt);
   }
   if (CountShorts(Symbol(), MagicNumberShrt) MaxTradesShrt CountAll(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol) MaxTrades) {
     l_irsi_20 = iRSI(NULL, RSI_TimeframeShrt, RSI_PeriodsShrt, PRICE_CLOSE, Shift);
     l_irsi_28 = iRSI(NULL, LongTimeframe, LongPeriods, PRICE_CLOSE, Shift);
     l_irsi_36 = iRSI(NULL, ShortTimeframe, ShortPeriods, PRICE_CLOSE, Shift);
     if ((!bLevelFilterShrt !rLevelFilterShrt) || (rLevelFilterShrt Bid rLowerLevelShrt Ask rUpperLevelShrt) || (bLevelFilterShrt Bid bLowerLevelShrt ||
       Ask bUpperLevelShrt)) {
       if (EnableMoleLogic l_ima_164 = l_ima_172 l_ima_180 = l_ima_188) li_96 = 2;
       if (EnableStorkLogic l_istochastic_324 = l_istochastic_332 l_istochastic_340 = l_istochastic_348 l_istochastic_356 = l_istochastic_364 l_istochastic_372 = l_istochastic_380) li_88 = 2;
       if (!StopTradeonReversal || l_ima_116 l_ima_108 !EnableMoleLogic || li_96 == 2 !EnableStorkLogic || li_88 == 2 (EnableTokyoExpressLogic l_irsi_20 = RSI_Sell_Level) ||
         (!EnableTokyoExpressLogic l_irsi_20 = RSI_Sell_Level) gi_680 != 1 || !CloseAllOnReversal) {
         if (CheckTrade(Symbol(), MagicNumberShrt, ThresholdShrt, OP_SELL)) {
           ld_12 = GlobalVariableGet(StringConcatenate(MagicNumberShrt, Symbol(), - Chameleon LastAnchorShort )) - MarketInfo(Symbol(), MODE_BID);
           ld_4 = MarketInfo(Symbol(), MODE_BID) - GlobalVariableGet(StringConcatenate(MagicNumberShrt, Symbol(), - Chameleon LastAnchorShort ));
           if (ld_12 = ThresholdShrt * Point * gi_688) {
             if (CheckTrade(Symbol(), MagicNumberShrt, ThresholdShrt, OP_SELL)) {
               li_0 = EnterShort(LotsShrt, ProfitTargetShrt, StopLossShrt, MagicNumberShrt);
               if (li_0 0) GlobalVariableSet(StringConcatenate(MagicNumberShrt, Symbol(), - Chameleon LastAnchorShort ), MarketInfo(Symbol(), MODE_BID));
             }
           } else {
             if (!OnlyUpOrDownShrt) {
               if (ld_4 = ThresholdShrt * Point * gi_688) {
                 if (RetraceFilterShrt) {
                   if (l_irsi_36 l_irsi_28) {
                     if (CheckTrade(Symbol(), MagicNumberShrt, ThresholdShrt, OP_SELL)) {
                       li_0 = EnterShort(LotsShrt, ProfitTargetShrt, StopLossShrt, MagicNumberShrt);
                       if (li_0 0) GlobalVariableSet(StringConcatenate(MagicNumberShrt, Symbol(), - Chameleon LastAnchorShort ), MarketInfo(Symbol(), MODE_BID));
                     }
                   }
                 } else {
                   if (CheckTrade(Symbol(), MagicNumberShrt, ThresholdShrt, OP_SELL)) {
                     li_0 = EnterShort(LotsShrt, ProfitTargetShrt, StopLossShrt, MagicNumberShrt);
                     if (li_0 0) GlobalVariableSet(StringConcatenate(MagicNumberShrt, Symbol(), - Chameleon LastAnchorShort ), MarketInfo(Symbol(), MODE_BID));
                   }
                 }
               }
             }
           }
         }
       }
     }
   }
   if (MgHedgeLong || MgHedgeShort CountAll(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol) 0 CountAll(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol) MgMaxTrades) {
     for (int l_pos_412 = OrdersTotal() - 1; l_pos_412 l_pos_412--) {
       OrderSelect(l_pos_412, SELECT_BY_POS, MODE_TRADES);
       if (!UseSymbol || Symbol() == OrderSymbol()) {
         l_dbl2str_44 = DoubleToStr(OrderTicket(), 0);
         ld_388 = OrderLots() * MgLotsMultiplier;
         if (CheckMgHedge(l_dbl2str_44, MgMagicNumber)) {
           OrderSelect(l_pos_412, SELECT_BY_POS, MODE_TRADES);
           ld_52 = NormalizeDouble((Bid - OrderOpenPrice()) / Point / gi_688, 0);
           ld_60 = NormalizeDouble((OrderOpenPrice() - Ask) / Point / gi_688, 0);
           if (ld_52 = 0 - PipsDownLong OrderType() == OP_BUY OrderMagicNumber() == LongMagicNumberToHedge) {
             Wait();
             if (!UseStandardHedge) {
               if (MathAbs(Ask - Bid) / (Point * gi_688) = gi_692 + Slippage) return (0);
               if (AccountFreeMarginCheck(Symbol(), OP_BUY, ld_388) = 0.0) return (0);
               OrderSend(Symbol(), OP_BUY, ld_388, Ask, Slippage, StopLong(Ask, MgStopLossLong), TakeLong(Ask, MgTakeProfitLong), l_dbl2str_44, MgMagicNumber, 0, Green);
             } else {
               if (MathAbs(Ask - Bid) / (Point * gi_688) = gi_692 + Slippage) return (0);
               if (AccountFreeMarginCheck(Symbol(), OP_SELL, ld_388) = 0.0) return (0);
               OrderSend(Symbol(), OP_SELL, ld_388, Bid, Slippage, StopShort(Bid, MgStopLossShort), TakeShort(Bid, MgTakeProfitShort), l_dbl2str_44, MgMagicNumber, 0, Yellow);
             }
           } else {
             if (ld_60 = 0 - PipsDownShort OrderType() == OP_SELL OrderMagicNumber() == ShortMagicNumberToHedge) {
               Wait();
               if (UseStandardHedge) {
                 if (MathAbs(Ask - Bid) / (Point * gi_688) = gi_692 + Slippage) return (0);
                 if (AccountFreeMarginCheck(Symbol(), OP_BUY, ld_388) = 0.0) return (0);
                 OrderSend(Symbol(), OP_BUY, ld_388, Ask, Slippage, StopLong(Ask, MgStopLossLong), TakeLong(Ask, MgTakeProfitLong), l_dbl2str_44, MgMagicNumber, 0, Green);
               } else {
                 if (MathAbs(Ask - Bid) / (Point * gi_688) = gi_692 + Slippage) return (0);
                 if (AccountFreeMarginCheck(Symbol(), OP_BUY, ld_388) = 0.0) return (0);
                 OrderSend(Symbol(), OP_SELL, ld_388, Bid, Slippage, StopShort(Bid, MgStopLossShort), TakeShort(Bid, MgTakeProfitShort), l_dbl2str_44, MgMagicNumber, 0, Yellow);
               }
             }
           }
         }
       }
     }
   }
   if (CountAllm(Symbol(), MgMagicNumber) 0) TrailingMg(MgTrailingStart, MgTrailingStop, MgMagicNumber);
   int li_416 = Time[0];
   if (CloseAllonReversal (li_416 - gi_676) / 60 = caorSignalReadPeriod) {
     gi_676 = li_416;
     l_irsi_68 = iRSI(Symbol(), caorLongTimeframe, caorLongPeriods, PRICE_CLOSE, 0);
     l_irsi_76 = iRSI(Symbol(), caorShortTimeframe, caorShortPeriods, PRICE_CLOSE, 0);
     if (l_irsi_68 0.0 l_irsi_76 0.0) {
       if (l_irsi_76 l_irsi_68) {
         if (CountLongs(Symbol(), MagicNumberLong) 0) CloseAllLongs(Symbol(), MagicNumberLong);
         gi_680 = -1;
       } else {
         if (l_irsi_76 l_irsi_68) {
           if (CountShorts(Symbol(), MagicNumberShrt) 0) CloseAllShrts(Symbol(), MagicNumberShrt);
           gi_680 = 1;
         }
       }
     }
   }
   if (DisplayInfo) PrintInfo(Symbol(), MagicNumberLong, MagicNumberShrt, EquityMagicNumber, UseMagicNumber, UseSymbol);
   return (0);
}
double CalcProfit(string a_symbol_0, int a_magic_8, int a_magic_12, int a_magic_16, bool ai_20, int ai_24) {
   double ld_ret_28 = 0.0;
   for (int l_pos_36 = OrdersTotal() - 1; l_pos_36 l_pos_36--) {
     OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
     if (!ai_24 || OrderSymbol() == a_symbol_0) {
       if (!ai_20) {
         ld_ret_28 += OrderProfit();
         ld_ret_28 += OrderSwap();
       } else {
         if (a_magic_16 != 0) {
           if (a_magic_16 == OrderMagicNumber()) {
             ld_ret_28 += OrderProfit();
             ld_ret_28 += OrderSwap();
           }
         } else {
           if (OrderMagicNumber() == a_magic_8 || OrderMagicNumber() == a_magic_12) {
             ld_ret_28 += OrderProfit();
             ld_ret_28 += OrderSwap();
           }
         }
       }
     }
   }
   return (ld_ret_28);
}
double CalcProfitPrint(string a_symbol_0, int a_magic_8, int a_magic_12, int ai_unused_16, bool ai_20, int ai_24) {
   double ld_ret_28 = 0.0;
   for (int l_pos_36 = OrdersTotal() - 1; l_pos_36 l_pos_36--) {
     OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
     if (!ai_24 || OrderSymbol() == a_symbol_0) {
       if (!ai_20) {
         ld_ret_28 += OrderProfit();
         ld_ret_28 += OrderSwap();
       } else {
         if (OrderMagicNumber() == a_magic_8 || OrderMagicNumber() == a_magic_12) {
           ld_ret_28 += OrderProfit();
           ld_ret_28 += OrderSwap();
         }
       }
     }
   }
   return (ld_ret_28);
}
double EquityMagicNumberProfit(string a_symbol_0, int a_magic_8, bool ai_12, int ai_16) {
   double ld_ret_20 = 0.0;
   for (int l_pos_28 = OrdersTotal() - 1; l_pos_28 l_pos_28--) {
     OrderSelect(l_pos_28, SELECT_BY_POS, MODE_TRADES);
     if (!ai_16 || OrderSymbol() == a_symbol_0) {
       if (!ai_12) {
         ld_ret_20 += OrderProfit();
         ld_ret_20 += OrderSwap();
       } else {
         if (a_magic_8 != 0) {
           if (a_magic_8 == OrderMagicNumber()) {
             ld_ret_20 += OrderProfit();
             ld_ret_20 += OrderSwap();
           }
         }
       }
     }
   }
   return (ld_ret_20);
}
bool CheckMgHedge(string as_0, int a_magic_8) {
   bool li_ret_12 = TRUE;
   for (int l_pos_16 = OrdersTotal() - 1; l_pos_16 l_pos_16--) {
     OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES);
     if (OrderMagicNumber() == a_magic_8)
       if (OrderComment() == as_0) li_ret_12 = FALSE;
   }
   return (li_ret_12);
}
void Wait() {
   while (!IsTradeAllowed() || IsTradeContextBusy()) Sleep(100);
}
int CountLongs(string a_symbol_0, int a_magic_8) {
   int l_count_12 = 0;
   for (int l_pos_16 = OrdersTotal() - 1; l_pos_16 l_pos_16--) {
     OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == a_symbol_0) {
       if (OrderMagicNumber() == a_magic_8)
         if (OrderType() == OP_BUY) l_count_12++;
     }
   }
   return (l_count_12);
}
int CountShorts(string a_symbol_0, int a_magic_8) {
   int l_count_12 = 0;
   for (int l_pos_16 = OrdersTotal() - 1; l_pos_16 l_pos_16--) {
     OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == a_symbol_0) {
       if (OrderMagicNumber() == a_magic_8)
         if (OrderType() == OP_SELL) l_count_12++;
     }
   }
   return (l_count_12);
}
int CountAllm(string a_symbol_0, int a_magic_8) {
   int l_count_12 = 0;
   for (int l_pos_16 = OrdersTotal() - 1; l_pos_16 l_pos_16--) {
     OrderSelect(l_pos_16, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == a_symbol_0) {
       if (OrderMagicNumber() == a_magic_8) {
         if (OrderType() == OP_BUY) l_count_12++;
         else
           if (OrderType() == OP_SELL) l_count_12++;
       }
     }
   }
   return (l_count_12);
}
int CountAll(string a_symbol_0, int a_magic_8, int a_magic_12, int a_magic_16, bool ai_20, int ai_24) {
   int l_count_28 = 0;
   for (int l_pos_32 = OrdersTotal() - 1; l_pos_32 l_pos_32--) {
     OrderSelect(l_pos_32, SELECT_BY_POS, MODE_TRADES);
     if (!ai_24 || OrderSymbol() == a_symbol_0) {
       if (!ai_20) l_count_28++;
       else {
         if (a_magic_16 != 0) {
           if (a_magic_16 == OrderMagicNumber()) l_count_28++;
           else
             if (OrderMagicNumber() == a_magic_8 || OrderMagicNumber() == a_magic_12) l_count_28++;
         }
       }
     }
   }
   return (l_count_28);
}
int CountAllPrint(string a_symbol_0, int a_magic_8, int a_magic_12, int ai_unused_16, bool ai_20, int ai_24) {
   int l_count_28 = 0;
   for (int l_pos_32 = OrdersTotal() - 1; l_pos_32 l_pos_32--) {
     OrderSelect(l_pos_32, SELECT_BY_POS, MODE_TRADES);
     if (!ai_24 || OrderSymbol() == a_symbol_0) {
       if (!ai_20) l_count_28++;
       else
         if (OrderMagicNumber() == a_magic_8 || OrderMagicNumber() == a_magic_12) l_count_28++;
     }
   }
   return (l_count_28);
}
void CloseAllOrders(string a_symbol_0, int a_magic_8, int a_magic_12, int a_magic_16, bool ai_20, int ai_24) {
   int l_cmd_28 = 0;
   int li_unused_32 = 0;
   while (CountAll(a_symbol_0, a_magic_8, a_magic_12, a_magic_16, ai_20, ai_24) 0) {
     for (int l_pos_36 = OrdersTotal() - 1; l_pos_36 l_pos_36--) {
       OrderSelect(l_pos_36, SELECT_BY_POS, MODE_TRADES);
       if (!ai_24 || OrderSymbol() == a_symbol_0) {
         if (!ai_20) {
           l_cmd_28 = OrderType();
           li_unused_32 = 0;
           switch (l_cmd_28) {
           case OP_BUY:
             Wait();
             li_unused_32 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 10, CLR_NONE);
             break;
           case OP_SELL:
             Wait();
             li_unused_32 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 10, CLR_NONE);
             break;
           case OP_BUYLIMIT:
           case OP_BUYSTOP:
           case OP_SELLLIMIT:
           case OP_SELLSTOP:
             Wait();
             li_unused_32 = OrderDelete(OrderTicket());
           }
         } else {
           if (a_magic_16 != 0) {
             if (a_magic_16 == OrderMagicNumber()) {
               l_cmd_28 = OrderType();
               li_unused_32 = 0;
               switch (l_cmd_28) {
               case OP_BUY:
                 Wait();
                 li_unused_32 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 10, CLR_NONE);
                 break;
               case OP_SELL:
                 Wait();
                 li_unused_32 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 10, CLR_NONE);
                 break;
               case OP_BUYLIMIT:
               case OP_BUYSTOP:
               case OP_SELLLIMIT:
               case OP_SELLSTOP:
                 Wait();
                 li_unused_32 = OrderDelete(OrderTicket());
               }
             }
           } else {
             if (OrderMagicNumber() == a_magic_8 || OrderMagicNumber() == a_magic_12) {
               l_cmd_28 = OrderType();
               li_unused_32 = 0;
               switch (l_cmd_28) {
               case OP_BUY:
                 Wait();
                 li_unused_32 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 10, CLR_NONE);
                 break;
               case OP_SELL:
                 Wait();
                 li_unused_32 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 10, CLR_NONE);
                 break;
               case OP_BUYLIMIT:
               case OP_BUYSTOP:
               case OP_SELLLIMIT:
               case OP_SELLSTOP:
                 Wait();
                 li_unused_32 = OrderDelete(OrderTicket());
               }
             }
           }
         }
       }
     }
   }
   GlobalVariableDel(a_magic_8 + CHAMELEON-START-TRAIL
}
void PrintInfo(string as_0, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24) {
   int li_28 = CountAllPrint(as_0, ai_8, ai_12, ai_16, ai_20, ai_24);
   int li_32 = CountLongs(as_0, ai_8);
   int li_36 = CountShorts(as_0, ai_12);
   double ld_40 = CalcProfitPrint(as_0, ai_8, ai_12, ai_16, ai_20, ai_24);
   double ld_48 = EquityMagicNumberProfit(as_0, ai_16, ai_20, ai_24);
   if (IsTesting() == FALSE) {
     Comment( Renegade Fx ,
        nACCOUNT INFORMATION ,
        nAccount Name: , AccountName(),
        nAccount Number: , AccountNumber(),
        nLeverage: , AccountLeverage(), :1 ,
        nMimimum Lot Size: , MarketInfo(Symbol(), MODE_MINLOT),
        nMaximum Lot Size: , MarketInfo(Symbol(), MODE_MAXLOT),
        nLot Size: $ , MarketInfo(Symbol(), MODE_LOTSIZE),
        nPip Value: $ , MarketInfo(Symbol(), MODE_TICKVALUE),
        nLot Step: , MarketInfo(Symbol(), MODE_LOTSTEP),
        nTRADE DATA ,
        nTotal trades: , li_28,
        nBuy trades: , li_32,
        nSell trades: , li_36,
        nOrder magic Long: , ai_8,
        nOrder magic Shrt: , ai_12,
        nEquityMagicNumber: , ai_16,
        nPROFIT/LOSS STATS ,
        nBalance: , AccountBalance(),
        nEquity: , AccountEquity(),
        nAccount Profit: , AccountProfit(),
        n , Symbol(), Profit: , ld_40,
      nEquityMagicNumberProfit: , ld_48);
   }
}
bool CheckTrade(string a_symbol_0, int a_magic_8, int ai_12, int a_cmd_16) {
   for (int l_pos_20 = OrdersTotal() - 1; l_pos_20 l_pos_20--) {
     OrderSelect(l_pos_20, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == a_symbol_0) {
       if (OrderMagicNumber() == a_magic_8) {
         if (OrderType() == a_cmd_16 a_cmd_16 == OP_BUY) {
           if (MathAbs(NormalizeDouble(OrderOpenPrice(), 4) - NormalizeDouble(MarketInfo(a_symbol_0, MODE_ASK), 4)) NormalizeDouble(ai_12 * MarketInfo(a_symbol_0, MODE_POINT) * gi_688, 4)) continue;
           return (FALSE);
         }
         if (OrderType() == a_cmd_16 a_cmd_16 == OP_SELL)
           if (MathAbs(NormalizeDouble(OrderOpenPrice(), 4) - NormalizeDouble(MarketInfo(a_symbol_0, MODE_BID), 4)) = NormalizeDouble(ai_12 * MarketInfo(a_symbol_0, MODE_POINT) * gi_688, 4)) return (FALSE);
       }
     }
   }
   return (TRUE);
}
double StopLong(double ad_0, int ai_8) {
   if (ai_8 == 0) return (0);
   else return (ad_0 - ai_8 * Point * gi_688);
}
double StopShort(double ad_0, int ai_8) {
   if (ai_8 == 0) return (0);
   else return (ad_0 + ai_8 * Point * gi_688);
}
double TakeLong(double ad_0, int ai_8) {
   if (ai_8 == 0) return (0);
   else return (ad_0 + ai_8 * Point * gi_688);
}
double TakeShort(double ad_0, int ai_8) {
   if (ai_8 == 0) return (0);
   else return (ad_0 - ai_8 * Point * gi_688);
}
double MM(string a_symbol_0, double ad_8, int ai_16, int ai_20) {
   double l_minlot_24 = MarketInfo(a_symbol_0, MODE_MINLOT);
   double l_maxlot_32 = MarketInfo(a_symbol_0, MODE_MAXLOT);
   double ld_40 = AccountLeverage();
   double l_lotsize_48 = MarketInfo(a_symbol_0, MODE_LOTSIZE);
   double l_lotstep_56 = MarketInfo(a_symbol_0, MODE_LOTSTEP);
   double ld_64 = MathMin(AccountBalance(), AccountEquity());
   int li_72 = 0;
   double ld_ret_76 = 0.0;
   if (l_lotstep_56 == 0.01) li_72 = 2;
   if (l_lotstep_56 == 0.1) li_72 = 1;
   if (ai_20 == 1) {
     if (ai_16 == 1) {
       ld_ret_76 = ld_64 * ad_8 / (l_lotsize_48 / ld_40);
       ld_ret_76 = StrToDouble(DoubleToStr(ld_ret_76, li_72));
       if (ld_ret_76 l_minlot_24) ld_ret_76 = l_minlot_24;
       if (ld_ret_76 l_maxlot_32) ld_ret_76 = l_maxlot_32;
     }
     if (ai_16 == 0) {
       if (ld_ret_76 l_minlot_24) ld_ret_76 = l_minlot_24;
       if (ld_ret_76 l_maxlot_32) ld_ret_76 = l_maxlot_32;
     }
   }
   if (ai_20 == 0) {
     if (ai_16 == 1) {
       ld_ret_76 = ld_64 * ad_8 / (l_lotsize_48 / ld_40);
       ld_ret_76 = MathRound(ld_ret_76);
       if (ld_ret_76 l_minlot_24) ld_ret_76 = l_minlot_24;
       if (ld_ret_76 l_maxlot_32) ld_ret_76 = l_maxlot_32;
     }
     if (ai_16 == 0) {
       if (ld_ret_76 l_minlot_24) ld_ret_76 = l_minlot_24;
       if (ld_ret_76 l_maxlot_32) ld_ret_76 = l_maxlot_32;
     }
   }
   return (ld_ret_76);
}
int EnterLong(double ad_0, int ai_8, int ai_12, int a_magic_16) {
   int l_ticket_20 = 0;
   bool li_24 = FALSE;
   double ld_28 = 0.0;
   double ld_36 = 0.0;
   if (MathAbs(Ask - Bid) / (Point * gi_688) = gi_692 + Slippage) return (0);
   if (AccountFreeMarginCheck(Symbol(), OP_BUY, ad_0) = 0.0) return (0);
   double l_maxlot_44 = MarketInfo(Symbol(), MODE_MAXLOT);
   double ld_unused_52 = MarketInfo(Symbol(), MODE_MINLOT);
   while (!li_24) {
     ld_28 = ad_0 / l_maxlot_44;
     if (ld_28 = 1.0) {
       Wait();
       RefreshRates();
       l_ticket_20 = OrderSend(Symbol(), OP_BUY, ad_0, Ask, Slippage, StopLong(Ask, ai_12), TakeLong(Ask, ai_8), 0, a_magic_16, 0, Blue);
       if (l_ticket_20 = 0) li_24 = TRUE;
     } else {
       for (int l_count_60 = 0; l_count_60 ld_28; l_count_60++) {
         ad_0 -= ld_36;
         Wait();
         RefreshRates();
         l_ticket_20 = OrderSend(Symbol(), OP_BUY, ad_0 - l_maxlot_44 * (MathFloor(ld_28) - l_count_60), Ask, Slippage, StopLong(Ask, ai_12), TakeLong(Ask, ai_8), 0, a_magic_16, 0, Blue);
         ld_36 = ad_0 - l_maxlot_44 * (MathFloor(ld_28) - l_count_60);
       }
       li_24 = TRUE;
     }
   }
   return (l_ticket_20);
}
int EnterShort(double ad_0, int ai_8, int ai_12, int a_magic_16) {
   int l_ticket_20 = 0;
   bool li_24 = FALSE;
   double ld_28 = 0.0;
   double ld_36 = 0.0;
   if (MathAbs(Ask - Bid) / (Point * gi_688) = gi_692 + Slippage) return (0);
   if (AccountFreeMarginCheck(Symbol(), OP_SELL, ad_0) = 0.0) return (0);
   double l_maxlot_44 = MarketInfo(Symbol(), MODE_MAXLOT);
   double ld_unused_52 = MarketInfo(Symbol(), MODE_MINLOT);
   while (!li_24) {
     ld_28 = ad_0 / l_maxlot_44;
     if (ld_28 = 1.0) {
       Wait();
       RefreshRates();
       l_ticket_20 = OrderSend(Symbol(), OP_SELL, ad_0, Bid, Slippage, StopShort(Bid, ai_12), TakeShort(Bid, ai_8), 0, a_magic_16, 0, Red);
       if (l_ticket_20 = 0) li_24 = TRUE;
     } else {
       for (int l_count_60 = 0; l_count_60 ld_28; l_count_60++) {
         ad_0 -= ld_36;
         Wait();
         RefreshRates();
         l_ticket_20 = OrderSend(Symbol(), OP_SELL, ad_0 - l_maxlot_44 * (MathFloor(ld_28) - l_count_60), Bid, Slippage, StopLong(Bid, ai_12), TakeLong(Bid, ai_8), 0, a_magic_16, 0, Red);
         ld_36 = ad_0 - l_maxlot_44 * (MathFloor(ld_28) - l_count_60);
       }
       li_24 = TRUE;
     }
   }
   return (l_ticket_20);
}
void TrailingAllLong(int ai_0, int ai_4, int a_magic_8, int ai_unused_12) {
   if (ai_4 0) {
     for (int l_ord_total_16 = OrdersTotal(); l_ord_total_16 l_ord_total_16--) {
       OrderSelect(l_ord_total_16, SELECT_BY_POS, MODE_TRADES);
       if (OrderSymbol() == Symbol() OrderMagicNumber() == a_magic_8) {
         Print( Ticket , OrderTicket(), modified.
         if (OrderType() == OP_BUY) {
           if (Bid - OrderOpenPrice() = ai_0 * Point * gi_688)
             if (OrderStopLoss() Bid - Point * gi_688 * ai_4) OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * gi_688 * ai_4, OrderTakeProfit(), 0, LightBlue);
         }
       }
     }
   }
}
void TrailingAllShrt(int ai_0, int ai_4, int a_magic_8, int ai_unused_12) {
   if (ai_4 0) {
     for (int l_ord_total_16 = OrdersTotal(); l_ord_total_16 l_ord_total_16--) {
       OrderSelect(l_ord_total_16, SELECT_BY_POS, MODE_TRADES);
       if (OrderSymbol() == Symbol() OrderMagicNumber() == a_magic_8) {
         Print( Ticket , OrderTicket(), modified.
         if (OrderType() == OP_SELL) {
           if (OrderOpenPrice() - Ask = ai_0 * Point * gi_688)
             if (OrderStopLoss() Ask + Point * gi_688 * ai_4 || OrderStopLoss() == 0.0) OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * gi_688 * ai_4, OrderTakeProfit(), 0, LightPink);
         }
       }
     }
   }
}
void TrailingAllPSARLong(int ai_unused_0, int a_magic_4, int ai_unused_8, int a_timeframe_12, double ad_16, double ad_24) {
   double l_price_32 = NormalizeDouble(iSAR(Symbol(), a_timeframe_12, ad_16, ad_24, 1), MarketInfo(Symbol(), MODE_DIGITS));
   if (l_price_32 0.0) {
     for (int l_ord_total_40 = OrdersTotal(); l_ord_total_40 l_ord_total_40--) {
       OrderSelect(l_ord_total_40, SELECT_BY_POS, MODE_TRADES);
       if (OrderSymbol() == Symbol() OrderMagicNumber() == a_magic_4) {
         if (OrderType() == OP_BUY)
           if (OrderStopLoss() l_price_32 l_price_32 = iLow(Symbol(), a_timeframe_12, 1)) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_32, OrderTakeProfit(), 15128749);
       }
     }
   }
}
void TrailingAllPSARShrt(int ai_unused_0, int a_magic_4, int ai_unused_8, int a_timeframe_12, double ad_16, double ad_24) {
   double l_price_32 = NormalizeDouble(iSAR(Symbol(), a_timeframe_12, ad_16, ad_24, 1), MarketInfo(Symbol(), MODE_DIGITS));
   if (l_price_32 0.0) {
     for (int l_ord_total_40 = OrdersTotal(); l_ord_total_40 l_ord_total_40--) {
       OrderSelect(l_ord_total_40, SELECT_BY_POS, MODE_TRADES);
       if (OrderSymbol() == Symbol() OrderMagicNumber() == a_magic_4) {
         if (OrderType() == OP_SELL)
           if (OrderStopLoss() l_price_32 || OrderStopLoss() == 0.0 l_price_32 = iHigh(Symbol(), a_timeframe_12, 1)) OrderModify(OrderTicket(), OrderOpenPrice(), l_price_32, OrderTakeProfit(), 12695295);
       }
     }
   }
}
void TrailingMg(int ai_0, int ai_4, int a_magic_8) {
   if (ai_4 0) {
     for (int l_ord_total_12 = OrdersTotal(); l_ord_total_12 l_ord_total_12--) {
       OrderSelect(l_ord_total_12, SELECT_BY_POS, MODE_TRADES);
       if (OrderSymbol() == Symbol() OrderMagicNumber() == a_magic_8) {
         if (OrderType() == OP_SELL) {
           if (OrderOpenPrice() - Ask = ai_0 * Point * gi_688)
             if (OrderStopLoss() Ask + Point * gi_688 * ai_4 || OrderStopLoss() == 0.0) OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * gi_688 * ai_4, OrderTakeProfit(), 0, LightPink);
         }
         if (OrderType() == OP_BUY) {
           if (Bid - OrderOpenPrice() = ai_0 * Point * gi_688)
             if (OrderStopLoss() Bid - Point * gi_688 * ai_4) OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * gi_688 * ai_4, OrderTakeProfit(), 0, LightBlue);
         }
       }
     }
   }
}
void CloseAllLongs(string a_symbol_0, int a_magic_8) {
   int l_cmd_12;
   int li_unused_16;
   int li_unused_20 = 0;
   for (int l_pos_24 = OrdersTotal() - 1; l_pos_24 l_pos_24--) {
     OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == a_symbol_0) {
       if (OrderMagicNumber() == a_magic_8) {
         l_cmd_12 = OrderType();
         li_unused_16 = 0;
         switch (l_cmd_12) {
         case OP_BUY:
           Wait();
           li_unused_16 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 10, CLR_NONE);
           break;
         case OP_SELL: break;
         case OP_BUYLIMIT:
           Wait();
           li_unused_16 = OrderDelete(OrderTicket());
           break;
         case OP_BUYSTOP:
           Wait();
           li_unused_16 = OrderDelete(OrderTicket());
         case OP_SELLLIMIT: break;
         case OP_SELLSTOP: break;
         }
       }
     }
   }
}
void CloseAllShrts(string a_symbol_0, int a_magic_8) {
   int l_cmd_12;
   int li_unused_16;
   int li_unused_20 = 0;
   for (int l_pos_24 = OrdersTotal() - 1; l_pos_24 l_pos_24--) {
     OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol() == a_symbol_0) {
       if (OrderMagicNumber() == a_magic_8) {
         l_cmd_12 = OrderType();
         li_unused_16 = 0;
         switch (l_cmd_12) {
         case OP_BUY: break;
           break;
         case OP_SELL:
           Wait();
           li_unused_16 = OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 10, CLR_NONE);
           break;
         case OP_BUYLIMIT: break;
         case OP_BUYSTOP: break;
         case OP_SELLLIMIT:
           Wait();
           li_unused_16 = OrderDelete(OrderTicket());
           break;
         case OP_SELLSTOP:
           Wait();
           li_unused_16 = OrderDelete(OrderTicket());
         }
       }
     }
   }
   }

外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!


特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情
推荐行情
点击排行