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

Lizard

lizard_1.85.mq4

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

the gold reaper v4.1 mt5.mq4MQL4 / MetaTrader 4 · 1 общих теговquantum queen x 4.3 (1).mq5MQL5 / MetaTrader 5 · 1 общих теговoverlaychart.mq4MQL4 / MetaTrader 4 · 1 общих теговmarket crusher ea guidlines.txtMQL · 1 общих теговrobot_wti ea.mq4MQL4 / MetaTrader 4 · 1 общих теговshustrobotpro.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный файл представляет собой торгового советника для платформы MetaTrader 4 (MQL4), однако в исходном коде присутствуют обёртки и вызовы функций, характерные для MetaTrader 5. Советник предназначен для автоматической торговли на финансовых рынках: он обрабатывает рыночные события, анализирует ценовые данные и технические показатели, а также выполняет торговые операции через API MetaTrader. В коде реализованы механизмы управления позициями, включая стоп-лосс, трейлинг-стоп и безубыток, а также фильтры по спреду, сессиям и новостям. Отдельное внимание уделено визуализации: создаётся информационная панель с отображением статистики, а также стилизованные свечи на графике. Советник поддерживает настройку риск-менеджмента, включая фиксированный лот, процент от баланса и ограничение дневной просадки. Реализованы функции для работы с историей сделок и позициями, включая подсчёт прибыли и убытков по стратегиям. Код содержит множество входных параметров, позволяющих гибко настраивать торговую логику, управление рисками и отображение информации. Все ключевые функции подтверждены наличием соответствующих вызовов и обработчиков в исходном коде.

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

НастройкаОписание
READ THIS (InpWarn1) ПРОЧТИТЕ ЭТО — Предупреждающее сообщение для пользователя.
Risk Notice (InpWarn2) Уведомление о рисках — Предупреждение о рисках.
Perform a Backtest before use! (InpInfoBacktest) Выполните бэктест перед использованием! — Информационное сообщение с рекомендацией провести бэктест перед использованием.
Support (InpInfoSupport) Поддержка — Информационное сообщение с контактными данными поддержки.
Preset (InpPreset) Пресет — Выбор предустановленного набора параметров.
Allow Buy Trades (InpAllowBuy) Разрешить покупки — Разрешает открытие длинных позиций (покупок).
Allow Sell Trades (InpAllowSell) Разрешить продажи — Разрешает открытие коротких позиций (продаж).
Trade Frequency (InpFrequency) Частота торговли — Частота торговли.
Max Spread (pips) (InpMaxSpread) Максимальный спред (пункты) — Максимально допустимый спред в пунктах.
Fakeout Filter (InpFakeout) Фильтр ложных пробоев — Параметр фильтра ложных пробоев.
Magic Number (Zone1_ID) Магический номер — Уникальный идентификатор (Magic Number) для сделок советника.
Trade Comment (Zone1_Tag) Комментарий к сделке — Комментарий к сделкам, открываемым советником.
Trailing/BE Mode (InpTrailMode) Режим трейла/безубытка — Режим трейлинг-стопа и безубытка.
Fixed: BE Trigger (points, 0=must set) (InpFixedBE) Фиксированный: триггер безубытка (пункты, 0=обязательно) — Уровень срабатывания безубытка в пунктах (0 — обязательно задать).
Fixed: Trail Distance (points, 0=must set) (InpFixedTrail) Фиксированный: расстояние трейла (пункты, 0=обязательно) — Расстояние трейлинг-стопа в пунктах (0 — обязательно задать).
Stop Loss (points) (InpStopLossPts) Стоп-лосс (пункты) — Размер стоп-лосса в пунктах.
Trail Jitter (0=off, 10-50, prop frm exit diversity) (InpTrailJitter) Дрожание трейла (0=выкл, 10-50, для разнообразия выходов) — Случайное отклонение трейлинг-стопа (0 — выключено, 10-50 — для разнообразия выходов).
Close Window (minutes before broker close) (InpCloseWindow) Окно закрытия (минут до закрытия брокера) — Задает количество минут до закрытия брокера, в течение которых новые сделки не открываются.
Resume Entries After Open (InpOpenDelay) Возобновить входы после открытия — Задержка возобновления торговли после открытия рынка.
Close Before Weekend (InpCloseWeekend) Закрывать перед выходными — Закрывает все позиции перед выходными.
NFP (Non-Farm Payrolls, offline calendar) (InpNFP_Enable) NFP (Non-Farm Payrolls, автономный календарь) — Включает фильтр новостей NFP (Non-Farm Payrolls) на основе автономного календаря.
High Impact (CPI, FOMC, PPI etc.) (InpNews_High) Высокая важность (CPI, FOMC, PPI и т.д.) — Учитывать новости высокой важности (CPI, FOMC, PPI и т.д.).
Medium Impact (InpNews_Medium) Средняя важность — Учитывать новости средней важности.
Low Impact (InpNews_Low) Низкая важность — Учитывать новости низкой важности.
USD Holidays (no trading entire day) (InpNews_Holidays) Праздники США (нет торговли весь день) — Учитывать праздники США (торговля не ведется весь день).
GMT Offset Winter (Backtest + Manual Live) (Inp_GMT_Winter) Смещение GMT зимой (бэктест и ручная торговля) — Смещение GMT для зимнего времени (бэктест и ручная торговля).
GMT Offset Summer (Backtest + Manual Live) (Inp_GMT_Summer) Смещение GMT летом (бэктест и ручная торговля) — Смещение GMT для летнего времени (бэктест и ручная торговля).
GMT Auto-Detect Live (Off = use Winter/Summer above) (InpGMT_AutoDetect) Автоопределение GMT в реальном времени — Автоматическое определение GMT в реальном времени (выкл. — использовать настройки зимы/лета выше).
Close Open Positions (News) (InpNFP_CloseOpen) Закрывать открытые позиции (новости) — Закрывать открытые позиции перед новостями.
Close Pending Orders (News) (InpNFP_ClosePending) Закрывать отложенные ордера (новости) — Закрывать отложенные ордера перед новостями.
Minutes Before News (InpNFP_Before) Минут до новости — Количество минут до новости, в течение которых торговля приостанавливается.
Minutes After News (InpNFP_After) Минут после новости — Количество минут после новости, в течение которых торговля приостанавливается.
Lot sizing only! Not a loss cap - use Max Daily DD for that (InpRiskInfo) Только расчет лота! Не ограничение убытка — используйте макс. дневную просадку — Информационное сообщение о том, что настройка управляет только размером лота, а не ограничением убытка.
Lot Mode (InpLotMode) Режим лота — Режим расчета размера лота.
Risk Scope (only Risk %) (InpRiskScope) Область риска (только Risk %) — Область применения риска (только для режима Risk %).
Fix Lot Size (InpFixLot) Фиксированный лот — Фиксированный размер лота.
Risk % (InpRiskPct) Риск % — Процент риска от баланса или эквити.
$ per 0.01 Lot (InpDollarPer001) Долларов на 0.01 лота — Стоимость одного пункта в долларах для 0.01 лота.
Use Equity (InpUseEquity) Использовать эквити — Использовать эквити вместо баланса для расчета риска.
Check Margin (InpCheckMargin) Проверять маржу — Проверяет достаточность маржи перед открытием сделки.
Max Daily DD value (0=off; % or $ per Unit) (InpMaxDailyDD) Макс. дневная просадка (0=выкл; % или $ за единицу) — Максимальное значение дневной просадки (0 — отключено; в % или $ в зависимости от единицы).
Max Daily DD Unit (% of peak equity, or $) (InpMaxDDUnit) Единица макс. дневной просадки (% от пиковой эквити или $) — Единица измерения максимальной дневной просадки: процент от пиковой эквити или доллары.
A1 H1 Breakout (Base) (InpZoneA1) A1 пробой H1 (базовая) — Включает стратегию A1 на часовом таймфрейме (базовая).
A2 H1 Breakout (Base) (InpZoneA2) A2 пробой H1 (базовая) — Включает стратегию A2 на часовом таймфрейме (базовая).
A3 H1 Breakout (Base) (InpZoneA3) A3 пробой H1 (базовая) — Включает стратегию A3 на часовом таймфрейме (базовая).
B1 H1 Breakout (Mid) (InpZoneB1) B1 пробой H1 (средняя) — Включает стратегию B1 на часовом таймфрейме (средняя).
B2 H1 Breakout (Mid) (InpZoneB2) B2 пробой H1 (средняя) — Включает стратегию B2 на часовом таймфрейме (средняя).
B3 H1 Breakout (Mid) (InpZoneB3) B3 пробой H1 (средняя) — Включает стратегию B3 на часовом таймфрейме (средняя).
Asia (00:00-08:00 GMT) (InpSess_Asia) Азия (00:00-08:00 GMT) — Разрешить торговлю в азиатскую сессию (00:00-08:00 GMT).
London (08:00-13:00 GMT) (InpSess_London) Лондон (08:00-13:00 GMT) — Разрешить торговлю в лондонскую сессию (08:00-13:00 GMT).
London+NY Overlap (13:00-17:00 GMT) (InpSess_Overlap) Лондон+Нью-Йорк пересечение (13:00-17:00 GMT) — Разрешить торговлю в период пересечения лондонской и нью-йоркской сессий (13:00-17:00 GMT).
New York (17:00-22:00 GMT) (InpSess_NY) Нью-Йорк (17:00-22:00 GMT) — Разрешить торговлю в нью-йоркскую сессию (17:00-22:00 GMT).
Show Panel (Live) (InpShowPanel) Показывать панель (реальное время) — Показывать информационную панель в реальном времени.
Show Panel (Backtest) (InpPanelTest) Показывать панель (бэктест) — Показывать информационную панель в режиме тестирования.
Получить полный код

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

#property version    "1.85"
#property strict
#property description "decompiled by@LifeInDreamsWorld"

#define OP_BUY       0
#define OP_SELL      1
#define OP_BUYLIMIT  2
#define OP_SELLLIMIT 3
#define OP_BUYSTOP   4
#define OP_SELLSTOP  5

#define SELECT_BY_POS    0
#define SELECT_BY_TICKET 1
#define MODE_TRADES      0
#define MODE_HISTORY     1

#define MODE_BID          9
#define MODE_ASK          10
#define MODE_POINT        11
#define MODE_DIGITS       12
#define MODE_SPREAD       13
#define MODE_STOPLEVEL    14
#define MODE_LOTSIZE      15
#define MODE_TICKVALUE    16
#define MODE_TICKSIZE     17
#define MODE_SWAPLONG     18
#define MODE_SWAPSHORT    19
#define MODE_STARTING     20
#define MODE_EXPIRATION   21
#define MODE_TRADEALLOWED 22
#define MODE_MINLOT       23
#define MODE_LOTSTEP      24
#define MODE_MAXLOT       25
#define MODE_FREEZELEVEL  33

struct MQL4SelectedOrder
{
   bool     valid;
   bool     is_position;
   ulong    ticket;
   string   symbol;
   long     magic;
   int      type;
   double   lots;
   double   open_price;
   double   close_price;
   double   sl;
   double   tp;
   datetime open_time;
   datetime close_time;
   datetime expiration;
   string   comment;
   double   profit;
   double   swap;
   double   commission;
};

MQL4SelectedOrder __mql4_sel;
int __lizard_magic_base=8000;

bool __LizardManagedMagicEarly(const long magic)
{
   return (magic==__lizard_magic_base+8  ||
           magic==__lizard_magic_base+9  ||
           magic==__lizard_magic_base+12 ||
           magic==__lizard_magic_base+13 ||
           magic==__lizard_magic_base+14 ||
           magic==__lizard_magic_base+15);
}

int __Mql4TypeFromOrderType(ENUM_ORDER_TYPE t)
{
   if(t==ORDER_TYPE_BUY_LIMIT)  return OP_BUYLIMIT;
   if(t==ORDER_TYPE_SELL_LIMIT) return OP_SELLLIMIT;
   if(t==ORDER_TYPE_BUY_STOP)   return OP_BUYSTOP;
   if(t==ORDER_TYPE_SELL_STOP)  return OP_SELLSTOP;
   if(t==ORDER_TYPE_BUY_STOP_LIMIT)  return OP_BUYSTOP;
   if(t==ORDER_TYPE_SELL_STOP_LIMIT) return OP_SELLSTOP;
   return -1;
}

ENUM_ORDER_TYPE __Mql5OrderTypeFromMql4(int cmd)
{
   if(cmd==OP_BUY)       return ORDER_TYPE_BUY;
   if(cmd==OP_SELL)      return ORDER_TYPE_SELL;
   if(cmd==OP_BUYLIMIT)  return ORDER_TYPE_BUY_LIMIT;
   if(cmd==OP_SELLLIMIT) return ORDER_TYPE_SELL_LIMIT;
   if(cmd==OP_BUYSTOP)   return ORDER_TYPE_BUY_STOP;
   if(cmd==OP_SELLSTOP)  return ORDER_TYPE_SELL_STOP;
   return ORDER_TYPE_BUY;
}

bool RefreshRates(){ return true; }
double MQL4_Bid(){ MqlTick t; SymbolInfoTick(_Symbol,t); return t.bid; }
double MQL4_Ask(){ MqlTick t; SymbolInfoTick(_Symbol,t); return t.ask; }

#define Bid MQL4_Bid()
#define Ask MQL4_Ask()
#define Point _Point
#define Digits _Digits

double AccountBalance(){ return AccountInfoDouble(ACCOUNT_BALANCE); }
double AccountEquity(){ return AccountInfoDouble(ACCOUNT_EQUITY); }
double AccountFreeMargin(){ return AccountInfoDouble(ACCOUNT_MARGIN_FREE); }
string AccountCurrency(){ return AccountInfoString(ACCOUNT_CURRENCY); }

double AccountFreeMarginCheck(string symbol,int cmd,double volume)
{
   ENUM_ORDER_TYPE type=(cmd==OP_SELL ? ORDER_TYPE_SELL : ORDER_TYPE_BUY);
   double price=(cmd==OP_SELL ? SymbolInfoDouble(symbol,SYMBOL_BID) : SymbolInfoDouble(symbol,SYMBOL_ASK));
   double margin=0.0;
   if(!OrderCalcMargin(type,symbol,volume,price,margin)) return -1.0;
   return AccountInfoDouble(ACCOUNT_MARGIN_FREE)-margin;
}

bool IsTesting(){ return (bool)MQLInfoInteger(MQL_TESTER); }
bool IsDemo(){ return (AccountInfoInteger(ACCOUNT_TRADE_MODE)==ACCOUNT_TRADE_MODE_DEMO); }

ENUM_TIMEFRAMES __Mql4Timeframe(int timeframe)
{
   switch(timeframe)
   {
      case 0:     return PERIOD_CURRENT;
      case 1:     return PERIOD_M1;
      case 2:     return PERIOD_M2;
      case 3:     return PERIOD_M3;
      case 4:     return PERIOD_M4;
      case 5:     return PERIOD_M5;
      case 6:     return PERIOD_M6;
      case 10:    return PERIOD_M10;
      case 12:    return PERIOD_M12;
      case 15:    return PERIOD_M15;
      case 20:    return PERIOD_M20;
      case 30:    return PERIOD_M30;
      case 60:    return PERIOD_H1;
      case 120:   return PERIOD_H2;
      case 180:   return PERIOD_H3;
      case 240:   return PERIOD_H4;
      case 360:   return PERIOD_H6;
      case 480:   return PERIOD_H8;
      case 720:   return PERIOD_H12;
      case 1440:  return PERIOD_D1;
      case 10080: return PERIOD_W1;
      case 43200: return PERIOD_MN1;
   }
   if(timeframe>=PERIOD_H1) return (ENUM_TIMEFRAMES)timeframe;
   return PERIOD_CURRENT;
}

int __Mql4Bars()
{
   return iBars(_Symbol,PERIOD_CURRENT);
}
#define Bars __Mql4Bars()

string MQL4_StringConcatenate(int first,string second)
{
   return IntegerToString(first)+second;
}
#define StringConcatenate MQL4_StringConcatenate

int __DatePart(datetime value,int part)
{
   MqlDateTime dt;
   TimeToStruct(value,dt);
   if(part==0) return dt.year;
   if(part==1) return dt.mon;
   if(part==2) return dt.day;
   if(part==3) return dt.day_of_week;
   if(part==4) return dt.hour;
   if(part==5) return dt.min;
   if(part==6) return dt.sec;
   if(part==7) return dt.day_of_year;
   return 0;
}

int Year(){ return __DatePart(TimeCurrent(),0); }
int Month(){ return __DatePart(TimeCurrent(),1); }
int Day(){ return __DatePart(TimeCurrent(),2); }
int DayOfWeek(){ return __DatePart(TimeCurrent(),3); }
int Hour(){ return __DatePart(TimeCurrent(),4); }
int Minute(){ return __DatePart(TimeCurrent(),5); }
int Seconds(){ return __DatePart(TimeCurrent(),6); }
int TimeYear(datetime value){ return __DatePart(value,0); }
int TimeMonth(datetime value){ return __DatePart(value,1); }
int TimeDay(datetime value){ return __DatePart(value,2); }
int TimeDayOfWeek(datetime value){ return __DatePart(value,3); }
int TimeHour(datetime value){ return __DatePart(value,4); }
int TimeMinute(datetime value){ return __DatePart(value,5); }
int TimeSeconds(datetime value){ return __DatePart(value,6); }
int TimeDayOfYear(datetime value){ return __DatePart(value,7); }

int OrdersTotalMQL4Compat(){ return (int)(PositionsTotal()+OrdersTotal()); }
#define OrdersTotal OrdersTotalMQL4Compat

double MarketInfo(string symbol,int mode)
{
   MqlTick tick;
   SymbolInfoTick(symbol,tick);
   switch(mode)
   {
      case MODE_BID: return tick.bid;
      case MODE_ASK: return tick.ask;
      case MODE_POINT: return SymbolInfoDouble(symbol,SYMBOL_POINT);
      case MODE_DIGITS: return (double)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
      case MODE_SPREAD: return (double)SymbolInfoInteger(symbol,SYMBOL_SPREAD);
      case MODE_STOPLEVEL: return (double)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL);
      case MODE_FREEZELEVEL: return (double)SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL);
      case MODE_TICKVALUE: return SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE);
      case MODE_TICKSIZE: return SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE);
      case MODE_MINLOT: return SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
      case MODE_LOTSTEP: return SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);
      case MODE_MAXLOT: return SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);
      case MODE_TRADEALLOWED: return (double)(SymbolInfoInteger(symbol,SYMBOL_TRADE_MODE)!=SYMBOL_TRADE_MODE_DISABLED);
   }
   return 0.0;
}

bool __SelectPositionByIndex(int index)
{
   if(index<0 || index>=PositionsTotal()) return false;
   ulong ticket=PositionGetTicket(index);
   if(ticket==0 || !PositionSelectByTicket(ticket)) return false;
   __mql4_sel.valid=true; __mql4_sel.is_position=true; __mql4_sel.ticket=ticket;
   __mql4_sel.symbol=PositionGetString(POSITION_SYMBOL);
   __mql4_sel.magic=PositionGetInteger(POSITION_MAGIC);
   long ptype=PositionGetInteger(POSITION_TYPE);
   __mql4_sel.type=(ptype==POSITION_TYPE_BUY ? OP_BUY : OP_SELL);
   __mql4_sel.lots=PositionGetDouble(POSITION_VOLUME);
   __mql4_sel.open_price=PositionGetDouble(POSITION_PRICE_OPEN);
   __mql4_sel.close_price=PositionGetDouble(POSITION_PRICE_CURRENT);
   __mql4_sel.sl=PositionGetDouble(POSITION_SL);
   __mql4_sel.tp=PositionGetDouble(POSITION_TP);
   __mql4_sel.open_time=(datetime)PositionGetInteger(POSITION_TIME);
   __mql4_sel.close_time=0;
   __mql4_sel.expiration=0;
   __mql4_sel.comment=PositionGetString(POSITION_COMMENT);
   __mql4_sel.profit=PositionGetDouble(POSITION_PROFIT);
   __mql4_sel.swap=PositionGetDouble(POSITION_SWAP);
   __mql4_sel.commission=0.0;
   return true;
}

bool __SelectOrderByIndex(int index)
{
   if(index<0 || index>=OrdersTotal()) return false;
   ulong ticket=OrderGetTicket(index);
   if(ticket==0 || !OrderSelect(ticket)) return false;
   __mql4_sel.valid=true; __mql4_sel.is_position=false; __mql4_sel.ticket=ticket;
   __mql4_sel.symbol=OrderGetString(ORDER_SYMBOL);
   __mql4_sel.magic=OrderGetInteger(ORDER_MAGIC);
   __mql4_sel.type=__Mql4TypeFromOrderType((ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE));
   __mql4_sel.lots=OrderGetDouble(ORDER_VOLUME_CURRENT);
   __mql4_sel.open_price=OrderGetDouble(ORDER_PRICE_OPEN);
   __mql4_sel.close_price=0.0;
   __mql4_sel.sl=OrderGetDouble(ORDER_SL);
   __mql4_sel.tp=OrderGetDouble(ORDER_TP);
   __mql4_sel.open_time=(datetime)OrderGetInteger(ORDER_TIME_SETUP);
   __mql4_sel.close_time=0;
   __mql4_sel.expiration=(datetime)OrderGetInteger(ORDER_TIME_EXPIRATION);
   __mql4_sel.comment=OrderGetString(ORDER_COMMENT);
   __mql4_sel.profit=0.0; __mql4_sel.swap=0.0; __mql4_sel.commission=0.0;
   return true;
}

bool __SelectHistoryDealByTicket(ulong ticket)
{
   if(ticket==0 || !HistoryDealSelect(ticket)) return false;
   long dtype=HistoryDealGetInteger(ticket,DEAL_TYPE);
   if(dtype!=DEAL_TYPE_BUY && dtype!=DEAL_TYPE_SELL) return false;
   __mql4_sel.valid=true; __mql4_sel.is_position=false; __mql4_sel.ticket=ticket;
   __mql4_sel.symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
   __mql4_sel.magic=HistoryDealGetInteger(ticket,DEAL_MAGIC);
   __mql4_sel.type=(dtype==DEAL_TYPE_BUY ? OP_BUY : OP_SELL);
   __mql4_sel.lots=HistoryDealGetDouble(ticket,DEAL_VOLUME);
   __mql4_sel.open_price=HistoryDealGetDouble(ticket,DEAL_PRICE);
   __mql4_sel.close_price=HistoryDealGetDouble(ticket,DEAL_PRICE);
   __mql4_sel.sl=0.0;
   __mql4_sel.tp=0.0;
   __mql4_sel.open_time=(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
   __mql4_sel.close_time=(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
   __mql4_sel.expiration=0;
   __mql4_sel.comment=HistoryDealGetString(ticket,DEAL_COMMENT);
   __mql4_sel.profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
   __mql4_sel.swap=HistoryDealGetDouble(ticket,DEAL_SWAP);
   __mql4_sel.commission=HistoryDealGetDouble(ticket,DEAL_COMMISSION);
   return true;
}

int HistoryTotal()
{
   HistorySelect(0,TimeCurrent()+86400);
   return (int)HistoryDealsTotal();
}

bool __SelectHistoryDealByIndex(int index)
{
   HistorySelect(0,TimeCurrent()+86400);
   int total=(int)HistoryDealsTotal();
   if(index<0 || index>=total) return false;
   ulong ticket=HistoryDealGetTicket(index);
   return __SelectHistoryDealByTicket(ticket);
}

bool MQL4_OrderSelect(long index_or_ticket,int select,int pool=MODE_TRADES)
{
   __mql4_sel.valid=false;
   if(select==SELECT_BY_POS)
   {
      if(pool==MODE_TRADES)
      {
         int pc=PositionsTotal();
         if(index_or_ticket<pc) return __SelectPositionByIndex((int)index_or_ticket);
         return __SelectOrderByIndex((int)(index_or_ticket-pc));
      }
      if(pool==MODE_HISTORY) return __SelectHistoryDealByIndex((int)index_or_ticket);
      return false;
   }
   ulong ticket=(ulong)index_or_ticket;
   for(int i=0;i<PositionsTotal();i++)
      if(PositionGetTicket(i)==ticket) return __SelectPositionByIndex(i);
   if(OrderSelect(ticket))
   {
      __mql4_sel.valid=true; __mql4_sel.is_position=false; __mql4_sel.ticket=ticket;
      __mql4_sel.symbol=OrderGetString(ORDER_SYMBOL);
      __mql4_sel.magic=OrderGetInteger(ORDER_MAGIC);
      __mql4_sel.type=__Mql4TypeFromOrderType((ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE));
      __mql4_sel.lots=OrderGetDouble(ORDER_VOLUME_CURRENT);
      __mql4_sel.open_price=OrderGetDouble(ORDER_PRICE_OPEN);
      __mql4_sel.close_price=0.0;
      __mql4_sel.sl=OrderGetDouble(ORDER_SL); __mql4_sel.tp=OrderGetDouble(ORDER_TP);
      __mql4_sel.open_time=(datetime)OrderGetInteger(ORDER_TIME_SETUP);
      __mql4_sel.close_time=0;
      __mql4_sel.expiration=(datetime)OrderGetInteger(ORDER_TIME_EXPIRATION);
      __mql4_sel.comment=OrderGetString(ORDER_COMMENT);
      __mql4_sel.profit=0.0; __mql4_sel.swap=0.0; __mql4_sel.commission=0.0;
      return true;
   }
   if(__SelectHistoryDealByTicket(ticket)) return true;
   return false;
}
#define OrderSelect MQL4_OrderSelect

int OrderType(){ return __mql4_sel.type; }
long OrderTicket(){ return (long)__mql4_sel.ticket; }
double OrderLots(){ return __mql4_sel.lots; }
double OrderOpenPrice(){ return __mql4_sel.open_price; }
double OrderClosePrice(){ return __mql4_sel.close_price; }
double OrderStopLoss(){ return __mql4_sel.sl; }
double OrderTakeProfit(){ return __mql4_sel.tp; }
int OrderMagicNumber(){ return (int)__mql4_sel.magic; }
string OrderSymbol(){ return __mql4_sel.symbol; }
string OrderComment(){ return __mql4_sel.comment; }
datetime OrderOpenTime(){ return __mql4_sel.open_time; }
datetime OrderCloseTime(){ return __mql4_sel.close_time; }
datetime OrderExpiration(){ return __mql4_sel.expiration; }
double OrderProfit(){ return __mql4_sel.profit; }
double OrderSwap(){ return __mql4_sel.swap; }
double OrderCommission(){ return __mql4_sel.commission; }

bool __Mql5OrderSendRaw(MqlTradeRequest &req,MqlTradeResult &res)
{
   return OrderSend(req,res);
}

ENUM_ORDER_TYPE_FILLING __ReaperBestFillingMode(string symbol)
{
   long filling=(long)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);
   if((filling & SYMBOL_FILLING_IOC)==SYMBOL_FILLING_IOC) return ORDER_FILLING_IOC;
   if((filling & SYMBOL_FILLING_FOK)==SYMBOL_FILLING_FOK) return ORDER_FILLING_FOK;
   return ORDER_FILLING_RETURN;
}

string __ReaperTradeRetcodeText(uint code)
{
   switch(code)
   {
      case TRADE_RETCODE_REQUOTE: return "requote";
      case TRADE_RETCODE_REJECT: return "request rejected";
      case TRADE_RETCODE_CANCEL: return "request canceled";
      case TRADE_RETCODE_PLACED: return "order placed";
      case TRADE_RETCODE_DONE: return "done";
      case TRADE_RETCODE_DONE_PARTIAL: return "partially done";
      case TRADE_RETCODE_ERROR: return "common trade error";
      case TRADE_RETCODE_TIMEOUT: return "trade timeout";
      case TRADE_RETCODE_INVALID: return "invalid request";
      case TRADE_RETCODE_INVALID_VOLUME: return "invalid volume";
      case TRADE_RETCODE_INVALID_PRICE: return "invalid price";
      case TRADE_RETCODE_INVALID_STOPS: return "invalid stops";
      case TRADE_RETCODE_TRADE_DISABLED: return "trade disabled for symbol/account";
      case TRADE_RETCODE_MARKET_CLOSED: return "market closed";
      case TRADE_RETCODE_NO_MONEY: return "not enough money";
      case TRADE_RETCODE_PRICE_CHANGED: return "price changed";
      case TRADE_RETCODE_PRICE_OFF: return "no price";
      case TRADE_RETCODE_INVALID_EXPIRATION: return "invalid expiration";
      case TRADE_RETCODE_TOO_MANY_REQUESTS: return "too many requests";
      case TRADE_RETCODE_NO_CHANGES: return "no changes";
      case TRADE_RETCODE_SERVER_DISABLES_AT: return "autotrading disabled by server";
      case TRADE_RETCODE_CLIENT_DISABLES_AT: return "autotrading disabled in terminal";
      case TRADE_RETCODE_LOCKED: return "trade context locked";
      case TRADE_RETCODE_FROZEN: return "order/position frozen";
      case TRADE_RETCODE_INVALID_FILL: return "invalid filling mode";
      case TRADE_RETCODE_CONNECTION: return "no trade connection";
      case TRADE_RETCODE_LIMIT_ORDERS: return "too many pending orders";
      case TRADE_RETCODE_LIMIT_VOLUME: return "volume limit reached";
      case TRADE_RETCODE_INVALID_ORDER: return "invalid order type";
   }
   return "unknown trade retcode";
}

void __ReaperPrintTradeReject(string context,const MqlTradeRequest &req,const MqlTradeResult &res,int last_error)
{
   Print("Lizard trade ",context,
         " | retcode=",res.retcode," (",__ReaperTradeRetcodeText(res.retcode),")",
         " | last_error=",last_error,
         " | symbol=",req.symbol,
         " | action=",req.action,
         " | type=",req.type,
         " | filling=",req.type_filling,
         " | volume=",DoubleToString(req.volume,2),
         " | price=",DoubleToString(req.price,(int)SymbolInfoInteger(req.symbol,SYMBOL_DIGITS)),
         " | sl=",DoubleToString(req.sl,(int)SymbolInfoInteger(req.symbol,SYMBOL_DIGITS)),
         " | tp=",DoubleToString(req.tp,(int)SymbolInfoInteger(req.symbol,SYMBOL_DIGITS)));
}

void __ReaperCheckTradePermissions(string stage)
{
   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
      Print("Lizard ",stage,": automated trading is disabled in the MT5 terminal. Enable the Algo Trading button.");
   if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
      Print("Lizard ",stage,": trading is not allowed for this EA. Check the Common tab and enable Allow Algo Trading.");
   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
      Print("Lizard ",stage,": trading is not allowed for this account.");
   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
      Print("Lizard ",stage,": expert advisor trading is disabled for this account/server.");
}

ulong __FindNewestPositionTicket(string symbol,int magic,int cmd,string comment)
{
   ulong best_ticket=0;
   datetime best_time=0;
   long wanted_type=(cmd==OP_BUY ? POSITION_TYPE_BUY : POSITION_TYPE_SELL);
   for(int i=PositionsTotal()-1;i>=0;i--)
   {
      ulong ticket=PositionGetTicket(i);
      if(ticket==0 || !PositionSelectByTicket(ticket)) continue;
      if(PositionGetString(POSITION_SYMBOL)!=symbol) continue;
      if(PositionGetInteger(POSITION_MAGIC)!=magic) continue;
      if(PositionGetInteger(POSITION_TYPE)!=wanted_type) continue;
      datetime opened=(datetime)PositionGetInteger(POSITION_TIME);
      if(opened>=best_time)
      {
         best_time=opened;
         best_ticket=ticket;
      }
   }
   return best_ticket;
}

long MQL4_OrderSend(string symbol,int cmd,double volume,double price,int slippage,double sl,double tp,string comment=NULL,int magic=0,datetime expiration=0,color arrow_color=clrNONE)
{
   MqlTradeRequest req; MqlTradeResult res; ZeroMemory(req); ZeroMemory(res);
   req.symbol=symbol; req.volume=volume; req.magic=magic; req.comment=comment; req.sl=sl; req.tp=tp; req.deviation=(uint)slippage;
   ENUM_ORDER_TYPE type=__Mql5OrderTypeFromMql4(cmd);
   req.type=type;
   if(cmd==OP_BUY || cmd==OP_SELL)
   {
      req.action=TRADE_ACTION_DEAL;
      req.price=(cmd==OP_BUY ? SymbolInfoDouble(symbol,SYMBOL_ASK) : SymbolInfoDouble(symbol,SYMBOL_BID));
      req.type_filling=__ReaperBestFillingMode(symbol);
   }
   else
   {
      req.action=TRADE_ACTION_PENDING;
      req.price=price;
      if(__LizardManagedMagicEarly(magic)) req.tp=0.0;
      if(expiration>0){ req.type_time=ORDER_TIME_SPECIFIED; req.expiration=expiration; }
      else req.type_time=ORDER_TIME_GTC;
      req.type_filling=ORDER_FILLING_RETURN;
   }
   if(!__Mql5OrderSendRaw(req,res)) { __ReaperPrintTradeReject("send failed",req,res,GetLastError()); return -1; }
   if(res.retcode!=TRADE_RETCODE_DONE && res.retcode!=TRADE_RETCODE_PLACED && res.retcode!=TRADE_RETCODE_DONE_PARTIAL)
   { __ReaperPrintTradeReject("send rejected",req,res,GetLastError()); return -1; }
   if(cmd==OP_BUY || cmd==OP_SELL)
   {
      ulong position_ticket=__FindNewestPositionTicket(symbol,magic,cmd,comment);
      if(position_ticket>0) return (long)position_ticket;
   }
   if(res.order>0) return (long)res.order;
   if(res.deal>0)  return (long)res.deal;
   return 0;
}
#define OrderSend MQL4_OrderSend

bool MQL4_OrderDelete(long ticket,color arrow_color=clrNONE)
{
   MqlTradeRequest req; MqlTradeResult res; ZeroMemory(req); ZeroMemory(res);
   req.action=TRADE_ACTION_REMOVE; req.order=(ulong)ticket;
   if(!__Mql5OrderSendRaw(req,res)) { Print("OrderDelete failed: ",GetLastError()," retcode=",res.retcode); return false; }
   return (res.retcode==TRADE_RETCODE_DONE || res.retcode==TRADE_RETCODE_PLACED);
}
#define OrderDelete MQL4_OrderDelete

bool MQL4_OrderClose(long ticket,double lots,double price,int slippage,color arrow_color=clrNONE)
{
   if(!PositionSelectByTicket((ulong)ticket)) return MQL4_OrderDelete(ticket,arrow_color);
   string symbol=PositionGetString(POSITION_SYMBOL);
   long ptype=PositionGetInteger(POSITION_TYPE);
   MqlTradeRequest req; MqlTradeResult res; ZeroMemory(req); ZeroMemory(res);
   req.action=TRADE_ACTION_DEAL; req.position=(ulong)ticket; req.symbol=symbol; req.volume=lots; req.deviation=(uint)slippage;
   req.type=(ptype==POSITION_TYPE_BUY ? ORDER_TYPE_SELL : ORDER_TYPE_BUY);
   req.price=(ptype==POSITION_TYPE_BUY ? SymbolInfoDouble(symbol,SYMBOL_BID) : SymbolInfoDouble(symbol,SYMBOL_ASK));
   req.type_filling=__ReaperBestFillingMode(symbol);
   if(!__Mql5OrderSendRaw(req,res)) { __ReaperPrintTradeReject("close failed",req,res,GetLastError()); return false; }
   if(res.retcode!=TRADE_RETCODE_DONE && res.retcode!=TRADE_RETCODE_DONE_PARTIAL)
   { __ReaperPrintTradeReject("close rejected",req,res,GetLastError()); return false; }
   return (res.retcode==TRADE_RETCODE_DONE || res.retcode==TRADE_RETCODE_DONE_PARTIAL);
}
#define OrderClose MQL4_OrderClose

bool MQL4_OrderModify(long ticket,double price,double sl,double tp,datetime expiration,color arrow_color=clrNONE)
{
   MqlTradeRequest req; MqlTradeResult res; ZeroMemory(req); ZeroMemory(res);
   ResetLastError();
   if(PositionSelectByTicket((ulong)ticket))
   {
       req.action=TRADE_ACTION_SLTP; req.position=(ulong)ticket; req.symbol=PositionGetString(POSITION_SYMBOL); req.sl=sl; req.tp=tp;
   }
    else
    {
        req.action=TRADE_ACTION_MODIFY; req.order=(ulong)ticket; req.price=price; req.sl=sl; req.tp=tp;
        if(__mql4_sel.valid && __LizardManagedMagicEarly(__mql4_sel.magic)) req.tp=0.0;
       if(__mql4_sel.valid && __mql4_sel.ticket==(ulong)ticket)
       {
          req.symbol=__mql4_sel.symbol;
          if(__mql4_sel.expiration>0){ req.type_time=ORDER_TIME_SPECIFIED; req.expiration=__mql4_sel.expiration; }
       }
       if(expiration>0){ req.type_time=ORDER_TIME_SPECIFIED; req.expiration=expiration; }
   }
   if(!__Mql5OrderSendRaw(req,res)) { __ReaperPrintTradeReject("modify failed",req,res,GetLastError()); return false; }
   bool ok=(res.retcode==TRADE_RETCODE_DONE || res.retcode==TRADE_RETCODE_PLACED || res.retcode==TRADE_RETCODE_NO_CHANGES);
   if(!ok) { __ReaperPrintTradeReject("modify rejected",req,res,GetLastError()); return false; }
   MQL4_OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES);
   return true;
}
#define OrderModify MQL4_OrderModify

datetime MQL4_iTime(string symbol,int timeframe,int shift)
{
   return iTime(symbol,__Mql4Timeframe(timeframe),shift);
}
#define iTime MQL4_iTime

int MQL4_iBars(string symbol,int timeframe)
{
   return iBars(symbol,__Mql4Timeframe(timeframe));
}
#define iBars MQL4_iBars

double MQL4_iOpen(string symbol,int timeframe,int shift)
{
   return iOpen(symbol,__Mql4Timeframe(timeframe),shift);
}
#define iOpen MQL4_iOpen

double MQL4_iHigh(string symbol,int timeframe,int shift)
{
   return iHigh(symbol,__Mql4Timeframe(timeframe),shift);
}
#define iHigh MQL4_iHigh

double MQL4_iLow(string symbol,int timeframe,int shift)
{
   return iLow(symbol,__Mql4Timeframe(timeframe),shift);
}
#define iLow MQL4_iLow

double MQL4_iClose(string symbol,int timeframe,int shift)
{
   return iClose(symbol,__Mql4Timeframe(timeframe),shift);
}
#define iClose MQL4_iClose

double MQL4_iFractals(string symbol,int timeframe,int mode,int shift)
{
   int buffer=(mode==1 ? 0 : 1);
   int handle=iFractals(symbol,__Mql4Timeframe(timeframe));
   if(handle==INVALID_HANDLE) return 0.0;
   double values[];
   ArraySetAsSeries(values,true);
   if(CopyBuffer(handle,buffer,shift,1,values)<=0)
   {
      IndicatorRelease(handle);
      return 0.0;
   }
   IndicatorRelease(handle);
   return values[0];
}
#define iFractals MQL4_iFractals

double MQL4_iMA(string symbol,int timeframe,int period,int ma_shift,int ma_method,int applied_price,int shift)
{
   ENUM_TIMEFRAMES tf=__Mql4Timeframe(timeframe);
   int handle=iMA(symbol,tf,period,ma_shift,(ENUM_MA_METHOD)ma_method,(ENUM_APPLIED_PRICE)applied_price);
   if(handle==INVALID_HANDLE) return 0.0;
   double buf[]; ArraySetAsSeries(buf,true);
   if(CopyBuffer(handle,0,shift,1,buf)<=0){ IndicatorRelease(handle); return 0.0; }
   IndicatorRelease(handle);
   return buf[0];
}
#define iMA MQL4_iMA

  enum enum_TradeFrequency      {Extreme_cons_Frequency = 0,//extreme conservative
                   Conservative_Frequency = 1,//conservative
                   Moderate_Frequency = 2,//moderate
                   Intens_Frequency = 3,//Intense
                   Extreme_Frequency = 4,//Extreme (high risk!)
                   Auto_Frequency = 5,//Auto (based on balance and risk)
                   Manual_Strategy_Selection = 6//Manual strategy selection
                     };
  enum e_SlippageControlMode      {SCT_1 = 1,SCT_2 = 2  };
  enum FakeoutFilters      {Filter_Off = 0,//OFF
                   Filter_Low = 1,//Low
                   Filter_Medium = 2,//Medium
                   Filter_High = 3//High
                     };
  enum e_VirtualStopMode      {VSL_OFF = 1,VSL_BASIC = 2,VSL_ADV = 3  };
  enum Select_Entry_Strategy      {Strategy_ONE = 1,Strategy_TWO = 2  };
  enum e_TimeFrame_St_ONE      {ST1_M1 = 1,ST1_M5 = 5,ST1_M15 = 15,ST1_M30 = 30,ST1_H1 = 60,ST1_H4 = 240,ST1_Daily = 1440,ST1_Chart = 0  };
  enum e_TimeFrame_Entry_Timing      {Entry_T_Tick = 0,Entry_T_M1 = 1,Entry_T_M5 = 5,Entry_T_M15 = 15,Entry_T_M30 = 30,Entry_T_H1 = 60,Entry_T_H4 = 240  };
  enum e_UseOfCompound      {no_compound = 0,one_trade = 1,Multi_trades = 2  };
  enum e_MonitorTradesFilter      {MT_all = 0,MT_PairOfChart = 1  };
  enum e_TimeFrame_Exit_Timing      {ET_Tick = 0,ET_M1 = 1,ET_M5 = 5,ET_M15 = 15,ET_M30 = 30,ET_H1 = 60  };
  enum e_Exit_HL_trailingSL_timeframe      {HLT_Chart = 0,HLT_M1 = 1,HLT_M5 = 5,HLT_M15 = 15,HLT_M30 = 30,HLT_H1 = 60,HLT_H4 = 240,HLT_D1 = 1440  };
  enum ST1_e_MagicTrail_Mode      {ST1_MT_M_O = 0,ST1_MT_M_F = 1,ST1_MT_M_B = 2  };
  enum e_Risk      {Manual_Lotsize = 0,//use StartLots
                   MaxHistoricalDD = 1234,//Max Allowed Total Drawdown
                   MaxRiskStrat = 3//Max Risk Per Strategy
                     };
  enum Performance_options      {NormalizedProfit = 2,RealProfit = 1  };
  enum RankingOptions      {ranking_profit = 1,ranking_pertrade = 2  };
  enum Reduction_choices      {Red_10 = 10,Red_20 = 20,Red_30 = 30,Red_40 = 40,Red_50 = 50,Red_60 = 60,Red_70 = 70,Red_80 = 80,Red_90 = 90  };
  enum e_factortype      {factor_type_1 = 1,factor_type_2 = 2,factor_type_3 = 3  };
  enum e_TimeSource      {TZ_GMT = 0,TZ_PC = 1,TZ_Broker = 2  };

bool USE_CUSTOM_DASHBOARD=false;
bool STYLE_NATIVE_CANDLES=false;
bool SHOW_STYLED_CANDLES=false;
int  STYLED_CANDLES_COUNT=90;
int  VISUAL_REFRESH_SECONDS=1;
input group "======= Community & Support ========"
input string InpWarn1="!! WARNING: Do NOT use MQL VPS !!";                    // READ THIS
input string InpWarn2="MQL VPS may lose sync! EA cannot manage trades";      // Risk Notice
input string InpInfoBacktest="";                                              // Perform a Backtest before use!
input string InpInfoDiscord="";                  // Discord
input string InpInfoSupport="www.mql5.com/en/users/zolia";                    // Support
input group "======= Main Settings ========"
input int InpPreset=1;                                                         // Preset
input bool InpAllowBuy=true;                                                   // Allow Buy Trades
input bool InpAllowSell=true;                                                  // Allow Sell Trades
input int InpFrequency=0;                                                      // Trade Frequency
input double InpMaxSpread=60.0;                                                // Max Spread (pips)
input int InpFakeout=2;                                                        // Fakeout Filter
input int Zone1_ID=1337;                                                       // Magic Number
input string Zone1_Tag="Lizard";                                               // Trade Comment
input group "============ Trailing/SL ============="
input int InpTrailMode=0;                                                      // Trailing/BE Mode
input int InpFixedBE=0;                                                        // Fixed: BE Trigger (points, 0=must set)
input int InpFixedTrail=0;                                                     // Fixed: Trail Distance (points, 0=must set)
input int InpStopLossPts=3000;                                                 // Stop Loss (points)
input int InpTrailJitter=0;                                                    // Trail Jitter (0=off, 10-50, prop frm exit diversity)
input group "========== Market Window ==========="
input int InpCloseWindow=90;                                                   // Close Window (minutes before broker close)
input int InpOpenDelay=15;                                                     // Resume Entries After Open
input bool InpCloseWeekend=false;                                              // Close Before Weekend
input group "======= News Filter ========"
input bool InpNFP_Enable=true;                                                 // NFP (Non-Farm Payrolls, offline calendar)
input bool InpNews_High=true;                                                  // High Impact (CPI, FOMC, PPI etc.)
input bool InpNews_Medium=false;                                               // Medium Impact
input bool InpNews_Low=false;                                                  // Low Impact
input bool InpNews_Holidays=true;                                              // USD Holidays (no trading entire day)
input int Inp_GMT_Winter=2;                                                    // GMT Offset Winter (Backtest + Manual Live)
input int Inp_GMT_Summer=3;                                                    // GMT Offset Summer (Backtest + Manual Live)
input bool InpGMT_AutoDetect=true;                                             // GMT Auto-Detect Live (Off = use Winter/Summer above)
input bool InpNFP_CloseOpen=true;                                              // Close Open Positions (News)
input bool InpNFP_ClosePending=true;                                           // Close Pending Orders (News)
input int InpNFP_Before=30;                                                    // Minutes Before News
input int InpNFP_After=30;                                                     // Minutes After News
input group "======= Lot Settings ========"
input string InpRiskInfo="";                                                   // Lot sizing only! Not a loss cap - use Max Daily DD for that
input int InpLotMode=1;                                                        // Lot Mode
input int InpRiskScope=0;                                                      // Risk Scope (only Risk %)
input double InpFixLot=0.01;                                                   // Fix Lot Size
input double InpRiskPct=5.0;                                                   // Risk %
input double InpDollarPer001=2500.0;                                           // $ per 0.01 Lot
input bool InpUseEquity=false;                                                 // Use Equity
input bool InpCheckMargin=true;                                                // Check Margin
input double InpMaxDailyDD=0.0;                                                // Max Daily DD value (0=off; % or $ per Unit)
input int InpMaxDDUnit=0;                                                      // Max Daily DD Unit (% of peak equity, or $)
input group "======= Zone Selection (Custom) ========"
input bool InpZoneA1=true;                                                     // A1 H1 Breakout (Base)
input bool InpZoneA2=true;                                                     // A2 H1 Breakout (Base)
input bool InpZoneA3=true;                                                     // A3 H1 Breakout (Base)
input bool InpZoneB1=true;                                                     // B1 H1 Breakout (Mid)
input bool InpZoneB2=true;                                                     // B2 H1 Breakout (Mid)
input bool InpZoneB3=true;                                                     // B3 H1 Breakout (Mid)
input group "======= Session Filter ========"
input bool InpSess_Asia=true;                                                  // Asia (00:00-08:00 GMT)
input bool InpSess_London=true;                                                // London (08:00-13:00 GMT)
input bool InpSess_Overlap=true;                                               // London+NY Overlap (13:00-17:00 GMT)
input bool InpSess_NY=true;                                                    // New York (17:00-22:00 GMT)
input group "======= Info Panel ========"
input bool InpShowPanel=true;                                                  // Show Panel (Live)
input bool InpPanelTest=false;                                                 // Show Panel (Backtest)

bool UseVariableValues=true;
bool AdjustLotsizeToVariableValues=true;
bool ShowInfoPanel=true;
double InfoPanelSizeAdjust=1.0;
bool UpdateInfoTesting=false;
string spreadfilter="";
bool AllowBuyTrades=true;
bool AllowSellTrades=true;
enum_TradeFrequency TradeFrequency=Manual_Strategy_Selection;
double MaxSpread=60.0;
bool PRINT_ENTRY_DEBUG=false;
bool UseHL_TrailingSL=false;
int FridayStopHour=25;
bool setSL_TP_After_Entry=false;
bool Virtual_expiration=true;
double Randomization=0.0;
FakeoutFilters FakeOutFilter=(FakeoutFilters)2;
int ST1_MagicNumber=1337;
string ST1_Comment="Lizard";
bool RemoveCommentSuffix=false;
string NFP_FILTER="";
bool UseNewsFilter=true;
bool EnableNFP_Filter=true;
bool AutoGMT=true;
bool UseExternalGMTSync=false;
int Broker_GMT_OFFSET_Winter=2;
int Broker_GMT_OFFSET_Summer=3;
bool NFP_CloseOpenTrades=true;
bool NFP_ClosePendingOrders=true;
int NFP_MinutesBefore=30;
int NFP_MinutesAfter=30;
string propfirmsettings="";
double AdjustEntry=0.0;
double AdjustSL=0.0;
double AdjustTP=0.0;
double AdjustTrailSL=0.0;
double AdjustTrailTP=0.0;
double AdjustBreakEven=0.0;
string LotSizeSettings="";
double ForceBalanceToUse=0.0;
e_Risk Risk=Manual_Lotsize;
double StartLots=0.01;
double StartLotsRuntime=0.01;
double MaxAllowedDD=30.0;
bool UseWeightedLots=false;
double MaxRiskPerStrategy_=1.0;
double PropFirmMaxDailyDD=0.0;
bool UseEquity=false;
bool OnlyUp=true;
bool CheckMargin=true;
string ManualStratSelect="";
string ManStratWarn="";
bool RunStrat1=false;
bool RunStrat2=false;
bool RunStrat3=true;
bool RunStrat4=false;
bool RunStrat5=true;
bool RunStrat6=true;
bool RunStrat7=true;
bool RunStrat8=true;
bool RunStrat9=true;

void LizardApplyPublicInputs()
{
   const bool panel_allowed=(!MQLInfoInteger(MQL_TESTER) || InpPanelTest);
   USE_CUSTOM_DASHBOARD=(InpShowPanel && panel_allowed);
   ShowInfoPanel=(InpShowPanel && panel_allowed);
   UpdateInfoTesting=InpPanelTest;
   AllowBuyTrades=InpAllowBuy;
   AllowSellTrades=InpAllowSell;
   MaxSpread=InpMaxSpread;
   FakeOutFilter=(FakeoutFilters)InpFakeout;
   ST1_MagicNumber=Zone1_ID;
   ST1_Comment=Zone1_Tag;
   UseNewsFilter=(InpNFP_Enable || InpNews_High || InpNews_Medium ||
                  InpNews_Low || InpNews_Holidays);
   EnableNFP_Filter=InpNFP_Enable;
   AutoGMT=InpGMT_AutoDetect;
   Broker_GMT_OFFSET_Winter=Inp_GMT_Winter;
   Broker_GMT_OFFSET_Summer=Inp_GMT_Summer;
   NFP_CloseOpenTrades=InpNFP_CloseOpen;
   NFP_ClosePendingOrders=InpNFP_ClosePending;
   NFP_MinutesBefore=InpNFP_Before;
   NFP_MinutesAfter=InpNFP_After;
   StartLots=InpFixLot;
   UseEquity=InpUseEquity;
   CheckMargin=InpCheckMargin;
   PropFirmMaxDailyDD=InpMaxDailyDD;
   RunStrat1=false;
   RunStrat2=false;
   RunStrat3=InpZoneB3;
   RunStrat4=false;
   RunStrat5=InpZoneB2;
   RunStrat6=InpZoneA1;
   RunStrat7=InpZoneA2;
   RunStrat8=InpZoneA3;
   RunStrat9=InpZoneB1;
}

bool LizardEntryWindowOpen()
{
   MqlDateTime now;
   TimeToStruct(TimeCurrent(),now);
   const int minute_of_day=now.hour*60+now.min;
   if(InpCloseWeekend && (now.day_of_week==0 || now.day_of_week==6))
      return false;
   const int start_minute=MathMax(0,50+InpOpenDelay);
   const int end_minute=MathMin(1440,1440-InpCloseWindow);
   return minute_of_day>=start_minute && minute_of_day<end_minute;
}

bool LizardBetween(const int minute_of_day,const int start_minute,const int end_minute)
{
   return minute_of_day>=start_minute && minute_of_day<end_minute;
}

bool LizardZoneSessionOpen(const long magic)
{
   MqlDateTime now;
   TimeToStruct(TimeCurrent(),now);
   const int minute_of_day=now.hour*60+now.min;
   const long zone_magic=magic-ST1_MagicNumber;

   bool public_session_open=false;
   if(minute_of_day<480)
      public_session_open=InpSess_Asia;
   else if(minute_of_day<780)
      public_session_open=InpSess_London;
   else if(minute_of_day<1020)
      public_session_open=InpSess_Overlap;
   else
      public_session_open=InpSess_NY;
   if(!public_session_open) return false;

   if(zone_magic==9)  // A1
      return LizardBetween(minute_of_day,65,660) ||
             LizardBetween(minute_of_day,720,960) ||
             LizardBetween(minute_of_day,1020,1140) ||
             LizardBetween(minute_of_day,1200,1350);
   if(zone_magic==14) // A2
      return LizardBetween(minute_of_day,75,660) ||
             LizardBetween(minute_of_day,720,1140) ||
             LizardBetween(minute_of_day,1200,1260);
   if(zone_magic==15) // A3
      return LizardBetween(minute_of_day,75,480) ||
             LizardBetween(minute_of_day,540,660) ||
             LizardBetween(minute_of_day,720,780) ||
             LizardBetween(minute_of_day,840,1020) ||
             LizardBetween(minute_of_day,1080,1350);
   if(zone_magic==13) // B1
      return now.day_of_week!=3 &&
            (LizardBetween(minute_of_day,75,240) ||
             LizardBetween(minute_of_day,300,480) ||
             LizardBetween(minute_of_day,540,660) ||
             LizardBetween(minute_of_day,720,780) ||
             LizardBetween(minute_of_day,1080,1320));
   if(zone_magic==12) // B2
      return LizardBetween(minute_of_day,75,1350);
   if(zone_magic==8)  // B3
      return LizardBetween(minute_of_day,120,1350);
   return false;
}

void LizardClearPendingForMagic(const long required_magic)
{
   for(int index=OrdersTotal()-1;index>=0;index--)
   {
      const ulong ticket=OrderGetTicket(index);
      if(ticket==0) continue;
      if(OrderGetString(ORDER_SYMBOL)!=_Symbol) continue;
      if(OrderGetInteger(ORDER_MAGIC)!=required_magic) continue;
      const ENUM_ORDER_TYPE type=(ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
      if(type==ORDER_TYPE_BUY_LIMIT || type==ORDER_TYPE_SELL_LIMIT ||
         type==ORDER_TYPE_BUY_STOP || type==ORDER_TYPE_SELL_STOP ||
         type==ORDER_TYPE_BUY_STOP_LIMIT || type==ORDER_TYPE_SELL_STOP_LIMIT)
         MQL4_OrderDelete((long)ticket);
   }
}

void LizardClearManagedPendingOrders()
{
   for(int index=OrdersTotal()-1;index>=0;index--)
   {
      const ulong ticket=OrderGetTicket(index);
      if(ticket==0) continue;
      if(OrderGetString(ORDER_SYMBOL)!=_Symbol) continue;
      const long magic=OrderGetInteger(ORDER_MAGIC);
      if(magic<ST1_MagicNumber || magic>ST1_MagicNumber+30) continue;
      const ENUM_ORDER_TYPE type=(ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
      if(type==ORDER_TYPE_BUY_LIMIT || type==ORDER_TYPE_SELL_LIMIT ||
         type==ORDER_TYPE_BUY_STOP || type==ORDER_TYPE_SELL_STOP ||
         type==ORDER_TYPE_BUY_STOP_LIMIT || type==ORDER_TYPE_SELL_STOP_LIMIT)
         MQL4_OrderDelete((long)ticket);
   }
}

void LizardEnforceZoneSessions()
{
   const long zone_magics[6]=
   {
      ST1_MagicNumber+9,
      ST1_MagicNumber+14,
      ST1_MagicNumber+15,
      ST1_MagicNumber+13,
      ST1_MagicNumber+12,
      ST1_MagicNumber+8
   };
   for(int zone=0;zone<6;zone++)
      if(!LizardZoneSessionOpen(zone_magics[zone]))
         LizardClearPendingForMagic(zone_magics[zone]);
}

  double    g_1_do_0 = 0.0;
  double    g_2_do_8 = 0.0;
  int       g_3_in_10 = 30;
  int       g_4_in_14 = 1440;
  int       g_5_in_18 = 0;
  double    g_6_do_1C_ko[];
  double    g_7_do_50 = 0.0;
  double    g_8_do_58 = 0.0;
  double    g_9_do_60 = 0.0;
  bool      g_10_bo_68 = false;
  int       g_11_in_6C = 3;
  int       g_12_in_70 = 2;
  bool      g_13_bo_74 = false;
  bool      g_14_bo_75 = false;
  int       g_15_in_78 = 0;
  string    g_16_st_80 = "------------------------------ trading filters ------------------------------";
  bool      g_17_bo_8C = false;
  string    g_18_st_90 = "EURUSD;GBPUSD;USDJPY;AUDJPY;AUDUSD;EURAUD;EURCAD;EURGBP;EURJPY;GBPJPY;USDCAD;USDCHF;";
  int       g_19_in_9C = 5;
  bool      g_20_bo_A0 = true;
  bool      g_21_bo_A1 = false;
  bool      g_22_bo_A2 = false;
  bool      g_23_bo_A3 = true;
  bool      g_24_bo_A4 = false;
  bool      g_25_bo_A5 = false;
  bool      g_26_bo_A6 = true;
  bool      g_27_bo_A7 = false;
  bool      g_28_bo_A8 = false;
  bool      g_29_bo_A9 = false;
  bool      g_30_bo_AA = false;
  bool      g_31_bo_AB = false;
  bool      g_32_bo_AC = false;
  bool      g_33_bo_AD = false;
  bool      g_34_bo_AE = false;
  bool      g_35_bo_AF = true;
  int       g_36_in_B0 = 2;
  double    g_37_do_B8 = 0.0;
  int       g_38_do_C0 = 5000;
  int       g_39_in_C8 = 1;
  double    g_40_do_D0 = 400.0;
  double    g_41_do_D8 = 100.0;
  double    g_42_do_E0 = 300.0;
  bool      g_43_bo_E8 = true;
  string    g_44_st_F0 = "------------------------------ time filters ------------------------------";
  bool      g_45_bo_FC = false;
  bool      g_46_bo_FD = false;
  bool      g_47_bo_FE = false;
  int       g_48_in_100 = 14;
  int       g_49_in_104 = 17;
  string    g_50_st_108 = "------------------------------ other filters ------------------------------";
  int       g_51_in_114 = 1;
  int       g_52_in_118 = 1;
  bool      g_53_bo_11C = false;
  int       g_54_in_120 = 5;
  bool      g_55_bo_124 = false;
  int       g_56_in_128 = 15;
  bool      g_57_bo_12C = false;
  int       g_58_in_130 = 30;
  bool      g_59_bo_134 = false;
  int       g_60_in_138 = 60;
  bool      g_61_bo_13C = false;
  bool      g_62_bo_13D = false;
  int       g_63_in_140 = 1;
  double    g_64_do_148 = 0.0;
  int       g_65_in_150 = 99;
  int       g_66_in_154 = 5;
  bool      g_67_bo_158 = false;
  int       g_68_in_15C = 5;
  int       g_69_in_160 = 1;
  string    g_70_st_168 = "------------------------------ Trade Entry management ------------------------------";
  int       g_71_in_174 = 0;
  int       g_72_in_178 = 60;
  int       g_73_in_17C = 10;
  int       g_74_in_180 = 3;
  bool      g_75_bo_184 = false;
  bool      g_76_bo_185 = false;
  int       g_77_in_188 = 120;
  int       g_78_in_18C = 0;
  int       g_79_in_190 = 0;
  double    g_80_do_198 = 30.0;
  double    g_81_do_1A0 = 0.0;
  double    g_82_do_1A8 = 25.0;
  double    g_83_do_1B0 = 0.5;
  double    g_84_do_1B8 = 0.0;
  double    g_85_do_1C0 = 0.0;
  int       g_86_in_1C8 = 1;
  int       g_87_in_1CC = 99;
  double    g_88_do_1D0 = 1.0;
  int       g_89_in_1D8 = 24;
  double    g_90_do_1E0 = 3.0;
  int       g_91_in_1E8 = 0;
  int       g_92_in_1EC = 100;
  int       g_93_in_1F0 = 0;
  string    g_94_st_1F8 = "------------------------------ Strategy 2 - Manual Trade settings ------------------------------";
  int       g_95_in_204 = 1;
  int       g_96_in_208 = 1991199118;
  string    g_97_st_210 = "";
  string    g_98_st_220 = "------------------------------ Trade Exit management ------------------------------";
  int       g_99_in_22C = 0;
  double    g_100_do_230 = 20.0;
  double    g_101_do_238 = 100.0;
  string    g_102_st_240 = "------------------------------ Trailing SL settings ------------------------------";
  double    g_103_do_250 = 10.0;
  double    g_104_do_258 = 10.0;
  double    g_105_do_260 = 100.0;
  double    g_106_do_268 = 0.1;
  double    g_107_do_270 = 0.0;
  double    g_108_do_278 = 0.0;
  double    g_109_do_280 = 0.0;
  double    g_110_do_288 = 0.0;
  double    g_111_do_290 = 0.0;
  string    g_112_st_298 = "------------------------------ Break-even SL management ------------------------------";
  double    g_113_do_2A8 = 0.0;
  double    g_114_do_2B0 = 0.0;
  string    g_115_st_2B8 = "------------------------------ HIGH/LOW Trailing SL settings ------------------------------";
  bool      g_116_bo_2C4 = false;
  int       g_117_in_2C8 = 0;
  int       g_118_in_2CC = 0;
  int       g_119_in_2D0 = 0;
  int       g_120_in_2D4 = 0;
  int       g_121_in_2D8 = 0;
  int       g_122_in_2DC = 0;
  double    g_123_do_2E0 = 2.0;
  string    g_124_st_2E8 = "------------------------------ recovery Trailing SL based on time ------------------------------";
  double    g_125_do_2F8 = 0.0;
  double    g_126_do_300 = 0.0;
  string    g_127_st_308 = "------------------------------ MagicTrail SL settings ------------------------------";
  int       g_128_in_314 = 0;
  double    g_129_do_318 = 0.1;
  int       g_130_in_320 = 1;
  double    g_131_do_328 = 0.1;
  double    g_132_do_330 = 1.0;
  int       g_133_in_338 = 0;
  double    g_134_do_340 = 0.0;
  bool      g_135_bo_348 = false;
  bool      g_136_bo_349 = false;
  int       g_137_in_34C = 2024;
  datetime  g_138_da_384_si13[13];
  bool      g_139_bo_3EC = false;
  double    g_140_do_3F0 = 5.0;
  double    g_141_do_3F8 = 99.0;
  int       g_142_in_400 = 999;
  int       g_143_in_404 = 9999;
  int       g_144_in_408 = 99999;
  int       g_145_in_40C = 600;
  double    g_146_do_410 = 1.0;
  double    g_147_do_418 = 10.0;
  double    g_148_do_420 = 2.0;
  string    g_149_st_428 = "==== Performance numbers overview ====";
  bool      g_150_bo_434 = true;
  int       g_151_in_438 = 1;
  int       g_152_in_43C = 1;
  int       g_153_in_440 = 90;
  int       g_154_in_444 = 30;
  int       g_155_in_448 = 10;
  int       g_156_in_44C = 50;
  bool      g_157_bo_450 = true;
  string    g_158_st_458 = "------------------------------ zone_recovery_settings ------------------------------";
  bool      g_159_bo_464 = false;
  double    g_160_do_468 = 50.0;
  double    g_161_do_470 = 10.0;
  double    g_162_do_478 = 5.0;
  double    g_163_do_480 = 0.0;
  int       g_164_in_488 = 1;
  double    g_165_do_490 = 2.0;
  int       g_166_in_498 = 999;
  double    g_167_do_4A0 = 100.0;
  int       g_168_in_4A8 = 900010;
  int       g_169_in_4AC = 900011;
  string    g_170_st_4B0 = "------------------------- Trading hours ST1 -------------------------";
  bool      g_171_bo_4BC = false;
  int       g_172_in_4C0 = 2;
  bool      g_173_bo_4C4 = false;
  int       g_174_in_4C8 = 0;
  int       g_175_in_4CC = 24;
  int       g_176_in_4D0 = 0;
  int       g_177_in_4D4 = 24;
  int       g_178_in_4D8 = 0;
  int       g_179_in_4DC = 24;
  int       g_180_in_4E0 = 0;
  int       g_181_in_4E4 = 24;
  int       g_182_in_4E8 = 0;
  int       g_183_in_4EC = 24;
  int       g_184_in_4F0 = 0;
  int       g_185_in_4F4 = 24;
  string    g_186_st_4F8 = "------------------------- use for backtesting only! -------------------------";
  int       g_187_in_504 = 0;
  double    g_188_do_508 = 0.0;
  double    g_189_do_510 = 0.0;
  int       g_190_in_518 = 0;
  double    g_191_do_520 = 0.0;
  int       g_192_in_528 = 0;
  int       g_193_in_52C = 0;
  bool      g_194_bo_530 = false;
  bool      g_195_bo_531 = false;
  double    g_196_do_568_si20si2[20][2];
  double    g_197_do_6DC_si100si3[100][3];
  double    g_198_do_1070_si100si2[100][2];
  int       g_199_in_16B0 = 20;
  int       g_200_in_16B4 = 100;
  double    g_201_do_16B8 = 0.0;
  double    g_202_do_16C0 = 0.0;
  double    g_203_do_16C8 = 0.0;
  double    g_204_do_16D0 = 0.0;
  double    g_205_do_16D8 = 0.0;
  double    g_206_do_16E0 = 0.0;
  bool      g_207_bo_16E8 = false;
  int       g_208_in_16EC = 10;
  double    g_209_do_16F0 = 0.0;
  double    g_210_do_16F8 = 0.0;
  double    g_211_do_1700 = 0.0;
  double    g_212_do_1708 = 0.0;
  bool      g_213_bo_1710 = false;
  int       g_214_in_1714 = 1;
  datetime  g_215_da_174C_si99[99];
  long      g_216_lo_1A68 = 0;
  int       g_217_in_1A70 = 370;
  bool      g_218_bo_1A74 = true;
  bool      g_219_bo_1A75 = false;
  int       g_220_in_1A78 = 0;
  double    g_221_do_1A80 = 4.0;
  double    g_222_do_1A88 = 0.0;
  double    g_223_do_1AC4_si99[99];
  double    g_224_do_1DE0 = 0.0;
  int       g_225_in_1DE8 = 0;
  int       g_226_in_1DEC = 0;
  double    g_227_do_1DF0 = 0.0;
  double    g_228_do_1DF8 = 0.0;
  double    g_229_do_1E00 = 0.0;
  long      g_230_in_1E08 = 0;
  bool      g_231_bo_1E0C = false;
  double    g_232_do_1E10 = 0.0;
  double    g_233_do_1E18 = 0.0;
  int       g_234_in_1E20 = 0;
  double    g_235_do_1E28 = 0.0;
  double    g_236_do_1E30 = 0.0;
  double    g_237_do_1E38 = 0.0;
  bool      g_238_bo_1E40 = false;
  bool      g_239_bo_1E41 = false;
  bool      g_240_bo_1E42 = false;
  double    g_241_do_1E78_si99[99];
  double    g_242_do_21C4_si99[99];
  double    g_243_do_24E0 = 0.0;
  double    g_244_do_24E8 = 0.0;
  double    g_245_do_24F0 = 0.0;
  double    g_246_do_24F8 = 0.0;
  double    g_247_do_2500 = 0.0;
  double    g_248_do_2508 = 0.0;
  double    g_249_do_2510 = 0.0;
  int       g_250_in_2518 = 0;
  double    g_251_do_2520 = 0.0;
  string    g_252_st_2528;
  string    g_253_st_2538;
  string    g_254_st_2548;
  string    g_255_st_2558;
  bool      g_256_bo_2564 = false;
  bool      g_257_bo_2565 = false;
  int       g_258_in_2568 = 0;
  int       g_259_in_256C = 0;
  double    g_260_do_2570 = 0.0;
  double    g_261_do_2578 = 0.0;
  double    g_262_do_2580 = 0.0;
  double    g_263_do_2588 = 0.0;
  double    g_264_do_2590 = 0.0;
  int       g_265_in_2598 = 0;
  int       g_266_in_259C = 0;
  int       g_267_in_25A0 = 0;
  double    g_268_do_25A8 = 0.0;
  double    g_269_do_25B0 = 0.0;
  double    g_270_do_25B8 = 0.0;
  double    g_271_do_25C0 = 0.0;
  double    g_272_do_25C8 = 0.0;
  double    g_273_do_25D0 = 0.0;
  int       g_274_in_25D8 = 0;
  double    g_275_do_25E0 = 0.0;
  double    g_276_do_25E8 = 0.0;
  double    g_277_do_25F0 = 0.0;
  bool      g_278_bo_25F8 = false;
  bool      g_279_bo_25F9 = false;
  bool      g_280_bo_25FA = false;
  bool      g_281_bo_25FB = false;
  bool      g_282_bo_25FC = false;
  bool      g_283_bo_25FD = false;
  double    g_284_do_2600 = 0.0;
  double    g_285_do_2608 = 0.0;
  bool      g_286_bo_2610 = false;
  double    g_287_do_2618 = 0.0;
  double    g_288_do_2620 = 0.0;
  int       g_289_in_2628 = 0;
  int       g_290_in_262C = 0;
  double    g_291_do_2664_si10[10];
  double    g_292_do_26E8_si10[10];
  double    g_293_do_276C_si10[10];
  double    g_294_do_27F0_si10[10];
  int       g_295_in_2840 = 0;
  int       g_296_in_2844 = 0;
  int       g_297_in_2848 = 0;
  int       g_298_in_284C = 0;
  string    g_299_st_2850;
  double    g_300_do_2860 = 0.0;
  double    g_301_do_2868 = 0.0;
  datetime  g_302_da_2870 = 0;
  bool      g_303_bo_2878 = false;
  int       g_304_in_287C = 0;
  bool      g_305_bo_2880 = false;
  int       g_306_in_2884 = 0;
  double    g_307_do_2888 = 0.0;
  double    g_308_do_2890 = 0.0;
  double    g_309_do_2898 = 0.0;
  double    g_310_do_28A0 = 0.0;
  double    g_311_do_28A8 = 0.0;
  bool      g_312_bo_28B0 = false;
  datetime  g_313_da_28B8 = 0;
  datetime  g_314_da_28C0 = 0;
  datetime  g_315_da_28C8 = 0;
  bool      g_316_bo_28D0 = false;
  bool      g_317_bo_28D1 = false;
  double    g_318_do_28D8 = 0.0;
  datetime  g_319_da_28E0 = 0;
  bool      g_320_bo_28E8 = false;
  int       g_321_in_2920_si99[99];
  int       g_322_in_2AE0_si99[99];
  double    g_323_do_2CA0_si30[30];
  double    g_324_do_2DC4_si30[30];
  double    g_325_do_2EE8_si30[30];
  double    g_326_do_300C_si30[30];
  int       g_327_in_30FC = 1;
  int       g_328_in_3100 = 0;
  uint      g_329_ui_3104 = DarkBlue;
  bool      g_330_bo_3108 = false;
  long      g_331_lo_3110 = 0;
  int       g_332_in_3118 = 5;
  bool      g_333_bo_311C = false;
  string    g_334_st_3120;
  bool      g_335_bo_312C = false;
  string    g_336_st_3130;
  double    g_337_do_3140 = 0.0;
  double    g_338_do_3148 = 0.0;
  int       g_339_in_3184_si99[99];
  int       g_340_in_3310 = 0;
  double    g_341_do_3348_si99[99];
  bool      g_342_bo_3694_si99[99];
  int       g_343_in_372C_si99[99];
  int       g_344_in_38EC_si99[99];
  double    g_345_do_3AAC_si99[99];
  double    g_346_do_3DF8_si99[99];
  string    g_347_st_4144_si99[99]={};
  bool      g_348_bo_461C_si99[99];
  double    g_349_do_46B4_si99[99];
  double    g_350_do_4A00_si99[99];
  double    g_351_do_4D4C_si99[99];
  double    g_352_do_5098_si99[99];
  double    g_353_do_53E4_si99[99];
  double    g_354_do_5730_si99[99];
  bool      g_355_bo_5A7C_si99[99];
  int       g_356_in_5B14_si99[99];
  bool      g_357_bo_5CA0 = false;
  double    g_358_do_5CA8 = 5.0;
  double    g_359_do_5CB0 = 10.0;
  int       g_360_in_5CB8 = 0;
  double    g_361_do_5CC0 = 0.0;
  double    g_362_do_5CC8 = 0.0;
  int       g_363_in_5CD0 = 0;
  uint      g_364_ui_5CD4 = LightSteelBlue;
  bool      g_365_bo_5CD8 = true;
  double    g_366_do_5CE0 = 12.0;
  int       g_367_in_5CE8 = 230;
  int       g_368_in_5CEC = 320;
  int       g_369_in_5CF0 = 500;
  int       g_370_in_5CF4 = 350;
  int       g_371_in_5CF8 = 2;
  int       g_372_in_5CFC = 7;
  int       g_373_in_5D00 = 10;
  int       g_374_in_5D04 = 30;
  string    g_375_st_5D3C_si4[4]={};
  double    g_376_do_5D70 = 0.45;
  double    g_377_do_5D78 = 0.6;
  int       g_378_in_5D80 = 0;
  datetime  g_379_da_5D88 = 0;
  bool      g_380_bo_5D90 = false;
  int       g_381_in_5D94 = 0;
  bool      g_382_bo_5D98 = false;
  int       g_383_in_5D9C = 0;
  double    g_384_do_5DA0 = 0.0;
  int       g_385_in_5DA8 = 200;
  int       g_386_in_5DAC = 330;
  int       g_387_in_5DB0 = 560;
  int       g_388_in_5DB4 = 810;
  int       g_389_in_5DB8 = 1150;
  datetime  g_390_da_5DC0 = 0;
  datetime  g_391_da_5DFC_si300[300];
  bool      g_392_bo_675C = false;
  bool      g_393_bo_675D = false;
  bool      g_394_bo_675E = false;
  int       g_395_in_6760 = 0;
  int       g_396_in_6764 = 0;
  double    g_397_do_6768 = 0.0;
  double    g_398_do_6770 = 0.0;
  datetime  g_399_da_6778 = 0;
  double    g_400_do_67B4_si99[99];
  double    g_401_do_6AD0 = 0.0;
  double    g_402_do_6AD8 = 0.0;

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

bool LizardManagedMagic(const long magic)
{
   return __LizardManagedMagicEarly(magic);
}

double LizardDailyScale()
{
   const double previous_daily_open=iOpen(_Symbol,PERIOD_D1,1);
   if(previous_daily_open<=0.0) return 1.0;
   return previous_daily_open/2000.0;
}

double LizardRiskLots()
{
   const double capital=AccountInfoDouble(InpUseEquity
                                          ? ACCOUNT_EQUITY
                                          : ACCOUNT_BALANCE);
   const double step=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_STEP);
   const double min_lot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
   const double max_lot=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MAX);
   double lots=InpFixLot;

   if(InpLotMode==2)
   {
      const double capital_per_step=MathMax(1.0,InpDollarPer001);
      lots=MathFloor(capital/capital_per_step)*0.01;
      if(step>0.0) lots=MathFloor((lots+1.0e-9)/step)*step;
      lots=MathMax(min_lot,MathMin(max_lot,lots));
      return NormalizeDouble(lots,2);
   }
   if(InpLotMode==0)
   {
      if(step>0.0) lots=MathFloor((lots+1.0e-9)/step)*step;
      lots=MathMax(min_lot,MathMin(max_lot,lots));
      return NormalizeDouble(lots,2);
   }

   const double risk_cash=capital*MathMax(0.0,InpRiskPct)/100.0;
   const double price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double one_lot_loss=0.0;
   if(price<=0.0 ||
      !OrderCalcProfit(ORDER_TYPE_BUY,_Symbol,1.0,price,
                       price-MathMax(1,InpStopLossPts)*_Point,one_lot_loss) ||
      one_lot_loss==0.0)
      return min_lot;

   lots=risk_cash/MathAbs(one_lot_loss);
   if(step>0.0) lots=MathFloor((lots+1.0e-9)/step)*step;
   lots=MathMax(min_lot,MathMin(max_lot,lots));
   return NormalizeDouble(lots,2);
}

double LizardPositionTakeProfit(const long magic,
                                const ENUM_POSITION_TYPE type,
                                const double open_price)
{
   double base_points=0.0;
   double scale_base=2000.0;
   const long suffix=magic-__lizard_magic_base;
   if(suffix==8)  { base_points=3630.0; scale_base=2000.0; }
   if(suffix==9)  { base_points=824.0;  scale_base=2400.0; }
   if(suffix==12) { base_points=927.0;  scale_base=2600.0; }
   if(suffix==13) { base_points=1485.0; scale_base=1900.0; }
   if(suffix==14) { base_points=1522.5; scale_base=2600.0; }
   if(suffix==15) { base_points=1284.0; scale_base=2800.0; }
   const double previous_daily_open=iOpen(_Symbol,PERIOD_D1,1);
   if(base_points<=0.0 || previous_daily_open<=0.0) return 0.0;
   const double distance=base_points*(previous_daily_open/scale_base)*_Point;
   return NormalizeDouble(type==POSITION_TYPE_BUY
                          ? open_price+distance
                          : open_price-distance,_Digits);
}

void LizardPrepareStrategyTrade()
{

   g_223_do_1AC4_si99[g_328_in_3100]=LizardRiskLots();
   g_100_do_230=(double)MathMax(1,InpStopLossPts);

   g_103_do_250=0.0;
   g_108_do_278=0.0;
   g_113_do_2A8=0.0;
   g_119_in_2D0=0;
   g_125_do_2F8=0.0;
   g_128_in_314=0;
}

void LizardManageOpenPositions()
{
   const double scale=LizardDailyScale();
   const double trigger_points=(InpTrailMode==0 || InpFixedBE<=0
                                ? 110.0*scale
                                : (double)InpFixedBE);
   const double trail_points=(InpTrailMode==0 || InpFixedTrail<=0
                              ? 121.0*scale
                              : (double)InpFixedTrail);
   const double trigger_distance=trigger_points*_Point;
   const double lock_distance=30.0*scale*_Point;
   const double trail_distance=trail_points*_Point;
   const double first_lock=10.0*_Point;
   const double epsilon=0.5*_Point;

   for(int index=PositionsTotal()-1;index>=0;index--)
   {
      const ulong ticket=PositionGetTicket(index);
      if(ticket==0 || !PositionSelectByTicket(ticket)) continue;
      if(PositionGetString(POSITION_SYMBOL)!=_Symbol) continue;
      if(!LizardManagedMagic(PositionGetInteger(POSITION_MAGIC))) continue;

      const ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
      const double open_price=PositionGetDouble(POSITION_PRICE_OPEN);
      const double current_sl=PositionGetDouble(POSITION_SL);
      const double current_tp=PositionGetDouble(POSITION_TP);
      const long magic=PositionGetInteger(POSITION_MAGIC);
      const double desired_tp=LizardPositionTakeProfit(magic,type,open_price);
      const double market_price=(type==POSITION_TYPE_BUY
                                 ? SymbolInfoDouble(_Symbol,SYMBOL_BID)
                                 : SymbolInfoDouble(_Symbol,SYMBOL_ASK));
      const bool trigger=(type==POSITION_TYPE_BUY
                          ? market_price>=open_price+trigger_distance
                          : market_price<=open_price-trigger_distance);
      if(!trigger) continue;

      const double first_sl=NormalizeDouble(type==POSITION_TYPE_BUY
                                            ? open_price+first_lock
                                            : open_price-first_lock,_Digits);
      const bool first_stage=(current_tp<=0.0 ||
                              (type==POSITION_TYPE_BUY
                               ? current_sl<first_sl-epsilon
                               : current_sl>first_sl+epsilon));
      if(first_stage)
      {
         MQL4_OrderModify((long)ticket,open_price,first_sl,desired_tp,0);
         continue;
      }

      const double locked_sl=(type==POSITION_TYPE_BUY
                              ? open_price+lock_distance
                              : open_price-lock_distance);
      const double trailed_sl=(type==POSITION_TYPE_BUY
                               ? market_price-trail_distance
                               : market_price+trail_distance);
      const double desired_sl=NormalizeDouble(type==POSITION_TYPE_BUY
                                              ? MathMax(locked_sl,trailed_sl)
                                              : MathMin(locked_sl,trailed_sl),_Digits);
      const bool tighter=(type==POSITION_TYPE_BUY
                          ? desired_sl>current_sl+epsilon
                          : desired_sl<current_sl-epsilon);
      if(tighter)
         MQL4_OrderModify((long)ticket,open_price,desired_sl,current_tp,0);
   }
}

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

 int deinit()
 {
 lizong_26(); 
 return(0); 
 }

 void lizong_6( int arg_0_in)
 {
 g_328_in_3100 = arg_0_in ;
 g_337_do_3140 = SymbolInfoDouble(g_336_st_3130,16) ;
 g_229_do_1E00 = g_337_do_3140 ;
 if ( ( MarketInfo(g_336_st_3130,MODE_DIGITS)==3.0 || MarketInfo(g_336_st_3130,MODE_DIGITS)==5.0 ) )
 {
   g_229_do_1E00 = g_337_do_3140 * 10.0 ;
 }
 if ( SymbolInfoInteger(g_336_st_3130,17) == 0x1 )
 {
   g_229_do_1E00 = g_337_do_3140 / 10.0 ;
 }
 g_190_in_518 = (int)MarketInfo(g_336_st_3130,MODE_DIGITS) ;
 g_1_do_0 = MarketInfo(g_336_st_3130,MODE_ASK) - MarketInfo(g_336_st_3130,MODE_BID) ;
 g_221_do_1A80 = MarketInfo(g_336_st_3130,MODE_STOPLEVEL) * g_337_do_3140 ;
 g_309_do_2898 = MarketInfo(g_336_st_3130,MODE_FREEZELEVEL) * g_337_do_3140 ;
 g_234_in_1E20=g_89_in_1D8 * 60 * 60;
 if ( g_89_in_1D8 >  0 )
 {
   g_302_da_2870=TimeCurrent() + g_234_in_1E20;
 }
 else
 {
   g_302_da_2870 = 0 ;
 }
 if ( Virtual_expiration )
 {
   g_302_da_2870 = 0 ;
 }
 g_9_do_60 = 1.0 ;
 if ( !(UseVariableValues) )   return;

 if ( g_7_do_50>0.0 )
 {
   g_8_do_58 = iOpen(g_336_st_3130,PERIOD_D1,1) / g_7_do_50 ;
 }
 else
 {
   g_8_do_58 = 1.0 ;
 }
 if ( AdjustLotsizeToVariableValues )
 {
   g_9_do_60 = 1.0 / g_8_do_58 ;
 }
 else
 {
   g_9_do_60 = 1.0 ;
 }
 g_80_do_198 = g_80_do_198 * g_8_do_58 ;
 g_83_do_1B0 = NormalizeDouble(g_83_do_1B0 * g_8_do_58,0) ;
 g_84_do_1B8 = NormalizeDouble(g_84_do_1B8 * g_8_do_58,0) ;
 g_100_do_230 = g_100_do_230 * g_8_do_58 ;
 g_101_do_238 = g_101_do_238 * g_8_do_58 ;
 g_103_do_250 = g_103_do_250 * g_8_do_58 ;
 g_104_do_258 = g_104_do_258 * g_8_do_58 ;
 g_105_do_260 = g_105_do_260 * g_8_do_58 ;
 g_108_do_278 = g_108_do_278 * g_8_do_58 ;
 g_109_do_280 = g_109_do_280 * g_8_do_58 ;
 g_113_do_2A8 = g_113_do_2A8 * g_8_do_58 ;
 g_114_do_2B0 = g_114_do_2B0 * g_8_do_58 ;
 LizardPrepareStrategyTrade();
 }

 int lizong_7( int arg_0_in)
 {
  bool      local_2_bo;
  datetime  local_3_lo;
  int       local_4_in;
  int       local_5_in;
  string    local_6_st;
  datetime  local_7_da;
  int       local_8_in;
  int       local_9_in;

 int        tmp_in_1;
 int        tmp_in_2;
 int        tmp_in_3;
 int        tmp_in_4;
 int        tmp_in_5;
 int        tmp_in_6;
 int        tmp_in_7;
 int        tmp_in_8;
 int        tmp_in_9;
 int        tmp_in_10;
 int        tmp_in_11;
 int        tmp_in_12;
 int        tmp_in_13;
 int        tmp_in_14;
 int        tmp_in_15;
 int        tmp_in_16;
 int        tmp_in_17;
 int        tmp_in_18;
 int        tmp_in_19;
 int        tmp_in_20;
 int        tmp_in_21;
 int        tmp_in_22;
 int        tmp_in_23;
 int        tmp_in_24;
 int        tmp_in_25;
 int        tmp_in_26;
 int        tmp_in_27;
 int        tmp_in_28;
 int        tmp_in_29;
 int        tmp_in_30;
 int        tmp_in_31;
 int        tmp_in_32;
 int        tmp_in_33;
 int        tmp_in_34;
 int        tmp_in_35;
 int        tmp_in_36;
 int        tmp_in_37;
 int        tmp_in_38;
 int        tmp_in_39;
 int        tmp_in_40;
 int        tmp_in_41;
 int        tmp_in_42;
 int        tmp_in_43;
 int        tmp_in_44;
 int        tmp_in_45;
 int        tmp_in_46;
 int        tmp_in_47;
 int        tmp_in_48;
 int        tmp_in_49;
 int        tmp_in_50;
 int        tmp_in_51;
 int        tmp_in_52;
 int        tmp_in_53;
 int        tmp_in_54;
 int        tmp_in_55;
 int        tmp_in_56;
 int        tmp_in_57;
 int        tmp_in_58;
 int        tmp_in_59;
 int        tmp_in_60;
 int        tmp_in_61;
 int        tmp_in_62;
 int        tmp_in_63;
 int        tmp_in_64;
 int        tmp_in_65;
 int        tmp_in_66;
 int        tmp_in_67;
 int        tmp_in_68;
 int        tmp_in_69;
 int        tmp_in_70;
 int        tmp_in_71;
 int        tmp_in_72;
 int        tmp_in_73;
 int        tmp_in_74;
 int        tmp_in_75;
 int        tmp_in_76;
 int        tmp_in_77;
 int        tmp_in_78;
 int        tmp_in_79;
 int        tmp_in_80;
 int        tmp_in_81;
 int        tmp_in_82;
 int        tmp_in_83;
 int        tmp_in_84;
 int        tmp_in_85;
 int        tmp_in_86;
 int        tmp_in_87;
 int        tmp_in_88;
 int        tmp_in_89;
 double     tmp_do_90;
 long       tmp_lo_91;
 int        tmp_in_92;
 long       tmp_lo_93;
 int        tmp_in_94;
 int        tmp_in_95;
 int        tmp_in_96;
 double     tmp_do_97;
 long       tmp_lo_98;
 int        tmp_in_99;
 long       tmp_lo_100;
 int        tmp_in_101;
 int        tmp_in_102;
 int        tmp_in_103;
 int        tmp_in_104;
 int        tmp_in_105;
 bool       tmp_bo_106;
 int        tmp_in_107;
 int        tmp_in_108;
 bool       tmp_bo_109;
 int        tmp_in_110;
 long       tmp_lo_111;
 int        tmp_in_112;
 long       tmp_lo_113;
 string     tmp_st_114;
 int        tmp_in_115;
 int        tmp_in_116;
 int        tmp_in_117;
 int        tmp_in_118;

 g_328_in_3100 = arg_0_in ;
 local_2_bo = false ;

 if ( g_81_do_1A0>0.0 )
 {
   g_80_do_198 = g_81_do_1A0 / 100.0 * MarketInfo(g_336_st_3130,MODE_ASK) * 10.0 ;
 }
 if ( g_99_in_22C == 0 )
 {
   if ( lizong_18() )
   {
     local_2_bo = true ;
   }
   if ( lizong_19() )
   {
     local_2_bo = true ;
   }
   if ( local_2_bo )
   {
     return(0); 
   }
 }
 else
 {
   if ( g_321_in_2920_si99[g_328_in_3100] != iBars(g_336_st_3130,g_99_in_22C) )
   {
     g_321_in_2920_si99[g_328_in_3100] = iBars(g_336_st_3130,g_99_in_22C);
     if ( lizong_18() )
     {
       local_2_bo = true ;
     }
     if ( lizong_19() )
     {
       local_2_bo = true ;
     }
     if ( local_2_bo )
     {
       return(0); 
     }
   }
 }
 lizong_22(false); 
 if ( !(IsTesting()) && MarketInfo(g_336_st_3130,MODE_TRADEALLOWED)==0.0 )
 {
   if ( !(g_256_bo_2564) )
   {
     Print("Market closed... waiting to continue"); 
   }
   g_256_bo_2564 = true ;
   return(0); 
 }
 if ( g_68_in_15C >  0 && ( ( Hour() == 0 && Minute() < g_68_in_15C ) || (Hour() == 23 && g_68_in_15C >  60 - g_68_in_15C) ) )
 {
   if ( !(g_256_bo_2564) )
   {
     Print("DAYSWITCH -> Market might be closed... waiting " + string(g_68_in_15C) + " minutes before setting order.."); 
   }
   g_256_bo_2564 = true ;
   return(0); 
 }
 g_256_bo_2564 = false ;
 if ( g_171_bo_4BC )
 {
   if ( lizong_20() && g_303_bo_2878 )
   {
     if ( g_173_bo_4C4 )
     {
       lizong_8(); 
     }
     g_303_bo_2878 = false ;
   }
   if ( !(lizong_20()) && !(g_303_bo_2878) )
   {
     Print("ENTERING NON-TRADING HOURS! Closing orders..."); 
     if ( g_173_bo_4C4 )
     {
       for (tmp_in_1 = 0 ; tmp_in_1 < g_200_in_16B4 ; tmp_in_1=tmp_in_1 + 1)
       {
         for (tmp_in_2 = 0 ; tmp_in_2 < 2 ; tmp_in_2=tmp_in_2 + 1)
         {
           g_197_do_6DC_si100si3[tmp_in_1][tmp_in_2] = 0.0;
         }
       }
       tmp_in_3 = 0;
       for (tmp_in_4 = OrdersTotal() ; tmp_in_4 >= 0 ; tmp_in_4=tmp_in_4 - 1)
       {
         if ( OrderSelect(tmp_in_4,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 )   continue;

         if ( ( OrderType() != 4 && OrderType() != 5 ) )   continue;
         Print("Storing pending order nr " + string(OrderTicket())); 
         g_197_do_6DC_si100si3[tmp_in_3][1] = OrderType();
         g_197_do_6DC_si100si3[tmp_in_3][0] = OrderOpenPrice();
         g_197_do_6DC_si100si3[tmp_in_3][2] = OrderLots();
         tmp_in_3=tmp_in_3 + 1;

       }
     }
     tmp_in_5 = 1;
     for (tmp_in_6 = OrdersTotal() ; tmp_in_6 >= 0 ; tmp_in_6=tmp_in_6 - 1)
     {
       if ( OrderSelect(tmp_in_6,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
       OrderDelete(OrderTicket(),0xFFFFFFFF); 

     }
     if ( tmp_in_5 == 2 )
     {
       for (tmp_in_7 = OrdersTotal() ; tmp_in_7 >= 0 ; tmp_in_7=tmp_in_7 - 1)
       {
         if ( OrderSelect(tmp_in_7,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
         OrderDelete(OrderTicket(),0xFFFFFFFF); 

       }
     }
     tmp_in_8 = 1;
     for (tmp_in_9 = OrdersTotal() ; tmp_in_9 >= 0 ; tmp_in_9=tmp_in_9 - 1)
     {
       if ( OrderSelect(tmp_in_9,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
       OrderDelete(OrderTicket(),0xFFFFFFFF); 

     }
     if ( tmp_in_8 == 2 )
     {
       for (tmp_in_10 = OrdersTotal() ; tmp_in_10 >= 0 ; tmp_in_10=tmp_in_10 - 1)
       {
         if ( OrderSelect(tmp_in_10,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
         OrderDelete(OrderTicket(),0xFFFFFFFF); 

       }
     }
     tmp_in_11 = 2;
     if(1==0) //condition not met
     {
       do
       {
         if ( OrderSelect(1,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
         OrderDelete(OrderTicket(),0xFFFFFFFF); 

       }
       while( - 1 >= 0);

     }
     if ( tmp_in_11 == 2 )
     {
       for (tmp_in_12 = OrdersTotal() ; tmp_in_12 >= 0 ; tmp_in_12=tmp_in_12 - 1)
       {
         if ( OrderSelect(tmp_in_12,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
         OrderDelete(OrderTicket(),0xFFFFFFFF); 

       }
     }
     tmp_in_13 = 2;
     if(1==0) //condition not met
     {
       do
       {
         if ( OrderSelect(1,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
         OrderDelete(OrderTicket(),0xFFFFFFFF); 

       }
       while( - 1 >= 0);

     }
     if ( tmp_in_13 == 2 )
     {
       for (tmp_in_14 = OrdersTotal() ; tmp_in_14 >= 0 ; tmp_in_14=tmp_in_14 - 1)
       {
         if ( OrderSelect(tmp_in_14,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
         OrderDelete(OrderTicket(),0xFFFFFFFF); 

       }
     }
     g_303_bo_2878 = true ;
     return(0); 
   }
 }
  if ( UseNewsFilter && EnableNFP_Filter )
 {
   if ( Year() <= 2026 )
   {
     local_3_lo = 0 ;
     for (local_4_in = 0 ; local_4_in < 300 ; local_4_in ++)
     {
       tmp_in_15 = TimeYear(g_391_da_5DFC_si300[local_4_in]);
       if ( tmp_in_15 != Year() )   continue;
       tmp_in_16 = TimeMonth(g_391_da_5DFC_si300[local_4_in]);
       if ( tmp_in_16 != Month() )   continue;
       local_3_lo = g_391_da_5DFC_si300[local_4_in] ;
       break;

     }
     local_5_in = 60 ;
     if ( lizong_48() )
     {
       local_5_in = 0 ;
     }
     if ( g_390_da_5DC0 >= local_3_lo - NFP_MinutesBefore * 60 + local_5_in * 60 && g_390_da_5DC0 <= local_3_lo + NFP_MinutesAfter * 60 + local_5_in * 60 )
     {
       if ( NFP_ClosePendingOrders )
       {
         tmp_in_17 = 1;
         for (tmp_in_18 = OrdersTotal() ; tmp_in_18 >= 0 ; tmp_in_18=tmp_in_18 - 1)
         {
           if ( OrderSelect(tmp_in_18,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
           OrderDelete(OrderTicket(),0xFFFFFFFF); 

         }
         if ( tmp_in_17 == 2 )
         {
           for (tmp_in_19 = OrdersTotal() ; tmp_in_19 >= 0 ; tmp_in_19=tmp_in_19 - 1)
           {
             if ( OrderSelect(tmp_in_19,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
         }
         tmp_in_20 = 1;
         for (tmp_in_21 = OrdersTotal() ; tmp_in_21 >= 0 ; tmp_in_21=tmp_in_21 - 1)
         {
           if ( OrderSelect(tmp_in_21,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
           OrderDelete(OrderTicket(),0xFFFFFFFF); 

         }
         if ( tmp_in_20 == 2 )
         {
           for (tmp_in_22 = OrdersTotal() ; tmp_in_22 >= 0 ; tmp_in_22=tmp_in_22 - 1)
           {
             if ( OrderSelect(tmp_in_22,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
         }
         tmp_in_23 = 2;
         if(1==0) //condition not met
         {
           do
           {
             if ( OrderSelect(1,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
           while( - 1 >= 0);

         }
         if ( tmp_in_23 == 2 )
         {
           for (tmp_in_24 = OrdersTotal() ; tmp_in_24 >= 0 ; tmp_in_24=tmp_in_24 - 1)
           {
             if ( OrderSelect(tmp_in_24,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
         }
         tmp_in_25 = 2;
         if(1==0) //condition not met
         {
           do
           {
             if ( OrderSelect(1,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
           while( - 1 >= 0);

         }
         if ( tmp_in_25 == 2 )
         {
           for (tmp_in_26 = OrdersTotal() ; tmp_in_26 >= 0 ; tmp_in_26=tmp_in_26 - 1)
           {
             if ( OrderSelect(tmp_in_26,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
         }
       }
       if ( NFP_CloseOpenTrades )
       {
         for (tmp_in_27 = OrdersTotal() ; tmp_in_27 >= 0 ; tmp_in_27=tmp_in_27 - 1)
         {
           if ( OrderSelect(tmp_in_27,0,0) != true || OrderSymbol() != g_336_st_3130 )   continue;
           tmp_in_28 = OrderMagicNumber();
           tmp_in_29=ST1_MagicNumber + 1;
           if ( tmp_in_28 != tmp_in_29 )
           {
             tmp_in_29 = OrderMagicNumber();
             tmp_in_30=ST1_MagicNumber + 2;
             if ( tmp_in_29 != tmp_in_30 )
             {
               tmp_in_30 = OrderMagicNumber();
               tmp_in_31=ST1_MagicNumber + 3;
               if ( tmp_in_30 != tmp_in_31 )
               {
                 tmp_in_31 = OrderMagicNumber();
                 tmp_in_32=ST1_MagicNumber + 4;
                 if ( tmp_in_31 != tmp_in_32 )
                 {
                   tmp_in_32 = OrderMagicNumber();
                   tmp_in_33=ST1_MagicNumber + 5;
                   if ( tmp_in_32 != tmp_in_33 )
                   {
                     tmp_in_33 = OrderMagicNumber();
                     tmp_in_34=ST1_MagicNumber + 6;
                     if ( tmp_in_33 != tmp_in_34 )
                     {
                       tmp_in_34 = OrderMagicNumber();
                       tmp_in_35=ST1_MagicNumber + 7;
                       if ( tmp_in_34 != tmp_in_35 )
                       {
                         tmp_in_35 = OrderMagicNumber();
                         tmp_in_36=ST1_MagicNumber + 8;
                         if ( tmp_in_35 != tmp_in_36 )
                         {
                           tmp_in_36 = OrderMagicNumber();
                           tmp_in_37=ST1_MagicNumber + 9;
                           if ( tmp_in_36 != tmp_in_37 )
                           {
                             tmp_in_37 = OrderMagicNumber();
                             tmp_in_38=ST1_MagicNumber + 10;
                             if ( tmp_in_37 != tmp_in_38 )
                             {
                               tmp_in_38 = OrderMagicNumber();
                               tmp_in_39=ST1_MagicNumber + 11;
                               if ( tmp_in_38 != tmp_in_39 )
                               {
                                 tmp_in_39 = OrderMagicNumber();
                                 tmp_in_40=ST1_MagicNumber + 12;
                                 if ( tmp_in_39 != tmp_in_40 )
                                 {
                                   tmp_in_40 = OrderMagicNumber();
                                   tmp_in_41=ST1_MagicNumber + 13;
                                   if ( tmp_in_40 != tmp_in_41 )
                                   {
                                     tmp_in_41 = OrderMagicNumber();
                                     tmp_in_42=ST1_MagicNumber + 14;
                                     if ( tmp_in_41 != tmp_in_42 )
                                     {
                                       tmp_in_42 = OrderMagicNumber();
                                       tmp_in_43=ST1_MagicNumber + 15;
                                     if ( tmp_in_42 != tmp_in_43 )   continue;
                                     }
                                   }
                                 }
                               }
                             }
                           }
                         }
                       }
                     }
                   }
                 }
               }
             }
           }
           if ( OrderType() == 0 )
           {
             OrderClose(OrderTicket(),OrderLots(),MarketInfo(g_336_st_3130,MODE_BID),99999,Red); 
           }
           if ( OrderType() != 1 )   continue;
           OrderClose(OrderTicket(),OrderLots(),MarketInfo(g_336_st_3130,MODE_ASK),99999,Red); 

         }
       }
       if ( !(g_320_bo_28E8) )
       {
         Print("NFP!! deleting trades!!"); 
       }
       g_320_bo_28E8 = true ;
     }
     else
     {
       g_320_bo_28E8 = false ;
     }
   }
   else
   {
     if ( Day() <= 7 && DayOfWeek() == 5 )
     {
       local_6_st = IntegerToString(Year(),0,32) + IntegerToString(Month(),0,32) + IntegerToString(Day(),0,32) + " " + IntegerToString(0x4CE,0,32) ;
       local_7_da = StringToTime(local_6_st) ;
       if ( g_390_da_5DC0 >= local_7_da - NFP_MinutesBefore * 60 && g_390_da_5DC0 <= local_7_da + NFP_MinutesAfter * 60 )
       {
         if ( NFP_ClosePendingOrders )
         {
           tmp_in_44 = 1;
           for (tmp_in_45 = OrdersTotal() ; tmp_in_45 >= 0 ; tmp_in_45=tmp_in_45 - 1)
           {
             if ( OrderSelect(tmp_in_45,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
           if ( tmp_in_44 == 2 )
           {
             for (tmp_in_46 = OrdersTotal() ; tmp_in_46 >= 0 ; tmp_in_46=tmp_in_46 - 1)
             {
               if ( OrderSelect(tmp_in_46,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
               OrderDelete(OrderTicket(),0xFFFFFFFF); 

             }
           }
           tmp_in_47 = 1;
           for (tmp_in_48 = OrdersTotal() ; tmp_in_48 >= 0 ; tmp_in_48=tmp_in_48 - 1)
           {
             if ( OrderSelect(tmp_in_48,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
             OrderDelete(OrderTicket(),0xFFFFFFFF); 

           }
           if ( tmp_in_47 == 2 )
           {
             for (tmp_in_49 = OrdersTotal() ; tmp_in_49 >= 0 ; tmp_in_49=tmp_in_49 - 1)
             {
               if ( OrderSelect(tmp_in_49,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
               OrderDelete(OrderTicket(),0xFFFFFFFF); 

             }
           }
           tmp_in_50 = 2;
           if(1==0) //condition not met
           {
             do
             {
               if ( OrderSelect(1,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
               OrderDelete(OrderTicket(),0xFFFFFFFF); 

             }
             while( - 1 >= 0);

           }
           if ( tmp_in_50 == 2 )
           {
             for (tmp_in_51 = OrdersTotal() ; tmp_in_51 >= 0 ; tmp_in_51=tmp_in_51 - 1)
             {
               if ( OrderSelect(tmp_in_51,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
               OrderDelete(OrderTicket(),0xFFFFFFFF); 

             }
           }
           tmp_in_52 = 2;
           if(1==0) //condition not met
           {
             do
             {
               if ( OrderSelect(1,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
               OrderDelete(OrderTicket(),0xFFFFFFFF); 

             }
             while( - 1 >= 0);

           }
           if ( tmp_in_52 == 2 )
           {
             for (tmp_in_53 = OrdersTotal() ; tmp_in_53 >= 0 ; tmp_in_53=tmp_in_53 - 1)
             {
               if ( OrderSelect(tmp_in_53,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
               OrderDelete(OrderTicket(),0xFFFFFFFF); 

             }
           }
         }
         if ( NFP_CloseOpenTrades )
         {
           for (tmp_in_54 = OrdersTotal() ; tmp_in_54 >= 0 ; tmp_in_54=tmp_in_54 - 1)
           {
             if ( OrderSelect(tmp_in_54,0,0) != true || OrderSymbol() != g_336_st_3130 )   continue;
             tmp_in_55 = OrderMagicNumber();
             tmp_in_56=ST1_MagicNumber + 1;
             if ( tmp_in_55 != tmp_in_56 )
             {
               tmp_in_56 = OrderMagicNumber();
               tmp_in_57=ST1_MagicNumber + 2;
               if ( tmp_in_56 != tmp_in_57 )
               {
                 tmp_in_57 = OrderMagicNumber();
                 tmp_in_58=ST1_MagicNumber + 3;
                 if ( tmp_in_57 != tmp_in_58 )
                 {
                   tmp_in_58 = OrderMagicNumber();
                   tmp_in_59=ST1_MagicNumber + 4;
                   if ( tmp_in_58 != tmp_in_59 )
                   {
                     tmp_in_59 = OrderMagicNumber();
                     tmp_in_60=ST1_MagicNumber + 5;
                     if ( tmp_in_59 != tmp_in_60 )
                     {
                       tmp_in_60 = OrderMagicNumber();
                       tmp_in_61=ST1_MagicNumber + 6;
                       if ( tmp_in_60 != tmp_in_61 )
                       {
                         tmp_in_61 = OrderMagicNumber();
                         tmp_in_62=ST1_MagicNumber + 7;
                         if ( tmp_in_61 != tmp_in_62 )
                         {
                           tmp_in_62 = OrderMagicNumber();
                           tmp_in_63=ST1_MagicNumber + 8;
                           if ( tmp_in_62 != tmp_in_63 )
                           {
                             tmp_in_63 = OrderMagicNumber();
                             tmp_in_64=ST1_MagicNumber + 9;
                             if ( tmp_in_63 != tmp_in_64 )
                             {
                               tmp_in_64 = OrderMagicNumber();
                               tmp_in_65=ST1_MagicNumber + 10;
                               if ( tmp_in_64 != tmp_in_65 )
                               {
                                 tmp_in_65 = OrderMagicNumber();
                                 tmp_in_66=ST1_MagicNumber + 11;
                                 if ( tmp_in_65 != tmp_in_66 )
                                 {
                                   tmp_in_66 = OrderMagicNumber();
                                   tmp_in_67=ST1_MagicNumber + 12;
                                   if ( tmp_in_66 != tmp_in_67 )
                                   {
                                     tmp_in_67 = OrderMagicNumber();
                                     tmp_in_68=ST1_MagicNumber + 13;
                                     if ( tmp_in_67 != tmp_in_68 )
                                     {
                                       tmp_in_68 = OrderMagicNumber();
                                       tmp_in_69=ST1_MagicNumber + 14;
                                       if ( tmp_in_68 != tmp_in_69 )
                                       {
                                         tmp_in_69 = OrderMagicNumber();
                                         tmp_in_70=ST1_MagicNumber + 15;
                                       if ( tmp_in_69 != tmp_in_70 )   continue;
                                       }
                                     }
                                   }
                                 }
                               }
                             }
                           }
                         }
                       }
                     }
                   }
                 }
               }
             }
             if ( OrderType() == 0 )
             {
               OrderClose(OrderTicket(),OrderLots(),MarketInfo(g_336_st_3130,MODE_BID),99999,Red); 
             }
             if ( OrderType() != 1 )   continue;
             OrderClose(OrderTicket(),OrderLots(),MarketInfo(g_336_st_3130,MODE_ASK),99999,Red); 

           }
         }
         if ( !(g_320_bo_28E8) )
         {
           Print("NFP!! deleting trades!!"); 
         }
         g_320_bo_28E8 = true ;
       }
       else
       {
         g_320_bo_28E8 = false ;
       }
     }
   }
 }
 if ( g_320_bo_28E8 )
 {
   return(0); 
 }
 if ( g_45_bo_FC )
 {
   if ( DayOfWeek() == 5 && Hour() >= FridayStopHour && !(g_305_bo_2880) )
   {
     for (tmp_in_71 = OrdersTotal() ; tmp_in_71 >= 0 ; tmp_in_71=tmp_in_71 - 1)
     {
       if ( OrderSelect(tmp_in_71,0,0) != true || OrderSymbol() != g_336_st_3130 )   continue;
       tmp_in_72 = OrderMagicNumber();
       tmp_in_73=ST1_MagicNumber + 1;
       if ( tmp_in_72 != tmp_in_73 )
       {
         tmp_in_73 = OrderMagicNumber();
         tmp_in_74=ST1_MagicNumber + 2;
         if ( tmp_in_73 != tmp_in_74 )
         {
           tmp_in_74 = OrderMagicNumber();
           tmp_in_75=ST1_MagicNumber + 3;
           if ( tmp_in_74 != tmp_in_75 )
           {
             tmp_in_75 = OrderMagicNumber();
             tmp_in_76=ST1_MagicNumber + 4;
             if ( tmp_in_75 != tmp_in_76 )
             {
               tmp_in_76 = OrderMagicNumber();
               tmp_in_77=ST1_MagicNumber + 5;
               if ( tmp_in_76 != tmp_in_77 )
               {
                 tmp_in_77 = OrderMagicNumber();
                 tmp_in_78=ST1_MagicNumber + 6;
                 if ( tmp_in_77 != tmp_in_78 )
                 {
                   tmp_in_78 = OrderMagicNumber();
                   tmp_in_79=ST1_MagicNumber + 7;
                   if ( tmp_in_78 != tmp_in_79 )
                   {
                     tmp_in_79 = OrderMagicNumber();
                     tmp_in_80=ST1_MagicNumber + 8;
                     if ( tmp_in_79 != tmp_in_80 )
                     {
                       tmp_in_80 = OrderMagicNumber();
                       tmp_in_81=ST1_MagicNumber + 9;
                       if ( tmp_in_80 != tmp_in_81 )
                       {
                         tmp_in_81 = OrderMagicNumber();
                         tmp_in_82=ST1_MagicNumber + 10;
                         if ( tmp_in_81 != tmp_in_82 )
                         {
                           tmp_in_82 = OrderMagicNumber();
                           tmp_in_83=ST1_MagicNumber + 11;
                           if ( tmp_in_82 != tmp_in_83 )
                           {
                             tmp_in_83 = OrderMagicNumber();
                             tmp_in_84=ST1_MagicNumber + 12;
                             if ( tmp_in_83 != tmp_in_84 )
                             {
                               tmp_in_84 = OrderMagicNumber();
                               tmp_in_85=ST1_MagicNumber + 13;
                               if ( tmp_in_84 != tmp_in_85 )
                               {
                                 tmp_in_85 = OrderMagicNumber();
                                 tmp_in_86=ST1_MagicNumber + 14;
                                 if ( tmp_in_85 != tmp_in_86 )
                                 {
                                   tmp_in_86 = OrderMagicNumber();
                                   tmp_in_87=ST1_MagicNumber + 15;
                                 if ( tmp_in_86 != tmp_in_87 )   continue;
                                 }
                               }
                             }
                           }
                         }
                       }
                     }
                   }
                 }
               }
             }
           }
         }
       }
       if ( OrderType() == 0 )
       {
         OrderClose(OrderTicket(),OrderLots(),MarketInfo(g_336_st_3130,MODE_BID),g_38_do_C0,Red); 
       }
       if ( OrderType() == 1 )
       {
         OrderClose(OrderTicket(),OrderLots(),MarketInfo(g_336_st_3130,MODE_ASK),g_38_do_C0,Red); 
       }
       if ( ( OrderType() != 4 && OrderType() != 5 ) )   continue;
       OrderDelete(OrderTicket(),Red); 

     }
     Print("Weekend starting! closing trades.."); 
     g_305_bo_2880 = true ;
     return(0); 
   }
   if ( DayOfWeek() != 5 && g_305_bo_2880 == true )
   {
     g_305_bo_2880 = false ;
     if ( g_46_bo_FD )
     {
       lizong_8(); 
       return(0); 
     }
   }
 }
 g_1_do_0 = MarketInfo(g_336_st_3130,MODE_ASK) - MarketInfo(g_336_st_3130,MODE_BID) ;
 if ( g_35_bo_AF )
 {
   if ( g_1_do_0>MaxSpread * g_229_do_1E00 )
   {
     lizong_9(); 
     return(0); 
   }
   if ( g_1_do_0<=g_37_do_B8 * g_229_do_1E00 && ( !(g_45_bo_FC) || DayOfWeek() != 5 || Hour() <  FridayStopHour ) && ( !(g_171_bo_4BC) || lizong_20() ) )
   {
     lizong_8(); 
   }
 }
 if ( g_69_in_160 == 1 )
 {
   tmp_in_88 = 0;
   for (tmp_in_89 = OrdersTotal() ; tmp_in_89 >= 0 ; tmp_in_89=tmp_in_89 - 1)
   {
     if ( OrderSelect(tmp_in_89,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
     tmp_in_88=tmp_in_88 + 1;

   }
   if ( tmp_in_88 >  g_86_in_1C8 )
   {
     tmp_do_90 = 0.0;
     tmp_lo_91 = 0;
     for (tmp_in_92 = OrdersTotal() ; tmp_in_92 >= 0 ; tmp_in_92=tmp_in_92 - 1)
     {
       if ( OrderSelect(tmp_in_92,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 || !(OrderOpenPrice()>tmp_do_90) )   continue;
       tmp_lo_91 = OrderTicket();
       tmp_do_90 = OrderOpenPrice();

     }
     if ( tmp_lo_91 != 0 )
     {
       OrderDelete(tmp_lo_91,Green); 
       tmp_lo_93 = tmp_lo_91;
       for (tmp_in_94 = 0 ; tmp_in_94 < 100 ; tmp_in_94=tmp_in_94 + 1)
       {
         if ( !(g_198_do_1070_si100si2[tmp_in_94][0]==tmp_lo_93) )   continue;
         g_198_do_1070_si100si2[tmp_in_94][0] = 0.0;
         g_198_do_1070_si100si2[tmp_in_94][1] = 0.0;
         break;

       }
       Print("Max number of pending buy orders reached... deleting highest buystop order!"); 
     }
   }
   tmp_in_95 = 0;
   for (tmp_in_96 = OrdersTotal() ; tmp_in_96 >= 0 ; tmp_in_96=tmp_in_96 - 1)
   {
     if ( OrderSelect(tmp_in_96,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
     tmp_in_95=tmp_in_95 + 1;

   }
   if ( tmp_in_95 >  g_86_in_1C8 )
   {
     tmp_do_97 = 9999.0;
     tmp_lo_98 = 0;
     for (tmp_in_99 = OrdersTotal() ; tmp_in_99 >= 0 ; tmp_in_99=tmp_in_99 - 1)
     {
       if ( OrderSelect(tmp_in_99,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 || !(OrderOpenPrice()<tmp_do_97) )   continue;
       tmp_lo_98 = OrderTicket();
       tmp_do_97 = OrderOpenPrice();

     }
     if ( tmp_lo_98 != 0 )
     {
       OrderDelete(tmp_lo_98,Green); 
       tmp_lo_100 = tmp_lo_98;
       for (tmp_in_101 = 0 ; tmp_in_101 < 100 ; tmp_in_101=tmp_in_101 + 1)
       {
         if ( !(g_198_do_1070_si100si2[tmp_in_101][0]==tmp_lo_100) )   continue;
         g_198_do_1070_si100si2[tmp_in_101][0] = 0.0;
         g_198_do_1070_si100si2[tmp_in_101][1] = 0.0;
         break;

       }
       Print("Max number of pending sell orders reached... deleting lowest sellstop order!"); 
     }
   }
 }
 if ( !(g_305_bo_2880) && g_69_in_160 == 1 && !(g_303_bo_2878) )
 {
   if ( ( g_322_in_2AE0_si99[g_328_in_3100] != iBars(g_336_st_3130,g_72_in_178) || g_72_in_178 == 0 ) )
   {
     g_322_in_2AE0_si99[g_328_in_3100] = iBars(g_336_st_3130,g_72_in_178);
     if ( g_119_in_2D0 >  0 && g_120_in_2D4 >= 0 )
     {
       g_241_do_1E78_si99[g_328_in_3100] = g_123_do_2E0 * g_229_do_1E00 + (lizong_13(g_117_in_2C8,g_119_in_2D0,g_120_in_2D4) + g_1_do_0);
       g_242_do_21C4_si99[g_328_in_3100] = lizong_14(g_117_in_2C8,g_119_in_2D0,g_120_in_2D4) - g_123_do_2E0 * g_229_do_1E00;
     }
     if ( g_187_in_504 >  0 )
     {
       local_8_in=MathRand() * g_187_in_504 / 32768 + 1;
       g_15_in_78 = local_8_in ;
       Print("Slippage: " + (string(local_8_in))); 
     }
     if ( g_63_in_140 != 1 )
     {
       tmp_in_102 = 0;
       for (tmp_in_103 = OrdersTotal() ; tmp_in_103 >= 0 ; tmp_in_103=tmp_in_103 - 1)
       {
         if ( OrderSelect(tmp_in_103,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 0 )   continue;
         tmp_in_102=tmp_in_102 + 1;

       }
       if ( tmp_in_102 == 0 )
       {
         tmp_in_104 = 0;
         for (tmp_in_105 = OrdersTotal() ; tmp_in_105 >= 0 ; tmp_in_105=tmp_in_105 - 1)
         {
           if ( OrderSelect(tmp_in_105,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 1 )   continue;
           tmp_in_104=tmp_in_104 + 1;

         }
         if ( tmp_in_104 == 0 )
         {
           tmp_bo_106 = false;
           for (tmp_in_107 = 0 ; tmp_in_107 < g_199_in_16B0 ; tmp_in_107=tmp_in_107 + 1)
           {
             if ( !(g_196_do_568_si20si2[tmp_in_107][0]>0.0) )   continue;
             tmp_bo_106 = false;
             for (tmp_in_108 = OrdersTotal() ; tmp_in_108 >= 0 ; tmp_in_108=tmp_in_108 - 1)
             {
               if ( OrderSelect(tmp_in_108,0,0) != true )   continue;

               if ( ( OrderType() != 0 && OrderType() != 1 ) || !(OrderTicket()==g_196_do_568_si20si2[tmp_in_107][0]) )   continue;
               tmp_bo_106 = true;

             }
             if ( tmp_bo_106 )   continue;
             g_196_do_568_si20si2[tmp_in_107][0] = 0.0;
             g_196_do_568_si20si2[tmp_in_107][1] = 0.0;

           }
         }
       }
     }
     for (local_9_in = 0 ; local_9_in < g_86_in_1C8 ; local_9_in ++)
     {
       lizong_15(); 
     }
   }
   lizong_29(); 
   if ( g_267_in_25A0 != Hour() )
   {
     g_267_in_25A0 = Hour() ;
     tmp_bo_109 = false;
     for (tmp_in_110 = 0 ; tmp_in_110 < 100 ; tmp_in_110=tmp_in_110 + 1)
     {
       tmp_lo_111 = (long)g_198_do_1070_si100si2[tmp_in_110][0];
       tmp_bo_109 = false;
       for (tmp_in_112 = OrdersTotal() ; tmp_in_112 >= 0 ; tmp_in_112=tmp_in_112 - 1)
       {
         if ( !(OrderSelect(tmp_in_112,0,0)) )   continue;
         tmp_lo_113 = OrderTicket();
         if ( tmp_lo_111 != tmp_lo_113 )   continue;
         tmp_bo_109 = true;

       }
       if ( tmp_bo_109 )   continue;
       g_198_do_1070_si100si2[tmp_in_110][0] = 0.0;
       g_198_do_1070_si100si2[tmp_in_110][1] = 0.0;

     }
   }
 }
 if ( g_62_bo_13D )
 {
   tmp_st_114="Current spread: " + string(NormalizeDouble(g_1_do_0 / g_229_do_1E00,1)) + "\nPending Buy Order: ";
   tmp_in_115 = 0;
   for (tmp_in_116 = OrdersTotal() ; tmp_in_116 >= 0 ; tmp_in_116=tmp_in_116 - 1)
   {
     if ( OrderSelect(tmp_in_116,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
     tmp_in_115=tmp_in_115 + 1;

   }
   tmp_st_114=tmp_st_114 + string(tmp_in_115);
   tmp_st_114=tmp_st_114 + "\nPending Sell Orders: ";
   tmp_in_117 = 0;
   for (tmp_in_118 = OrdersTotal() ; tmp_in_118 >= 0 ; tmp_in_118=tmp_in_118 - 1)
   {
     if ( OrderSelect(tmp_in_118,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
     tmp_in_117=tmp_in_117 + 1;

   }
   tmp_st_114=tmp_st_114 + string(tmp_in_117);
   Comment(tmp_st_114); 
 }
 return(0); 
 }

 void lizong_8()
 {
  int       local_1_in;

 double     tmp_do_1;
 long       tmp_lo_2;
 int        tmp_in_3;
 double     tmp_do_4;
 long       tmp_lo_5;
 int        tmp_in_6;
 double     tmp_do_7;
 long       tmp_lo_8;
 int        tmp_in_9;
 double     tmp_do_10;
 long       tmp_lo_11;
 int        tmp_in_12;
 int        tmp_in_13;

 for (local_1_in = 0 ; local_1_in < g_200_in_16B4 ; local_1_in ++)
 {
   if ( !(g_197_do_6DC_si100si3[local_1_in][0]>0.0) )   continue;

   if ( g_197_do_6DC_si100si3[local_1_in][1]==4.0 && MarketInfo(g_336_st_3130,MODE_ASK)<g_197_do_6DC_si100si3[local_1_in][0] - g_221_do_1A80 )
   {
     Print("Restoring pending buy-order"); 
     g_230_in_1E08 = OrderSend(g_336_st_3130,4,g_197_do_6DC_si100si3[local_1_in][2],g_197_do_6DC_si100si3[local_1_in][0],int(g_38_do_C0 * g_229_do_1E00),g_197_do_6DC_si100si3[local_1_in][0] - (g_100_do_230 + g_64_do_148) * g_229_do_1E00,g_101_do_238 * g_229_do_1E00 + g_197_do_6DC_si100si3[local_1_in][0],g_334_st_3120,g_93_in_1F0,g_302_da_2870 + 0x2A300,Green) ;
     g_280_bo_25FA = false ;
     tmp_do_1 = g_197_do_6DC_si100si3[local_1_in][0];
     tmp_lo_2 = g_230_in_1E08;
     for (tmp_in_3 = 0 ; tmp_in_3 < 100 ; tmp_in_3=tmp_in_3 + 1)
     {
       if ( !(g_198_do_1070_si100si2[tmp_in_3][0]==0.0) )   continue;
       g_198_do_1070_si100si2[tmp_in_3][0] = (double)tmp_lo_2;
       g_198_do_1070_si100si2[tmp_in_3][1] = tmp_do_1;
       break;

     }
     if ( g_230_in_1E08 <= 0 )
     {
       if ( GetLastError() == 132 )
       {
         ResetLastError();
         if(1==0) //condition not met
         {
           do
           {
             Sleep(2500); 
             g_230_in_1E08 = OrderSend(g_336_st_3130,4,g_197_do_6DC_si100si3[local_1_in][2],g_197_do_6DC_si100si3[local_1_in][0],int(g_38_do_C0 * g_229_do_1E00),g_197_do_6DC_si100si3[local_1_in][0] - (g_100_do_230 + g_64_do_148) * g_229_do_1E00,g_101_do_238 * g_229_do_1E00 + g_197_do_6DC_si100si3[local_1_in][0],g_334_st_3120,g_93_in_1F0,g_302_da_2870 + 0x2A300,Green) ;
             g_280_bo_25FA = false ;
             tmp_do_4 = g_197_do_6DC_si100si3[local_1_in][0];
             tmp_lo_5 = g_230_in_1E08;
             for (tmp_in_6 = 0 ; tmp_in_6 < 100 ; tmp_in_6=tmp_in_6 + 1)
             {
               if ( !(g_198_do_1070_si100si2[tmp_in_6][0]==0.0) )   continue;
               g_198_do_1070_si100si2[tmp_in_6][0] = (double)tmp_lo_5;
               g_198_do_1070_si100si2[tmp_in_6][1] = tmp_do_4;
               break;

             }
           }
           while(GetLastError() == 132);

         }
       }
       Print("error: \'" + lizong_21(GetLastError()) + "\' when setting entry order"); 
     }
   }
   if ( !(g_197_do_6DC_si100si3[local_1_in][1]==5.0) || !(MarketInfo(g_336_st_3130,MODE_BID)>g_197_do_6DC_si100si3[local_1_in][0] + g_221_do_1A80) )   continue;
   Print("Restoring pending sell-order"); 
   g_230_in_1E08 = OrderSend(g_336_st_3130,5,g_197_do_6DC_si100si3[local_1_in][2],g_197_do_6DC_si100si3[local_1_in][0],int(g_38_do_C0 * g_229_do_1E00),(g_100_do_230 + g_64_do_148) * g_229_do_1E00 + g_197_do_6DC_si100si3[local_1_in][0],g_197_do_6DC_si100si3[local_1_in][0] - g_101_do_238 * g_229_do_1E00,g_334_st_3120,g_93_in_1F0,g_302_da_2870 + 0x2A300,Green) ;
   g_281_bo_25FB = false ;
   tmp_do_7 = g_197_do_6DC_si100si3[local_1_in][0];
   tmp_lo_8 = g_230_in_1E08;
   for (tmp_in_9 = 0 ; tmp_in_9 < 100 ; tmp_in_9=tmp_in_9 + 1)
   {
     if ( !(g_198_do_1070_si100si2[tmp_in_9][0]==0.0) )   continue;
     g_198_do_1070_si100si2[tmp_in_9][0] = (double)tmp_lo_8;
     g_198_do_1070_si100si2[tmp_in_9][1] = tmp_do_7;
     break;

   }
   if ( g_230_in_1E08 > 0 )   continue;

   if ( GetLastError() == 132 )
   {
     ResetLastError();
     if(1==0) //condition not met
     {
       do
       {
         Sleep(2500); 
         g_230_in_1E08 = OrderSend(g_336_st_3130,5,g_197_do_6DC_si100si3[local_1_in][2],g_197_do_6DC_si100si3[local_1_in][0],int(g_38_do_C0 * g_229_do_1E00),(g_100_do_230 + g_64_do_148) * g_229_do_1E00 + g_197_do_6DC_si100si3[local_1_in][0],g_197_do_6DC_si100si3[local_1_in][0] - g_101_do_238 * g_229_do_1E00,g_334_st_3120,g_93_in_1F0,g_302_da_2870 + 0x2A300,Green) ;
         g_281_bo_25FB = false ;
         tmp_do_10 = g_197_do_6DC_si100si3[local_1_in][0];
         tmp_lo_11 = g_230_in_1E08;
         for (tmp_in_12 = 0 ; tmp_in_12 < 100 ; tmp_in_12=tmp_in_12 + 1)
         {
           if ( !(g_198_do_1070_si100si2[tmp_in_12][0]==0.0) )   continue;
           g_198_do_1070_si100si2[tmp_in_12][0] = (double)tmp_lo_11;
           g_198_do_1070_si100si2[tmp_in_12][1] = tmp_do_10;
           break;

         }
       }
       while(GetLastError() == 132);

     }
   }
   Print("error: \'" + lizong_21(GetLastError()) + "\' when setting entry order"); 

 }
 for (tmp_in_13 = 0 ; tmp_in_13 < g_200_in_16B4 ; tmp_in_13=tmp_in_13 + 1)
 {
   g_197_do_6DC_si100si3[tmp_in_13][0] = 0.0;
   g_197_do_6DC_si100si3[tmp_in_13][1] = 0.0;
   g_197_do_6DC_si100si3[tmp_in_13][2] = 0.0;
 }
 }

 bool lizong_9()
 {
  int       local_2_in;
  int       local_3_in;
  int       local_4_in;

 long       tmp_lo_1;
 int        tmp_in_2;
 long       tmp_lo_3;
 int        tmp_in_4;
 double     tmp_do_5;
 double     tmp_do_6;
 long       tmp_lo_7;
 int        tmp_in_8;
 long       tmp_lo_9;
 int        tmp_in_10;

 for (local_2_in = OrdersTotal() ; local_2_in >= 0 ; local_2_in --)
 {
   if ( OrderSelect(local_2_in,0,0) != true )   continue;

   if ( ( OrderMagicNumber() != g_93_in_1F0 && OrderMagicNumber() != g_96_in_208 ) || OrderSymbol() != g_336_st_3130 )   continue;

   if ( OrderType() == 4 && OrderOpenPrice()<g_36_in_B0 * g_229_do_1E00 + MarketInfo(g_336_st_3130,MODE_ASK) && MarketInfo(g_336_st_3130,MODE_ASK)<OrderOpenPrice() - g_309_do_2898 )
   {
     if ( g_37_do_B8>0.0 )
     {
       Print("Spread too high..(" + string(g_1_do_0) + ") storing and deleting order " + string(OrderTicket())); 
       for (local_3_in = 0 ; local_3_in < g_200_in_16B4 ; local_3_in ++)
       {
         if ( g_197_do_6DC_si100si3[local_3_in][0]==0.0 )
         {
           Print("Storing pending order nr " + string(OrderTicket())); 
           g_197_do_6DC_si100si3[local_3_in][1] = OrderType();
           g_197_do_6DC_si100si3[local_3_in][0] = OrderOpenPrice();
           g_197_do_6DC_si100si3[local_3_in][2] = OrderLots();
           break;
         }
       }
       tmp_lo_1 = OrderTicket();
       for (tmp_in_2 = 0 ; tmp_in_2 < 100 ; tmp_in_2=tmp_in_2 + 1)
       {
         if ( !(g_198_do_1070_si100si2[tmp_in_2][0]==tmp_lo_1) )   continue;
         g_198_do_1070_si100si2[tmp_in_2][0] = 0.0;
         g_198_do_1070_si100si2[tmp_in_2][1] = 0.0;
         break;

       }
       OrderDelete(OrderTicket(),Green); 
     }
     else
     {
       Print("Spread too high..(" + string(g_1_do_0) + ") deleting order " + string(OrderTicket())); 
       tmp_lo_3 = OrderTicket();
       for (tmp_in_4 = 0 ; tmp_in_4 < 100 ; tmp_in_4=tmp_in_4 + 1)
       {
         if ( !(g_198_do_1070_si100si2[tmp_in_4][0]==tmp_lo_3) )   continue;
         g_198_do_1070_si100si2[tmp_in_4][0] = 0.0;
         g_198_do_1070_si100si2[tmp_in_4][1] = 0.0;
         break;

       }
       OrderDelete(OrderTicket(),Green); 
     }
   }
   if ( OrderType() != 5 )   continue;
   tmp_do_5 = OrderOpenPrice();
   if ( !(tmp_do_5>MarketInfo(g_336_st_3130,MODE_BID) - g_36_in_B0 * g_229_do_1E00) )   continue;
   tmp_do_6 = MarketInfo(g_336_st_3130,MODE_BID);
   if ( !(tmp_do_6>OrderOpenPrice() + g_309_do_2898) )   continue;

   if ( g_37_do_B8>0.0 )
   {
     Print("Spread too high..(" + string(g_1_do_0) + ") storing and deleting order " + string(OrderTicket())); 
     for (local_4_in = 0 ; local_4_in < g_200_in_16B4 ; local_4_in ++)
     {
       if ( g_197_do_6DC_si100si3[local_4_in][0]==0.0 )
       {
         Print("Storing pending order nr " + string(OrderTicket())); 
         g_197_do_6DC_si100si3[local_4_in][1] = OrderType();
         g_197_do_6DC_si100si3[local_4_in][0] = OrderOpenPrice();
         g_197_do_6DC_si100si3[local_4_in][2] = OrderLots();
         break;
       }
     }
     tmp_lo_7 = OrderTicket();
     for (tmp_in_8 = 0 ; tmp_in_8 < 100 ; tmp_in_8=tmp_in_8 + 1)
     {
       if ( !(g_198_do_1070_si100si2[tmp_in_8][0]==tmp_lo_7) )   continue;
       g_198_do_1070_si100si2[tmp_in_8][0] = 0.0;
       g_198_do_1070_si100si2[tmp_in_8][1] = 0.0;
       break;

     }
     OrderDelete(OrderTicket(),Green); 
      continue;
   }
   Print("Spread too high..(" + string(g_1_do_0) + ") deleting order " + string(OrderTicket())); 
   tmp_lo_9 = OrderTicket();
   for (tmp_in_10 = 0 ; tmp_in_10 < 100 ; tmp_in_10=tmp_in_10 + 1)
   {
     if ( !(g_198_do_1070_si100si2[tmp_in_10][0]==tmp_lo_9) )   continue;
     g_198_do_1070_si100si2[tmp_in_10][0] = 0.0;
     g_198_do_1070_si100si2[tmp_in_10][1] = 0.0;
     break;

   }
   OrderDelete(OrderTicket(),Green); 

 }
 return(false); 
 }

 void lizong_10( double arg_0_do,int arg_1_in)
 {
  double    local_1_do;
  double    local_2_do;
  double    local_3_do;
  double    local_4_do;
  double    local_5_do;
  double    local_6_do;
  double    local_7_do;

 local_1_do = g_223_do_1AC4_si99[g_328_in_3100] ;
 local_2_do = g_223_do_1AC4_si99[g_328_in_3100] ;
 g_401_do_6AD0 = AccountInfoDouble(ACCOUNT_BALANCE) ;
 if ( UseEquity )
 {
   g_401_do_6AD0 = AccountInfoDouble(ACCOUNT_EQUITY) ;
 }
 if ( ForceBalanceToUse>0.0 )
 {
   g_401_do_6AD0 = ForceBalanceToUse ;
 }
 if ( OnlyUp && g_402_do_6AD8>g_401_do_6AD0 )
 {
   g_401_do_6AD0 = g_402_do_6AD8 ;
 }
 if ( g_401_do_6AD0>g_402_do_6AD8 )
 {
   g_402_do_6AD8 = g_401_do_6AD0 ;
 }
 local_3_do = arg_0_do ;
 if ( ( g_190_in_518 == 2 || g_190_in_518 == 4 ) )
 {
   local_3_do = arg_0_do / 10.0 ;
 }
 if ( Risk <  999 && Risk >  0 )
 {
   local_4_do = Risk ;
   local_5_do = local_4_do / 1000.0 * g_401_do_6AD0 ;
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.1 )
   {
     local_2_do = NormalizeDouble(arg_1_in * 0.01 * (local_5_do / (MarketInfo(g_336_st_3130,MODE_TICKVALUE) * local_3_do) * 0.1),1) ;
   }
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.01 )
   {
     local_2_do = NormalizeDouble(arg_1_in * 0.01 * (local_5_do / (MarketInfo(g_336_st_3130,MODE_TICKVALUE) * local_3_do) * 0.1),2) ;
   }
 }
 if ( Risk == 999 )
 {
   local_6_do = g_148_do_420 / 100.0 * g_401_do_6AD0 ;
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.1 )
   {
     local_2_do = NormalizeDouble(arg_1_in * 0.01 * (local_6_do / (MarketInfo(g_336_st_3130,MODE_TICKVALUE) * local_3_do) * 0.1),1) ;
   }
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.01 )
   {
     local_2_do = NormalizeDouble(arg_1_in * 0.01 * (local_6_do / (MarketInfo(g_336_st_3130,MODE_TICKVALUE) * local_3_do) * 0.1),2) ;
   }
 }
 if ( Risk == 0 )
 {
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.1 )
   {
      local_2_do = NormalizeDouble(arg_1_in * 0.01 * StartLotsRuntime,1) ;
   }
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.01 )
   {
      local_2_do = NormalizeDouble(arg_1_in * 0.01 * StartLotsRuntime,2) ;
   }
 }
 if ( Risk == 9999 )
 {
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.1 )
   {
     local_2_do = NormalizeDouble(arg_1_in * 0.01 * (g_401_do_6AD0 / g_145_in_40C * 0.01),1) ;
   }
   if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.01 )
   {
     local_2_do = NormalizeDouble(arg_1_in * 0.01 * (g_401_do_6AD0 / g_145_in_40C * 0.01),2) ;
   }
 }
 if ( Risk == 1234 )
 {
   if ( UseWeightedLots )
   {
     if ( g_397_do_6768==0.0 )
     {
       g_397_do_6768 = 100000.0 ;
     }
     g_146_do_410 = MaxAllowedDD / g_398_do_6770 ;
     if ( SymbolInfoDouble(g_336_st_3130,36)==0.1 )
     {
       local_2_do = NormalizeDouble(g_146_do_410 / g_397_do_6768 * g_401_do_6AD0 / 100.0 * 0.01,1) ;
     }
     if ( SymbolInfoDouble(g_336_st_3130,36)==0.01 )
     {
       local_2_do = NormalizeDouble(g_146_do_410 / g_397_do_6768 * g_401_do_6AD0 / 100.0 * 0.01,2) ;
     }
   }
   else
   {
     if ( g_397_do_6768==0.0 )
     {
       g_397_do_6768 = 100000.0 ;
     }
     local_7_do = lizong_36(g_401_do_6AD0) ;
     if ( g_19_in_9C == 0 )
     {
       g_145_in_40C = (int)(g_385_in_5DA8 / (MaxAllowedDD / 100.0)) ;
     }
     if ( g_19_in_9C == 1 )
     {
       g_145_in_40C = (int)(g_386_in_5DAC / (MaxAllowedDD / 100.0)) ;
     }
     if ( g_19_in_9C == 2 )
     {
       g_145_in_40C = (int)(g_387_in_5DB0 / (MaxAllowedDD / 100.0)) ;
     }
     if ( g_19_in_9C == 3 )
     {
       g_145_in_40C = (int)(g_388_in_5DB4 / (MaxAllowedDD / 100.0)) ;
     }
     if ( g_19_in_9C == 4 )
     {
       g_145_in_40C = (int)(g_389_in_5DB8 / (MaxAllowedDD / 100.0)) ;
     }
     if ( SymbolInfoDouble(g_336_st_3130,36)==0.1 )
     {
       local_2_do = NormalizeDouble(arg_1_in * 0.01 * (local_7_do / g_145_in_40C * 0.01),1) ;
     }
     if ( SymbolInfoDouble(g_336_st_3130,36)==0.01 )
     {
       local_2_do = NormalizeDouble(arg_1_in * 0.01 * (local_7_do / g_145_in_40C * 0.01),2) ;
     }
   }
 }
 if ( Risk == 3 )
 {
   if ( SymbolInfoDouble(g_336_st_3130,36)==0.1 )
   {
     local_2_do = NormalizeDouble(MaxRiskPerStrategy_ / g_397_do_6768 * g_401_do_6AD0 / 100.0 * 0.01,1) ;
   }
   if ( SymbolInfoDouble(g_336_st_3130,36)==0.01 )
   {
     local_2_do = NormalizeDouble(MaxRiskPerStrategy_ / g_397_do_6768 * g_401_do_6AD0 / 100.0 * 0.01,2) ;
   }
 }
 local_2_do = local_2_do * g_9_do_60 ;
 if ( local_2_do<MarketInfo(g_336_st_3130,MODE_LOTSTEP) )
 {
   local_2_do = MarketInfo(g_336_st_3130,MODE_LOTSTEP) ;
 }
 if ( local_2_do>g_141_do_3F8 )
 {
   local_2_do = g_141_do_3F8 ;
 }
 if ( local_2_do<MarketInfo(g_336_st_3130,MODE_MINLOT) )
 {
   local_2_do = MarketInfo(g_336_st_3130,MODE_MINLOT) ;
 }
  if ( local_2_do>MarketInfo(g_336_st_3130,MODE_MAXLOT) && MarketInfo(g_336_st_3130,MODE_MAXLOT)!=0.0 )
  {
    local_2_do = MarketInfo(g_336_st_3130,MODE_MAXLOT) ;
  }
  if ( LizardManagedMagic(g_93_in_1F0) )
  {
    local_2_do = LizardRiskLots();
  }
  if ( MarketInfo(g_336_st_3130,MODE_LOTSTEP)==0.1 )
 {
   g_223_do_1AC4_si99[g_328_in_3100] = NormalizeDouble((MathFloor(local_2_do * 10.0)) / 10.0,1);
   return;
 }
 g_223_do_1AC4_si99[g_328_in_3100] = NormalizeDouble(MathFloor(local_2_do * 100.0) / 100.0,2);
 }

 double lizong_11( int arg_0_in)
 {
  bool      local_2_bo = false;
  bool      local_3_bo = false;
  bool      local_4_bo;
  int       local_5_in;
  int       local_6_in;
  int       local_7_in;

 double     tmp_do_1;
 int        tmp_in_2;
 double     tmp_do_3;
 int        tmp_in_4;
 double     tmp_do_5;
 int        tmp_in_6;
 bool       tmp_bo_7;

 local_4_bo = false ;
 local_5_in=g_74_in_180 + 1;
 do
 {
   local_3_bo = true ;
   local_4_bo = true ;
   for (local_6_in = local_5_in ; local_6_in >= local_5_in - g_74_in_180 ; local_6_in --)
   {
     if ( iHigh(g_336_st_3130,arg_0_in,local_6_in)>iHigh(g_336_st_3130,arg_0_in,local_5_in) )
     {
       local_4_bo = false ;
     }
   }
   for (local_7_in = local_5_in ; local_7_in <= local_5_in + g_73_in_17C ; local_7_in ++)
   {
     if ( iHigh(g_336_st_3130,arg_0_in,local_7_in)>iHigh(g_336_st_3130,arg_0_in,local_5_in) )
     {
       local_3_bo = false ;
     }
   }
   if ( local_4_bo && local_3_bo && iHigh(g_336_st_3130,arg_0_in,local_5_in)>g_80_do_198 * g_229_do_1E00 + MarketInfo(g_336_st_3130,MODE_ASK) )
   {
     tmp_do_1 = iHigh(g_336_st_3130,arg_0_in,local_5_in);
     tmp_in_2 = local_5_in;
     tmp_do_3 = iHigh(g_336_st_3130,g_71_in_174,0);
     for (tmp_in_4 = 1 ; tmp_in_4 <= tmp_in_2 ; tmp_in_4=tmp_in_4 + 1)
     {
       if ( iHigh(g_336_st_3130,g_71_in_174,tmp_in_4)>tmp_do_3 )
       {
         tmp_do_3 = iHigh(g_336_st_3130,g_71_in_174,tmp_in_4);
       }
     }
     if ( tmp_do_1>=tmp_do_3 )
     {
       tmp_do_5 = NormalizeDouble(iHigh(g_336_st_3130,arg_0_in,local_5_in),g_190_in_518);
       tmp_bo_7=false; 
       for (tmp_in_6 = OrdersTotal() ; tmp_in_6 >= 0 ; tmp_in_6=tmp_in_6 - 1)
       {
         if ( OrderSelect(tmp_in_6,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 || !(MathAbs(OrderOpenPrice() - (g_83_do_1B0 * g_229_do_1E00 + tmp_do_5))<g_88_do_1D0 * g_229_do_1E00) )   continue;
         tmp_bo_7 = true;
          break;

       }
       if ( !(tmp_bo_7) && ( !(g_75_bo_184) || !(iClose(g_336_st_3130,arg_0_in,local_5_in - 1)>iHigh(g_336_st_3130,arg_0_in,local_5_in) - g_80_do_198 * g_229_do_1E00) ) )
       {
         local_2_bo = true ;
         g_262_do_2580 = NormalizeDouble(iHigh(g_336_st_3130,arg_0_in,local_5_in),g_190_in_518) ;
         g_265_in_2598 = local_5_in ;
         break;
       }
     }
   }
   local_5_in ++;
   if ( local_5_in <= g_77_in_188 )   continue;
   g_262_do_2580 = 0.0 ;
   break;

 }
 while(!(local_2_bo));

 return(g_262_do_2580); 
 }

 double lizong_12( int arg_0_in)
 {
  bool      local_2_bo = false;
  bool      local_3_bo = false;
  bool      local_4_bo;
  int       local_5_in;
  int       local_6_in;
  int       local_7_in;

 double     tmp_do_1;
 int        tmp_in_2;
 double     tmp_do_3;
 int        tmp_in_4;
 double     tmp_do_5;
 int        tmp_in_6;
 bool       tmp_bo_7;

 local_4_bo = false ;
 local_5_in=g_74_in_180 + 1;
 do
 {
   local_3_bo = true ;
   local_4_bo = true ;
   for (local_6_in = local_5_in ; local_6_in >= local_5_in - g_74_in_180 ; local_6_in --)
   {
     if ( iLow(g_336_st_3130,arg_0_in,local_6_in)<iLow(g_336_st_3130,arg_0_in,local_5_in) )
     {
       local_4_bo = false ;
     }
   }
   for (local_7_in = local_5_in ; local_7_in <= local_5_in + g_73_in_17C ; local_7_in ++)
   {
     if ( iLow(g_336_st_3130,arg_0_in,local_7_in)<iLow(g_336_st_3130,arg_0_in,local_5_in) )
     {
       local_3_bo = false ;
     }
   }
   if ( local_4_bo && local_3_bo && iLow(g_336_st_3130,arg_0_in,local_5_in)<MarketInfo(g_336_st_3130,MODE_BID) - g_80_do_198 * g_229_do_1E00 )
   {
     tmp_do_1 = iLow(g_336_st_3130,arg_0_in,local_5_in);
     tmp_in_2 = local_5_in;
     tmp_do_3 = iLow(g_336_st_3130,g_71_in_174,0);
     for (tmp_in_4 = 1 ; tmp_in_4 <= tmp_in_2 ; tmp_in_4=tmp_in_4 + 1)
     {
       if ( iLow(g_336_st_3130,g_71_in_174,tmp_in_4)<tmp_do_3 )
       {
         tmp_do_3 = iLow(g_336_st_3130,g_71_in_174,tmp_in_4);
       }
     }
     if ( tmp_do_1<=tmp_do_3 )
     {
       tmp_do_5 = NormalizeDouble(iLow(g_336_st_3130,arg_0_in,local_5_in),g_190_in_518);
       tmp_bo_7=false; 
       for (tmp_in_6 = OrdersTotal() ; tmp_in_6 >= 0 ; tmp_in_6=tmp_in_6 - 1)
       {
         if ( OrderSelect(tmp_in_6,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 || !(MathAbs(OrderOpenPrice() - (tmp_do_5 - g_84_do_1B8 * g_229_do_1E00))<g_88_do_1D0 * g_229_do_1E00) )   continue;
         tmp_bo_7 = true;
          break;

       }
       if ( !(tmp_bo_7) && ( !(g_75_bo_184) || !(iClose(g_336_st_3130,arg_0_in,local_5_in - 1)<g_80_do_198 * g_229_do_1E00 + iLow(g_336_st_3130,arg_0_in,local_5_in)) ) )
       {
         local_2_bo = true ;
         g_261_do_2578 = NormalizeDouble(iLow(g_336_st_3130,arg_0_in,local_5_in),g_190_in_518) ;
         g_266_in_259C = local_5_in ;
         break;
       }
     }
   }
   local_5_in ++;
   if ( local_5_in <= g_77_in_188 )   continue;
   g_261_do_2578 = 0.0 ;
   break;

 }
 while(!(local_2_bo));

 return(g_261_do_2578); 
 }

 double lizong_13( int arg_0_in,int arg_1_in,int arg_2_in)
 {
  bool      local_2_bo = false;
  double    local_3_do = 0.0;
  bool      local_4_bo = false;
  bool      local_5_bo;
  int       local_6_in;
  int       local_7_in;
  int       local_8_in;

 local_5_bo = false ;
 local_6_in=arg_2_in + 1;
 do
 {
   local_4_bo = true ;
   local_5_bo = true ;
   for (local_7_in = local_6_in ; local_7_in >= local_6_in - arg_2_in ; local_7_in --)
   {
     if ( iHigh(g_336_st_3130,arg_0_in,local_7_in)>iHigh(g_336_st_3130,arg_0_in,local_6_in) )
     {
       local_5_bo = false ;
     }
   }
   for (local_8_in = local_6_in ; local_8_in <= local_6_in + arg_1_in ; local_8_in ++)
   {
     if ( iHigh(g_336_st_3130,arg_0_in,local_8_in)>iHigh(g_336_st_3130,arg_0_in,local_6_in) )
     {
       local_4_bo = false ;
     }
   }
   if ( local_5_bo && local_4_bo && iHigh(g_336_st_3130,arg_0_in,local_6_in)>g_221_do_1A80 * g_229_do_1E00 + MarketInfo(g_336_st_3130,MODE_ASK) )
   {
     local_2_bo = true ;
     local_3_do = NormalizeDouble(iHigh(g_336_st_3130,arg_0_in,local_6_in),g_190_in_518) ;
     break;
   }
   local_6_in ++;
   if ( local_6_in <= g_118_in_2CC )   continue;
   local_3_do = 9999.0 ;
   break;

 }
 while(!(local_2_bo));

 return(local_3_do); 
 }

 double lizong_14( int arg_0_in,int arg_1_in,int arg_2_in)
 {
  bool      local_2_bo = false;
  double    local_3_do = 0.0;
  bool      local_4_bo = false;
  bool      local_5_bo;
  int       local_6_in;
  int       local_7_in;
  int       local_8_in;

 local_5_bo = false ;
 local_6_in=arg_2_in + 1;
 do
 {
   local_4_bo = true ;
   local_5_bo = true ;
   for (local_7_in = local_6_in ; local_7_in >= local_6_in - arg_2_in ; local_7_in --)
   {
     if ( iLow(g_336_st_3130,arg_0_in,local_7_in)<iLow(g_336_st_3130,arg_0_in,local_6_in) )
     {
       local_5_bo = false ;
     }
   }
   for (local_8_in = local_6_in ; local_8_in <= local_6_in + arg_1_in ; local_8_in ++)
   {
     if ( iLow(g_336_st_3130,arg_0_in,local_8_in)<iLow(g_336_st_3130,arg_0_in,local_6_in) )
     {
       local_4_bo = false ;
     }
   }
   if ( local_5_bo && local_4_bo && iLow(g_336_st_3130,arg_0_in,local_6_in)<MarketInfo(g_336_st_3130,MODE_BID) - g_221_do_1A80 * g_229_do_1E00 )
   {
     local_2_bo = true ;
     local_3_do = NormalizeDouble(iLow(g_336_st_3130,arg_0_in,local_6_in),g_190_in_518) ;
     break;
   }
   local_6_in ++;
   if ( local_6_in <= g_118_in_2CC )   continue;
   local_3_do = 0.0 ;
   break;

 }
 while(!(local_2_bo));

 return(local_3_do); 
 }

 void lizong_15()
 {
  int       local_1_in;

 long       tmp_lo_1;
 long       tmp_lo_2;
 int        tmp_in_3;
 int        tmp_in_4;
 int        tmp_in_5;
 int        tmp_in_6;
 int        tmp_in_7;
 int        tmp_in_8;
 int        tmp_in_9;
 int        tmp_in_10;
 int        tmp_in_11;
 int        tmp_in_12;

 if ( g_213_bo_1710 )
 {
   g_268_do_25A8 = iMA(g_336_st_3130,0,g_214_in_1714,0,1,0,1) ;
   g_269_do_25B0 = iMA(g_336_st_3130,0,g_217_in_1A70,0,1,0,1) ;
 }
 lizong_10(g_100_do_230,g_92_in_1EC); 
 if ( g_223_do_1AC4_si99[g_328_in_3100]>g_141_do_3F8 )
 {
   g_223_do_1AC4_si99[g_328_in_3100] = g_141_do_3F8;
 }
 if ( g_89_in_1D8 >  0 )
 {
   g_302_da_2870=TimeCurrent() + g_234_in_1E20;
 }
 if ( Virtual_expiration )
 {
   g_302_da_2870 = 0 ;
   for (local_1_in = OrdersTotal() ; local_1_in >= 0 ; local_1_in --)
   {
     if ( OrderSelect(local_1_in,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 )   continue;

     if ( ( OrderType() != 4 && OrderType() != 5 ) )   continue;
     tmp_lo_1 = TimeCurrent();
     tmp_lo_2=OrderOpenTime() + g_234_in_1E20;
     if ( tmp_lo_1 < tmp_lo_2 )   continue;
     OrderDelete(OrderTicket(),Red); 

   }
 }
 tmp_in_3 = 0;
 for (tmp_in_4 = OrdersTotal() ; tmp_in_4 >= 0 ; tmp_in_4=tmp_in_4 - 1)
 {
   if ( OrderSelect(tmp_in_4,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 0 )   continue;
   tmp_in_3=tmp_in_3 + 1;

 }
 if ( tmp_in_3 <  g_87_in_1CC )
 {
   if(!lizong_16(1)) __ReaperEntryDebug("buy pending skipped");
 }
 else
 {
   tmp_in_5 = 1;
   for (tmp_in_6 = OrdersTotal() ; tmp_in_6 >= 0 ; tmp_in_6=tmp_in_6 - 1)
   {
     if ( OrderSelect(tmp_in_6,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
     OrderDelete(OrderTicket(),0xFFFFFFFF); 

   }
   if ( tmp_in_5 == 2 )
   {
     for (tmp_in_7 = OrdersTotal() ; tmp_in_7 >= 0 ; tmp_in_7=tmp_in_7 - 1)
     {
       if ( OrderSelect(tmp_in_7,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
       OrderDelete(OrderTicket(),0xFFFFFFFF); 

     }
   }
 }
 tmp_in_8 = 0;
 for (tmp_in_9 = OrdersTotal() ; tmp_in_9 >= 0 ; tmp_in_9=tmp_in_9 - 1)
 {
   if ( OrderSelect(tmp_in_9,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 1 )   continue;
   tmp_in_8=tmp_in_8 + 1;

 }
 if ( tmp_in_8 <  g_87_in_1CC )
 {
   if(!lizong_17(1)) __ReaperEntryDebug("sell pending skipped");
   return;
 }
 tmp_in_10 = 1;
 for (tmp_in_11 = OrdersTotal() ; tmp_in_11 >= 0 ; tmp_in_11=tmp_in_11 - 1)
 {
   if ( OrderSelect(tmp_in_11,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
   OrderDelete(OrderTicket(),0xFFFFFFFF); 

 }
 if ( tmp_in_10 != 2 )   return;
 for (tmp_in_12 = OrdersTotal() ; tmp_in_12 >= 0 ; tmp_in_12=tmp_in_12 - 1)
 {
   if ( OrderSelect(tmp_in_12,0,0) != true || OrderMagicNumber() != g_96_in_208 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
   OrderDelete(OrderTicket(),0xFFFFFFFF); 

 }
 }

 bool lizong_16( int arg_0_in)
 {
  bool      local_2_bo;
  double    local_3_do;
  double    local_4_do;
  double    local_5_do;
  double    local_6_do;

 bool       tmp_bo_1;
 int        tmp_in_2;
 double     tmp_do_3;
 int        tmp_in_4;
 bool       tmp_bo_5;
 int        tmp_in_6;
 int        tmp_in_7;
 double     tmp_do_8;
 int        tmp_in_9;
 double     tmp_do_10;
 int        tmp_in_11;
 bool       tmp_bo_12;
 bool       tmp_bo_13;
 int        tmp_in_14;
 bool       tmp_bo_15;
 int        tmp_in_16;
 double     tmp_do_17;
 long       tmp_lo_18;
 int        tmp_in_19;

 if ( !(LizardZoneSessionOpen(g_93_in_1F0)) )
 {
   return(false);
 }
 if ( !(AllowBuyTrades) )
 {
   return(false); 
 }
 if ( g_218_bo_1A74 )
 {
   tmp_bo_1 = false;
 }
 else
 {
   tmp_bo_1=false; 
   for (tmp_in_2 = 0 ; tmp_in_2 < OrdersTotal() ; tmp_in_2=tmp_in_2 + 1)
   {
     if ( OrderSelect(tmp_in_2,0,0) != true || OrderType() != 0 || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 )   continue;
     tmp_bo_1 = true;
      break;

   }
 }
 if ( tmp_bo_1 == true )
 {
   return(false); 
 }
 if ( g_213_bo_1710 && g_268_do_25A8<g_269_do_25B0 )
 {
   return(false); 
 }
 if ( arg_0_in == 1 )
 {
   lizong_11(g_71_in_174); 
   local_2_bo = false ;
   tmp_do_3 = g_262_do_2580;
   tmp_bo_5=false; 
   for (tmp_in_4 = OrdersTotal() ; tmp_in_4 >= 0 ; tmp_in_4=tmp_in_4 - 1)
   {
     if ( OrderSelect(tmp_in_4,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 || !(MathAbs(OrderOpenPrice() - (g_83_do_1B0 * g_229_do_1E00 + tmp_do_3))<g_88_do_1D0 * g_229_do_1E00) )   continue;
     tmp_bo_5 = true;
      break;

    }
    if ( !(tmp_bo_5) )
    {
      tmp_in_6 = 0;
     for (tmp_in_7 = OrdersTotal() ; tmp_in_7 >= 0 ; tmp_in_7=tmp_in_7 - 1)
     {
       if ( OrderSelect(tmp_in_7,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 )   continue;
       tmp_in_6=tmp_in_6 + 1;

     }
     if ( tmp_in_6 == g_86_in_1C8 )
     {
       tmp_do_8 = 9999.0;
       for (tmp_in_9 = OrdersTotal() ; tmp_in_9 >= 0 ; tmp_in_9=tmp_in_9 - 1)
       {
         if ( OrderSelect(tmp_in_9,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 || !(OrderOpenPrice()<tmp_do_8) )   continue;
         tmp_do_8 = OrderOpenPrice();

       }
       if ( g_262_do_2580>tmp_do_8 )
       {
         return(false); 
       }
     }
     g_264_do_2590 = g_262_do_2580 ;
     local_2_bo = true ;
     g_188_do_508 = NormalizeDouble(g_262_do_2580,g_190_in_518) ;
   }
   if ( g_188_do_508==0.0 )
   {
     return(false); 
   }
   if ( local_2_bo )
   {
     g_247_do_2500 = g_129_do_318 ;
     local_3_do = NormalizeDouble(g_83_do_1B0 * g_229_do_1E00 + g_188_do_508,g_190_in_518) ;
     tmp_do_10 = local_3_do;
     tmp_bo_12=false; 
     for (tmp_in_11 = OrdersTotal() ; tmp_in_11 >= 0 ; tmp_in_11=tmp_in_11 - 1)
     {
       if ( OrderSelect(tmp_in_11,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 4 || !(OrderOpenPrice()<=tmp_do_10) )   continue;
       tmp_bo_12 = true;
        break;

     }
     if ( tmp_bo_12 )
     {
       return(false); 
     }
     g_310_do_28A0 = local_3_do ;
     if ( !(g_67_bo_158) )
     {
       if ( CheckMargin && AccountFreeMarginCheck(g_336_st_3130,0,g_223_do_1AC4_si99[g_328_in_3100])<=0.0 )
       {
         Print("Free margin not sufficient for setting order with lotsize " + string(g_223_do_1AC4_si99[g_328_in_3100]) + "..."); 
         return(false); 
       }
       local_4_do = NormalizeDouble(g_15_in_78 * g_229_do_1E00 + local_3_do,g_190_in_518) ;
       local_5_do = NormalizeDouble(local_3_do - (g_100_do_230 + g_64_do_148) * g_229_do_1E00,g_190_in_518) ;
       local_6_do = NormalizeDouble(g_101_do_238 * g_229_do_1E00 + local_3_do,g_190_in_518) ;
       if ( g_223_do_1AC4_si99[g_328_in_3100]<SymbolInfoDouble(g_336_st_3130,34) )
       {
         Print("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=" + string(SymbolInfoDouble(g_336_st_3130,34))); 
         tmp_bo_13 = false;
       }
       else
       {
         if ( g_223_do_1AC4_si99[g_328_in_3100]>SymbolInfoDouble(g_336_st_3130,35) )
         {
           Print("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=" + string(SymbolInfoDouble(g_336_st_3130,35))); 
           tmp_bo_13 = false;
         }
         else
         {
           if ( MathAbs(NormalizeDouble(g_223_do_1AC4_si99[g_328_in_3100] / SymbolInfoDouble(g_336_st_3130,36),0) * SymbolInfoDouble(g_336_st_3130,36) - g_223_do_1AC4_si99[g_328_in_3100])>0.0000001 )
           {
             Print("Volume " + string(g_223_do_1AC4_si99[g_328_in_3100]) + " is not a multiple of the minimal step SYMBOL_VOLUME_STEP=" + string(SymbolInfoDouble(g_336_st_3130,36))); 
             tmp_bo_13 = false;
           }
           else
           {
             tmp_bo_13 = true;
           }
         }
       }

       tmp_in_14 = (int)AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
       if ( tmp_in_14 == 0 )
       {
         tmp_bo_15 = true;
       }
       else
       {
         tmp_bo_15 = OrdersTotal()<tmp_in_14;
       }
       if ( ( !(tmp_bo_13) || !(tmp_bo_15) ) )
       {
         return(false); 
       }
       if ( MarketInfo(g_336_st_3130,MODE_ASK)<local_4_do - g_309_do_2898 * g_229_do_1E00 && MarketInfo(g_336_st_3130,MODE_ASK)<local_4_do - g_221_do_1A80 * g_229_do_1E00 )
       {
         if ( !(setSL_TP_After_Entry) )
         {
           g_230_in_1E08 = OrderSend(g_336_st_3130,4,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,int(g_38_do_C0 * g_229_do_1E00),local_5_do,local_6_do,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Green) ;
         }
         else
         {
           g_230_in_1E08 = OrderSend(g_336_st_3130,4,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,int(g_38_do_C0 * g_229_do_1E00),0.0,0.0,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Green) ;
         }
         g_280_bo_25FA = false ;
         if ( g_230_in_1E08 <= 0 )
         {
           tmp_in_16 = GetLastError();
           if ( tmp_in_16 == 132 )
           {
             ResetLastError();
             if(1==0) //condition not met
             {
               do
               {
                 Sleep(2500); 
                 if ( !(setSL_TP_After_Entry) )
                 {
                   tmp_in_16 = (int)(g_38_do_C0 * g_229_do_1E00);
                   g_230_in_1E08 = OrderSend(g_336_st_3130,4,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,tmp_in_16,local_5_do,local_6_do,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Green) ;
                 }
                 else
                 {
                   g_230_in_1E08 = OrderSend(g_336_st_3130,4,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,int(g_38_do_C0 * g_229_do_1E00),0.0,0.0,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Green) ;
                 }
                 g_280_bo_25FA = false ;
               }
               while(GetLastError() == 132);

             }
           }
           Print("error: \'" + lizong_21(GetLastError()) + "\' when setting entry order"); 
         }
         else
         {
           tmp_do_17 = local_3_do;
           tmp_lo_18 = g_230_in_1E08;
           for (tmp_in_19 = 0 ; tmp_in_19 < 100 ; tmp_in_19=tmp_in_19 + 1)
           {
             if ( !(g_198_do_1070_si100si2[tmp_in_19][0]==0.0) )   continue;
             g_198_do_1070_si100si2[tmp_in_19][0] = (double)tmp_lo_18;
             g_198_do_1070_si100si2[tmp_in_19][1] = tmp_do_17;
             break;

           }
         }
       }
     }
     return(true); 
   }
 }
 return(false); 
 }

 bool lizong_17( int arg_0_in)
 {
  bool      local_2_bo;
  double    local_3_do;
  double    local_4_do;
  double    local_5_do;
  double    local_6_do;

 bool       tmp_bo_1;
 int        tmp_in_2;
 double     tmp_do_3;
 int        tmp_in_4;
 bool       tmp_bo_5;
 int        tmp_in_6;
 int        tmp_in_7;
 double     tmp_do_8;
 int        tmp_in_9;
 double     tmp_do_10;
 int        tmp_in_11;
 bool       tmp_bo_12;
 bool       tmp_bo_13;
 int        tmp_in_14;
 bool       tmp_bo_15;
 int        tmp_in_16;
 double     tmp_do_17;
 long       tmp_lo_18;
 int        tmp_in_19;

 if ( !(LizardZoneSessionOpen(g_93_in_1F0)) )
 {
   return(false);
 }
 if ( !(AllowSellTrades) )
 {
   return(false); 
 }
 if ( g_218_bo_1A74 )
 {
   tmp_bo_1 = false;
 }
 else
 {
   tmp_bo_1=false; 
   for (tmp_in_2 = 0 ; tmp_in_2 < OrdersTotal() ; tmp_in_2=tmp_in_2 + 1)
   {
     if ( OrderSelect(tmp_in_2,0,0) != true || OrderType() != 1 || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 )   continue;
     tmp_bo_1 = true;
      break;

   }
 }
 if ( tmp_bo_1 == true )
 {
   return(false); 
 }
 if ( g_213_bo_1710 && g_268_do_25A8>g_269_do_25B0 )
 {
   return(false); 
 }
 if ( arg_0_in == 1 )
 {
   lizong_12(g_71_in_174); 
   local_2_bo = false ;
   tmp_do_3 = g_261_do_2578;
   tmp_bo_5=false; 
   for (tmp_in_4 = OrdersTotal() ; tmp_in_4 >= 0 ; tmp_in_4=tmp_in_4 - 1)
   {
     if ( OrderSelect(tmp_in_4,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 || !(MathAbs(OrderOpenPrice() - (tmp_do_3 - g_84_do_1B8 * g_229_do_1E00))<g_88_do_1D0 * g_229_do_1E00) )   continue;
     tmp_bo_5 = true;
      break;

    }
    if ( !(tmp_bo_5) )
    {
      tmp_in_6 = 0;
     for (tmp_in_7 = OrdersTotal() ; tmp_in_7 >= 0 ; tmp_in_7=tmp_in_7 - 1)
     {
       if ( OrderSelect(tmp_in_7,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 )   continue;
       tmp_in_6=tmp_in_6 + 1;

     }
     if ( tmp_in_6 == g_86_in_1C8 )
     {
       tmp_do_8 = 0.0;
       for (tmp_in_9 = OrdersTotal() ; tmp_in_9 >= 0 ; tmp_in_9=tmp_in_9 - 1)
       {
         if ( OrderSelect(tmp_in_9,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 || !(OrderOpenPrice()>tmp_do_8) )   continue;
         tmp_do_8 = OrderOpenPrice();

       }
       if ( g_261_do_2578<tmp_do_8 )
       {
         return(false); 
       }
     }
     g_263_do_2588 = g_261_do_2578 ;
     local_2_bo = true ;
     g_189_do_510 = NormalizeDouble(g_261_do_2578,g_190_in_518) ;
   }
   if ( g_189_do_510==0.0 )
   {
     return(false); 
   }
   if ( local_2_bo )
   {
     g_247_do_2500 = g_129_do_318 ;
     local_3_do = NormalizeDouble(g_189_do_510 - g_84_do_1B8 * g_229_do_1E00,g_190_in_518) ;
     tmp_do_10 = local_3_do;
     tmp_bo_12=false; 
     for (tmp_in_11 = OrdersTotal() ; tmp_in_11 >= 0 ; tmp_in_11=tmp_in_11 - 1)
     {
       if ( OrderSelect(tmp_in_11,0,0) != true || OrderMagicNumber() != g_93_in_1F0 || OrderSymbol() != g_336_st_3130 || OrderType() != 5 || !(OrderOpenPrice()>=tmp_do_10) )   continue;
       tmp_bo_12 = true;
        break;

     }
     if ( tmp_bo_12 )
     {
       return(false); 
     }
     g_311_do_28A8 = local_3_do ;
     if ( !(g_67_bo_158) )
     {
       if ( CheckMargin && AccountFreeMarginCheck(g_336_st_3130,1,g_223_do_1AC4_si99[g_328_in_3100])<=0.0 )
       {
         Print("Free margin not sufficient for setting order with lotsize " + string(g_223_do_1AC4_si99[g_328_in_3100]) + "..."); 
         return(false); 
       }
       local_4_do = NormalizeDouble(local_3_do - g_15_in_78 * g_229_do_1E00,g_190_in_518) ;
       local_5_do = NormalizeDouble((g_100_do_230 + g_64_do_148) * g_229_do_1E00 + local_3_do,g_190_in_518) ;
       local_6_do = NormalizeDouble(local_3_do - g_101_do_238 * g_229_do_1E00,g_190_in_518) ;
       if ( g_223_do_1AC4_si99[g_328_in_3100]<SymbolInfoDouble(g_336_st_3130,34) )
       {
         Print("Volume is less than the minimal allowed SYMBOL_VOLUME_MIN=" + string(SymbolInfoDouble(g_336_st_3130,34))); 
         tmp_bo_13 = false;
       }
       else
       {
         if ( g_223_do_1AC4_si99[g_328_in_3100]>SymbolInfoDouble(g_336_st_3130,35) )
         {
           Print("Volume is greater than the maximal allowed SYMBOL_VOLUME_MAX=" + string(SymbolInfoDouble(g_336_st_3130,35))); 
           tmp_bo_13 = false;
         }
         else
         {
           if ( MathAbs(NormalizeDouble(g_223_do_1AC4_si99[g_328_in_3100] / SymbolInfoDouble(g_336_st_3130,36),0) * SymbolInfoDouble(g_336_st_3130,36) - g_223_do_1AC4_si99[g_328_in_3100])>0.0000001 )
           {
             Print("Volume " + string(g_223_do_1AC4_si99[g_328_in_3100]) + " is not a multiple of the minimal step SYMBOL_VOLUME_STEP=" + string(SymbolInfoDouble(g_336_st_3130,36))); 
             tmp_bo_13 = false;
           }
           else
           {
             tmp_bo_13 = true;
           }
         }
       }

       tmp_in_14 = (int)AccountInfoInteger(ACCOUNT_LIMIT_ORDERS);
       if ( tmp_in_14 == 0 )
       {
         tmp_bo_15 = true;
       }
       else
       {
         tmp_bo_15 = OrdersTotal()<tmp_in_14;
       }
       if ( ( !(tmp_bo_13) || !(tmp_bo_15) ) )
       {
         return(false); 
       }
       if ( MarketInfo(g_336_st_3130,MODE_BID)>g_309_do_2898 * g_229_do_1E00 + local_4_do && MarketInfo(g_336_st_3130,MODE_BID)>g_221_do_1A80 * g_229_do_1E00 + local_4_do )
       {
         if ( !(setSL_TP_After_Entry) )
         {
           g_230_in_1E08 = OrderSend(g_336_st_3130,5,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,int(g_38_do_C0 * g_229_do_1E00),local_5_do,local_6_do,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Red) ;
         }
         else
         {
           g_230_in_1E08 = OrderSend(g_336_st_3130,5,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,int(g_38_do_C0 * g_229_do_1E00),0.0,0.0,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Red) ;
         }
         g_281_bo_25FB = false ;
         if ( g_230_in_1E08 <= 0 )
         {
           tmp_in_16 = GetLastError();
           if ( tmp_in_16 == 132 )
           {
             ResetLastError();
             if(1==0) //condition not met
             {
               do
               {
                 Sleep(2500); 
                 if ( !(setSL_TP_After_Entry) )
                 {
                   tmp_in_16 = (int)(g_38_do_C0 * g_229_do_1E00);
                   g_230_in_1E08 = OrderSend(g_336_st_3130,5,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,tmp_in_16,local_5_do,local_6_do,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Red) ;
                 }
                 else
                 {
                   g_230_in_1E08 = OrderSend(g_336_st_3130,5,g_223_do_1AC4_si99[g_328_in_3100],local_4_do,int(g_38_do_C0 * g_229_do_1E00),0.0,0.0,g_334_st_3120,g_93_in_1F0,g_302_da_2870,Red) ;
                 }
                 g_281_bo_25FB = false ;
               }
               while(GetLastError() == 132);

             }
           }
           Print("error: \'" + lizong_21(GetLastError()) + "\' when setting entry order"); 
         }
         else
         {
           tmp_do_17 = local_3_do;
           tmp_lo_18 = g_230_in_1E08;
           for (tmp_in_19 = 0 ; tmp_in_19 < 100 ; tmp_in_19=tmp_in_19 + 1)
           {
             if ( !(g_198_do_1070_si100si2[tmp_in_19][0]==0.0) )   continue;
             g_198_do_1070_si100si2[tmp_in_19][0] = (double)tmp_lo_18;
             g_198_do_1070_si100si2[tmp_in_19][1] = tmp_do_17;
             break;

           }
         }
       }
     }
   }
 }
 return(false); 
 }

 bool lizong_18()
 {
  bool      local_2_bo = false;
  bool      local_3_bo = false;
  double    local_4_do;
  double    local_5_do;
  int       local_6_in;
  double    local_7_do;
  double    local_8_do;
  long      local_9_lo;
  double    local_10_do;
  string    local_11_st;
  double    local_12_do;
  datetime  local_13_da;
  int       local_14_in;
  int       local_15_in;
  string    local_16_st;
  double    local_17_do;
  double    local_18_do;
  bool      local_19_bo;
  bool      local_20_bo;
  double    local_21_do;
  bool      local_22_bo;
  double    local_23_do;
  double    local_24_do;
  double    local_25_do;
  double    local_26_do;
  double    local_27_do;
  int       local_28_in;
  double    local_29_do;

 int        tmp_in_1;
 long       tmp_lo_2;
 int        tmp_in_3;
 double     tmp_do_4;
 double     tmp_do_5;
 long       tmp_lo_6;
 int        tmp_in_7;
 long       tmp_lo_8;
 int        tmp_in_9;
 int        tmp_in_10;
 string     tmp_st_11;
 double     tmp_do_12;
 int        tmp_in_13;
 long       tmp_lo_14;
 double     tmp_do_15;
 int        tmp_in_16;
 long       tmp_lo_17;
 long       tmp_lo_18;
 int        tmp_in_19;
 int        tmp_in_20;
 int        tmp_in_21;
 string     tmp_st_22;
 long       tmp_lo_23;
 double     tmp_do_24;
 double     tmp_do_25;
 int        tmp_in_26;
 double     tmp_do_27;
 bool       tmp_bo_28;
 int        tmp_in_29;
 int        tmp_in_30;
 double     tmp_do_31;
 long       tmp_lo_32;
 int        tmp_in_33;
 long       tmp_lo_34;
 double     tmp_do_35;
 double     tmp_do_36;
 int        tmp_in_37;
 double     tmp_do_38;
 bool       tmp_bo_39;
 int        tmp_in_40;
 int        tmp_in_41;
 double     tmp_do_42;
 long       tmp_lo_43;
 int        tmp_in_44;

 local_4_do = 0.0 ;
 local_5_do = 0.0 ;
 for (local_6_in = 0 ; local_6_in < OrdersTotal() ; local_6_in ++)
 {
   if ( OrderSelect(local_6_in,0,0) == true )
   {
     local_2_bo = false ;
     local_7_do = NormalizeDouble(OrderStopLoss(),g_190_in_518) ;
     local_8_do = NormalizeDouble(OrderTakeProfit(),g_190_in_518) ;
     local_9_lo = OrderTicket() ;
     local_10_do = NormalizeDouble(OrderOpenPrice(),g_190_in_518) ;
     local_11_st = OrderComment() ;
     local_12_do = OrderLots() ;
     local_13_da = OrderOpenTime() ;
     local_14_in = OrderType() ;
     local_15_in = OrderMagicNumber() ;
     local_16_st = OrderSymbol() ;
     if ( ( local_14_in == 4 || local_14_in == 2 ) && g_69_in_160 == 2 && ( g_95_in_204 == 0 || (g_95_in_204 == 1 && local_16_st == g_336_st_3130) ) && ( local_15_in == g_96_in_208 || g_96_in_208 == 0 ) && ( local_11_st == g_97_st_210 || g_97_st_210 == "" ) )
     {
       if ( ( local_7_do==0.0 || local_7_do==0.0 ) )
       {
         local_7_do = NormalizeDouble(local_10_do - g_100_do_230 * g_229_do_1E00,g_190_in_518) ;
         OrderModify(local_9_lo,local_10_do,local_7_do,local_8_do,0,Green); 
       }
       if ( ( local_8_do==0.0 || local_8_do==0.0 ) )
       {
         local_8_do = NormalizeDouble(g_101_do_238 * g_229_do_1E00 + local_10_do,g_190_in_518) ;
         OrderModify(local_9_lo,local_10_do,local_7_do,local_8_do,0,Green); 
       }
     }
     if ( local_14_in == 0 && ( ( local_15_in == g_93_in_1F0 && g_69_in_160 == 1 && local_16_st == g_336_st_3130 ) || (g_69_in_160 == 2 && ( g_95_in_204 == 0 || (g_95_in_204 == 1 && local_16_st == g_336_st_3130) ) && ( local_15_in == g_96_in_208 || g_96_in_208 == 0 ) && (local_11_st == g_97_st_210 || g_97_st_210 == "")) ) )
     {
       if ( ( local_7_do==0.0 || local_7_do==0.0 ) )
       {
         local_7_do = NormalizeDouble(local_10_do - g_100_do_230 * g_229_do_1E00,g_190_in_518) ;
         OrderModify(local_9_lo,local_10_do,local_7_do,local_8_do,0,Green); 
       }
       if ( ( local_8_do==0.0 || local_8_do==0.0 ) )
       {
         local_8_do = NormalizeDouble(g_101_do_238 * g_229_do_1E00 + local_10_do,g_190_in_518) ;
         OrderModify(local_9_lo,local_10_do,local_7_do,local_8_do,0,Green); 
       }
       if ( g_53_bo_11C && iTime(g_336_st_3130,g_52_in_118,g_51_in_114) <= local_13_da && iTime(g_336_st_3130,g_52_in_118,0) >  local_13_da && iClose(g_336_st_3130,g_52_in_118,1)<iOpen(g_336_st_3130,g_52_in_118,1) && iClose(g_336_st_3130,g_52_in_118,1)<local_10_do )
       {
         OrderClose(local_9_lo,local_12_do,MarketInfo(g_336_st_3130,MODE_BID),0,Red); 
         Print("closing candle confirmation"); 
       }
       if ( g_55_bo_124 && iTime(g_336_st_3130,g_54_in_120,g_51_in_114) <= local_13_da && iTime(g_336_st_3130,g_54_in_120,0) >  local_13_da && iClose(g_336_st_3130,g_54_in_120,1)<iOpen(g_336_st_3130,g_54_in_120,1) && iClose(g_336_st_3130,g_54_in_120,1)<local_10_do )
       {
         OrderClose(local_9_lo,local_12_do,MarketInfo(g_336_st_3130,MODE_BID),0,Red); 
         Print("closing candle confirmation"); 
       }
       if ( g_57_bo_12C && iTime(g_336_st_3130,g_56_in_128,g_51_in_114) <= local_13_da && iTime(g_336_st_3130,g_56_in_128,0) >  local_13_da && iClose(g_336_st_3130,g_56_in_128,1)<iOpen(g_336_st_3130,g_56_in_128,1) && iClose(g_336_st_3130,g_56_in_128,1)<local_10_do )
       {
         OrderClose(local_9_lo,local_12_do,MarketInfo(g_336_st_3130,MODE_BID),0,Red); 
         Print("closing candle confirmation"); 
       }
       if ( g_59_bo_134 && iTime(g_336_st_3130,g_58_in_130,g_51_in_114) <= local_13_da && iTime(g_336_st_3130,g_58_in_130,0) >  local_13_da && iClose(g_336_st_3130,g_58_in_130,1)<iOpen(g_336_st_3130,g_58_in_130,1) && iClose(g_336_st_3130,g_58_in_130,1)<local_10_do )
       {
         OrderClose(local_9_lo,local_12_do,MarketInfo(g_336_st_3130,MODE_BID),0,Red); 
         Print("closing candle confirmation"); 
       }
       if ( g_61_bo_13C && iTime(g_336_st_3130,g_60_in_138,g_51_in_114) <= local_13_da && iTime(g_336_st_3130,g_60_in_138,0) >  local_13_da && iClose(g_336_st_3130,g_60_in_138,1)<iOpen(g_336_st_3130,g_60_in_138,1) && iClose(g_336_st_3130,g_60_in_138,1)<local_10_do )
       {
         OrderClose(local_9_lo,local_12_do,MarketInfo(g_336_st_3130,MODE_BID),0,Red); 
         Print("closing candle confirmation"); 
       }
       g_247_do_2500 = g_129_do_318 ;
       if ( g_133_in_338 >  0 && TimeCurrent() >  local_13_da + g_133_in_338 * 60 )
       {
         g_247_do_2500 = g_134_do_340 ;
       }
       tmp_in_1 = g_190_in_518;
       tmp_lo_2 = local_9_lo;
       for (tmp_in_3 = 0 ; tmp_in_3 < 100 ; tmp_in_3=tmp_in_3 + 1)
       {
         if ( !(g_198_do_1070_si100si2[tmp_in_3][0]==tmp_lo_2) )   continue;
         tmp_do_4 = g_198_do_1070_si100si2[tmp_in_3][1];
         break;

       }
       tmp_do_4 = 0.0;
       local_17_do = NormalizeDouble(tmp_do_4,tmp_in_1) ;
       if ( local_17_do==0.0 )
       {
         tmp_do_5 = local_10_do;
         tmp_lo_6 = local_9_lo;
         for (tmp_in_7 = 0 ; tmp_in_7 < 100 ; tmp_in_7=tmp_in_7 + 1)
         {
           if ( !(g_198_do_1070_si100si2[tmp_in_7][0]==0.0) )   continue;
           g_198_do_1070_si100si2[tmp_in_7][0] = (double)tmp_lo_6;
           g_198_do_1070_si100si2[tmp_in_7][1] = tmp_do_5;
           break;

         }
         local_17_do = local_10_do ;
       }
       else
       {
         local_17_do = local_17_do - g_85_do_1C0 * g_229_do_1E00 ;
       }
       local_18_do = local_10_do - local_17_do ;
       local_19_bo = false ;
       if ( local_17_do>0.0 - g_85_do_1C0 * g_229_do_1E00 && local_18_do>g_38_do_C0 * g_229_do_1E00 )
       {
         local_19_bo = true ;
         if ( g_39_in_C8 == 2 )
         {
           g_247_do_2500 = -1000.0 ;
           Print("SlippageMode 2 active"); 
         }
       }
       if ( g_43_bo_E8 )
       {
         local_5_do = local_17_do ;
       }
       else
       {
         local_5_do = local_10_do ;
       }
       if ( local_7_do<NormalizeDouble(local_10_do - (g_100_do_230 + g_64_do_148) * g_229_do_1E00 - g_1_do_0,g_190_in_518) )
       {
         local_7_do = NormalizeDouble(local_10_do - (g_100_do_230 + g_64_do_148) * g_229_do_1E00 - g_1_do_0,g_190_in_518) ;
         OrderModify(local_9_lo,local_10_do,local_7_do,local_8_do,0,0xFFFFFFFF); 
       }
       if ( MarketInfo(g_336_st_3130,MODE_BID)<local_10_do - (g_100_do_230 + g_64_do_148) * g_229_do_1E00 - g_1_do_0 )
       {
         RefreshRates(); 
         OrderClose(OrderTicket(),OrderLots(),MarketInfo(g_336_st_3130,MODE_BID),(int)g_1_do_0,Red); 
         return(true); 
       }
       local_20_bo = false ;
       if ( g_159_bo_464 )
       {
         tmp_lo_8 = local_9_lo;
         tmp_in_9 = 0;
         for (tmp_in_10 = OrdersTotal() ; tmp_in_10 >= 0 ; tmp_in_10=tmp_in_10 - 1)
         {
           if ( OrderSelect(tmp_in_10,0,0) != true || OrderMagicNumber() != g_168_in_4A8 || OrderSymbol() != g_336_st_3130 )   c

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

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

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

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

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

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

Стоимость полного кода
26 942,70₽ ≈ $329.33