← К каталогу
Исходный код · ID 4363

Waka Waka EA

waka_waka_ea_mt5_v2_121_compile_fix.mq5

Похожие материалы по тегам

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Waka Waka EA — торговый советник для MetaTrader 5, портированный с MT4-стратегии с сохранением исходной логики и пользовательских настроек. Советник реализует сеточную торговлю (grid), открывая несколько сделок по одному инструменту с различными магическими числами. Работает на платформе MetaTrader 5 и обрабатывает стандартные события советника: тики, таймер, события графика и деинициализацию.

Настройки программы

НастройкаОписание
> MM & Risk settings <------ (MM_Setting) Настройки риска — Текстовый параметр для выбора группы настроек риска и управления позицией.
Allow Opening a new Grid? (AllowOpeningNewGrid) Разрешить новую сетку — Переключатель, разрешающий или запрещающий открытие новых сеточных уровней.
Lot-sizing Method (LotSizingMethod) Метод расчёта лота — Вариант настройки метода расчёта размера лота (фиксированный, на балансе, на эквити, на загрузке депозита).
Fixed Lot (LotSizingValueFixed) Фиксированный лот — Числовое значение фиксированного размера лота при соответствующем методе расчёта.
Dynamic Lot (Balance/Equity based) (LotSizingValueDynamic) Динамический лот — Числовое значение для динамического расчёта лота на основе баланса или эквити.
Deposit Load % (LotSizingDepositLoadPercent) Процент загрузки депозита — Процент загрузки депозита, используемый при расчёте лота по загрузке.
Fixed Initial Deposit? (Tester only) (FixedInitialDeposit) Фиксированный начальный депозит — Переключатель фиксированного начального депозита (используется в тестере).
Maximum Lot (MaximumLot) Максимальный лот — Максимально допустимый размер лота для открытой позиции.
Auto Split? (AutoSplit) Автоматическое разделение — Переключатель автоматического разделения лота при превышении максимального размера.
Maximum Spread, in pips (MaximumSpread) Максимальный спред — Максимально допустимый спред в пунктах для открытия сделок.
Maximum Slippage for a non-ECN acc, in pips (MaximumSlippage) Максимальный проскальзывание — Максимально допустимое проскальзывание в пунктах для не-ECN счетов.
Maximum Symbols at a time (MaximumSymbols) Максимум символов — Максимальное количество одновременно торгуемых инструментов.
Allow Hedging? (AllowHedging) Разрешить хеджирование — Переключатель разрешения хеджирования (открытие противоположных позиций).
Allow Trading on Holidays? (AllowTradingOnHolidays) Торговля в праздники — Переключатель, разрешающий торговлю в праздничные дни.
Allow to Buy/Sell (AllowToBuySell) Разрешённое направление — Вариант настройки разрешённого направления торговли: только покупка, только продажа или оба.
Minimum Free Margin % [0-disabled] (MinimumFreeMargin) Минимальный свободный маржин — Минимальный процент свободного маржина для продолжения торговли.
Max Floating Drawdown % (MaximumDrawdown) Максимальная просадка — Максимально допустимая плавающая просадка в процентах от баланса.
Max Floating Drawdown in Money [0-disabled] (MaximumDrawdownMoney) Максимальная просадка в деньгах — Максимально допустимая плавающая просадка в денежном выражении.
Max Drawdown Action (MaximumDrawdownAction) Действие при просадке — Вариант настройки действия при достижении максимальной просадки.
Max Drawdown Calculation (DrawdownCalculation) Расчёт просадки — Вариант расчёта просадки: по текущей стратегии или по всему счёту.
> Strategy settings <------ (Strategy_Setting) Настройки стратегии — Текстовый параметр для выбора настроек стратегии и используемых символов.
Symbols separated by comma (custom if empty) (Symbols) Символы — Список торговых инструментов через запятую для работы советника.
Hour to Start Trading (broker\'s time) (HourToStartTrading) Час начала торговли — Целое число, задающее час начала торговли по времени брокера.
Hour to Stop Trading (broker\'s time) (HourToStopTrading) Час окончания торговли — Целое число, задающее час окончания торговли по времени брокера.
Bollinger Bands Period (BollingerBandsPeriod) Период Боллинджера — Период индикатора Bollinger Bands, используемого для генерации сигналов.
RSI Period (RSI_Period) Период RSI — Период индикатора RSI, используемого для генерации сигналов.
Maximum RSI Value (RSI_Value) Значение RSI — Максимальное/минимальное значение RSI для фильтрации сигналов.
> TakeProfit settings <------ (Strategy_Setting_TP) Настройки тейк-профита — Текстовый параметр для выбора настроек тейк-профита.
TakeProfit for Initial Trade, in pips (InitialTP) Начальный тейк-профит — Числовое значение тейк-профита для начальной сделки в пунктах.
Weighted TakeProfit? (WeightedTP) Взвешенный тейк-профит — Переключатель взвешенного расчёта тейк-профита для сеточных позиций.
Получить полный код

Поиск по коду файла

#include <Canvas\Canvas.mqh>

#property version    "2.120"
#property strict
#property description  "Waka Waka EA - native MT5 source port"
#property description  "Original MT4 strategy logic and user inputs preserved; MT5 execution compatibility added."

  enum LotSizingEnum      {LowRiskPreset = 5,//Low Risk Set 20% annual (0.25% load)
                   MidRiskPreset = 4,//Mid Risk Set 40% annual (0.5% load)
                   HighRiskPreset = 3,//Significant Risk Set 80% annual (1.0% load)
                   ExtremeRiskPreset = 7,//High Risk Set 120% annual (1.5% load)
                   LotsEquity = 2,//Dynamic Lot based on Equity
                   LotsBalance = 1,//Dynamic Lot based on Balance
                   LotsDepositLoad = 6,//Lots based on Deposit load
                   FixedLots = 0//Fixed Lot
                     };
  enum AllowBuySellEnum      {AllowSell2 = 2,//Sell only
                   AllowBuy1 = 1,//Buy only
                   AllowBuySell0 = 0//Buy and Sell
                     };
  enum eMaxDrawdownAction      {IgnoreNewUntilRestart = 3,//Prohibit opening new grids until restart
                   IgnoreNewSignals = 2,//Prohibit opening new grids
                   CloseStopTradingUntilRestart = 1,//Close trades & stop trading until restart
                   CloseStopTradingFor24h = 0//Close trades & stop trading for 24h
                     };
  enum eDrawdownCalculation      {ThisStrategy = 1,//This strategy
                   TheAccount = 0//The account
                     };

class CCanvasX : public CCanvas  { public:

                bool CCanvasX_12( string Para_0_st);
         };

class SymbolInformation  { public:string  st_1; datetime  da_2; datetime  da_3; int  in_4; bool  bo_5; bool  bo_6; datetime  da_7; datetime  da_8; double  do_9; bool  bo_10; bool  bo_11; double  do_12; double  do_13; int  in_14; int  in_15; long  lo_16; double  do_17; bool  bo_18; bool  bo_19; bool  bo_20; int  in_21; double  do_22; double  do_23; double  do_24; double  do_25; double  do_26; datetime  da_27; datetime  da_28; 
                void SymbolInformation_13();
                void SymbolInformation_14();
                void SymbolInformation_15();
                ~SymbolInformation();
         };
class CutTrade  { public:long  lo_1; double  do_2; bool  bo_3; 
                void CutTrade_17();
                void CutTrade_18();
                void CutTrade_19();
                ~CutTrade();
         };
input string MM_Setting="Select the risk settings"  ;   //------> MM & Risk settings <------
input bool AllowOpeningNewGrid=true  ;    //Allow Opening a new Grid?
input LotSizingEnum  LotSizingMethod=5  ;    //Lot-sizing Method
input double LotSizingValueFixed=0.01  ;    //Fixed Lot
input double LotSizingValueDynamic=10000  ;    //Dynamic Lot (Balance/Equity based)
input double LotSizingDepositLoadPercent=0.25  ;    //Deposit Load %
input bool FixedInitialDeposit=false ;    //Fixed Initial Deposit? (Tester only)
input double MaximumLot=100  ;    //Maximum Lot
input bool AutoSplit=false ;    //Auto Split?
input double MaximumSpread=10  ;    //Maximum Spread, in pips
input int MaximumSlippage=10  ;    //Maximum Slippage for a non-ECN acc, in pips
input int   MaximumSymbols=2  ;    //Maximum Symbols at a time
input bool AllowHedging=true  ;    //Allow Hedging?
input bool AllowTradingOnHolidays=false ;    //Allow Trading on Holidays?
input AllowBuySellEnum  AllowToBuySell=0  ;    //Allow to Buy/Sell
input double MinimumFreeMargin=0  ;    //Minimum Free Margin % [0-disabled]
input double MaximumDrawdown=100  ;    //Max Floating Drawdown %
input double MaximumDrawdownMoney=0  ;    //Max Floating Drawdown in Money [0-disabled]
input eMaxDrawdownAction  MaximumDrawdownAction=0  ;    //Max Drawdown Action
input eDrawdownCalculation  DrawdownCalculation=1  ;    //Max Drawdown Calculation
input string Strategy_Setting="Select the strategy settings and symbols used"  ;   //------> Strategy settings <------
input string Symbols="AUDNZD,AUDCAD,NZDCAD"  ;   //Symbols separated by comma (custom if empty)
input int   HourToStartTrading=0  ;    //Hour to Start Trading (broker\'s time)
input int   HourToStopTrading=23  ;    //Hour to Stop Trading (broker\'s time)
input int   BollingerBandsPeriod=35  ;    //Bollinger Bands Period
input int   RSI_Period=20  ;    //RSI Period
input int   RSI_Value=15  ;    //Maximum RSI Value
input string Strategy_Setting_TP="Select TP settings"  ;   //------> TakeProfit settings <------
input double InitialTP=10  ;    //TakeProfit for Initial Trade, in pips
input bool WeightedTP=true  ;    //Weighted TakeProfit?
input double GridTP=0  ;    //TakeProfit for Grid, in pips (can also be zero or negative)
input int   BreakEvenAfterThisLevel=0  ;    //Break Even after this Level [0-disabled]
input bool HideTP=false ;    //Hide TakeProfit?
input bool Use_OPO_Method=false ;    //Use OPO method to handle TP
input ENUM_TIMEFRAMES  OPO_TimeFrame=15  ;    //TF for OPO method
input bool SmartTP=false ;    //Smart TakeProfit?
input bool DoNotAdjustTPUnlessNewGrid=false ;    //Do not adjust TP unless new grid level opened
input string Strategy_Setting_SL="Select SL settings"  ;   //------> StopLoss settings <------
input double GridSL=0  ;    //StopLoss for Grid, in pips (1000pips if zero)
input bool HideSL=false ;    //Hide StopLoss?
input string Grid_Setting="Adjust the grid distance and multipliers"  ;   //------> Grid settings <------
input int   TradeDistance=35  ;    //Trade Distance
input bool SmartDistance=true  ;    //Smart Distance?
input double TradeMultiplier_2nd=1  ;    //2nd Trade Multiplier
input double TradeMultiplier_3rd=2  ;    //3rd-5th Trade Multiplier
input double TradeMultiplier_6th=1.5  ;    //6th- Trade Multiplier
input int   MaximumTrades=9  ;    //Maximum Trades
input int   GridLevelToStart=1  ;    //Grid Level to Start (1-initial trade)
input bool KeepOriginalProfitLotSize=false ;    //Keep Original Profit Level & Lot Size
input string Additional_Setting="Change the comment and UID if needed"  ;   //------> Additional settings <------
input string TradeComment="Waka"  ;   //Trade Comment
input int   UID=0  ;    //UID (0...9)
input bool ShowPanel=true  ;    //ShowPanel

input group "=== MT5 PORT / BROKER COMPATIBILITY ==="
input bool M5_AutoResolveSymbols=true;       // Resolve broker suffix/prefix, e.g. AUDNZD.a / mAUDNZD
input bool M5_UseBrokerSessionGuard=true;    // Do not send requests when the broker session is closed
input bool M5_WarnOnNetting=true;            // Exact MT4 ticket/grid parity requires a HEDGING account
  string    Global_1_st = "::W2.12LD_bmp\\WakaWakaEA.bmp";
  string    Global_2_st = "2.12";
  long      Global_3_lo = 0;
  string    Global_4_st = "";
  int       Global_5_in = 0;

  datetime  Global_7_da = 0;
  int       Global_8_in = 0;
  CCanvasX  Global_10_a_167;
  bool      Global_11_bo = true;
  int       Global_12_in = 3000;
  bool      Global_13_bo = false;
  int       Global_14_in = 50000;
  CutTrade  Global_15_a_169_ko[];
  int       Global_16_in = -1;
  double     Global_17_lo_ko[];
  double    Global_18_do_ko[];
  int       Global_19_in = -1;
  int       Global_20_in = 0;
  int       Global_21_in = 15;
  SymbolInformation Global_22_a_168_ko[];
  ushort     Global_23_sh = 0;
  int       Global_24_in = 84570;
  double    Global_25_do = 0.0000001;
  int       Global_26_in = -1;
  long      Global_27_lo = 0;
  int       Global_28_in = 0;
  bool      Global_29_bo = false;
  int       Global_30_in = 0;
  bool      Global_31_bo = false;
  int       Global_32_in = -1;
  long      Global_33_lo = 0;
  long      Global_34_lo = 0;
  bool      Global_35_bo = false;
  string    Global_36_st = "Select pair";
  bool      Global_37_bo = true;
  double    Global_38_do = 0.0;
  bool      Global_39_bo = true;
  int       Global_40_in = 0;

#define M4_OP_BUY       0
#define M4_OP_SELL      1
#define M4_OP_BUYLIMIT  2
#define M4_OP_SELLLIMIT 3
#define M4_OP_BUYSTOP   4
#define M4_OP_SELLSTOP  5

struct M4SelectedTrade
{
   bool     valid;
   bool     position;
   ulong    ticket;
   int      type;
   string   symbol;
   long     magic;
   double   lots;
   double   open_price;
   double   close_price;
   double   sl;
   double   tp;
   double   profit;
   double   swap;
   double   commission;
   datetime open_time;
};

M4SelectedTrade g_m4_selected;
int g_m4_trade_error=0;

void M4ClearSelected()
{
   g_m4_selected.valid=false;
   g_m4_selected.position=false;
   g_m4_selected.ticket=0;
   g_m4_selected.type=-1;
   g_m4_selected.symbol="";
   g_m4_selected.magic=0;
   g_m4_selected.lots=0.0;
   g_m4_selected.open_price=0.0;
   g_m4_selected.close_price=0.0;
   g_m4_selected.sl=0.0;
   g_m4_selected.tp=0.0;
   g_m4_selected.profit=0.0;
   g_m4_selected.swap=0.0;
   g_m4_selected.commission=0.0;
   g_m4_selected.open_time=0;
}

void M4ResetLastError()
{
   g_m4_trade_error=0;
   ResetLastError();
}

int M4GetLastError()
{
   if(g_m4_trade_error!=0)
   {
      int e=g_m4_trade_error;
      g_m4_trade_error=0;
      return e;
   }
   return GetLastError();
}

int M5RetcodeToM4(const uint rc)
{
   switch(rc)
   {
      case TRADE_RETCODE_REQUOTE:               return 138;
      case TRADE_RETCODE_REJECT:                return 2;
      case TRADE_RETCODE_CANCEL:                return 2;
      case TRADE_RETCODE_ERROR:                 return 2;
      case TRADE_RETCODE_TIMEOUT:               return 128;
      case TRADE_RETCODE_INVALID:               return 3;
      case TRADE_RETCODE_INVALID_VOLUME:        return 131;
      case TRADE_RETCODE_INVALID_PRICE:         return 129;
      case TRADE_RETCODE_INVALID_STOPS:         return 130;
      case TRADE_RETCODE_TRADE_DISABLED:        return 133;
      case TRADE_RETCODE_MARKET_CLOSED:         return 132;
      case TRADE_RETCODE_NO_MONEY:              return 134;
      case TRADE_RETCODE_PRICE_CHANGED:         return 135;
      case TRADE_RETCODE_PRICE_OFF:             return 136;
      case TRADE_RETCODE_INVALID_EXPIRATION:    return 147;
      case TRADE_RETCODE_TOO_MANY_REQUESTS:     return 141;
      case TRADE_RETCODE_LOCKED:                return 139;
      case TRADE_RETCODE_FROZEN:                return 145;
      case TRADE_RETCODE_INVALID_FILL:          return 3;
      case TRADE_RETCODE_CONNECTION:            return 6;
      case TRADE_RETCODE_LIMIT_ORDERS:          return 148;
      case TRADE_RETCODE_LIMIT_VOLUME:          return 131;
      case TRADE_RETCODE_INVALID_ORDER:         return 3;
      case TRADE_RETCODE_POSITION_CLOSED:       return 4108;
      case TRADE_RETCODE_INVALID_CLOSE_VOLUME:  return 131;
      case TRADE_RETCODE_LIMIT_POSITIONS:       return 148;
      case TRADE_RETCODE_LONG_ONLY:             return 140;
      case TRADE_RETCODE_SHORT_ONLY:            return 4110;
      case TRADE_RETCODE_CLOSE_ONLY:            return 133;
      case TRADE_RETCODE_FIFO_CLOSE:            return 150;
      case TRADE_RETCODE_HEDGE_PROHIBITED:      return 149;
   }
   return 2;
}

bool M5TradeRetcodeOK(const uint rc)
{
   return (rc==TRADE_RETCODE_DONE ||
           rc==TRADE_RETCODE_DONE_PARTIAL ||
           rc==TRADE_RETCODE_PLACED ||
           rc==TRADE_RETCODE_NO_CHANGES);
}

ENUM_ORDER_TYPE_FILLING M5FillingMode(const string symbol)
{
   long f=SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
   if((f & SYMBOL_FILLING_FOK)!=0) return ORDER_FILLING_FOK;
   if((f & SYMBOL_FILLING_IOC)!=0) return ORDER_FILLING_IOC;
   return ORDER_FILLING_RETURN;
}

bool M5SessionOpen(const string symbol)
{
   if(!M5_UseBrokerSessionGuard) return true;

   datetime now=TimeTradeServer();
   if(now<=0) now=TimeCurrent();
   MqlDateTime d;
   if(!TimeToStruct(now,d)) return true;

   ENUM_DAY_OF_WEEK day=(ENUM_DAY_OF_WEEK)d.day_of_week;
   int now_sec=d.hour*3600+d.min*60+d.sec;
   bool has_session=false;

   for(uint i=0;i<32;i++)
   {
      datetime from=0,to=0;
      if(!SymbolInfoSessionTrade(symbol,day,i,from,to)) break;
      has_session=true;

      MqlDateTime a,b;
      if(!TimeToStruct(from,a) || !TimeToStruct(to,b)) return true;
      int from_sec=a.hour*3600+a.min*60+a.sec;
      int to_sec=b.hour*3600+b.min*60+b.sec;

      if(from_sec==to_sec) return true; // broker encodes a full-day session
      if(from_sec<to_sec)
      {
         if(now_sec>=from_sec && now_sec<to_sec) return true;
      }
      else
      {
         if(now_sec>=from_sec || now_sec<to_sec) return true;
      }
   }

   return !has_session;
}

bool M5DirectionAllowed(const string symbol,const int cmd)
{
   ENUM_SYMBOL_TRADE_MODE mode=(ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(symbol,SYMBOL_TRADE_MODE);
   if(mode==SYMBOL_TRADE_MODE_DISABLED || mode==SYMBOL_TRADE_MODE_CLOSEONLY) return false;
   if(cmd==M4_OP_BUY  && mode==SYMBOL_TRADE_MODE_SHORTONLY) return false;
   if(cmd==M4_OP_SELL && mode==SYMBOL_TRADE_MODE_LONGONLY)  return false;
   return true;
}

string M5ResolveSymbol(const string requested)
{
   string r=requested;
   StringTrimLeft(r);
   StringTrimRight(r);
   if(r=="") return r;

   if(SymbolSelect(r,true)) return r;
   if(!M5_AutoResolveSymbols) return r;

   string u=r;
   StringToUpper(u);
   string best="";
   int best_extra=2147483647;
   int total=SymbolsTotal(false);

   for(int i=0;i<total;i++)
   {
      string candidate=SymbolName(i,false);
      if(candidate=="") continue;
      string cu=candidate;
      StringToUpper(cu);
      int pos=StringFind(cu,u);
      if(pos<0) continue;

      int extra=StringLen(candidate)-StringLen(r);
      if(extra<0) extra=-extra;
      if(best=="" || extra<best_extra)
      {
         best=candidate;
         best_extra=extra;
      }
   }

   if(best!="")
   {
      SymbolSelect(best,true);
      Print(TradeComment," -> MT5 symbol resolved: ",r," -> ",best);
      return best;
   }
   return r;
}

string M4StringTrimLeft(string value)
{
   StringTrimLeft(value);
   return value;
}

string M4StringTrimRight(string value)
{
   StringTrimRight(value);
   return value;
}

long M4TerminalInfoInteger(const int property)
{
   if(property==8) return TerminalInfoInteger(TERMINAL_TRADE_ALLOWED);
   if(property==6) return TerminalInfoInteger(TERMINAL_CONNECTED);
   return 0;
}

double M4SymbolInfoDouble(const string symbol,const int property)
{
   switch(property)
   {
      case 27: return SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE);
      case 34: return SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
      case 35: return SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);
      case 36: return SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
      case 55: return SymbolInfoDouble(symbol,SYMBOL_VOLUME_LIMIT);
   }
   return 0.0;
}

long M4SymbolInfoInteger(const string symbol,const int property)
{
   if(property==30) return SymbolInfoInteger(symbol,SYMBOL_TRADE_MODE);
   return 0;
}

double M4MarketInfo(const string symbol,const int mode)
{
   MqlTick q;
   SymbolInfoTick(symbol,q);
   switch(mode)
   {
      case 9:  return q.bid;
      case 10: return q.ask;
      case 11: return SymbolInfoDouble(symbol,SYMBOL_POINT);
      case 12: return (double)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
      case 13:
      {
         double p=SymbolInfoDouble(symbol,SYMBOL_POINT);
         if(p<=0.0) return 0.0;
         return (q.ask-q.bid)/p;
      }
      case 14: return (double)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL);
      case 16: return SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE);
      case 32:
      {
         double margin=0.0;
         double px=(q.ask>0.0 ? q.ask : SymbolInfoDouble(symbol,SYMBOL_ASK));
         if(px>0.0 && OrderCalcMargin(ORDER_TYPE_BUY,symbol,1.0,px,margin)) return margin;
         return 0.0;
      }
      case 33: return (double)SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL);
   }
   return 0.0;
}

bool M4RefreshRates()
{
   MqlTick q;
   return SymbolInfoTick(_Symbol,q);
}

bool M4IsTesting()      { return (bool)MQLInfoInteger(MQL_TESTER); }
bool M4IsOptimization() { return (bool)MQLInfoInteger(MQL_OPTIMIZATION); }
bool M4IsVisualMode()   { return (bool)MQLInfoInteger(MQL_VISUAL_MODE); }
void M4HideTestIndicators(const bool hide) { }

bool M4IsTradeAllowed()
{
   if(M4IsTesting() || M4IsOptimization()) return true;
   return (TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)!=0 &&
           MQLInfoInteger(MQL_TRADE_ALLOWED)!=0 &&
           AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)!=0 &&
           AccountInfoInteger(ACCOUNT_TRADE_EXPERT)!=0);
}

double M4AccountFreeMargin()
{
   return AccountInfoDouble(ACCOUNT_MARGIN_FREE);
}

double M4AccountFreeMarginCheck(const string symbol,const int cmd,const double volume)
{
   M4ResetLastError();
   if(cmd!=M4_OP_BUY && cmd!=M4_OP_SELL)
   {
      g_m4_trade_error=3;
      return -1.0;
   }

   MqlTick q;
   if(!SymbolInfoTick(symbol,q))
   {
      g_m4_trade_error=136;
      return -1.0;
   }

   double margin=0.0;
   ENUM_ORDER_TYPE type=(cmd==M4_OP_BUY ? ORDER_TYPE_BUY : ORDER_TYPE_SELL);
   double price=(cmd==M4_OP_BUY ? q.ask : q.bid);
   if(!OrderCalcMargin(type,symbol,volume,price,margin))
   {
      g_m4_trade_error=134;
      return -1.0;
   }

   double left=AccountInfoDouble(ACCOUNT_MARGIN_FREE)-margin;
   if(left<=0.0) g_m4_trade_error=134;
   return left;
}

int M4OrdersTotal()
{
   return PositionsTotal()+OrdersTotal();
}

double M5PositionCommission(const ulong position_ticket)
{
   if(!PositionSelectByTicket(position_ticket)) return 0.0;
   ulong identifier=(ulong)PositionGetInteger(POSITION_IDENTIFIER);
   if(identifier==0 || !HistorySelectByPosition(identifier)) return 0.0;

   double total=0.0;
   int n=HistoryDealsTotal();
   for(int i=0;i<n;i++)
   {
      ulong deal=HistoryDealGetTicket(i);
      if(deal==0) continue;
      total+=HistoryDealGetDouble(deal,DEAL_COMMISSION);
      total+=HistoryDealGetDouble(deal,DEAL_FEE);
   }
   return total;
}

bool M4OrderSelect(const int index,const int select_mode,const int pool)
{
   M4ClearSelected();
   M4ResetLastError();

   if(select_mode!=0 || pool!=0 || index<0)
   {
      g_m4_trade_error=4108;
      return false;
   }

   int pc=PositionsTotal();
   if(index<pc)
   {
      ulong ticket=PositionGetTicket(index);
      if(ticket==0 || !PositionSelectByTicket(ticket))
      {
         g_m4_trade_error=4108;
         return false;
      }

      g_m4_selected.valid=true;
      g_m4_selected.position=true;
      g_m4_selected.ticket=ticket;
      g_m4_selected.type=(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY ? M4_OP_BUY : M4_OP_SELL);
      g_m4_selected.symbol=PositionGetString(POSITION_SYMBOL);
      g_m4_selected.magic=PositionGetInteger(POSITION_MAGIC);
      g_m4_selected.lots=PositionGetDouble(POSITION_VOLUME);
      g_m4_selected.open_price=PositionGetDouble(POSITION_PRICE_OPEN);
      g_m4_selected.close_price=PositionGetDouble(POSITION_PRICE_CURRENT);
      g_m4_selected.sl=PositionGetDouble(POSITION_SL);
      g_m4_selected.tp=PositionGetDouble(POSITION_TP);
      g_m4_selected.profit=PositionGetDouble(POSITION_PROFIT);
      g_m4_selected.swap=PositionGetDouble(POSITION_SWAP);
      g_m4_selected.commission=M5PositionCommission(ticket);
      g_m4_selected.open_time=(datetime)PositionGetInteger(POSITION_TIME);
      return true;
   }

   int oi=index-pc;
   if(oi<0 || oi>=OrdersTotal())
   {
      g_m4_trade_error=4108;
      return false;
   }

   ulong ticket=OrderGetTicket(oi);
   if(ticket==0 || !OrderSelect(ticket))
   {
      g_m4_trade_error=4108;
      return false;
   }

   g_m4_selected.valid=true;
   g_m4_selected.position=false;
   g_m4_selected.ticket=ticket;
   g_m4_selected.type=(int)OrderGetInteger(ORDER_TYPE);
   g_m4_selected.symbol=OrderGetString(ORDER_SYMBOL);
   g_m4_selected.magic=OrderGetInteger(ORDER_MAGIC);
   g_m4_selected.lots=OrderGetDouble(ORDER_VOLUME_CURRENT);
   g_m4_selected.open_price=OrderGetDouble(ORDER_PRICE_OPEN);
   g_m4_selected.close_price=0.0;
   g_m4_selected.sl=OrderGetDouble(ORDER_SL);
   g_m4_selected.tp=OrderGetDouble(ORDER_TP);
   g_m4_selected.profit=0.0;
   g_m4_selected.swap=0.0;
   g_m4_selected.commission=0.0;
   g_m4_selected.open_time=(datetime)OrderGetInteger(ORDER_TIME_SETUP);
   return true;
}

int      M4OrderType()        { return (g_m4_selected.valid ? g_m4_selected.type : -1); }
string   M4OrderSymbol()      { return (g_m4_selected.valid ? g_m4_selected.symbol : ""); }
int      M4OrderMagicNumber() { return (g_m4_selected.valid ? (int)g_m4_selected.magic : 0); }
double   M4OrderLots()        { return (g_m4_selected.valid ? g_m4_selected.lots : 0.0); }
double   M4OrderCommission()  { return (g_m4_selected.valid ? g_m4_selected.commission : 0.0); }
double   M4OrderSwap()        { return (g_m4_selected.valid ? g_m4_selected.swap : 0.0); }
double   M4OrderOpenPrice()   { return (g_m4_selected.valid ? g_m4_selected.open_price : 0.0); }
double   M4OrderProfit()      { return (g_m4_selected.valid ? g_m4_selected.profit : 0.0); }
long     M4OrderTicket()      { return (g_m4_selected.valid ? (long)g_m4_selected.ticket : -1); }
double   M4OrderTakeProfit()  { return (g_m4_selected.valid ? g_m4_selected.tp : 0.0); }
double   M4OrderStopLoss()    { return (g_m4_selected.valid ? g_m4_selected.sl : 0.0); }
datetime M4OrderOpenTime()    { return (g_m4_selected.valid ? g_m4_selected.open_time : 0); }

bool M5PreCheck(MqlTradeRequest &req,MqlTradeCheckResult &check)
{
   ZeroMemory(check);
   ResetLastError();
   if(!OrderCheck(req,check))
   {
      if(check.retcode!=0) g_m4_trade_error=M5RetcodeToM4(check.retcode);
      else                 g_m4_trade_error=GetLastError();
      return false;
   }
   if(check.retcode!=0 && !M5TradeRetcodeOK(check.retcode))
   {
      g_m4_trade_error=M5RetcodeToM4(check.retcode);
      return false;
   }
   return true;
}

long M4OrderSend(const string symbol,const int cmd,const double volume,const double price,
                 const int slippage,const double sl,const double tp,const string comment,
                 const int magic,const datetime expiration,const color arrow_color)
{
   M4ResetLastError();
   if(!M5SessionOpen(symbol))
   {
      g_m4_trade_error=132;
      return -1;
   }
   if(cmd!=M4_OP_BUY && cmd!=M4_OP_SELL)
   {
      g_m4_trade_error=3;
      return -1;
   }
   if(!M5DirectionAllowed(symbol,cmd))
   {
      ENUM_SYMBOL_TRADE_MODE tm=(ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(symbol,SYMBOL_TRADE_MODE);
      g_m4_trade_error=(tm==SYMBOL_TRADE_MODE_LONGONLY ? 140 : (tm==SYMBOL_TRADE_MODE_SHORTONLY ? 4110 : 133));
      return -1;
   }

   MqlTick q;
   if(!SymbolInfoTick(symbol,q) || q.bid<=0.0 || q.ask<=0.0)
   {
      g_m4_trade_error=136;
      return -1;
   }

   MqlTradeRequest req={};
   MqlTradeResult result={};
   MqlTradeCheckResult check={};
   req.action=TRADE_ACTION_DEAL;
   req.symbol=symbol;
   req.magic=(magic>0 ? (ulong)magic : 0);
   req.volume=volume;
   req.type=(cmd==M4_OP_BUY ? ORDER_TYPE_BUY : ORDER_TYPE_SELL);
   req.price=(cmd==M4_OP_BUY ? q.ask : q.bid);
   req.sl=sl;
   req.tp=tp;
   req.deviation=(ulong)MathMax(0,slippage);
   req.type_filling=M5FillingMode(symbol);
   req.comment=comment;

   if(!M5PreCheck(req,check)) return -1;

   ResetLastError();
   bool sent=OrderSend(req,result);
   if(!sent || !M5TradeRetcodeOK(result.retcode))
   {
      g_m4_trade_error=(result.retcode!=0 ? M5RetcodeToM4(result.retcode) : GetLastError());
      return -1;
   }

   if(result.order>0) return (long)result.order;
   if(result.deal>0)  return (long)result.deal;
   return 1;
}

bool M4OrderModify(const long ticket,const double price,const double sl,const double tp,
                   const datetime expiration,const color arrow_color)
{
   M4ResetLastError();

   if(PositionSelectByTicket((ulong)ticket))
   {
      string symbol=PositionGetString(POSITION_SYMBOL);
      if(!M5SessionOpen(symbol))
      {
         g_m4_trade_error=132;
         return false;
      }

      MqlTradeRequest req={};
      MqlTradeResult result={};
      MqlTradeCheckResult check={};
      req.action=TRADE_ACTION_SLTP;
      req.position=(ulong)ticket;
      req.symbol=symbol;
      req.magic=(ulong)PositionGetInteger(POSITION_MAGIC);
      req.sl=sl;
      req.tp=tp;

      if(!M5PreCheck(req,check)) return false;
      ResetLastError();
      bool sent=OrderSend(req,result);
      if(!sent || !M5TradeRetcodeOK(result.retcode))
      {
         g_m4_trade_error=(result.retcode!=0 ? M5RetcodeToM4(result.retcode) : GetLastError());
         return false;
      }
      return true;
   }

   if(OrderSelect((ulong)ticket))
   {
      string symbol=OrderGetString(ORDER_SYMBOL);
      if(!M5SessionOpen(symbol))
      {
         g_m4_trade_error=132;
         return false;
      }

      MqlTradeRequest req={};
      MqlTradeResult result={};
      MqlTradeCheckResult check={};
      req.action=TRADE_ACTION_MODIFY;
      req.order=(ulong)ticket;
      req.symbol=symbol;
      req.price=price;
      req.sl=sl;
      req.tp=tp;
      req.expiration=expiration;
      req.type_time=(expiration>0 ? ORDER_TIME_SPECIFIED : ORDER_TIME_GTC);

      if(!M5PreCheck(req,check)) return false;
      ResetLastError();
      bool sent=OrderSend(req,result);
      if(!sent || !M5TradeRetcodeOK(result.retcode))
      {
         g_m4_trade_error=(result.retcode!=0 ? M5RetcodeToM4(result.retcode) : GetLastError());
         return false;
      }
      return true;
   }

   g_m4_trade_error=4108;
   return false;
}

bool M4OrderClose(const long ticket,const double lots,const double price,
                  const int slippage,const color arrow_color)
{
   M4ResetLastError();
   if(!PositionSelectByTicket((ulong)ticket))
   {
      g_m4_trade_error=4108;
      return false;
   }

   string symbol=PositionGetString(POSITION_SYMBOL);
   if(!M5SessionOpen(symbol))
   {
      g_m4_trade_error=132;
      return false;
   }

   ENUM_POSITION_TYPE ptype=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
   double current_volume=PositionGetDouble(POSITION_VOLUME);
   double close_volume=MathMin(lots,current_volume);
   if(close_volume<=0.0)
   {
      g_m4_trade_error=131;
      return false;
   }

   MqlTick q;
   if(!SymbolInfoTick(symbol,q))
   {
      g_m4_trade_error=136;
      return false;
   }

   MqlTradeRequest req={};
   MqlTradeResult result={};
   MqlTradeCheckResult check={};
   req.action=TRADE_ACTION_DEAL;
   req.position=(ulong)ticket;
   req.symbol=symbol;
   req.magic=(ulong)PositionGetInteger(POSITION_MAGIC);
   req.volume=close_volume;
   req.type=(ptype==POSITION_TYPE_BUY ? ORDER_TYPE_SELL : ORDER_TYPE_BUY);
   req.price=(ptype==POSITION_TYPE_BUY ? q.bid : q.ask);
   req.deviation=(ulong)MathMax(0,slippage);
   req.type_filling=M5FillingMode(symbol);

   if(!M5PreCheck(req,check)) return false;
   ResetLastError();
   bool sent=OrderSend(req,result);
   if(!sent || !M5TradeRetcodeOK(result.retcode))
   {
      g_m4_trade_error=(result.retcode!=0 ? M5RetcodeToM4(result.retcode) : GetLastError());
      return false;
   }
   return true;
}

ENUM_TIMEFRAMES M5TF(const int tf)
{
   switch(tf)
   {
      case 0: return PERIOD_CURRENT;
      case 1: return PERIOD_M1;
      case 5: return PERIOD_M5;
      case 15: return PERIOD_M15;
      case 30: return PERIOD_M30;
      case 60: return PERIOD_H1;
      case 240: return PERIOD_H4;
      case 1440: return PERIOD_D1;
      case 10080: return PERIOD_W1;
      case 43200: return PERIOD_MN1;
   }
   return (ENUM_TIMEFRAMES)tf;
}

double M5CopyIndicatorValue(const int handle,const int buffer,const int shift)
{
   if(handle==INVALID_HANDLE) return 0.0;
   double v[1];
   double result=0.0;
   if(CopyBuffer(handle,buffer,shift,1,v)==1) result=v[0];
   IndicatorRelease(handle);
   return result;
}

double M4iMA(const string symbol,const int tf,const int period,const int ma_shift,
             const int ma_method,const int applied_price,const int shift)
{
   int h=iMA(symbol,M5TF(tf),period,ma_shift,(ENUM_MA_METHOD)ma_method,(ENUM_APPLIED_PRICE)applied_price);
   return M5CopyIndicatorValue(h,0,shift);
}

double M4iStdDev(const string symbol,const int tf,const int period,const int ma_shift,
                 const int ma_method,const int applied_price,const int shift)
{
   int h=iStdDev(symbol,M5TF(tf),period,ma_shift,(ENUM_MA_METHOD)ma_method,(ENUM_APPLIED_PRICE)applied_price);
   return M5CopyIndicatorValue(h,0,shift);
}

double M4iATR(const string symbol,const int tf,const int period,const int shift)
{
   int h=iATR(symbol,M5TF(tf),period);
   return M5CopyIndicatorValue(h,0,shift);
}

double M4iRSI(const string symbol,const int tf,const int period,const int applied_price,const int shift)
{
   int h=iRSI(symbol,M5TF(tf),period,(ENUM_APPLIED_PRICE)applied_price);
   return M5CopyIndicatorValue(h,0,shift);
}

int M4iHighest(const string symbol,const int tf,const int type,const int count,const int start)
{
   return iHighest(symbol,M5TF(tf),(ENUM_SERIESMODE)type,count,start);
}

int M4iLowest(const string symbol,const int tf,const int type,const int count,const int start)
{
   return iLowest(symbol,M5TF(tf),(ENUM_SERIESMODE)type,count,start);
}

datetime M4iTime(const string symbol,const int tf,const int shift) { return iTime(symbol,M5TF(tf),shift); }
double   M4iOpen(const string symbol,const int tf,const int shift) { return iOpen(symbol,M5TF(tf),shift); }
double   M4iHigh(const string symbol,const int tf,const int shift) { return iHigh(symbol,M5TF(tf),shift); }
double   M4iLow(const string symbol,const int tf,const int shift)  { return iLow(symbol,M5TF(tf),shift); }
double   M4iClose(const string symbol,const int tf,const int shift){ return iClose(symbol,M5TF(tf),shift); }
int      M4iBars(const string symbol,const int tf)                  { return iBars(symbol,M5TF(tf)); }
int      M4iBarShift(const string symbol,const int tf,const datetime t,const bool exact)
{
   return iBarShift(symbol,M5TF(tf),t,exact);
}

int M4TimeHour(const datetime t)      { MqlDateTime d; TimeToStruct(t,d); return d.hour; }
int M4TimeMinute(const datetime t)    { MqlDateTime d; TimeToStruct(t,d); return d.min; }
int M4TimeDayOfWeek(const datetime t) { MqlDateTime d; TimeToStruct(t,d); return d.day_of_week; }
int M4TimeYear(const datetime t)      { MqlDateTime d; TimeToStruct(t,d); return d.year; }
int M4TimeMonth(const datetime t)     { MqlDateTime d; TimeToStruct(t,d); return d.mon; }
int M4TimeDay(const datetime t)       { MqlDateTime d; TimeToStruct(t,d); return d.day; }
int M4Hour()                          { return M4TimeHour(TimeCurrent()); }
int M4Minute()                        { return M4TimeMinute(TimeCurrent()); }
int M4Period()                        { return (int)_Period; }

int M4ObjectsDeleteAll(const long chart_id,const int subwindow)
{
   return ObjectsDeleteAll(chart_id,subwindow,-1);
}

bool M4ObjectCreate(const string name,const int type,const int subwindow,
                    const datetime time1,const double price1,const datetime time2,
                    const double price2,const datetime time3,const double price3)
{
   ENUM_OBJECT obj=(type==23 ? OBJ_LABEL : (type==25 ? OBJ_BUTTON : (ENUM_OBJECT)type));
   return ObjectCreate(0,name,obj,subwindow,time1,price1,time2,price2,time3,price3);
}

bool M4ObjectCreate(const long chart_id,const string name,const int type,const int subwindow,
                    const datetime time1,const double price1)
{
   ENUM_OBJECT obj=(type==23 ? OBJ_LABEL : (type==25 ? OBJ_BUTTON : (ENUM_OBJECT)type));
   return ObjectCreate(chart_id,name,obj,subwindow,time1,price1);
}

bool M4ObjectSet(const string name,const int property,const double value)
{
   switch(property)
   {
      case 101:  return ObjectSetInteger(0,name,OBJPROP_CORNER,(long)value);
      case 102:  return ObjectSetInteger(0,name,OBJPROP_XDISTANCE,(long)value);
      case 103:  return ObjectSetInteger(0,name,OBJPROP_YDISTANCE,(long)value);
      case 1028: return ObjectSetInteger(0,name,OBJPROP_READONLY,(long)value);
      case 1000: return ObjectSetInteger(0,name,OBJPROP_SELECTABLE,(long)value);
   }
   return false;
}

bool M4ObjectSetText(const string name,const string text,const int font_size,
                     const string font_name,const color clr)
{
   bool ok=true;
   ok=ObjectSetString(0,name,OBJPROP_TEXT,text) && ok;
   ok=ObjectSetString(0,name,OBJPROP_FONT,font_name) && ok;
   ok=ObjectSetInteger(0,name,OBJPROP_FONTSIZE,font_size) && ok;
   ok=ObjectSetInteger(0,name,OBJPROP_COLOR,clr) && ok;
   return ok;
}

 int OnInit()
 {
      // код доступен только после оплаты
   }

 void OnTick()
 {
      // код доступен только после оплаты
   }

 void OnTimer()
 {
 int        tmp_in_1;

 if ( M4IsTesting() || M4IsOptimization() )   return;
 Global_27_lo = TimeCurrent() ;
 for (tmp_in_1 = 0 ; tmp_in_1 < ArraySize(Global_22_a_168_ko) ; tmp_in_1=tmp_in_1 + 1)
 {
   M4iTime(Global_22_a_168_ko[tmp_in_1].st_1,Global_21_in,0); 
   M4iTime(Global_22_a_168_ko[tmp_in_1].st_1,OPO_TimeFrame,0); 
 }
 if ( !(ShowPanel) )   return;
 lizong_49(false); 
 }

 void OnChartEvent( const int Para_0_in,const long & Para_1_lo,const double & Para_2_do,const string & Para_3_st)
 {
 if ( Para_0_in != CHARTEVENT_OBJECT_CLICK )   return;
 lizong_48(Para_3_st); 
 }

 void OnDeinit( const int Para_0_in)
 {
 string     tmp_st_1;

 EventKillTimer(); 
 tmp_st_1 = "";
 switch(Para_0_in)
 {
   case 6 :
   tmp_st_1 = "Account changed";
     break;
   case 3 :
   tmp_st_1 = "Symbol/timeframe changed";
     break;
   case 4 :
   tmp_st_1 = "Chart closed";
     break;
   case 5 :
   tmp_st_1 = "Input parameters changed";
     break;
   case 2 :
   tmp_st_1 = "Expert recompiled";
     break;
   case 1 :
   tmp_st_1 = "Expert removed from the chart";
     break;
   case 7 :
   tmp_st_1 = "New template applied to the chart";
     break;
   default :
   tmp_st_1 = "Expert stopped";
 }
 Print(tmp_st_1); 
 if ( !(M4IsTesting()) && !(M4IsOptimization()) )
 {Global_10_a_167.Destroy();
 }
 if ( M4IsTesting() || M4IsOptimization() )   return;
 M4ObjectsDeleteAll(0,-1); 
 }

 int lizong_10( int Para_0_in)
 {

 switch(Para_0_in)
 {
   case 0 :
   return(0); 
   case 1 :
   return(1); 
   case 5 :
   return(5); 
   case 15 :
   return(15); 
   case 30 :
   return(30); 
   case 60 :
   return(60); 
   case 240 :
   return(240); 
   case 1440 :
   return(1440); 
   case 10080 :
   return(10080); 
   case 43200 :
   return(43200); 
 }
 return(0); 
 }

 string lizong_11( int Para_0_in)
 {
  int       Local_1_in = 0;
  string    Local_2_st;

 string     tmp_st_1;

 if ( Para_0_in == -1 )
 {
   Local_1_in = M4GetLastError() ;
 }
 else
 {
   Local_1_in = Para_0_in ;
 }
 Local_2_st = " Err.code=" + IntegerToString(Local_1_in,0,32) + ": " ;
 switch(Local_1_in)
 {
   case 0 :
   tmp_st_1 = Local_2_st + "No error returned";
   return(tmp_st_1);
   case 1 :
   tmp_st_1 = Local_2_st + "No error returned, but the result is unknown";
   return(tmp_st_1);
   case 2 :
   tmp_st_1 = Local_2_st + "Common error";
   return(tmp_st_1);
   case 3 :
   tmp_st_1 = Local_2_st + "Invalid trade parameters";
   return(tmp_st_1);
   case 4 :
   tmp_st_1 = Local_2_st + "Trade server is busy";
   return(tmp_st_1);
   case 5 :
   tmp_st_1 = Local_2_st + "Old version of the client terminal";
   return(tmp_st_1);
   case 6 :
   tmp_st_1 = Local_2_st + "No connection with trade server";
   return(tmp_st_1);
   case 7 :
   tmp_st_1 = Local_2_st + "Not enough rights";
   return(tmp_st_1);
   case 8 :
   tmp_st_1 = Local_2_st + "Too frequent requests";
   return(tmp_st_1);
   case 9 :
   tmp_st_1 = Local_2_st + "Malfunctional trade operation";
   return(tmp_st_1);
   case 64 :
   tmp_st_1 = Local_2_st + "Account disabled";
   return(tmp_st_1);
   case 65 :
   tmp_st_1 = Local_2_st + "Invalid account";
   return(tmp_st_1);
   case 128 :
   tmp_st_1 = Local_2_st + "Trade timeout";
   return(tmp_st_1);
   case 129 :
   tmp_st_1 = Local_2_st + "Invalid price";
   return(tmp_st_1);
   case 130 :
   tmp_st_1 = Local_2_st + "Invalid stops";
   return(tmp_st_1);
   case 131 :
   tmp_st_1 = Local_2_st + "Invalid trade volume";
   return(tmp_st_1);
   case 132 :
   tmp_st_1 = Local_2_st + "Market is closed";
   return(tmp_st_1);
   case 133 :
   tmp_st_1 = Local_2_st + "Trade is disabled";
   return(tmp_st_1);
   case 134 :
   tmp_st_1 = Local_2_st + "Not enough money";
   return(tmp_st_1);
   case 135 :
   tmp_st_1 = Local_2_st + "Price changed";
   return(tmp_st_1);
   case 136 :
   tmp_st_1 = Local_2_st + "Off quotes";
   return(tmp_st_1);
   case 137 :
   tmp_st_1 = Local_2_st + "Broker is busy";
   return(tmp_st_1);
   case 138 :
   tmp_st_1 = Local_2_st + "Requote";
   return(tmp_st_1);
   case 139 :
   tmp_st_1 = Local_2_st + "Order is locked";
   return(tmp_st_1);
   case 140 :
   tmp_st_1 = Local_2_st + "Buy orders only allowed";
   return(tmp_st_1);
   case 141 :
   tmp_st_1 = Local_2_st + "Too many requests";
   return(tmp_st_1);
   case 145 :
   tmp_st_1 = Local_2_st + "Modification denied because order is too close to market";
   return(tmp_st_1);
   case 146 :
   tmp_st_1 = Local_2_st + "Trade context is busy";
   return(tmp_st_1);
   case 147 :
   tmp_st_1 = Local_2_st + "Expirations are denied by broker";
   return(tmp_st_1);
   case 148 :
   tmp_st_1 = Local_2_st + "The amount of open and pending orders has reached the limit set by the broker";
   return(tmp_st_1);
   case 149 :
   tmp_st_1 = Local_2_st + "An attempt to open an order opposite to the existing one when hedging is disabled";
   return(tmp_st_1);
   case 150 :
   tmp_st_1 = Local_2_st + "An attempt to close an order contravening the FIFO rule";
   return(tmp_st_1);
   case 4000 :
   tmp_st_1 = Local_2_st + "No error returned";
   return(tmp_st_1);
   case 4001 :
   tmp_st_1 = Local_2_st + "Wrong function pointer";
   return(tmp_st_1);
   case 4002 :
   tmp_st_1 = Local_2_st + "Array index is out of range";
   return(tmp_st_1);
   case 4003 :
   tmp_st_1 = Local_2_st + "No memory for function call stack";
   return(tmp_st_1);
   case 4004 :
   tmp_st_1 = Local_2_st + "Recursive stack overflow";
   return(tmp_st_1);
   case 4005 :
   tmp_st_1 = Local_2_st + "Not enough stack for parameter";
   return(tmp_st_1);
   case 4006 :
   tmp_st_1 = Local_2_st + "No memory for parameter string";
   return(tmp_st_1);
   case 4007 :
   tmp_st_1 = Local_2_st + "No memory for temp string";
   return(tmp_st_1);
   case 4008 :
   tmp_st_1 = Local_2_st + "Not initialized string";
   return(tmp_st_1);
   case 4009 :
   tmp_st_1 = Local_2_st + "Not initialized string in array";
   return(tmp_st_1);
   case 4010 :
   tmp_st_1 = Local_2_st + "No memory for array string";
   return(tmp_st_1);
   case 4011 :
   tmp_st_1 = Local_2_st + "Too long string";
   return(tmp_st_1);
   case 4012 :
   tmp_st_1 = Local_2_st + "Remainder from zero divide";
   return(tmp_st_1);
   case 4013 :
   tmp_st_1 = Local_2_st + "Zero divide";
   return(tmp_st_1);
   case 4014 :
   tmp_st_1 = Local_2_st + "Unknown command";
   return(tmp_st_1);
   case 4015 :
   tmp_st_1 = Local_2_st + "Wrong jump (never generated error)";
   return(tmp_st_1);
   case 4016 :
   tmp_st_1 = Local_2_st + "Not initialized array";
   return(tmp_st_1);
   case 4017 :
   tmp_st_1 = Local_2_st + "DLL calls are not allowed";
   return(tmp_st_1);
   case 4018 :
   tmp_st_1 = Local_2_st + "Cannot load library";
   return(tmp_st_1);
   case 4019 :
   tmp_st_1 = Local_2_st + "Cannot call function";
   return(tmp_st_1);
   case 4020 :
   tmp_st_1 = Local_2_st + "Expert function calls are not allowed";
   return(tmp_st_1);
   case 4021 :
   tmp_st_1 = Local_2_st + "Not enough memory for temp string returned from function";
   return(tmp_st_1);
   case 4022 :
   tmp_st_1 = Local_2_st + " System is busy (never generated error)";
   return(tmp_st_1);
   case 4023 :
   tmp_st_1 = Local_2_st + "DLL-function call critical error";
   return(tmp_st_1);
   case 4024 :
   tmp_st_1 = Local_2_st + "Internal error";
   return(tmp_st_1);
   case 4025 :
   tmp_st_1 = Local_2_st + "Out of memory";
   return(tmp_st_1);
   case 4026 :
   tmp_st_1 = Local_2_st + "Invalid pointer";
   return(tmp_st_1);
   case 4027 :
   tmp_st_1 = Local_2_st + "Too many formatters in the format function";
   return(tmp_st_1);
   case 4028 :
   tmp_st_1 = Local_2_st + "Parameters count exceeds formatters count";
   return(tmp_st_1);
   case 4029 :
   tmp_st_1 = Local_2_st + "Invalid array";
   return(tmp_st_1);
   case 4030 :
   tmp_st_1 = Local_2_st + "No reply from chart";
   return(tmp_st_1);
   case 4050 :
   tmp_st_1 = Local_2_st + "Invalid function parameters count";
   return(tmp_st_1);
   case 4051 :
   tmp_st_1 = Local_2_st + "Invalid function parameter value";
   return(tmp_st_1);
   case 4052 :
   tmp_st_1 = Local_2_st + "String function internal error";
   return(tmp_st_1);
   case 4053 :
   tmp_st_1 = Local_2_st + "Some array error";
   return(tmp_st_1);
   case 4054 :
   tmp_st_1 = Local_2_st + "Incorrect series array using";
   return(tmp_st_1);
   case 4055 :
   tmp_st_1 = Local_2_st + "Custom indicator error";
   return(tmp_st_1);
   case 4056 :
   tmp_st_1 = Local_2_st + "Arrays are incompatible";
   return(tmp_st_1);
   case 4057 :
   tmp_st_1 = Local_2_st + "Global variables processing error";
   return(tmp_st_1);
   case 4058 :
   tmp_st_1 = Local_2_st + "Global variable not found";
   return(tmp_st_1);
   case 4059 :
   tmp_st_1 = Local_2_st + "Function is not allowed in testing mode";
   return(tmp_st_1);
   case 4060 :
   tmp_st_1 = Local_2_st + "Function is not allowed for call";
   return(tmp_st_1);
   case 4061 :
   tmp_st_1 = Local_2_st + "Send mail error";
   return(tmp_st_1);
   case 4062 :
   tmp_st_1 = Local_2_st + "String parameter expected";
   return(tmp_st_1);
   case 4063 :
   tmp_st_1 = Local_2_st + "Integer parameter expected";
   return(tmp_st_1);
   case 4064 :
   tmp_st_1 = Local_2_st + "Double parameter expected";
   return(tmp_st_1);
   case 4065 :
   tmp_st_1 = Local_2_st + "Array as parameter expected";
   return(tmp_st_1);
   case 4066 :
   tmp_st_1 = Local_2_st + "Requested history data is in updating state";
   return(tmp_st_1);
   case 4067 :
   tmp_st_1 = Local_2_st + "Internal trade error";
   return(tmp_st_1);
   case 4068 :
   tmp_st_1 = Local_2_st + "Resource not found";
   return(tmp_st_1);
   case 4069 :
   tmp_st_1 = Local_2_st + "Resource not supported";
   return(tmp_st_1);
   case 4070 :
   tmp_st_1 = Local_2_st + "Duplicate resource";
   return(tmp_st_1);
   case 4071 :
   tmp_st_1 = Local_2_st + "Custom indicator cannot initialize";
   return(tmp_st_1);
   case 4072 :
   tmp_st_1 = Local_2_st + "Cannot load custom indicator";
   return(tmp_st_1);
   case 4073 :
   tmp_st_1 = Local_2_st + "No history data";
   return(tmp_st_1);
   case 4074 :
   tmp_st_1 = Local_2_st + "No memory for history data";
   return(tmp_st_1);
   case 4075 :
   tmp_st_1 = Local_2_st + "Not enough memory for indicator calculation";
   return(tmp_st_1);
   case 4099 :
   tmp_st_1 = Local_2_st + "End of file";
   return(tmp_st_1);
   case 4100 :
   tmp_st_1 = Local_2_st + "Some file error";
   return(tmp_st_1);
   case 4101 :
   tmp_st_1 = Local_2_st + "Wrong file name";
   return(tmp_st_1);
   case 4102 :
   tmp_st_1 = Local_2_st + "Too many opened files";
   return(tmp_st_1);
   case 4103 :
   tmp_st_1 = Local_2_st + "Cannot open file";
   return(tmp_st_1);
   case 4104 :
   tmp_st_1 = Local_2_st + "Incompatible access to a file";
   return(tmp_st_1);
   case 4105 :
   tmp_st_1 = Local_2_st + "No order selected";
   return(tmp_st_1);
   case 4106 :
   tmp_st_1 = Local_2_st + "Unknown symbol";
   return(tmp_st_1);
   case 4107 :
   tmp_st_1 = Local_2_st + "Invalid price";
   return(tmp_st_1);
   case 4108 :
   tmp_st_1 = Local_2_st + "Invalid ticket";
   return(tmp_st_1);
   case 4109 :
   tmp_st_1 = Local_2_st + "Trade is not allowed. Enable checkbox \'Allow live trading\' in the Expert Advisor properties";
   return(tmp_st_1);
   case 4110 :
   tmp_st_1 = Local_2_st + "Longs are not allowed. Check the Expert Advisor properties";
   return(tmp_st_1);
   case 4111 :
   tmp_st_1 = Local_2_st + "Shorts are not allowed. Check the Expert Advisor properties";
   return(tmp_st_1);
   case 4112 :
   tmp_st_1 = Local_2_st + "Automated trading by Expert Advisors/Scripts disabled by trade server";
   return(tmp_st_1);
   case 4200 :
   tmp_st_1 = Local_2_st + "Object already exists";
   return(tmp_st_1);
   case 4201 :
   tmp_st_1 = Local_2_st + "Unknown object property";
   return(tmp_st_1);
   case 4202 :
   tmp_st_1 = Local_2_st + "Object does not exist";
   return(tmp_st_1);
   case 4203 :
   tmp_st_1 = Local_2_st + "Unknown object type";
   return(tmp_st_1);
   case 4204 :
   tmp_st_1 = Local_2_st + "No object name";
   return(tmp_st_1);
   case 4205 :
   tmp_st_1 = Local_2_st + "Object coordinates error";
   return(tmp_st_1);
   case 4206 :
   tmp_st_1 = Local_2_st + "No specified subwindow";
   return(tmp_st_1);
   case 4207 :
   tmp_st_1 = Local_2_st + "Graphical object error";
   return(tmp_st_1);
   case 4210 :
   tmp_st_1 = Local_2_st + "Unknown chart property";
   return(tmp_st_1);
   case 4211 :
   tmp_st_1 = Local_2_st + "Chart not found";
   return(tmp_st_1);
   case 4212 :
   tmp_st_1 = Local_2_st + "Chart subwindow not found";
   return(tmp_st_1);
   case 4213 :
   tmp_st_1 = Local_2_st + "Chart indicator not found";
   return(tmp_st_1);
   case 4220 :
   tmp_st_1 = Local_2_st + "Symbol select error";
   return(tmp_st_1);
   case 4250 :
   tmp_st_1 = Local_2_st + "Notification error";
   return(tmp_st_1);
   case 4251 :
   tmp_st_1 = Local_2_st + "Notification parameter error";
   return(tmp_st_1);
   case 4252 :
   tmp_st_1 = Local_2_st + "Notifications disabled";
   return(tmp_st_1);
   case 4253 :
   tmp_st_1 = Local_2_st + "Notification send too frequent";
   return(tmp_st_1);
   case 4260 :
   tmp_st_1 = Local_2_st + "FTP server is not specified";
   return(tmp_st_1);
   case 4261 :
   tmp_st_1 = Local_2_st + "FTP login is not specified";
   return(tmp_st_1);
   case 4262 :
   tmp_st_1 = Local_2_st + "FTP connection failed";
   return(tmp_st_1);
   case 4263 :
   tmp_st_1 = Local_2_st + "FTP connection closed";
   return(tmp_st_1);
   case 4264 :
   tmp_st_1 = Local_2_st + "FTP path not found on server";
   return(tmp_st_1);
   case 4265 :
   tmp_st_1 = Local_2_st + "File not found in the MQL4\\Files directory to send on FTP server";
   return(tmp_st_1);
   case 4266 :
   tmp_st_1 = Local_2_st + "Common error during FTP data transmission";
   return(tmp_st_1);
   case 5001 :
   tmp_st_1 = Local_2_st + "Too many opened files";
   return(tmp_st_1);
   case 5002 :
   tmp_st_1 = Local_2_st + "Wrong file name";
   return(tmp_st_1);
   case 5003 :
   tmp_st_1 = Local_2_st + "Too long file name";
   return(tmp_st_1);
   case 5004 :
   tmp_st_1 = Local_2_st + "Cannot open file";
   return(tmp_st_1);
   case 5005 :
   tmp_st_1 = Local_2_st + "Text file buffer allocation error";
   return(tmp_st_1);
   case 5006 :
   tmp_st_1 = Local_2_st + "Cannot delete file";
   return(tmp_st_1);
   case 5007 :
   tmp_st_1 = Local_2_st + "Invalid file handle (file closed or was not opened)";
   return(tmp_st_1);
   case 5008 :
   tmp_st_1 = Local_2_st + "Wrong file handle (handle index is out of handle table)";
   return(tmp_st_1);
   case 5009 :
   tmp_st_1 = Local_2_st + "File must be opened with FILE_WRITE flag";
   return(tmp_st_1);
   case 5010 :
   tmp_st_1 = Local_2_st + "File must be opened with FILE_READ flag";
   return(tmp_st_1);
   case 5011 :
   tmp_st_1 = Local_2_st + "File must be opened with FILE_BIN flag";
   return(tmp_st_1);
   case 5012 :
   tmp_st_1 = Local_2_st + "File must be opened with FILE_TXT flag";
   return(tmp_st_1);
   case 5013 :
   tmp_st_1 = Local_2_st + "File must be opened with FILE_TXT or FILE_CSV flag";
   return(tmp_st_1);
   case 5014 :
   tmp_st_1 = Local_2_st + "File must be opened with FILE_CSV flag";
   return(tmp_st_1);
   case 5015 :
   tmp_st_1 = Local_2_st + "File read error";
   return(tmp_st_1);
   case 5016 :
   tmp_st_1 = Local_2_st + "File write error";
   return(tmp_st_1);
   case 5017 :
   tmp_st_1 = Local_2_st + "String size must be specified for binary file";
   return(tmp_st_1);
   case 5018 :
   tmp_st_1 = Local_2_st + "Incompatible file (for string arrays-TXT, for others-BIN)";
   return(tmp_st_1);
   case 5019 :
   tmp_st_1 = Local_2_st + "File is directory not file";
   return(tmp_st_1);
   case 5020 :
   tmp_st_1 = Local_2_st + "File does not exist";
   return(tmp_st_1);
   case 5021 :
   tmp_st_1 = Local_2_st + "File cannot be rewritten";
   return(tmp_st_1);
   case 5022 :
   tmp_st_1 = Local_2_st + "Wrong directory name";
   return(tmp_st_1);
   case 5023 :
   tmp_st_1 = Local_2_st + "Directory does not exist";
   return(tmp_st_1);
   case 5024 :
   tmp_st_1 = Local_2_st + "Specified file is not directory";
   return(tmp_st_1);
   case 5025 :
   tmp_st_1 = Local_2_st + "Cannot delete directory";
   return(tmp_st_1);
   case 5026 :
   tmp_st_1 = Local_2_st + "Cannot clean directory";
   return(tmp_st_1);
   case 5027 :
   tmp_st_1 = Local_2_st + "Array resize error";
   return(tmp_st_1);
   case 5028 :
   tmp_st_1 = Local_2_st + "String resize error";
   return(tmp_st_1);
   case 5029 :
   tmp_st_1 = Local_2_st + "Structure contains strings or dynamic arrays";
   return(tmp_st_1);
   case 5200 :
   tmp_st_1 = Local_2_st + "Invalid URL";
   return(tmp_st_1);
   case 5201 :
   tmp_st_1 = Local_2_st + "Failed to connect to specified URL";
   return(tmp_st_1);
   case 5202 :
   tmp_st_1 = Local_2_st + "Timeout exceeded";
   return(tmp_st_1);
   case 5203 :
   tmp_st_1 = Local_2_st + "HTTP request failed";
   return(tmp_st_1);
 }
 tmp_st_1 = Local_2_st + "Unknown error number";
 return(tmp_st_1);
 }

 bool CCanvasX::CCanvasX_12( string Para_0_st)
 {

  int       Local_3_in;
  string    Local_4_st;
  int       Local_5_in;
  int       Local_6_in = 0;
  int       Local_7_in = 0;
  int       Local_8_in = 0;
  int       Local_9_in = 0;

 Local_5_in = -1 ;
 Local_4_st = "" ;
 Local_3_in = 32 ;
 uint resource_width=(uint)MathMax(0,m_width);
 uint resource_height=(uint)MathMax(0,m_height);
 bool resource_ok=ResourceReadImage(Para_0_st,m_pixels,resource_width,resource_height);
 if(resource_ok)
 {
   m_width=(int)resource_width;
   m_height=(int)resource_height;
 }
 if ( !resource_ok )
 {
    if ( Local_5_in != -1 )
   {
     FileClose(Local_5_in); 
     Local_5_in = -1 ;
     Local_4_st = "" ;
     Local_3_in &=96;
   }
   ; 
 }

 if ( Local_5_in != -1 )
 {
   FileClose(Local_5_in); 
   Local_5_in = -1 ;
   Local_4_st = "" ;
   Local_3_in &=96;
 }
 return(true); 
 }

 void SymbolInformation::SymbolInformation_13()
 {
 }

 void SymbolInformation::SymbolInformation_14()
 {
 }

 void SymbolInformation::SymbolInformation_15()
 {
 SymbolInformation_13(); 
 SymbolInformation_14(); 
 }

 SymbolInformation::~SymbolInformation()
 {
/*
*/
 }

 void CutTrade::CutTrade_17()
 {
 }

 void CutTrade::CutTrade_18()
 {
 }

 void CutTrade::CutTrade_19()
 {
 CutTrade_17(); 
 CutTrade_18(); 
 }

 CutTrade::~CutTrade()
 {
/*
*/
 }

 bool lizong_21( string Para_0_st,int Para_1_in,int Para_2_in)
 {

  bool      Local_2_bo = false;
  int       Local_3_in;
  int       Local_4_in;
  int       Local_5_in;
  int       Local_6_in;
  int       Local_7_in;
  int       Local_8_in;
  int       Local_9_in;
  int       Local_10_in;
  int       Local_11_in;
  int       Local_12_in;
  int       Local_13_in;
  int       Local_14_in;
  string    Local_15_st;
  int       Local_16_in;
  int       Local_17_in;

 int        tmp_in_1;
 int        tmp_in_2;
 int        tmp_in_3;
 int        tmp_in_4;

 Local_3_in=Global_24_in + UID;
 Local_4_in=StringLen(IntegerToString(Local_3_in,0,32)); 
 Local_5_in=Local_3_in + int(MathPow(10.0,Local_4_in));
 Local_6_in=Local_3_in + int(MathPow(10.0,Local_4_in)) * 2;
 Local_7_in = -1 ;
 Local_8_in = -1 ;
 Local_9_in = -1 ;
 Local_10_in = -1 ;
 Local_11_in = -1 ;
 Local_12_in = -1 ;
 if ( Para_2_in == 1 )
 {
   Local_7_in = 0 ;
   Local_8_in = 0 ;
   if ( Para_1_in >= 0 )
   {
     Local_9_in=int(MathPow(10.0,StringLen(IntegerToString(Local_3_in,0,32))  + 2)) + Local_3_in * 100 + Para_1_in;
     Local_10_in = Local_9_in ;
   }
   else
   {
     Local_11_in = Local_5_in ;
     Local_12_in = Local_5_in ;
   }
 }
 if ( Para_2_in == -1 )
 {
   Local_7_in = 1 ;
   Local_8_in = 1 ;
   if ( Para_1_in >= 0 )
   {
     Local_9_in=(int(MathPow(10.0,StringLen(IntegerToString(Global_24_in + UID,0,32))  + 2))) * 2 + (Global_24_in + UID) * 100 + Para_1_in;
     Local_10_in = Local_9_in ;
   }
   else
   {
     Local_11_in = Local_6_in ;
     Local_12_in = Local_6_in ;
   }
 }
 if ( Para_2_in == 0 )
 {
   Local_7_in = 0 ;
   Local_8_in = 1 ;
   if ( Para_1_in >= 0 )
   {
     Local_9_in=int(MathPow(10.0,StringLen(IntegerToString(Global_24_in + UID,0,32))  + 2)) + (Global_24_in + UID) * 100 + Para_1_in;
     if ( Para_1_in <  0 )
     {
       tmp_in_1 = -1;
     }
     else
     {
       tmp_in_2 = Global_24_in + UID;
       tmp_in_3 = StringLen(IntegerToString(tmp_in_2,0,32)) ;
       tmp_in_4 = 0;
       if ( -1 == 1 )
       {
         tmp_in_4 = 1;
       }
       if ( -1 == -1 )
       {
         tmp_in_4 = 2;
       }
       tmp_in_1 = int(MathPow(10.0,tmp_in_3 + 2)) * tmp_in_4 + tmp_in_2 * 100 + Para_1_in;
     }
     Local_10_in = tmp_in_1 ;
   }
   else
   {
     Local_11_in = Local_5_in ;
     Local_12_in = Local_6_in ;
   }
 }
 for (Local_13_in = 0 ; Local_13_in < M4OrdersTotal() ; Local_13_in ++)
 {
   if ( M4OrderSelect(Local_13_in,0,0) )
   {
     Local_14_in = M4OrderType() ;
     Local_15_st = M4OrderSymbol() ;
     Local_16_in = M4OrderMagicNumber() ;
     Local_17_in=Local_16_in / 100;
     if ( Para_1_in >= 0 && Local_15_st == Para_0_st && ( ( Local_16_in == Local_9_in && Local_14_in == Local_7_in ) || (Local_16_in == Local_10_in && Local_14_in == Local_8_in) ) )
     {
       return(true); 
     }
     if ( Para_1_in <  0 && Local_15_st == Para_0_st && ( ( Local_17_in == Local_11_in && Local_14_in == Local_7_in ) || (Local_17_in == Local_12_in && Local_14_in == Local_8_in) ) )
     {
       return(true); 
     }
   }
   else
   {
     Print(TradeComment + " " + Para_0_st,": Failed to select an order! Error=",lizong_11(M4GetLastError())); 
     Local_2_bo = true ;
   }
 }
 return(Local_2_bo); 
 }

 double lizong_22( string Para_0_st,int Para_1_in,int Para_2_in)
 {

  double    Local_2_do = 0.0;
  int       Local_3_in;
  int       Local_4_in;
  double    Local_5_do;
  double    Local_6_do;
  int       Local_7_in;
  int       Local_8_in;
  string    Local_9_st;
  int       Local_10_in;
  double    Local_11_do;
  double    Local_12_do;

 int        tmp_in_1;
 int        tmp_in_2;
 int        tmp_in_3;
 int        tmp_in_4;
 int        tmp_in_5;

 tmp_in_1 = Para_2_in;
 if ( Para_1_in <  0 )
 {
   tmp_in_2 = -1;
 }
 else
 {
   tmp_in_3 = Global_24_in + UID;
   tmp_in_4 = StringLen(IntegerToString(tmp_in_3,0,32)) ;
   tmp_in_5 = 0;
   if ( tmp_in_1 == 1 )
   {
     tmp_in_5 = 1;
   }
   if ( tmp_in_1 == -1 )
   {
     tmp_in_5 = 2;
   }
   tmp_in_2 = int(MathPow(10.0,tmp_in_4 + 2)) * tmp_in_5 + tmp_in_3 * 100 + Para_1_in;
 }
 Local_3_in = tmp_in_2 ;
 Local_4_in = -1 ;
 if ( Para_2_in == 1 )
 {
   Local_4_in = 0 ;
 }
 if ( Para_2_in == -1 )
 {
   Local_4_in = 1 ;
 }
 Local_5_do = 0.0 ;
 Local_6_do = 0.0 ;
 for (Local_7_in = 0 ; Local_7_in < M4OrdersTotal() ; Local_7_in ++)
 {
   if ( M4OrderSelect(Local_7_in,0,0) )
   {
     Local_8_in = M4OrderType() ;
     Local_9_st = M4OrderSymbol() ;
     Local_10_in = M4OrderMagicNumber() ;
     Local_11_do = M4OrderOpenPrice() ;
     Local_12_do = M4OrderLots() ;
     if ( Local_9_st == Para_0_st && Local_10_in == Local_3_in && Local_8_in == Local_4_in )
     {
       Local_6_do = Local_11_do * Local_12_do + Local_6_do ;
       Local_5_do = Local_5_do + Local_12_do ;
       if ( !(AutoSplit) )
       {
         break;
       }
     }
   }
   else
   {
     Print(TradeComment + " " + Para_0_st,": Failed to select an order! Error=",lizong_11(M4GetLastError())); 
   }
 }
 if ( Local_5_do>Global_25_do )
 {
   Local_2_do = Local_6_do / Local_5_do ;
 }
 return(Local_2_do); 
 }

 double lizong_23( string Para_0_st,int Para_1_in,bool Para_2_bo,bool Para_3_bo)
 {

  double    Local_2_do = 0.0;
  double    Local_3_do = 0.0;
  double    Local_4_do = 0.0;
  int       Local_5_in;
  int       Local_6_in;
  int       Local_7_in;
  int       Local_8_in;
  double    Local_9_do;
  int       Local_10_in;
  string    Local_11_st;
  int       Local_12_in;
  int       Local_13_in;
  double    Local_14_do;
  int   Local_15_do;
  double    Local_16_do;
  int       Local_17_in;
  int       Local_18_in;
  string    Local_19_st;
  int       Local_20_in;
  double    Local_21_do;
  double    Local_22_do;
  double    Local_23_do;
  double    Local_24_do;
  int    Local_25_do;

 int        tmp_in_1;
 double     tmp_do_2;
 int        tmp_in_3;
 double     tmp_do_4;
 int        tmp_in_5;
 double     tmp_do_6;
 double     tmp_do_7;
 int        tmp_in_8;
 double     tmp_do_9;
 int        tmp_in_10;
 double     tmp_do_11;
 int        tmp_in_12;
 double     tmp_do_13;
 int        tmp_in_14;

 Local_5_in=Global_24_in + UID;
 Local_6_in=StringLen(IntegerToString(Local_5_in,0,32)); 
 Local_7_in = 0 ;
 Local_8_in = -1 ;
 if ( Para_1_in == 1 )
 {
   Local_8_in = 0 ;
   Local_7_in = 1 ;
 }
 if ( Para_1_in == -1 )
 {
   Local_8_in = 1 ;
   Local_7_in = 2 ;
 }
 Local_9_do = 0.0 ;
 if ( KeepOriginalProfitLotSize && Para_3_bo && GridLevelToStart >  1 && !(AutoSplit) )
 {
   for (Local_10_in = 0 ; Local_10_in < M4OrdersTotal() ; Local_10_in ++)
   {
     if ( M4OrderSelect(Local_10_in,0,0) )
     {
       Local_11_st = M4OrderSymbol() ;
       Local_12_in = M4OrderType() ;
       Local_13_in = M4OrderMagicNumber() ;
       Local_14_do = M4OrderLots() ;
       if ( Local_11_st == Para_0_st && Local_13_in / 100 == Local_5_in + int(MathPow(10.0,Local_6_in)) * Local_7_in && Local_12_in == Local_8_in )
       {
         Local_15_do=Local_13_in - Local_13_in / 100 * 100;
         if ( Local_15_do >= GridLevelToStart - 1 && Local_14_do>Global_25_do )
         {
           Local_9_do = Local_14_do ;
           tmp_in_1 = Local_15_do;
           tmp_do_2 = 1.0;
           for (tmp_in_3 = 1 ; tmp_in_3 <= tmp_in_1 ; tmp_in_3=tmp_in_3 + 1)
           {
             if ( tmp_in_3 == 1 )
             {
               tmp_do_2 = TradeMultiplier_2nd;
             }
             if ( tmp_in_3 >= 2 && tmp_in_3 <= 4 )
             {
               tmp_do_2 = tmp_do_2 * TradeMultiplier_3rd;
             }
             if ( tmp_in_3 >= 5 )
             {
               tmp_do_2 = tmp_do_2 * TradeMultiplier_6th;
             }
           }
           Local_16_do = tmp_do_2 ;
           if ( Local_16_do>Global_25_do )
           {
             Local_9_do = Local_9_do / Local_16_do ;
           }
           if ( Local_9_do>Global_25_do )
           {
             break;
           }
         }
       }
     }
     else
     {
       Print(TradeComment + " " + Para_0_st,": Failed to select an order! Error=",lizong_11(M4GetLastError())); 
     }
   }
 }
 for (Local_17_in = 0 ; Local_17_in < M4OrdersTotal() ; Local_17_in ++)
 {
   if ( M4OrderSelect(Local_17_in,0,0) )
   {
     Local_18_in = M4OrderType() ;
     Local_19_st = M4OrderSymbol() ;
     Local_20_in = M4OrderMagicNumber() ;
     Local_21_do = M4OrderLots() ;
     Local_22_do = M4OrderOpenPrice() ;
     if ( Local_19_st == Para_0_st && Local_20_in / 100 == Local_5_in + int(MathPow(10.0,Local_6_in)) * Local_7_in && Local_18_in == Local_8_in )
     {
       Local_23_do = Local_22_do ;
       if ( Para_2_bo )
       {
         tmp_do_4 = 0.0;
         if ( M4MarketInfo(Para_0_st,16) * Local_21_do>Global_25_do )
         {
           tmp_in_5 = (int)M4MarketInfo(Para_0_st,12);
           tmp_do_6 = (M4OrderCommission() + M4OrderSwap()) / (M4MarketInfo(Para_0_st,16) * Local_21_do);
           if ( M4MarketInfo(Para_0_st,11)>Global_25_do )
           {
             tmp_do_7 = M4MarketInfo(Para_0_st,11);
           }
           else
           {
             tmp_do_7 = 0.00001;
           }
           tmp_do_6 = tmp_do_6 * tmp_do_7;
           tmp_do_4 = NormalizeDouble(tmp_do_6,tmp_in_5);
         }
         Local_24_do = tmp_do_4 ;
         if ( Para_1_in == 1 )
         {
           tmp_in_8 = (int)M4MarketInfo(Para_0_st,12);
           if ( M4MarketInfo(Para_0_st,11)>Global_25_do )
           {
             tmp_do_9 = M4MarketInfo(Para_0_st,11);
           }
           else
           {
             tmp_do_9 = 0.00001;
           }
           Local_23_do = NormalizeDouble(Local_22_do + tmp_do_9 - Local_24_do,tmp_in_8) ;
         }
         if ( Para_1_in == -1 )
         {
           tmp_in_10 = (int)M4MarketInfo(Para_0_st,12);
           if ( M4MarketInfo(Para_0_st,11)>Global_25_do )
           {
             tmp_do_11 = M4MarketInfo(Para_0_st,11);
           }
           else
           {
             tmp_do_11 = 0.00001;
           }
           Local_23_do = NormalizeDouble(Local_22_do - tmp_do_11 + Local_24_do,tmp_in_10) ;
         }
       }
       if ( KeepOriginalProfitLotSize && Para_3_bo && GridLevelToStart >  1 && Local_9_do>Global_25_do && !(AutoSplit) )
       {
         Local_25_do=Local_20_in - Local_20_in / 100 * 100;
         if ( Local_25_do == 0 )
         {
           Local_21_do = Local_9_do ;
         }
         if ( Local_25_do >  0 )
         {
           tmp_in_12 = Local_25_do;
           tmp_do_13 = 1.0;
           for (tmp_in_14 = 1 ; tmp_in_14 <= tmp_in_12 ; tmp_in_14=tmp_in_14 + 1)
           {
             if ( tmp_in_14 == 1 )
             {
               tmp_do_13 = TradeMultiplier_2nd;
             }
             if ( tmp_in_14 >= 2 && tmp_in_14 <= 4 )
             {
               tmp_do_13 = tmp_do_13 * TradeMultiplier_3rd;
             }
             if ( tmp_in_14 >= 5 )
             {
               tmp_do_13 = tmp_do_13 * TradeMultiplier_6th;
             }
           }
           Local_21_do = Local_9_do * tmp_do_13 ;
         }
       }
       Local_3_do = Local_23_do * Local_21_do + Local_3_do ;
       Local_4_do = Local_4_do + Local_21_do ;
     }
   }
   else
   {
     Print(TradeComment + " " + Para_0_st,": Failed to select an order! Error=",lizong_11(M4GetLastError())); 
   }
 }
 if ( Local_4_do>Global_25_do )
 {
   Local_2_do = Local_3_do / Local_4_do ;
 }
 Local_2_do = NormalizeDouble(Local_2_do,(int)M4MarketInfo(Para_0_st,12)) ;
 return(Local_2_do); 
 }

 double lizong_24( string Para_0_st,int Para_1_in,int Para_2_in,bool Para_3_bo)
 {

  double    Local_2_do = 0.0;
  int       Local_3_in;
  int       Local_4_in;
  int       Local_5_in;
  int       Local_6_in;
  int       Local_7_in;
  int       Local_8_in;
  int       Local_9_in;
  int       Local_10_in;
  int       Local_11_in;
  int       Local_12_in;
  int       Local_13_in;
  int       Local_14_in;
  double    Local_15_do;
  int       Local_16_in;
  int       Local_17_in;
  string    Local_18_st;
  int       Local_19_in;
  double    Local_20_do;
  int       Local_21_in;
  int    Local_22_do;
  int    Local_23_do;

 int        tmp_in_1;
 int        tmp_in_2;
 int        tmp_in_3;
 int        tmp_in_4;
 int        tmp_in_5;
 double     tmp_do_6;
 int        tmp_in_7;
 int        tmp_in_8;
 double     tmp_do_9;
 int        tmp_in_10;

 Local_3_in=Global_24_in + UID;
 Local_4_in=StringLen(IntegerToString(Local_3_in,0,32)); 
 Local_5_in=Local_3_in + int(MathPow(10.0,Local_4_in));
 Local_6_in=Local_3_in + int(MathPow(10.0,Local_4_in)) * 2;
 Local_7_in = -1 ;
 Local_8_in = -1 ;
 Local_9_in = -1 ;
 Local_10_in = -1 ;
 Local_11_in = -1 ;
 Local_12_in = -1 ;
 if ( Para_2_in == 1 )
 {
   Local_7_in = 0 ;
   Local_8_in = 0 ;
   if ( Para_1_in >= 0 )
   {
     Local_9_in=int(MathPow(10.0,StringLen(IntegerToString(Local_3_in,0,32))  + 2)) + Local_3_in * 100 + Para_1_in;
     Local_10_in = Local_9_in ;
   }
   else
   {
     Local_11_in = Local_5_in ;
     Local_12_in = Local_5_in ;
   }
 }
 if ( Para_2_in == -1 )
 {
   Local_7_in = 1 ;
   Local_8_in = 1 ;
   if ( Para_1_in >= 0 )
   {
     Local_9_in=(int(MathPow(10.0,StringLen(IntegerToString(Global_24_in + UID,0,32))  + 2))) * 2 + (Global_24_in + UID) * 100 + Para_1_in;
     Local_10_in = Local_9_in ;
   }
   else
   {
     Local_11_in = Local_6_in ;
     Local_12_in = Local_6_in ;
   }
 }
 if ( Para_2_in == 0 )
 {
   Local_7_in = 0 ;
   Local_8_in = 1 ;
   if ( Para_1_in >= 0 )
   {
     Local_9_in=int(MathPow(10.0,StringLen(IntegerToString(Global_24_in + UID,0,32))  + 2)) + (Global_24_in + UID) * 100 + Para_1_in;
     if ( Para_1_in <  0 )
     {
       tmp_in_1 = -1;
     }
     else
     {
       tmp_in_2 = Global_24_in + UID;
       tmp_in_3 = StringLen(IntegerToString(tmp_in_2,0,32)) ;
       tmp_in_4 = 0;
       if ( -1 == 1 )
       {
         tmp_in_4 = 1;
       }
       if ( -1 == -1 )
       {
         tmp_in_4 = 2;
       }
       tmp_in_1 = int(MathPow(10.0,tmp_in_3 + 2)) * tmp_in_4 + tmp_in_2 * 100 + Para_1_in;
     }
     Local_10_in = tmp_in_1 ;
   }
   else
   {
     Local_11_in = Local_5_in ;
     Local_12_in = Local_6_in ;
   }
 }
 Local_13_in = 0 ;
 Local_14_in = -1 ;
 if ( Para_2_in == 1 )
 {
   Local_14_in = 0 ;
   Local_13_in = 1 ;
 }
 if ( Para_2_in == -1 )
 {
   Local_14_in = 1 ;
   Local_13_in = 2 ;
 }
 Local_15_do = 0.0 ;
 if ( KeepOriginalProfitLotSize && Para_3_bo && GridLevelToStart >  1 && !(AutoSplit) )
 {
   Local_15_do = 0.01 ;
 }
 for (Local_16_in = 0 ; Local_16_in < M4OrdersTotal() ; Local_16_in ++)
 {
   if ( M4OrderSelect(Local_16_in,0,0) )
   {
     Local_17_in = M4OrderType() ;
     Local_18_st = M4OrderSymbol() ;
     Local_19_in = M4OrderMagicNumber() ;
     Local_20_do = M4OrderLots() ;
     Local_21_in=Local_19_in / 100;
     if ( Para_1_in >= 0 && Local_18_st == Para_0_st && ( ( Local_19_in == Local_9_in && Local_17_in == Local_7_in ) || (Local_19_in == Local_10_in && Local_17_in == Local_8_in) ) )
     {
       if ( !(Para_3_bo) )
       {
         Local_2_do = Local_2_do + Local_20_do ;
       }
       else
       {
         if ( KeepOriginalProfitLotSize && Para_3_bo && GridLevelToStart >  1 && Local_15_do>Global_25_do && !(AutoSplit) )
         {
           Local_22_do=Local_19_in - Local_19_in / 100 * 100;
           if ( Local_22_do == 0 )
           {
             Local_20_do = Local_15_do ;
           }
           if ( Local_22_do >  0 )
           {
             tmp_in_5 = Local_22_do;
             tmp_do_6 = 1.0;
             for (tmp_in_7 = 1 ; tmp_in_7 <= tmp_in_5 ; tmp_in_7=tmp_in_7 + 1)
             {
               if ( tmp_in_7 == 1 )
               {
                 tmp_do_6 = TradeMultiplier_2nd;
               }
               if ( tmp_in_7 >= 2 && tmp_in_7 <= 4 )
               {
                 tmp_do_6 = tmp_do_6 * TradeMultiplier_3rd;
               }
               if ( tmp_in_7 >= 5 )
               {
                 tmp_do_6 = tmp_do_6 * TradeMultiplier_6th;
               }
             }
             Local_20_do = Local_15_do * tmp_do_6 ;
           }
         }
         Local_2_do = Local_2_do + Local_20_do ;
       }
       if ( !(AutoSplit) )
       {
         break;
       }
     }
     if ( Para_1_in <  0 && Local_18_st == Para_0_st && ( ( Local_21_in == Local_11_in && Local_17_in == Local_7_in ) || (Local_21_in == Local_12_in && Local_17_in == Local_8_in) ) )
     {
       if ( !(Para_3_bo) )
       {
         Local_2_do = Local_2_do + Local_20_do ;
       }
       else
       {
         if ( KeepOriginalProfitLotSize && Para_3_bo && GridLevelToStart >  1 && Local_15_do>Global_25_do && !(AutoSplit) )
         {
           Local_23_do=Local_19_in - Local_19_in / 100 * 100;
           if ( Local_23_do == 0 )
           {
             Local_20_do = Local_15_do ;
           }
           if ( Local_23_do >  0 )
           {
             tmp_in_8 = Local_23_do;
             tmp_do_9 = 1.0;
             for (tmp_in_10 = 1 ; tmp_in_10 <= tmp_in_8 ; tmp_in_10=tmp_in_10 + 1)
             {
               if ( tmp_in_10 == 1 )
               {
                 tmp_do_9 = TradeMultiplier_2nd;
               }
               if ( tmp_in_10 >= 2 && tmp_in_10 <= 4 )
               {
                 tmp_do_9 = tmp_do_9 * TradeMultiplier_3rd;
               }
               if ( tmp_in_10 >= 5 )
               {
                 tmp_do_9 = tmp_do_9 * TradeMultiplier_6th;
               }
             }
             Local_20_do = Local_15_do * tmp_do_9 ;
           }
         }
         Local_2_do = Local_2_do + Local_20_do ;
       }
     }
   }
   else
   {
     Print(TradeComment + " " + Para_0_st,": Failed to select an order! Error=",lizong_11(M4GetLastError())); 
   }
 }
 return(Local_2_do); 
 }

 void lizong_25( int Para_0_in)
 {
  string    Local_1_st;
  int       Local_2_in;
  int       Local_3_in;
  int       Local_4_in;
  int       Local_5_in;
  int       Local_6_in;
  int       Local_7_in;
  long      Local_8_in;
  int       Local_9_in;
  string    Local_10_st;
  double    Local_11_do;
  int       Local_12_in;
  double    Local_13_do;
  double    Local_14_do;
 datetime    Local_15_do;
  double    Local_16_do;
  double    Local_17_do;

 double     tmp_do_1;
 int        tmp_in_2;
 double     tmp_do_3;
 double     tmp_do_4;

 if ( M4OrdersTotal() == 0 )   return;
 Local_1_st = Global_22_a_168_ko[Para_0_in].st_1 ;
 Local_2_in=Global_24_in + UID;
 Local_3_in=StringLen(IntegerToString(Local_2_in,0,32)); 
 Local_4_in=Local_2_in + int(MathPow(10.0,Local_3_in));
 Local_5_in=Local_2_in + int(MathPow(10.0,Local_3_in)) * 2;
 if ( !(Global_29_bo) )
 {
   for (Local_6_in = 0 ; Local_6_in < 2 ; Local_6_in ++)
   {
     Local_7_in = 0 ;
     if ( M4OrdersTotal() <= 0 )   continue;

     for ( ; Local_7_in < M4OrdersTotal() ; Local_7_in ++)
     {
       if ( M4OrderSelect(Local_7_in,0,0) )
       {
         Local_8_in = M4OrderTicket() ;
         Local_9_in = M4OrderType() ;
         Local_10_st = M4OrderSymbol() ;
         Local_11_do = M4OrderLots() ;
         Local_12_in = M4OrderMagicNumber() ;
         Local_13_do = M4OrderTakeProfit() ;
         Local_14_do = M4OrderStopLoss() ;
         Local_15_do = M4OrderOpenTime() ;
         Local_16_do = M4OrderOpenPrice() ;
         tmp_do_1 = 0.0;
         if ( M4MarketInfo(Local_1_st,16) * Local_11_do>Global_25_do )
         {
           tmp_in_2 = (int)M4MarketInfo(Local_1_st,12);
           tmp_do_3 = (M4OrderCommission() + M4OrderSwap()) / (M4MarketInfo(Local_1_st,16) * Local_11_do);
           if ( M4MarketInfo(Local_1_st,11)>Global_25_do )
           {
             tmp_do_4 = M4MarketInfo(Local_1_st,11);
           }
           else
           {
             tmp_do_4 = 0.00001;
           }
           tmp_do_3 = tmp_do_3 * tmp_do_4;
           tmp_do_1 = NormalizeDouble(tmp_do_3,tmp_in_2);
         }
         Local_17_do = tmp_do_1 ;
         if ( Local_6_in == 0 && Local_9_in == 0 && Local_10_st == Local_1_st && Local_12_in / 100 == Local_4_in )
         {
           lizong_38(Para_0_in,Local_8_in,Local_9_in,Local_10_st,Local_11_do,Local_12_in,Local_13_do,
                     Local_14_do,Local_15_do,Local_16_do,Local_17_do); 
         }
         if ( Local_6_in == 1 && Local_9_in == 1 && Local_10_st == Local_1_st && Local_12_in / 100 == Local_5_in )
         {
           lizong_39(Para_0_in,Local_8_in,Local_9_in,Local_10_st,Local_11_do,Local_12_in,Local_13_do,
                     Local_14_do,Local_15_do,Local_16_do,Local_17_do); 
         }
       }
       else
       {
         Print(TradeComment + " " + Local_1_st,": Failed to select an order! Error=",lizong_11(M4GetLastError())); 
       }
     }

   }
 }
 }

 void lizong_26( int Para_0_in)
 {
  string    Local_1_st;
  int       Local_2_in;
  int       Local_3_in;
  int       Local_4_in;
  int       Local_5_in;
  int       Local_6_in;
  int       Local_7_in;
  int       Local_8_in;
  int       Local_9_in;
  long      Local_10_in;
  int       Local_11_in;
  string    Local_12_st;
  double    Local_13_do;
  int       Local_14_in;
  double    Local_15_do;
  double    Local_16_do;
  long      Local_17_lo;
  double    Local_18_do;
  bool      Local_19_bo;
  bool      Local_20_bo;

 if ( M4OrdersTotal() == 0 )   return;
 Local_1_st = Global_22_a_168_ko[Para_0_in].st_1 ;
 Local_2_in=Global_24_in + UID;
 Local_3_in=StringLen(IntegerToString(Local_2_in,0,32)); 
 Local_4_in=Local_2_in + int(MathPow(10.0,Local_3_in));
 Local_5_in=Local_2_in + int(MathPow(10.0,Local_3_in)) * 2;
 Local_6_in = M4OrdersTotal() ;
 if ( Local_6_in >  99 )
 {
   Local_6_in = 99 ;
 }
 for (Local_7_in = 0 ; Local_7_in < 2 ; Local_7_in ++)
 {
   Local_8_in = 0 ;
   if ( Local_6_in <= 0 )   continue;

   for ( ; Local_8_in < Local_6_in ; Local_8_in ++)
   {
     Local_9_in = 0 ;
     if ( M4OrdersTotal() <= 0 )   continue;

     for ( ; Local_9_in < M4OrdersTotal() ; Local_9_in ++)
     {
       if ( M4OrderSelect(Local_9_in,0,0) )
       {
         Local_10_in = M4OrderTicket() ;
         Local_11_in = M4OrderType() ;
         Local_12_st = M4OrderSymbol() ;
         Local_13_do = M4OrderLots() ;
         Local_14_in = M4OrderMagicNumber() ;
         Local_15_do = M4OrderTakeProfit() ;
         Local_16_do = M4OrderStopLoss() ;
         Local_17_lo = M4OrderOpenTime() ;
         Local_18_do = M4OrderOpenPrice() ;
         if ( Local_7_in == 0 && Local_11_in == 0 && Local_12_st == Local_1_st && Local_14_in / 100 == Local_4_in )
         {
           Local_19_bo = lizong_44(Para_0_in,Local_10_in,Local_11_in,Local_12_st,Local_13_do,Local_14_in,Local_15_do,Local_16_do,Local_17_lo,Local_18_do) ;
           if ( Local_19_bo )
           {
             break;
           }
         }
         if ( Local_7_in == 1 && Local_11_in == 1 && Local_12_st == Local_1_st && Local_14_in / 100 == Local_5_in )
         {
           Local_20_bo = lizong_45(Para_0_in,Local_10_in,Local_11_in,Local_12_st,Local_13_do,Local_14_in,Local_15_do,Local_16_do,Local_17_lo,Local_18_do) ;
           if ( Local_20_bo )
           {
             break;
           }
         }
       }
       else
       {
         Print(TradeComment + " " + Local_1_st,": Failed to select an order! Error=",lizong_11(M4GetLastError())); 
       }
     }

   }

 }
 }

 void lizong_27()
 {
  double    Local_1_do_ko[];
  int       Local_2_in;
  int       Local_3_in;

 ArrayResize(Local_1_do_ko,Global_12_in,0); 
 ArrayFill(Local_1_do_ko,0,Global_12_in,0.0);
 Local_2_in = -1 ;
 Global_19_in = -1 ;
 if ( SmartTP )
 {
   Local_2_in=-1 + 1;
   Local_1_do_ko[Local_2_in] = 58775.01158022;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 3854.012011184;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 39358.01174733;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 1269.011355758;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 56140.01164918;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 64530.01196917;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 60307.01246761;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 6648.014426477;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 45131.01330754;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 7950.01201108;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 45131.01330601;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 60854.01428551;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 65055.01297945;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 9460.013983523;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 10540.01337538;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 4544.014977765;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 248.0143470455;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 61247.0136825;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 52086.0134722;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 63574.01398307;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 47413.01467299;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 4155.014336146;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 2704.015830312;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 9089.014985123;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 45154.01433637;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 216.014348892;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 22495.01993742;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 9381.020399422;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 60747.01945847;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 65444.01670228;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 65217.01617163;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 64233.01657642;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 48506.01584509;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 33278.01883977;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 8650.017266761;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 48737.01661989;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 35446.0173142;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 55737.01834805;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 22494.01992731;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 15784.01696432;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 63403.01613634;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 42600.01646525;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 36063.01684867;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 41629.01739422;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 62737.01369688;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 45131.01330601;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 39673.0184521;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 48616.01696441;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 22822.01496536;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 9429.011354072;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 4667.014336799;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 2659.013857216;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 885.0113855871;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 60747.01481364;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 63709.01464703;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 9883.012018778;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 65481.01889697;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 6652.014425881;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 45131.01330867;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 1016.014955805;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 9460.013983523;
   Local_2_in ++;
   Local_1_do_ko[Local_2_in] = 8284.018428598;
 }
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 57309.01392841;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13471.01393551;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62737.01369688;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65243.01422747;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 18653.01429452;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12883.01589119;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17668.0156589;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61870.01519367;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 26663.01437642;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 22666.01491749;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11113.01466572;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61047.01463275;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5163.014844659;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 44787.01421445;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 40165.01459569;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 23094.01496487;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2643.015406373;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5197.014638163;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4109.014394233;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5323.01428411;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64308.01410924;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1851.013989072;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 25753.01453975;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 39664.01845956;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60744.01959539;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2651.020666013;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 29873.01918727;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64156.01948546;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7404.017344148;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56105.01633881;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64950.01613449;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 53211.01670127;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60156.01615407;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 40079.01584289;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64857.01557208;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 547.0162711932;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64866.01602218;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7149.016702509;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64370.01570261;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10444.01640047;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 57251.01603322;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63101.01634664;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2348.016326638;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 57251.01603322;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6310.011802273;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 47990.01192367;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 8555.011328002;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7442.011792083;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 19612.01145358;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1697.011001875;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 43477.0108115;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 46429.01090545;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60377.01181679;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3726.012653958;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 837.0122232008;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5164.012393892;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6717.012155909;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 59263.01198725;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16432.01451182;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63387.01420649;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13229.01392075;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 23889.01351881;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 928.0142407292;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3031.013743902;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2221.013470928;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 52513.01329229;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 36565.01402667;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 910.0137729072;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2770.013600246;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3064.013876089;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1755.013118797;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63219.01358184;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3441.013430833;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61433.01289695;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3852.013463712;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1755.012100862;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 20622.01368159;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3852.013463712;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4264.013583712;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4264.013583712;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 21333.01387241;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62934.01251469;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56687.01271473;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54267.01328379;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65375.01365708;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 31095.01427242;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64255.01373438;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48058.01300547;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61428.012654;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 35181.01479144;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63643.0154672;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 45936.01556469;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10320.01551479;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62218.01447119;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 44139.01458713;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 22822.01496536;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5196.014638125;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5315.014284631;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 627.0141667045;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2329.013082898;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 574.0145977273;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65391.01476261;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 35427.01384144;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 26273.01415376;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60782.01794053;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12492.0194133;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2452.019703333;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 59819.01618939;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61780.01628349;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65105.01662631;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61390.01535454;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60092.01615633;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64793.01557475;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 422.0161619697;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62818.01602322;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7085.016703258;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48490.0159386;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 38570.01618589;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9422.016099063;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65333.01563527;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4696.016474811;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64793.01602974;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62589.01635285;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65034.01592282;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61363.01583589;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64330.01020252;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2433.012330341;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2221.012248845;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 58964.01254474;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 49014.01192558;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63925.00960272;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 15798.01179155;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11048.01204053;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17565.01145348;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1700.011005076;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4447.011557045;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 797.0113839205;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1606.012653826;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17092.01240473;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 27297.01221147;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63359.01199056;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61811.01297195;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16416.01451531;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65435.01421039;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 23897.01352519;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2976.014242831;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2951.013743267;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 52183.01402705;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60051.01456152;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54130.01405045;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 399.0137739015;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 722.013601553;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 20910.01368195;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63218.01358308;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11571.01343113;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63300.0130937;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12456.01358552;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56265.01031179;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6840.012158352;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 26272.01298145;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3406.013386619;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12765.0118572;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9397.011358523;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64420.00960795;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 53460.00980464;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 27809.01180436;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4999.011699432;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9545.010567519;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61341.01175994;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 41941.01081364;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11418.01181061;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48975.01144347;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4479.011554545;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 8989.011381345;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60369.01182045;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3276.012656042;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17221.01222742;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63351.01198748;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65152.0135328;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3630.013954687;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1856.014249953;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3015.01374572;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 36567.01402781;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16981.01390998;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1747.013121383;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 735.0121057197;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17268.01222799;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6292.0123616;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61421.0130191;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 21032.01438019;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63201.01366268;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3015.01374572;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16647.01573295;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 635.0138940341;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 55002.0122268;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62254.01501761;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12947.01589384;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 59321.01548826;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5190.016007273;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10576.01551276;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62862.01519499;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12546.01440332;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48082.01486509;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 26809.01506428;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62219.01446873;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61171.01421608;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6718.014964422;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64268.01411022;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61046.01463234;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54985.01946629;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3931.020664489;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13479.02039716;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61290.01945805;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9361.01924536;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13062.01894559;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65014.01613473;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 55213.01693375;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 388.0161624527;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 690.0163215909;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64874.01602347;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12741.01614296;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61908.01628101;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62322.01405152;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 398.0137752178;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2258.013603097;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3379.013433182;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48657.01311622;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6198.014966373;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13.01439551136;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64292.01411114;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54763.01601634;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 38826.01618771;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65247.0142268;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13011.0158911;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 27943.01549838;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61606.01519364;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 40101.01459483;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6206.014965862;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 77.0143927178;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2073.013081402;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6175.018758428;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3907.020667027;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 36315.01670303;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48234.01593876;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10445.01640248;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64795.01602865;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 52184.01182288;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2629.012066146;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1639.012648759;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 836.0122299432;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17204.01223163;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65397.01199134;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65179.01420997;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56609.01329214;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 35543.01402632;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62099.01456007;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 20654.01368307;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60866.01366031;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11563.01343161;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 58775.01557738;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2851.016005265;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10490.01571146;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13750.0154139;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61819.01297205;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62861.01423976;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 210.0161590246;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 22575.01496553;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64324.01410996;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 771.0186513258;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12906.01467613;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1349.015917727;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 22067.01929612;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9351.019477102;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13066.01894816;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11557.01668195;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 18841.01608823;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 44426.01495178;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61331.01583266;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6182.014966477;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16725.01387396;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10701.01640389;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9416.016098703;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11416.01181476;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13477.02039932;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4872.019235492;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 45513.01928348;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6183.019680473;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17522.01911291;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 14544.01618753;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 35541.01402647;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62780.01397489;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16910.01364792;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16613.0133896;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 49005.01608724;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1119.015516392;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 21264.01508722;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63343.01488099;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64992.01434217;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10842.01523296;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9519.015378333;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 21543.01564866;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64909.01513704;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 51170.01467243;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4892.01449553;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63321.01395811;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54416.01475575;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11645.0146381;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64255.01373438;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10465.0144106;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 8294.016047983;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62188.01252236;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 19305.01669887;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 50555.01332981;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1128.016370417;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56942.01639359;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 25840.01660438;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6155.017036544;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 40009.01393721;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 53871.01700154;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9355.017067311;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 40156.01663305;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 44767.01293335;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9996.016453002;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 51550.01326464;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65000.01434072;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56059.01323903;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 23541.01701494;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64425.01570618;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9304.014352055;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6917.014490909;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61862.01630003;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63481.01486609;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61360.01644927;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 58873.01664922;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64614.01347494;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63437.01270191;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 45037.01301862;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 8657.013331013;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63563.01602347;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48490.01584416;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54448.01475665;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2273.014411288;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3807.012108958;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 53682.01457561;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4626.013807017;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62712.01463289;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9515.015378485;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1688.016103854;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9376.014633722;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17005.01676512;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 51174.01467303;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10903.01650006;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16649.01689754;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4557.016143011;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1087.016112169;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60666.01589207;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7780.014078191;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1826.016364498;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 55286.01308316;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60318.01598253;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 409.0126363542;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62493.01262849;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3144.012697102;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 816.01689375;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6189.016596307;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61171.01421328;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 18840.01609098;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56717.0151377;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48873.01657642;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 3657.013662689;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 38314.01618546;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1916.013339555;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 390.0144965246;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 51703.01271346;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63313.01395756;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5980.013519356;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 14188.01642238;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62902.01596231;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63428.01309241;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 60381.01738902;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48477.01091287;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 56795.01954348;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 35423.01605786;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65441.01669926;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 6901.017011866;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 36605.01596594;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61870.01629715;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 57185.01644852;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63764.01661937;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64630.01347598;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61238.01651973;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16715.01689844;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61338.01270005;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48118.01323105;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1079.016112992;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 59326.01560837;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11579.01343258;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64466.01269705;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61639.01602384;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 55294.01308541;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4956.013521297;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 48474.01584589;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10540.01633083;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 12984.01358776;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54955.01318312;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 11563.01343161;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 43477.0108115;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 192.0185782197;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64810.01608257;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 13419.01558728;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 65221.01616853;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64519.0164206;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64300.0141106;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 51120.0159382;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 1122.013547756;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16482.01354835;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4616.012207945;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 39673.0184521;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 61151.01293346;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 58280.01336552;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 51839.01606055;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 54130.01405045;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 22491.01541652;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 526.0136482102;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2258.0134966;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16806.01208334;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 4520.010874953;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 16482.0191152;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 9883.012018778;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7950.01201108;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 2442.013018684;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 17506.01354839;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 18713.01308448;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 785.0162674716;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64858.01196998;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63817.01605056;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 62899.01609798;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 690.0163181061;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7084.016704384;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 63966.01331726;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 25298.01419737;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 64332.01410942;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 7736.013030312;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 5635.013818911;
 Local_2_in ++;
 Local_1_do_ko[Local_2_in] = 10340.01359628;
 Local_2_in ++;
 for (Local_3_in = 0 ; Local_3_in < Local_2_in ; Local_3_in ++)
 {
   Global_19_in ++;
   Global_17_lo_ko[Global_19_in] = Local_1_do_ko[Local_3_in];
   Global_18_do_ko[Global_19_in] = (int(Local_1_do_ko[Local_3_in]) - int(Local_1_do_ko[Local_3_in])) * 66.0;
 }
 }

 void lizong_28( int Para_0_in)
 {
  string    Local_1_st;
  int       Local_2_in;
  int       Local_3_in;
  int       Local_4_in;
  double    Local_5_do;
  double    Local_6_do;
  string    Local_7_st;
  int       Local_8_in;
  double    Local_9_do;
  double    Local_10_do;
  int       Local_11_in;
  int       Local_12_in;
  double    Local_13_do;

 string     tmp_st_1;
 int     tmp_do_2;
 int        tmp_in_3;
 int       tmp_lo_4=0;
 double     tmp_do_5;

 Local_1_st = Global_22_a_168_ko[Para_0_in].st_1 ;
 Local_2_in = 1 ;
 if ( Global_22_a_168_ko[Para_0_in].bo_18 != 0x0 )
 {
   Local_2_in = 96 ;
 }
 for (Local_3_in = 0 ; Local_3_in < Local_2_in ; Local_3_in ++)
 {
   Local_4_in = 16 ;
   Local_5_do = 0.002 ;
   Local_6_do = 0.0 ;
   Local_7_st = "" ;
   Global_22_a_168_ko[Para_0_in].lo_16 = 0;
   Global_22_a_168_ko[Para_0_in].do_17 = 0.0;
   if ( M4iBars(Local_1_st,Global_21_in) <  Local_4_in * 2 + Local_3_in )
   {
     return;
   }
   for (Local_8_in = 1 ; Local_8_in <= Local_4_in ; Local_8_in ++)
   {
     Local_9_do = M4iClose(Local_1_st,Global_21_in,Local_8_in + Local_3_in) ;
     Local_10_do = M4iOpen(Local_1_st,Global_21_in,Local_8_in + Local_3_in) ;
     Local_6_do = Local_6_do + Local_9_do ;
     if ( Local_9_do - Local_10_do>=0.0 )
     {
       Local_7_st +="1";
     }
     else
     {
       Local_7_st +="0";
     }
   }
   Global_22_a_168_ko[Para_0_in].do_17 = Local_6_do / Local_4_in;
   tmp_st_1 = Local_7_st;
   tmp_do_2 = 0;
   for (tmp_in_3 = 0 ; tmp_in_3 < StringLen(tmp_st_1)  ; tmp_in_3=tmp_in_3 + 1)
   {
     if ( StringGetCharacter(tmp_st_1,tmp_in_3) == 49 )
     {
       tmp_lo_4=tmp_do_2 * 2 + 1;
     }
   }
   Global_22_a_168_ko[Para_0_in].lo_16 = tmp_lo_4;
   if ( Global_22_a_168_ko[Para_0_in].bo_5 == 0x0 && Global_22_a_168_ko[Para_0_in].bo_6 == 0x0 && Global_22_a_168_ko[Para_0_in].bo_19 == 0x0 && Global_22_a_168_ko[Para_0_in].bo_20 == 0x0 )
   {
     return;
   }
   for (Local_11_in=Global_12_in / 100 - 1 ; Local_11_in >= 0 ; Local_11_in --)
   {
     Local_12_in=(Local_11_in + 1) * 100 - 1;
     if ( Local_12_in < Local_11_in * 100 )   continue;

     for ( ; Local_12_in >= Local_11_in * 100 ; Local_12_in --)
     {
       if ( Global_18_do_ko[Local_12_in]<Global_25_do )   break;

       if ( Global_22_a_168_ko[Para_0_in].do_17<Global_18_do_ko[Local_11_in * 100] )   break;
       Local_13_do = 1.0 ;
       if ( Global_18_do_ko[Local_12_in]<0.0 )
       {
         Local_13_do = -1.0 ;
       }
       tmp_do_5 = Local_5_do * Local_13_do;
       if ( !(Global_22_a_168_ko[Para_0_in].do_17<(Local_5_do * Local_13_do + 1.0) * Global_18_do_ko[Local_12_in]) || !(Global_22_a_168_ko[Para_0_in].do_17>(1.0 - tmp_do_5) * Global_18_do_ko[Local_12_in]) || Global_22_a_168_ko[Para_0_in].lo_16 != Global_17_lo_ko[Local_12_in] )   continue;
       Global_22_a_168_ko[Para_0_in].bo_5 = false;
       Global_22_a_168_ko[Para_0_in].bo_6 = false;
       Global_22_a_168_ko[Para_0_in].bo_19 = false;
       Global_22_a_168_ko[Para_0_in].bo_20 = false;
       break;

     }

   }
 }
 Global_22_a_168_ko[Para_0_in].bo_18 = false;
 }

 void lizong_29()
 {
  double    Local_1_do = 0.0;
  double    Local_2_do;

 double     tmp_do_1;
 int        tmp_in_2;
 int        tmp_in_3;
 int        tmp_in_4;
 int        tmp_in_5;
 string     tmp_st_6;
 int        tmp_in_7;
 int        tmp_in_8;
 int        tmp_in_9;
 int        tmp_in_10;
 int        tmp_in_11;
 double     tmp_do_12;
 int        tmp_in_13;
 int        tmp_in_14;
 int        tmp_in_15;
 int        tmp_in_16;
 string     tmp_st_17;
 int        tmp_in_18;
 int        tmp_in_19;
 int        tmp_in_20;
 int        tmp_in_21;
 int        tmp_in_22;

 if ( MaximumDrawdown>Global_25_do && MaximumDrawdown<99.99 )
 {
   if ( DrawdownCalculation == 1 )
   {
     tmp_do_1 = 0.0;
     tmp_in_2 = Global_24_in + UID + int(MathPow(10.0,StringLen(IntegerToString(Global_24_in + UID,0,32)) ));
     tmp_in_3 = Global_24_in + UID + int(MathPow(10.0,StringLen(IntegerToString(Global_24_in + UID,0,32)) )) * 2;
     for (tmp_in_4 = 0 ; tmp_in_4 < M4OrdersTotal() ; tmp_in_4=tmp_in_4 + 1)
     {
       if ( M4OrderSelect(tmp_in_4,0,0) )
       {
         tmp_in_5 = M4OrderType();
         M4OrderSymbol(); 
         tmp_in_7 = M4OrderMagicNumber() / 100;
         if ( ( ( tmp_in_5 != 0 || tmp_in_2 != tmp_in_7 ) && (tmp_in_5 != 1 || tmp_in_3 != tmp_in_7) ) )   continue;
         tmp_do_1 = M4OrderProfit() + M4OrderSwap() + M4OrderCommission() + tmp_do_1;
          continue;
       }
       Print(TradeComment + " " + "------",": Failed to select an order! Error=",lizong_11(M4GetLastError())); 

     }
     Local_1_do = -(tmp_do_1);
   }
   if ( DrawdownCalculation == 0 )
   {
     Local_1_do = AccountInfoDouble(ACCOUNT_BALANCE) - AccountInfoDouble(ACCOUNT_EQUITY) ;
   }
   if ( Local_1_do>MaximumDrawdown / 100.0 * AccountInfoDouble(ACCOUNT_BALANCE) )
   {
     if ( MaximumDrawdownAction == 0 )
     {
       Global_29_bo = true ;
       Global_30_in = 24 ;
       for (tmp_in_8 = 0 ; tmp_in_8 < ArraySize(Global_22_a_168_ko) ; tmp_in_8=tmp_in_8 + 1)
       {
         Global_22_a_168_ko[tmp_in_8].bo_5 = false;
         Global_22_a_168_ko[tmp_in_8].bo_6 = false;
       }
     }
     if ( MaximumDrawdownAction == 1 )
     {
       Global_29_bo = true ;
       Global_31_bo = true ;
       for (tmp_in_9 = 0 ; tmp_in_9 < ArraySize(Global_22_a_168_ko) ; tmp_in_9=tmp_in_9 + 1)
       {
         Global_22_a_168_ko[tmp_in_9].bo_5 = false;
         Global_22_a_168_ko[tmp_in_9].bo_6 = false;
 

Показано первые 50% кода (символов: 186436)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
18 643,60₽ ≈ $227.89