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

h4_breakout_cycle_v1a.mq4

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

#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих теговea robofibo source v.11.2.mq4MQL4 / MetaTrader 4 · 1 общих теговsma crossover scalper ea for mt4.mq4MQL4 / MetaTrader 4 · 1 общих теговr15 pivot points expert advisor by @fundedmillionairess.mq4MQL4 / MetaTrader 4 · 1 общих теговnewstrader.mq5MQL5 / MetaTrader 5 · 1 общих теговmm3.0_flip_codepro_v3.1_with_cooldown@lifeindreamsworld.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

H4 Break Out Cycle V1a — советник для MetaTrader 4, работающий на таймфрейме H4 и анализирующий ценовые данные с использованием скользящих средних (EMA, SMA, LWMA), полос Боллинджера и уровней высоких/низких свечей на нескольких таймфреймах. Поддерживает длинные и короткие позиции с управлением рисками через стоп-лосс и тейк-профит в пипсах, расчёт лота по проценту риска или по балансу/эквити счёта. Встроены модуль управления позицией (брейк-эвен, трейлинг-стоп, прыжковый стоп, частичное закрытие), фильтрация по торговым часам, проверка спреда и защита от подозрительной активности.

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

НастройкаОписание
gen Общие входы — Текстовый заголовок раздела общих настроек советника.
TradingTimeFrame Таймфрейм торговли — Выбор таймфрейма для анализа ценовых данных и формирования сигналов; используется во всех вызовах индикаторов и функций цены.
EveryTickMode Режим каждого тика — Если включён, советник пересчитывает сигналы на каждом тике; если выключен — только при открытии новой свечи выбранного таймфрейма.
Lot Лот — Фиксированный размер лота для открытия сделок, используется когда расчёт по проценту риска отключён.
Set to zero to disable and use Lot (RiskPercent) Процент риска — Процент свободного маржи, который советник рискует на одну сделку; при нулевом значении используется фиксированный лот Lot.
Over rides Lot. Zero input to cancel. (LotsPerDollopOfCash) Лотов на денежную единицу — Размер лота на каждую денежную единицу баланса/эквити; переопределяет фиксированный Lot при ненулевом значении.
SizeOfDollop Размер денежной единицы — Номинал денежной единицы для расчёта лота по балансу счёта (например, 1000 означает расчёт на каждые 1000 единиц средств).
UseBalance Использовать баланс — Флаг использования баланса счёта (а не эквити) при расчёте размера лота через LotsPerDollopOfCash.
UseEquity Использовать эквити — Флаг использования эквити счёта при расчёте размера лота через LotsPerDollopOfCash.
StopTrading Остановить торговлю — Если включён, советник прекращает открытие новых сделок, но продолжает управлять существующими позициями.
Setup007 Настройка 007 — Включает режим раннего открытия позиции в понедельник в указанный часовой интервал на основе анализа ценовых уровней H4.
TradeLong Торговля в лонг — Разрешает советнику открывать длинные (покупку) позиции.
TradeShort Торговля в шорт — Разрешает советнику открывать короткие (продажу) позиции.
TakeProfitPips Тейк-профит в пипсах — Размер тейк-профита в пипсах для новых сделок.
StopLossPips Стоп-лосс в пипсах — Размер стоп-лосса в пипсах для новых сделок; при нулевом значении стоп-лосс не устанавливается.
BasketTrail Трейлинг корзины — Включает трейлинг-стоп для группы позиций (корзины сделок).
MagicNumber Магический номер — Уникальный идентификатор ордеров советника для фильтрации своих сделок и ордеров.
TradeComment Комментарий к сделке — Текстовый комментарий, добавляемый к каждой открытой сделке.
IsGlobalPrimeOrECNCriminal Глобальный прайм или ECN — Флаг для работы с ECN/прайм-брокерами: при включении используется двухэтапная отправка ордера (без TP/SL, затем модификация).
MaxSlippagePips Максимальный проскальзывание — Допустимое проскальзывание в пипсах при отправке рыночных ордеров.
Defaults to 10 minutes (PostTradeAttemptWaitSeconds) Пауза после попытки торговли — Время в секундах ожидания перед повторной попыткой торговли после неудачной отправки ордера.
sep2c Разделитель — Текстовый разделитель визуального блока настроек в интерфейсе советника.
mpp Минимальные пипсы между сделками — Текстовый заголовок раздела настройки минимального расстояния между сделками по одному инструменту.
MinDistanceBetweenTradesPips Минимальное расстояние между сделками — Минимальное расстояние в пипсах между ценой открытия новой сделки и ценой открытия существующей сделки того же направления.
sep1 Разделитель HGI — Текстовый разделитель визуального блока настроек HGI в интерфейсе советника.
hgic Выбор HGI — Текстовый заголовок раздела настроек Hidden Grid Indicator (HGI) для закрытия сделок.
hgi Входы HGI — Текстовый заголовок раздела входных параметров HGI в интерфейсе советника.
HgiTimeFrame Таймфрейм HGI — Таймфрейм для получения сигналов Hidden Grid Indicator, используемых для закрытия сделок.
CloseOnLargeArrows Закрывать на крупные стрелки — Если включён, советник закрывает сделки при получении сигнала tradable up/down arrow от HGI.
CloseOnBlueWavy Закрывать на синюю волну — Если включён, советник закрывает сделки при получении сигнала blue wavy long/short от HGI.
Получить полный код

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

#define  version "Version 1a"

#include <WinUser32.mqh>
#include <stdlib.mqh>
#define  NL    "\n"
#define  up "Up"
#define  down "Down"
#define  ranging "Ranging"
#define  none "None"
#define  both "Both"
#define  buy "Buy"
#define  sell "Sell"

   enum SIGNAL {NONE=0,TRENDUP=1,TRENDDN=2,RANGEUP=3,RANGEDN=4,RADUP=5,RADDN=6};
   enum SLOPE {UNDEFINED=0,RANGEABOVE=1,RANGEBELOW=2,TRENDABOVE=3,TRENDBELOW=4};

#import

#define  hginoarrow ": No relevant signal"
#define  hgiuparrowtradable ": Tradable up arrow"
#define  hgidownarrowtradable ": Tradable down arrow"
#define  hgiuparrowuntradable ": Untradable up arrow"
#define  hgidownarrowuntradable ": Untradable down arrow"
#define  hgiupradarrowtradable ": Tradable Rad up arrow"
#define  hgidownradarrowtradable ": Tradable Rad down arrow"
#define  hgiupradarrowuntradable ": Untradable Rad up arrow"
#define  hgidownradarrowuntradable ": Untradable Rad down arrow"
#define  hgibluewavylong ": Blue wavy long"
#define  hgibluewavyshort ": Blue wavy short"

#define  AllTrades 10 //Tells CloseAllTrades() to close/delete everything
#define  million 1000000;

#define  TradeTicket 1

#define  pendingpriceline "Pending price line"

#define  TpPrefix "Tp"
#define  SlPrefix "Sl"

#define  slm " stop loss modification failed with error "
#define  tpm " take profit modification failed with error "
#define  ocm " order close failed with error "
#define  odm " order delete failed with error "
#define  pcm " part close failed with error "
#define  spm " shirt-protection close failed with error "
#define  slim " stop loss insertion failed with error "
#define  tpim " take profit insertion failed with error "
#define  tpsl " take profit or stop loss insertion failed with error "
#define  oop " pending order price modification failed with error "

/*

Matt Kennel has provided the code for bool O_R_CheckForHistory(int ticket). Cheers Matt, You are a star.

Code for adding debugging Sleep
Alert("G");
int x = 0;
while (x == 0) Sleep(100);
      or
Alert("Y");
RemoveExpert = true;
ExpertRemove();
return;

Standard order loop code
   for (int cc = OrdersTotal() - 1; cc >= 0; cc--)
   {
      if (!BetterOrderSelect(cc, SELECT_BY_POS) ) continue;
      if (OrderSymbol() != Symbol() ) continue;
      if (OrderMagicNumber() != MagicNumber) continue;

   }//for (int cc = OrdersTotal() - 1; cc >= 0; cc--)

Code from George, to detect the shift of an order open time
int shift = iBarShift(NULL,Period(),OrderOpenTime(), false);

To calculate what percentage a small number is of a larger one:
(Given amount Divided by Total amount) x100 = %
as in UpperWickPercentage = (UpperWick / CandleSize) * 100; where CandleSize is the size of the the candle and UpperWick the size of the top of the body to the High.

Example of iHighest and iLowest
double high = iHigh( Symbol(), TradingTimeFrame, iHighest( Symbol(), TradingTimeFrame, MODE_HIGH, 24, 1 ) );
double low = iLow( Symbol(), TradingTimeFrame, iLowest( Symbol(), TradingTimeFrame, MODE_LOW, 24, 1 ) );

   Full snippet to force closure of all open trades. Use whichever part is most appropriate.
   if (ForceTradeClosure)
   {
      CloseAllTrades();
      if (ForceTradeClosure)
      {
         CloseAllTrades();
         if (ForceTradeClosure)
         {
            return;
         }//if (ForceTradeClosure)                     
      }//if (ForceTradeClosure)         
   }//if (ForceTradeClosure)      

*/

extern string  gen="----General inputs----";
/*
Note to coders about TradingTimeFrame. Be consistent in your calls to indicators etc and always use TradingTimeFrame i.e.
double v = iClose(Symbol(), TradingTimeFrame, shift) instead of Close[shift].
This allows the user to change time frames without disturbing the ea. There is a line of code in OnInit(), just above the call
to DisplayUserFeedback() that forces the EA to wait until the open of a new TradingTimeFrame candle; you might want to comment
this out during your EA development.
*/
extern ENUM_TIMEFRAMES TradingTimeFrame=PERIOD_CURRENT;
extern bool    EveryTickMode=true;
extern double  Lot=0.02;
extern double  RiskPercent=0;//Set to zero to disable and use Lot
extern double  LotsPerDollopOfCash=0;//Over rides Lot. Zero input to cancel.
extern double  SizeOfDollop=1000;
extern bool    UseBalance=false;
extern bool    UseEquity=true;

extern bool    StopTrading=false;
extern bool    Setup007=true;
extern bool    TradeLong=true;
extern bool    TradeShort=true;
extern int     TakeProfitPips=60;
extern int     StopLossPips=0;
extern bool    BasketTrail=false;
extern int     MagicNumber=0;
extern string  TradeComment="H4_BreakOut_Cycle";
extern bool    IsGlobalPrimeOrECNCriminal=false;
extern double  MaxSlippagePips=5;

extern int     PostTradeAttemptWaitSeconds=2;//Defaults to 10 minutes

datetime       TimeToStartTrading=0;//Re-start calling LookForTradingOpportunities() at this time.
double         TakeProfit, StopLoss;
datetime       OldBarsTime;
double         dPriceFloor = 0, dPriceCeiling = 0;//Next x0 numbers
double         PriceCeiling100 = 0, PriceFloor100 = 0;// Next 'big' numbers

string         GvName="Under management flag";//The name of the GV that tells the EA not to send trades whilst the manager is closing them.

string         LocalGvName = "Local closure in operation " + Symbol();

string         NuclearGvName = "Nuclear option closure in operation " + Symbol();

string         TradingTimeFrameDisplay="";

int            FifoTicket[];//Array to store trade ticket numbers in FIFO mode, to cater for

double         ForceCloseTickets[];
bool           RemoveExpert=false;
double         MinDistanceBetweenTrades=0;

extern string  sep2c="================================================================";
extern string  mpp="---- Minimum pips in between same-pair trades ----";
extern int     MinDistanceBetweenTradesPips=7;

extern string  sep1="================================================================";
extern string  hgic="======== HGI choices ========";
extern string  hgi="-- HGI Inputs --"; 
extern ENUM_TIMEFRAMES HgiTimeFrame=PERIOD_M5;
extern bool    CloseOnLargeArrows=false;
extern bool    CloseOnBlueWavy=false;
extern bool    OnlyCloseWinningTrades=false;

string         HgiStatus;//Constants defined at top of file//Amended HGI code
string         HgiTimeFrameDisplay="";

extern string  sep2="================================================================";

bool           Hedged=false;

extern string  sepb="================================================================";
extern string  off="---- Offsetting ----";
extern bool    UseOffsetting=false;//Simple offset and double-sided complex offset
extern bool    AllowComplexSingleSidedOffsets=false;//Allow complex single-sided offset. Not allowed if UseOffsetting = false
extern int     MinOpenTradesToStartOffset=3;//Only use offsetting if there are at least this number of trades in the group

extern string  sep2a="================================================================";
extern string  ubp="---- Unbalanced positions inputs ----";
extern int     PositionIsUnbalancedAt=7;//The difference between open buys and sells to constitute an unbalanced position.

extern string  rec="-- Offsetting for unbalanced positions --";
extern bool    UseOffsettingForBalanceRecovery=false;
extern bool    AllowComplexSingleSidedOffsetsRecovery=false;//Allow complex single-sided offset. Not allowed if UseOffsetting = false
extern int     MinTradesToStartUnbalancedOffset=6;
extern string  nco="-- Nuclear option closure --";
extern bool    UseInstantClosure=false;//Close the position the moment it becomes unbalanced.
extern bool    UseMarginLevelClosure=false;//Only close when the margin level drops
extern int     ClosureMarginLevel=500;     //to this point.

bool           AllowTradeManagement=true, Unbalanced=false;

extern string  sep1a="================================================================";
extern string  sfs="----SafetyFeature----";

extern int     MinMinutesBetweenTradeOpenClose=0;//For spotting possible rogue trades
extern int     MinMinutesBetweenTrades=0;//Minimum time to pass after a trade closes, until the ea can open another.

bool           SafetyViolation;//For chart display
bool           RobotSuspended=false;

extern string  sep3="================================================================";

extern string  hts="----Stealth stop loss and take profit inputs----";
extern int     PipsHiddenFromCriminal=0;//Added to the 'hard' sl and tp and used for closure calculations

double         HiddenStopLoss,HiddenTakeProfit;
double         HiddenPips=0;//Added to the 'hard' sl and tp and used for closure calculations

extern string  sep7="================================================================";

extern string  trh            = "----Trading hours----";
extern string  tr1            = "tradingHours is a comma delimited list";
extern string  tr1a="of start and stop times.";
extern string  tr2="Prefix start with '+', stop with '-'";
extern string  tr2a="Use 24H format, local time.";
extern string  tr3="Example: '+07.00,-10.30,+14.15,-16.00'";
extern string  tr3a="Do not leave spaces";
extern string  tr4="Blank input means 24 hour trading.";
extern string  tradingHours="";

double         TradeTimeOn[];
double         TradeTimeOff[];

int            tradeHours[];
string         tradingHoursDisplay;//tradingHours is reduced to "" on initTradingHours, so this variable saves it for screen display.
bool           TradeTimeOk;

extern string  sep1de="================================================================";
extern string  fssmt="---- Inputs applied to individual days ----";
extern int     FridayStopTradingHour=22;//Ignore signals at and after this time on Friday.

extern int     FridayCloseAllHour=22;//Friday time to close all open trades/delete stop orders for the weekend.

extern int     SaturdayStopTradingHour=24;//For those in Upside Down Land.  
extern int     SaturdayCloseAllHour=24;//For those in Upside Down Land.  

extern int     MaxAllowableCashLoss=-20;//Only close all trades when the negative cash upl is less than this.

extern bool    TradeSundayCandle=false;
extern int     MondayStartHour=1;//24h local time     
 bool    TradeThursdayCandle=true;//Thursday tends to be a reversal day, so avoid it.                               

extern string  sep7b="================================================================";
extern string  roll="---- Rollover time ----";
extern bool    DisableEaDuringRollover=true;
extern string  ro1 = "Use 24H format, SERVER time.";
extern string  ro2 = "Example: '23.55'";
extern string  RollOverStarts="23.55";
extern string  RollOverEnds="00.15";

bool           RolloverInProgress=false;//Tells DisplayUserFeedback() to display the rollover message

extern string  sep10="================================================================";
extern string  amc="----Available Margin checks----";
extern string  sco="Scoobs";
extern bool    UseScoobsMarginCheck=false;
extern string  fk="ForexKiwi";
extern bool    UseForexKiwi=false;
extern int     FkMinimumMarginPercent=300;

bool           EnoughMargin;
string         MarginMessage;

extern string  sep11="================================================================";
extern string  asi="----Average spread inputs----";
bool    RunInSpreadDetectionMode=false;
extern int     TicksToCount=5;//The ticks to count whilst canculating the av spread
extern double  MultiplierToDetectStopHunt=10;

double         AverageSpread=0;
string         SpreadGvName;//A GV will hold the calculated average spread
int            CountedTicks=0;//For status display whilst calculating the spread
double         BiggestSpread=0;//Holds a record of the widest spread since the EA was loaded

extern string  sep13="================================================================";
extern string  tmm="----Trade management module----";

extern string  BE="Break even settings";
extern bool    BreakEven=true;
extern double     BreakEvenTargetPips=20;
extern int     BreakEvenTargetProfit=3;
extern bool    PartCloseEnabled=true;
extern double  PartClosePercent=50;//Percentage of the trade lots to close

double         BreakEvenPips,BreakEvenProfit;
bool           TradeHasPartClosed=false;

extern string  sep14="================================================================";
extern string  JSL="Jumping stop loss settings";
extern bool    JumpingStop=true;
extern int     JumpingStopTargetPips=25;
extern bool    AddBEP=true;

double         JumpingStopPips;

extern string  sep15="================================================================";
extern string  cts="----Candlestick jumping stop----";
extern bool    UseCandlestickTrailingStop=false;
extern int     CstTimeFrame=0;//Defaults to current chart
extern int     CstTrailCandles=1;//Defaults to previous candle
extern bool    TrailMustLockInProfit=true;

int            OldCstBars;//For candlestick ts

extern string  sep16="================================================================";
extern string  TSL="Trailing stop loss settings";
extern bool    TrailingStop=false;
extern int     TrailingStopTargetPips=20;

double         TrailingStopPips;

extern string  se52  ="================================================================";
extern string  oad               ="----Odds and ends----";
extern int     ChartRefreshDelaySeconds=3;
extern int     DisplayGapSize    = 30; // if using Comments

extern bool    DisplayAsText     = true;  // replaces Comment() with OBJ_LABEL text
extern bool    KeepTextOnTop     = true;//Disable the chart in foreground CrapTx setting so the candles do not obscure the text
extern int     DisplayX          = 100;
extern int     DisplayY          = 0;
extern int     fontSise          = 8;
extern string  fontName          = "Arial";
extern color   colour            = Yellow;

int            DisplayCount;
string         Gap,ScreenMessage;

double         factor;//For pips/points stuff. Set up in int init()

int            O_R_Setting_max_retries=10;
double         O_R_Setting_sleep_time=4.0; /* seconds */
double         O_R_Setting_sleep_max=15.0; /* seconds */
int            RetryCount=10;//Will make this number of attempts to get around the trade context busy error.

int            LossTrades,WinTrades;
double         OverallProfit;

int            OldBars;
string         PipDescription=" pips";
bool           ForceTradeClosure;
int            TurnOff=0;//For turning off functions without removing their code

int            MarketTradesTotal=0;//Total of open market trades

bool           BuyOpen=false;
int            MarketBuysCount=0;
double         LatestBuyPrice=0, EarliestBuyPrice=0, HighestBuyPrice=0, LowestBuyPrice=0;
int            BuyTicketNo=-1, HighestBuyTicketNo=-1, LowestBuyTicketNo=-1, LatestBuyTicketNo=-1, EarliestBuyTicketNo=-1;
double         BuyPipsUpl=0;
double         BuyCashUpl=0;
datetime       LatestBuyTradeTime=0;
datetime       EarliestBuyTradeTime=0;

bool           SellOpen=false;
int            MarketSellsCount=0;
double         LatestSellPrice=0, EarliestSellPrice=0, HighestSellPrice=0, LowestSellPrice=0;
int            SellTicketNo=-1, HighestSellTicketNo=-1, LowestSellTicketNo=-1, LatestSellTicketNo=-1, EarliestSellTicketNo=-1;;
double         SellPipsUpl=0;
double         SellCashUpl=0;
datetime       LatestSellTradeTime=0;
datetime       EarliestSellTradeTime=0;

bool           BuyStopOpen=false;
int            BuyStopsCount=0;
double         LatestBuyStopPrice=0, EarliestBuyStopPrice=0, HighestBuyStopPrice=0, LowestBuyStopPrice=0;
int            BuyStopTicketNo=-1, HighestBuyStopTicketNo=-1, LowestBuyStopTicketNo=-1, LatestBuyStopTicketNo=-1, EarliestBuyStopTicketNo=-1;;
datetime       LatestBuyStopTradeTime=0;
datetime       EarliestBuyStopTradeTime=0;

bool           BuyLimitOpen=false;
int            BuyLimitsCount=0;
double         LatestBuyLimitPrice=0, EarliestBuyLimitPrice=0, HighestBuyLimitPrice=0, LowestBuyLimitPrice=0;
int            BuyLimitTicketNo=-1, HighestBuyLimitTicketNo=-1, LowestBuyLimitTicketNo=-1, LatestBuyLimitTicketNo=-1, EarliestBuyLimitTicketNo=-1;;
datetime       LatestBuyLimitTradeTime=0;
datetime       EarliestBuyLimitTradeTime=0;

bool           SellStopOpen=false;
int            SellStopsCount=0;
double         LatestSellStopPrice=0, EarliestSellStopPrice=0, HighestSellStopPrice=0, LowestSellStopPrice=0;
int            SellStopTicketNo=-1, HighestSellStopTicketNo=-1, LowestSellStopTicketNo=-1, LatestSellStopTicketNo=-1, EarliestSellStopTicketNo=-1;;
datetime       LatestSellStopTradeTime=0;
datetime       EarliestSellStopTradeTime=0;

bool           SellLimitOpen=false;
int            SellLimitsCount=0;
double         LatestSellLimitPrice=0, EarliestSellLimitPrice=0, HighestSellLimitPrice=0, LowestSellLimitPrice=0;
int            SellLimitTicketNo=-1, HighestSellLimitTicketNo=-1, LowestSellLimitTicketNo=-1, LatestSellLimitTicketNo=-1, EarliestSellLimitTicketNo=-1;;
datetime       LatestSellLimitTradeTime=0;
datetime       EarliestSellLimitTradeTime=0;

int            TicketNo=-1,OpenTrades,OldOpenTrades;

bool           BuySignal=false, SellSignal=false;

bool           BuyCloseSignal=false, SellCloseSignal=false;

datetime       LatestTradeTime=0, EarliestTradeTime=0;//More specific times are in each individual section
int            LatestTradeTicketNo=-1, EarliestTradeTicketNo=-1;
double         PipsUpl;//For keeping track of the pips PipsUpl of multi-trade/hedged positions
double         CashUpl;//For keeping track of the cash PipsUpl of multi-trade/hedged positions

bool           TpSet=false, SlSet=false;

double         GridOrderBuyTickets[][2]; // number of lines will be equal to MarketBuysOpen - 1
double         GridOrderSellTickets[][2];

void DisplayUserFeedback()
{

   if(IsTesting() && !IsVisualMode()) return;

   string text = "";

   static datetime CurrentTime = 0;
   static datetime DisplayNow = 0;
   if (TimeCurrent() < DisplayNow )
      return;
   CurrentTime = TimeCurrent();
   DisplayNow = CurrentTime + ChartRefreshDelaySeconds;

   DisplayCount = 1;
   removeAllObjects();

   ScreenMessage="";

   SM(NL);
   if(SafetyViolation) SM("*************** CANNOT TRADE YET. TOO SOON AFTER CLOSE OF PREVIOUS TRADE***************"+NL);

   SM("Updates for this EA are to be found at "+NL);
   SM("Feeling generous? Help keep the coder going with a small Paypal donation to p**********r*@hotmail.com"+NL);
   SM("Broker time = "+TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS)+": Local time = "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS)+NL);
   SM(version+NL);
/*

   SM( TimeToString( iTime(Symbol(), TradingTimeFrame, 0) + TradingTimeFrame * 60 - CurTime(), TIME_MINUTES|TIME_SECONDS ) 
   + " left to bar end" + NL );
   */
   if(!TradeTimeOk)
   {
      SM(NL);
      SM("---------- OUTSIDE TRADING HOURS. Will continue to monitor opent trades. ----------"+NL+NL);
   }//if (!TradeTimeOk)

   if(RolloverInProgress)
   {
      SM(NL);
      SM("---------- ROLLOVER IN PROGRESS. I am taking no action until "+RollOverEnds+" ----------"+NL+NL);
      return;
   }//if (RolloverInProgress)

   SM(NL);

   SM(NL);

   if (CloseOnLargeArrows || CloseOnBlueWavy)
   {
      SM("HGI time frame: " + HgiTimeFrameDisplay + NL);
      SM("HGI signal status" + HgiStatus + NL);
   }//if (CloseOnLargeArrows || CloseOnBlueWavy)

   SM(NL);     
   text = "Market trades open = ";
   SM(text + IntegerToString(MarketTradesTotal) + ": Pips UPL = " + DoubleToStr(PipsUpl, 0)
   +  ": Cash UPL = " + DoubleToStr(CashUpl, 2) + NL);
   if (BuyOpen)
      SM("Buy trades = " + IntegerToString(MarketBuysCount)
         + ": Pips upl = " + IntegerToString(BuyPipsUpl)
         + ": Cash upl = " + DoubleToStr(BuyCashUpl, 2)
         + NL);
   if (SellOpen)
      SM("Sell trades = " + IntegerToString(MarketSellsCount)
         + ": Pips upl = " + IntegerToString(SellPipsUpl)
         + ": Cash upl = " + DoubleToStr(SellCashUpl,2)
         + NL);
   if (Hedged || Unbalanced)
      SM("I am looking for an opportunity to close the position at a profit." + NL);

   SM(NL);
   SM("Trading time frame: " + TradingTimeFrameDisplay + NL);
   if(TradeLong) SM("Taking long trades"+NL);
   if(TradeShort) SM("Taking short trades"+NL);
   if(!TradeLong && !TradeShort) SM("Both TradeLong and TradeShort are set to false"+NL);
   SM("Lot size: "+DoubleToStr(Lot,2)+" (Criminal's minimum lot size: "+DoubleToStr(MarketInfo(Symbol(),MODE_MINLOT),2)+")"+NL);
   if(!CloseEnough(TakeProfit,0)) SM("Take profit: "+DoubleToStr(TakeProfit,0)+PipDescription+NL);
   if(!CloseEnough(StopLoss,0)) SM("Stop loss: "+DoubleToStr(StopLoss,0)+PipDescription+NL);
   SM("Magic number: "+MagicNumber+NL);
   SM("Trade comment: "+TradeComment+NL);
   if(IsGlobalPrimeOrECNCriminal) SM("IsGlobalPrimeOrECNCriminal = true"+NL);
   else SM("IsGlobalPrimeOrECNCriminal = false"+NL);
   double spread=(Ask-Bid)*factor;
   SM("Average Spread = "+DoubleToStr(AverageSpread,1)+": Spread = "+DoubleToStr(spread,1)+": Widest since loading = "+DoubleToStr(BiggestSpread,1)+NL);
   SM(NL);

   if(tradingHoursDisplay!="") SM("Trading hours: "+tradingHoursDisplay+NL);
   else SM("24 hour trading: "+NL);

   if(MarginMessage!="") SM(MarginMessage+NL);

   SM(Gap+NL);
   SM("Results today. Wins: "+WinTrades+": Losses "+LossTrades+": P/L "+DoubleToStr(OverallProfit,2)+NL);

   SM(NL);

   if(BreakEven)
   {
      SM("Breakeven is set to "+DoubleToStr(BreakEvenPips,0)+PipDescription+": BreakEvenProfit = "+DoubleToStr(BreakEvenProfit,0)+PipDescription);
      SM(NL);
      if(PartCloseEnabled)
      {
         double CloseLots=NormalizeLots(Symbol(),Lot *(PartClosePercent/100));
         SM("Part-close is enabled at "+DoubleToStr(PartClosePercent,2)+"% ("+DoubleToStr(CloseLots,2)+" lots to close)"+NL);
      }//if (PartCloseEnabled)      
   }//if (BreakEven)

   if(UseCandlestickTrailingStop)
   {
      SM("Using candlestick trailing stop"+NL);
   }//if (UseCandlestickTrailingStop)

   if(JumpingStop)
   {
      SM("Jumping stop is set to "+DoubleToStr(JumpingStopPips,0)+PipDescription);
      SM(NL);
   }//if (JumpingStop)

   if(TrailingStop)
   {
      SM("Trailing stop is set to "+DoubleToStr(TrailingStopPips,0)+PipDescription);
      SM(NL);
   }//if (TrailingStop)

   Comment(ScreenMessage);

}//void DisplayUserFeedback()

void SM(string message)
{
   if (DisplayAsText) 
   {
      DisplayCount++;
      Display(message);
   }
   else
      ScreenMessage = StringConcatenate(ScreenMessage,Gap, message);

}//End void SM()

void removeAllObjects()
{
   for(int i = ObjectsTotal() - 1; i >= 0; i--)
   if (StringFind(ObjectName(i),"OAM-",0) > -1) 
      ObjectDelete(ObjectName(i));
}//End void removeAllObjects()

void Display(string text)
{
  string lab_str = "OAM-" + IntegerToString(DisplayCount);  
  double ofset = 0;
  string textpart[5];
  uint w,h;

  for (int cc = 0; cc < 5; cc++)
  {
     textpart[cc] = StringSubstr(text,cc*63,64);
     if (StringLen(textpart[cc]) ==0) continue;
     lab_str = lab_str + IntegerToString(cc);

     ObjectCreate(lab_str, OBJ_LABEL, 0, 0, 0);
     ObjectSet(lab_str, OBJPROP_CORNER, 0);
     ObjectSet(lab_str, OBJPROP_XDISTANCE, DisplayX + ofset);
     ObjectSet(lab_str, OBJPROP_YDISTANCE, DisplayY+DisplayCount*(fontSise+4));
     ObjectSet(lab_str, OBJPROP_BACK, false);
     ObjectSetText(lab_str, textpart[cc], fontSise, fontName, colour);

     TextSetFont(fontName,-fontSise*10,0,0);
     TextGetSize(textpart[cc],w,h);

     if (StringSubstr(textpart[cc],63,1)==" ")
        ofset+=(int)(w-fontSise*0.25);
     else
        ofset+=(int)(w-fontSise*0.65);

  }//for (int cc = 0; cc < 5; cc++)
}

bool ChartForegroundSet(const bool value,const long chart_ID=0)
{

   ResetLastError();

   if(!ChartSetInteger(chart_ID,CHART_FOREGROUND,0,value))
   {

      Print(__FUNCTION__+", Error Code = ",GetLastError());
      return(false);
   }//if(!ChartSetInteger(chart_ID,CHART_FOREGROUND,0,value))

   return(true);
}//End bool ChartForegroundSet(const bool value,const long chart_ID=0)

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

void OnDeinit(const int reason)
{

   Comment("");
   removeAllObjects();

   return;
}

string GetTimeFrameDisplay(int tf)
{

   if (tf == 0)
      tf = Period();

   if (tf == PERIOD_M1)
      return "M1";

   if (tf == PERIOD_M5)
      return "M5";

   if (tf == PERIOD_M15)
      return "M15";

   if (tf == PERIOD_M30)
      return "M30";

   if (tf == PERIOD_H1)
      return "H1";

   if (tf == PERIOD_H4)
      return "H4";

   if (tf == PERIOD_D1)
      return "D1";

   if (tf == PERIOD_W1)
      return "W1";

   if (tf == PERIOD_MN1)
      return "Monthly";

   return("No recognisable time frame selected");

}//string GetTimeFrameDisplay()

bool SendSingleTrade(string symbol,int type,string comment,double lotsize,double price,double stop,double take)
{

   double slippage=MaxSlippagePips*MathPow(10,Digits)/factor;
   int ticket = -1;

   color col=Red;
   if(type==OP_BUY || type==OP_BUYSTOP || type == OP_BUYLIMIT) col=Green;

   datetime expiry=0;

   for(int cc=0; cc<RetryCount; cc++)
     {

      while(IsTradeContextBusy()) Sleep(100);//Put here so that excess slippage will cancel the trade if the ea has to wait for some time.

      RefreshRates();
      if(type == OP_BUY) price = MarketInfo(symbol, MODE_ASK);
      if(type == OP_SELL) price = MarketInfo(symbol, MODE_BID);

      if(!IsGlobalPrimeOrECNCriminal)
         ticket=OrderSend(symbol,type,lotsize,price,slippage,stop,take,comment,MagicNumber,expiry,col);

      if(IsGlobalPrimeOrECNCriminal)
      {
         ticket=OrderSend(symbol,type,lotsize,price,slippage,0,0,comment,MagicNumber,expiry,col);
         if(ticket>-1)
         {
            ModifyOrderTpSl(ticket,stop,take);
         }//if (ticket > 0)}
      }//if (IsGlobalPrimeOrECNCriminal)

      if(ticket>-1) break;//Exit the trade send loop
      if(cc == RetryCount - 1) return(false);

      if(ticket<0)
        {
         string stype;
         if(type == OP_BUY) stype = "OP_BUY";
         if(type == OP_SELL) stype = "OP_SELL";
         if(type == OP_BUYLIMIT) stype = "OP_BUYLIMIT";
         if(type == OP_SELLLIMIT) stype = "OP_SELLLIMIT";
         if(type == OP_BUYSTOP) stype = "OP_BUYSTOP";
         if(type == OP_SELLSTOP) stype = "OP_SELLSTOP";
         int err=GetLastError();
         if (type < 2)
            Alert(symbol," ",WindowExpertName()," ",stype," order send failed with error(",err,"): ",ErrorDescription(err));
         Print(symbol," ",WindowExpertName()," ",stype," order send failed with error(",err,"): ",ErrorDescription(err));
         return(false);
        }//if (ticket < 0)  
     }//for (int cc = 0; cc < RetryCount; cc++);

   TicketNo=ticket;

   bool TradeReturnedFromCriminal=false;
   while(!TradeReturnedFromCriminal)
     {
      TradeReturnedFromCriminal=O_R_CheckForHistory(ticket);
      if(!TradeReturnedFromCriminal)
        {
         Alert(Symbol()," sent trade not in your trade history yet. Turn of this ea NOW.");
        }//if (!TradeReturnedFromCriminal)
     }//while (!TradeReturnedFromCriminal)

   return(true);

}//End bool SendSingleTrade(int type, string comment, double lotsize, double price, double stop, double take)
bool SendSingleTradeB(string symbol,int type,string comment,double lotsize,double priceb,double stop,double take)
{

   double slippage=MaxSlippagePips*MathPow(10,Digits)/factor;
   int ticket = -1;

   color col=Red;
   if(type==OP_BUY || type==OP_BUYSTOP || type == OP_BUYLIMIT) col=Green;

   datetime expiry=0;

   for(int cc=0; cc<RetryCount; cc++)
     {

      while(IsTradeContextBusy()) Sleep(100);//Put here so that excess slippage will cancel the trade if the ea has to wait for some time.

      RefreshRates();
      if(type == OP_BUY) priceb = MarketInfo(symbol, MODE_ASK);

      if(!IsGlobalPrimeOrECNCriminal)
         ticket=OrderSend(symbol,type,lotsize,priceb,slippage,stop,take,comment,MagicNumber,expiry,col);

      if(IsGlobalPrimeOrECNCriminal)
      {
         ticket=OrderSend(symbol,type,lotsize,priceb,slippage,0,0,comment,MagicNumber,expiry,col);
         if(ticket>-1)
         {
            ModifyOrderTpSl(ticket,stop,take);
         }//if (ticket > 0)}
      }//if (IsGlobalPrimeOrECNCriminal)

      if(ticket>-1) break;//Exit the trade send loop
      if(cc == RetryCount - 1) return(false);

      if(ticket<0)
        {
         string stype;
         if(type == OP_BUY) stype = "OP_BUY";
         if(type == OP_SELL) stype = "OP_SELL";
         if(type == OP_BUYLIMIT) stype = "OP_BUYLIMIT";
         if(type == OP_SELLLIMIT) stype = "OP_SELLLIMIT";
         if(type == OP_BUYSTOP) stype = "OP_BUYSTOP";
         if(type == OP_SELLSTOP) stype = "OP_SELLSTOP";
         int err=GetLastError();
         if (type < 2)
            Alert(symbol," ",WindowExpertName()," ",stype," order send failed with error(",err,"): ",ErrorDescription(err));
         Print(symbol," ",WindowExpertName()," ",stype," order send failed with error(",err,"): ",ErrorDescription(err));
         return(false);
        }//if (ticket < 0)  
     }//for (int cc = 0; cc < RetryCount; cc++);

   TicketNo=ticket;

   bool TradeReturnedFromCriminal=false;
   while(!TradeReturnedFromCriminal)
     {
      TradeReturnedFromCriminal=O_R_CheckForHistory(ticket);
      if(!TradeReturnedFromCriminal)
        {
         Alert(Symbol()," sent trade not in your trade history yet. Turn of this ea NOW.");
        }//if (!TradeReturnedFromCriminal)
     }//while (!TradeReturnedFromCriminal)

   return(true);

}//End bool SendSingleTrade(int type, string comment, double lotsize, double price, double stop, double take)
bool SendSingleTradeS(string symbol,int type,string comment,double lotsize,double prices,double stop,double take)
{

   double slippage=MaxSlippagePips*MathPow(10,Digits)/factor;
   int ticket = -1;

   color col=Red;
   if(type==OP_BUY || type==OP_BUYSTOP || type == OP_BUYLIMIT) col=Green;

   datetime expiry=0;

   for(int cc=0; cc<RetryCount; cc++)
     {

      while(IsTradeContextBusy()) Sleep(100);//Put here so that excess slippage will cancel the trade if the ea has to wait for some time.

      RefreshRates();

      if(type == OP_SELL) prices = MarketInfo(symbol, MODE_BID);

      if(!IsGlobalPrimeOrECNCriminal)
         ticket=OrderSend(symbol,type,lotsize,prices,slippage,stop,take,comment,MagicNumber,expiry,col);

      if(IsGlobalPrimeOrECNCriminal)
      {
         ticket=OrderSend(symbol,type,lotsize,prices,slippage,0,0,comment,MagicNumber,expiry,col);
         if(ticket>-1)
         {
            ModifyOrderTpSl(ticket,stop,take);
         }//if (ticket > 0)}
      }//if (IsGlobalPrimeOrECNCriminal)

      if(ticket>-1) break;//Exit the trade send loop
      if(cc == RetryCount - 1) return(false);

      if(ticket<0)
        {
         string stype;
         if(type == OP_BUY) stype = "OP_BUY";
         if(type == OP_SELL) stype = "OP_SELL";
         if(type == OP_BUYLIMIT) stype = "OP_BUYLIMIT";
         if(type == OP_SELLLIMIT) stype = "OP_SELLLIMIT";
         if(type == OP_BUYSTOP) stype = "OP_BUYSTOP";
         if(type == OP_SELLSTOP) stype = "OP_SELLSTOP";
         int err=GetLastError();
         if (type < 2)
            Alert(symbol," ",WindowExpertName()," ",stype," order send failed with error(",err,"): ",ErrorDescription(err));
         Print(symbol," ",WindowExpertName()," ",stype," order send failed with error(",err,"): ",ErrorDescription(err));
         return(false);
        }//if (ticket < 0)  
     }//for (int cc = 0; cc < RetryCount; cc++);

   TicketNo=ticket;

   bool TradeReturnedFromCriminal=false;
   while(!TradeReturnedFromCriminal)
     {
      TradeReturnedFromCriminal=O_R_CheckForHistory(ticket);
      if(!TradeReturnedFromCriminal)
        {
         Alert(Symbol()," sent trade not in your trade history yet. Turn of this ea NOW.");
        }//if (!TradeReturnedFromCriminal)
     }//while (!TradeReturnedFromCriminal)

   return(true);

}//End bool SendSingleTrade(int type, string comment, double lotsize, double price, double stop, double take)

void ModifyOrderTpSl(int ticket, double stop, double take)
{

   if (CloseEnough(stop, 0) && CloseEnough(take, 0) ) return; //nothing to do

   if (!BetterOrderSelect(ticket, SELECT_BY_TICKET) ) return;//Trade does not exist, so no mod needed

   if (OrderCloseTime() > 0) return;//Somehow, we are examining a closed trade

   if (OrderType() == OP_BUY && take < OrderOpenPrice() && !CloseEnough(take, 0) ) 
   {
      take = 0;
      ReportError(" ModifyOrder()", " take profit < market ");
   }//if (OrderType() == OP_BUY && take < OrderOpenPrice() ) 

   if (OrderType() == OP_SELL && take > OrderOpenPrice() ) 
   {
      take = 0;
      ReportError(" ModifyOrder()", " take profit < market ");
   }//if (OrderType() == OP_SELL && take > OrderOpenPrice() ) 

   if (OrderType() == OP_BUY && stop > OrderOpenPrice() ) 
   {
      stop = 0;
      ReportError(" ModifyOrder()", " stop loss > market ");
   }//if (OrderType() == OP_BUY && take < OrderOpenPrice() ) 

   if (OrderType() == OP_SELL && stop < OrderOpenPrice()  && !CloseEnough(stop, 0) ) 
   {
      stop = 0;
      ReportError(" ModifyOrder()", " stop loss < market ");
   }//if (OrderType() == OP_SELL && take > OrderOpenPrice() ) 

   string Reason;

   for (int cc = 0; cc < RetryCount; cc++)
   {
      for (int d = 0; (d < RetryCount) && IsTradeContextBusy(); d++) Sleep(100);
        if (!CloseEnough(take, 0) && !CloseEnough(stop, 0) )
        {
           while(IsTradeContextBusy()) Sleep(100);
           if (ModifyOrder(ticket, OrderOpenPrice(), stop, take, OrderExpiration(), clrNONE, __FUNCTION__, tpsl)) return;
        }//if (take > 0 && stop > 0)

        if (!CloseEnough(take, 0) && CloseEnough(stop, 0))
        {
           while(IsTradeContextBusy()) Sleep(100);
           if (ModifyOrder(ticket, OrderOpenPrice(), OrderStopLoss(), take, OrderExpiration(), clrNONE, __FUNCTION__, tpm)) return;
        }//if (take == 0 && stop != 0)

        if (CloseEnough(take, 0) && !CloseEnough(stop, 0))
        {
           while(IsTradeContextBusy()) Sleep(100);
           if (ModifyOrder(ticket, OrderOpenPrice(), stop, OrderTakeProfit(), OrderExpiration(), clrNONE, __FUNCTION__, slm)) return;
        }//if (take == 0 && stop != 0)
   }//for (int cc = 0; cc < RetryCount; cc++)

}//void ModifyOrderTpSl(int ticket, double tp, double sl)

bool O_R_CheckForHistory(int ticket)
  {

   int lastTicket=OrderTicket();

   int cnt =0;
   int err=GetLastError(); // so we clear the global variable.
   err=0;
   bool exit_loop=false;
   bool success=false;
   int c = 0;

   while(!exit_loop) 
     {
/* loop through open trades */
      int total=OrdersTotal();
      for(c=0; c<total; c++) 
        {
         if(BetterOrderSelect(c,SELECT_BY_POS,MODE_TRADES)==true) 
           {
            if(OrderTicket()==ticket) 
              {
               success=true;
               exit_loop=true;
              }
           }
        }
      if(cnt>3) 
        {
/* look through history too, as order may have opened and closed immediately */
         total=OrdersHistoryTotal();
         for(c=0; c<total; c++) 
           {
            if(BetterOrderSelect(c,SELECT_BY_POS,MODE_HISTORY)==true) 
              {
               if(OrderTicket()==ticket) 
                 {
                  success=true;
                  exit_loop=true;
                 }
              }
           }
        }

      cnt=cnt+1;
      if(cnt>O_R_Setting_max_retries) 
        {
         exit_loop=true;
        }
      if(!(success || exit_loop)) 
        {
         Print("Did not find #"+ticket+" in history, sleeping, then doing retry #"+cnt);
         O_R_Sleep(O_R_Setting_sleep_time,O_R_Setting_sleep_max);
        }
     }

   if(lastTicket>=0) 
     {
      bool s = BetterOrderSelect(lastTicket,SELECT_BY_TICKET,MODE_TRADES);
     }
   if(!success) 
     {
      Print("Never found #"+ticket+" in history! crap!");
     }
   return(success);
  }//End bool O_R_CheckForHistory(int ticket)

void O_R_Sleep(double mean_time, double max_time)
{
   if (IsTesting()) 
   {
      return;   // return immediately if backtesting.
   }

   double p = (MathRand()+1) / 32768.0;
   double t = -MathLog(p)*mean_time;
   t = MathMin(t,max_time);
   int ms = t*1000;
   if (ms < 10) {
      ms=10;
   }//if (ms < 10) {

   Sleep(ms);
}//End void O_R_Sleep(double mean_time, double max_time)

bool IsTradingAllowed()
{

   if (!IsTesting() )
   {
      double spread = (Ask - Bid) * factor;
      if (spread > AverageSpread * MultiplierToDetectStopHunt) return(false);
   }//if (!IsTesting() )

   return(true);

}//End bool IsTradingAllowed()

double CalculateLotSize(double price1,double price2)
{

   if(price1==0 || price2==0) return(Lot);//Just in case

   double FreeMargin= AccountFreeMargin();
   double TickValue = MarketInfo(Symbol(),MODE_TICKVALUE);
   double LotStep=MarketInfo(Symbol(),MODE_LOTSTEP);

   double SLPts=MathAbs(price1-price2);

   SLPts = int(SLPts * factor * 10);//Code from Radar. Thanks Radar; much appreciated

   double Exposure=SLPts*TickValue; // Exposure based on 1 full lot

   double AllowedExposure=(FreeMargin*RiskPercent)/100;

   int TotalSteps = ((AllowedExposure / Exposure) / LotStep);
   double LotSize = TotalSteps * LotStep;

   double MinLots = MarketInfo(Symbol(), MODE_MINLOT);
   double MaxLots = MarketInfo(Symbol(), MODE_MAXLOT);

   if(LotSize < MinLots) LotSize = MinLots;
   if(LotSize > MaxLots) LotSize = MaxLots;
   return(LotSize);

}//double CalculateLotSize(double price1, double price1)

double CalculateStopLoss(int type, double price)
{

   double stop;

   RefreshRates();

   if (type == OP_BUY)
   {
      if (!CloseEnough(StopLoss, 0) ) 
      {
         stop = price - (StopLoss / factor);
         HiddenStopLoss = stop;
      }//if (!CloseEnough(StopLoss, 0) ) 

      if (HiddenPips > 0 && stop > 0) stop = NormalizeDouble(stop - (HiddenPips / factor), Digits);
   }//if (type == OP_BUY)

   if (type == OP_SELL)
   {
      if (!CloseEnough(StopLoss, 0) ) 
      {
         stop = price + (StopLoss / factor);
         HiddenStopLoss = stop;         
      }//if (!CloseEnough(StopLoss, 0) ) 

      if (HiddenPips > 0 && stop > 0) stop = NormalizeDouble(stop + (HiddenPips / factor), Digits);

   }//if (type == OP_SELL)

   return(stop);

}//End double CalculateStopLoss(int type)

double CalculateTakeProfit(int type, double price)
{

   double take;

   RefreshRates();

   double StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL) + MarketInfo(Symbol(), MODE_SPREAD);
   double spread = (Ask - Bid) * factor;

   if (type == OP_BUY)
   {
      if (!CloseEnough(TakeProfit, 0) )
      {
         if (TakeProfit < StopLevel) 
            if (TakeProfitPips > 0)   
               TakeProfit = StopLevel;
         take = price + (TakeProfit / factor);
         HiddenTakeProfit = take;
      }//if (!CloseEnough(TakeProfit, 0) )

      if (HiddenPips > 0 && take > 0) take = NormalizeDouble(take + (HiddenPips / factor), Digits);

   }//if (type == OP_BUY)

   if (type == OP_SELL)
   {
      if (!CloseEnough(TakeProfit, 0) )
      {
         if (TakeProfit < StopLevel) 
            if (TakeProfitPips > 0)   
               TakeProfit = StopLevel;
         take = price - (TakeProfit / factor);
         HiddenTakeProfit = take;         
      }//if (!CloseEnough(TakeProfit, 0) )

      if (HiddenPips > 0 && take > 0) take = NormalizeDouble(take - (HiddenPips / factor), Digits);

   }//if (type == OP_SELL)

   return(take);

}//End double CalculateTakeProfit(int type)

bool EnoughDistance(int type, double price)
{

   double pips = 0;

   if (type == OP_BUY)
      if (!BuyOpen)
         return(true);

   if (type == OP_SELL)
      if (!SellOpen)
         return(true);

   for (int cc = OrdersTotal() - 1; cc >= 0; cc--)
   {
      if (!BetterOrderSelect(cc, SELECT_BY_POS, MODE_TRADES) ) continue;
      if (OrderSymbol() != Symbol() ) continue;
      if (OrderMagicNumber() != MagicNumber) continue;
      if (OrderType() != type) continue;

      pips = MathAbs(price - OrderOpenPrice() ) * factor;
      if (pips < MinDistanceBetweenTrades)
         return(false);
   }//for (int cc = OrdersTotal() - 1; cc >= 0; cc--)

   return(true);

}//End bool EnoughDistance(int type, double price)

void LookForTradingOpportunities()
{
   RefreshRates();
   double take, stop, priceb, priceb2, priceb3,
                      prices, prices2, prices3;
   bool Buy01=false, Buy02=false, Buy03=false, Buy04=false, Buy05=false, Buy06=false,
        Buy07=false, Buy08=false, Buy09=false, Buy10=false, Buy11=false, Buy12=false, Buy13=false,
        Buy14=false, Buy15=false, Buy16=false, Buy17=false, Buy18=false, Buy19=false, Buy20=false,
        Buy21=false, Buy22=false, Buy23=false, Buy24=false, Buy25=false, Buy26=false, Buy27=false,
        Buy28=false, Buy29=false, Buy30=false, Buy31=false, Buy32=false, Buy33=false, Buy34=false,
        Buy35=false, Buy36=false, Buy37=false, Buy38=false, Buy39=false, Buy40=false, Buy41=false,
        Buy42=false, Buy43=false, Buy44=false, Buy45=false, Buy46=false, Buy47=false, Buy48=false,
        Buy49=false, Buy50=false, Buy51=false, Buy52=false, Buy53=false, Buy54=false, Buy55=false,
        Sell01=false,Sell02=false,Sell03=false,Sell04=false,Sell05=false,Sell06=false,
        Sell07=false,Sell08=false,Sell09=false,Sell10=false,Sell11=false,Sell12=false,Sell13=false,
        Sell14=false,Sell15=false,Sell16=false,Sell17=false,Sell18=false,Sell19=false,Sell20=false,
        Sell21=false,Sell22=false,Sell23=false,Sell24=false,Sell25=false,Sell26=false,Sell27=false,
        Sell28=false,Sell29=false,Sell30=false,Sell31=false,Sell32=false,Sell33=false,Sell34=false,
        Sell35=false,Sell36=false,Sell37=false,Sell38=false,Sell39=false,Sell40=false,Sell41=false,
        Sell42=false,Sell43=false,Sell44=false,Sell45=false,Sell46=false,Sell47=false,Sell48=false,
        Sell49=false,Sell50=false,Sell51=false,Sell52=false,Sell53=false,Sell54=false,Sell55=false;
   int type;
   bool result = false;
/*   bool MaCrossi=false,MaCrossii=false,MaCrossiii=false,MaCrossiv=false,MaCrossv=false,MaCrossvi=false,MaCrossvii=false,MaCrossviii=false,MaCrossix=false,
        MaCrossx=false,MaCrossxi=false,MaCrossxii=false;
   bool MaPullBacki=false,MaPullBackii=false,MaPullBackiii=false,MaPullBackiv=false,MaPullBackv=false,MaPullBackvi=false,MaPullBackvii=false,
        MaPullBackviii=false,MaPullBackix=false,MaPullBackx=false,MaPullBackxi=false,MaPullBackxii=false,MaPullBackxiii=false,MaPullBackxiv=false,
        MaPullBackxv=false,MaPullBackxvi=false,MaPullBackxvii=false,MaPullBackxviii=false,MaPullBackixx=false,MaPullBackxx=false;
   bool Setup01=false,Setup02=false,Setup03=false,Setup04=false,Setup05=false,Setup06=false,Setup07=false,Setup08=false,Setup09=false,Setup10=false,
        Setup11=false,Setup12=false,Setup13=false,Setup14=false;
*/
   bool DeleteBuyStop = false,  DeleteBuyOpen = false,
        DeleteSellStop = false, DeleteSellOpen = false; 
   double SendLots = Lot;

   if (!IsTradingAllowed() ) return;

   bool SendTradeBS1 =false;
   bool SendTradeBS2 =false;
   bool SendTradeBS3 =false;
   bool SendTradeSS1 = false;
   bool SendTradeSS2 = false;
   bool SendTradeSS3 = false;
   int err = 0;
   double spread = (Ask - Bid) * factor;

   int PeHiBarM1A60 = iHighest(Symbol(), PERIOD_M1, MODE_HIGH, 60, 0);
   int PeLoBarM1A60 = iLowest(Symbol(), PERIOD_M1, MODE_LOW, 60, 0);
   double PeHiM1A60 = iHigh(Symbol(), PERIOD_M1, PeHiBarM1A60);
   double PeLoM1A60 = iLow(Symbol(), PERIOD_M1, PeLoBarM1A60);
   int PeHiBarM1A120 = iHighest(Symbol(), PERIOD_M1, MODE_HIGH, 120, 0);
   int PeLoBarM1A120 = iLowest(Symbol(), PERIOD_M1, MODE_LOW, 120, 0);
   double PeHiM1A120 = iHigh(Symbol(), PERIOD_M1, PeHiBarM1A120);
   double PeLoM1A120 = iLow(Symbol(), PERIOD_M1, PeLoBarM1A120);
   int PeHiBarM1A240 = iHighest(Symbol(), PERIOD_M1, MODE_HIGH, 240, 0);
   int PeLoBarM1A240 = iLowest(Symbol(), PERIOD_M1, MODE_LOW, 240, 0);
   double PeHiM1A240 = iHigh(Symbol(), PERIOD_M1, PeHiBarM1A240);
   double PeLoM1A240 = iLow(Symbol(), PERIOD_M1, PeLoBarM1A240);
   int PeHiBarM1B60 = iHighest(Symbol(), PERIOD_M1, MODE_HIGH, 60, 1);
   int PeLoBarM1B60 = iLowest(Symbol(), PERIOD_M1, MODE_LOW, 60, 1);
   double PeHiM1B60 = iHigh(Symbol(), PERIOD_M1, PeHiBarM1B60);
   double PeLoM1B60 = iLow(Symbol(), PERIOD_M1, PeLoBarM1B60);

   int PeHiClBarM5B3 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 3, 1);
   int PeLoClBarM5B3 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 3, 1);
   int PeHiOpBarM5B3 = iHighest(Symbol(), PERIOD_M5, MODE_OPEN, 3, 1);
   int PeLoOpBarM5B3 = iLowest(Symbol(), PERIOD_M5, MODE_OPEN, 3, 1);

   double PeHiOpM5B3 = iClose(Symbol(), PERIOD_M5, PeHiOpBarM5B3);
   double PeLoOpM5B3 = iClose(Symbol(), PERIOD_M5, PeLoOpBarM5B3);
   double PeHiClM5B3 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5B3);
   double PeLoClM5B3 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5B3);

   int PeHiClBarM5B4 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 4, 1);
   int PeLoClBarM5B4 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 4, 1);
   int PeHiOpBarM5B4 = iHighest(Symbol(), PERIOD_M5, MODE_OPEN, 4, 1);
   int PeLoOpBarM5B4 = iLowest(Symbol(), PERIOD_M5, MODE_OPEN, 4, 1);

   double PeHiOpM5B4 = iClose(Symbol(), PERIOD_M5, PeHiOpBarM5B4);
   double PeLoOpM5B4 = iClose(Symbol(), PERIOD_M5, PeLoOpBarM5B4);
   double PeHiClM5B4 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5B4);
   double PeLoClM5B4 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5B4);

   int PeHiClBarM5B5 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 5, 1);
   int PeLoClBarM5B5 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 5, 1);

   double PeHiClM5B5 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5B5);
   double PeLoClM5B5 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5B5);

   int PeHiClBarM5H5 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 5, 7);
   int PeLoClBarM5H5 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 5, 7);

   double PeHiClM5H5 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5H5);
   double PeLoClM5H5 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5H5);

   int PeHiClBarM5B7 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 7, 1);
   int PeLoClBarM5B7 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 7, 1);

   double PeHiClM5B7 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5B7);
   double PeLoClM5B7 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5B7);

   int PeHiClBarM5B10 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 10, 1);
   int PeLoClBarM5B10 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 10, 1);

   double PeHiClM5B10 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5B10);
   double PeLoClM5B10 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5B10);

   int PeHiClBarM5B12 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 1);
   int PeLoClBarM5B12 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 1);
   double PeHiClM5B12 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5B12);
   double PeLoClM5B12 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5B12);

   int PeHiClBarM5C12 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 2);
   int PeLoClBarM5C12 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 2);
   double PeHiClM5C12 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5C12);
   double PeLoClM5C12 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5C12);

   int PeHiClBarM5D12 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 3);
   int PeLoClBarM5D12 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 3);
   double PeHiClM5D12 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5D12);
   double PeLoClM5D12 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5D12);

   int PeHiClBarM5E12 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 4);
   int PeLoClBarM5E12 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 4);
   double PeHiClM5E12 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5E12);
   double PeLoClM5E12 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5E12);

   int PeHiClBarM5F12 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 5);
   int PeLoClBarM5F12 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 5);
   double PeHiClM5F12 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5F12);
   double PeLoClM5F12 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5F12);

   int PeHiClBarM5G12 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 6);
   int PeLoClBarM5G12 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 6);
   double PeHiClM5G12 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5G12);
   double PeLoClM5G12 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5G12);

   int PeHiClBarM5K12 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 10);
   int PeLoClBarM5K12 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 12, 10);
   double PeHiClM5K12 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5K12);
   double PeLoClM5K12 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5K12);

   int PeHiClBarM5B18 = iHighest(Symbol(), PERIOD_M5, MODE_CLOSE, 18, 1);
   int PeLoClBarM5B18 = iLowest(Symbol(), PERIOD_M5, MODE_CLOSE, 18, 1);

   double PeHiClM5B18 = iClose(Symbol(), PERIOD_M5, PeHiClBarM5B18);
   double PeLoClM5B18 = iClose(Symbol(), PERIOD_M5, PeLoClBarM5B18);

   int PeHiBarM5B2 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 2, 1);
   int PeLoBarM5B2 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 2, 1);

   double PeHiM5B2 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5B2);
   double PeLoM5B2 = iLow(Symbol(), PERIOD_M5, PeLoBarM5B2);

   int PeHiBarM5B3 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 3, 1);
   int PeLoBarM5B3 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 3, 1);

   double PeHiM5B3 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5B3);
   double PeLoM5B3 = iLow(Symbol(), PERIOD_M5, PeLoBarM5B3);

   int PeHiBarM5B5 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 5, 1);
   int PeLoBarM5B5 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 5, 1);

   double PeHiM5B5 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5B5);
   double PeLoM5B5 = iLow(Symbol(), PERIOD_M5, PeLoBarM5B5);

   int PeHiBarM5B7 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 7, 1);
   int PeLoBarM5B7 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 7, 1);

   double PeHiM5B7 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5B7);
   double PeLoM5B7 = iLow(Symbol(), PERIOD_M5, PeLoBarM5B7);

   int PeHiBarM5H7 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 7, 1);
   int PeLoBarM5H7 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 7, 1);

   double PeHiM5H7 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5H7);
   double PeLoM5H7 = iLow(Symbol(), PERIOD_M5, PeLoBarM5H7);

   int PeHiBarM5A12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 0);
   int PeLoBarM5A12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 0);
   double PeHiM5A12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5A12);
   double PeLoM5A12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5A12);

   int PeHiBarM5B12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 1);
   int PeLoBarM5B12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 1);
   double PeHiM5B12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5B12);
   double PeLoM5B12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5B12);

   int PeHiBarM5C12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 2);
   int PeLoBarM5C12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 2);
   double PeHiM5C12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5C12);
   double PeLoM5C12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5C12);

   int PeHiBarM5D12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 3);
   int PeLoBarM5D12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 3);
   double PeHiM5D12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5D12);
   double PeLoM5D12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5D12);

   int PeHiBarM5E12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 4);
   int PeLoBarM5E12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 4);
   double PeHiM5E12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5E12);
   double PeLoM5E12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5E12);

   int PeHiBarM5F12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 5);
   int PeLoBarM5F12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 5);
   double PeHiM5F12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5F12);
   double PeLoM5F12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5F12);

   int PeHiBarM5G12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 6);
   int PeLoBarM5G12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 6);
   double PeHiM5G12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5G12);
   double PeLoM5G12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5G12);

   int PeHiBarM5H12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 7);
   int PeLoBarM5H12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 7);
   double PeHiM5H12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5H12);
   double PeLoM5H12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5H12);

   int PeHiBarM5I12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 8);
   int PeLoBarM5I12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 8);
   double PeHiM5I12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5I12);
   double PeLoM5I12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5I12);

   int PeHiBarM5J12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 9);
   int PeLoBarM5J12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 9);
   double PeHiM5J12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5J12);
   double PeLoM5J12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5J12);

   int PeHiBarM5K12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 10);
   int PeLoBarM5K12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 10);
   double PeHiM5K12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5K12);
   double PeLoM5K12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5K12);

   int PeHiBarM5L12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 11);
   int PeLoBarM5L12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 11);
   double PeHiM5L12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5L12);
   double PeLoM5L12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5L12);

   int PeHiBarM5M12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 12);
   int PeLoBarM5M12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 12);
   double PeHiM5M12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5M12);
   double PeLoM5M12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5M12);

   int PeHiBarM5R12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 18);
   int PeLoBarM5R12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 18);
   double PeHiM5R12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5R12);
   double PeLoM5R12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5R12);

   int PeHiBarM5Z12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 24);
   int PeLoBarM5Z12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 24);
   double PeHiM5Z12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5Z12);
   double PeLoM5Z12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5Z12);

   int PeHiBarM5ZM12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 36);
   int PeLoBarM5ZM12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 36);
   double PeHiM5ZM12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZM12);
   double PeLoM5ZM12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZM12);

   int PeHiBarM5ZZ12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 48);
   int PeLoBarM5ZZ12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 48);
   double PeHiM5ZZ12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZ12);
   double PeLoM5ZZ12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZ12);

   int PeHiBarM5ZZM12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 60);
   int PeLoBarM5ZZM12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 60);
   double PeHiM5ZZM12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZM12);
   double PeLoM5ZZM12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZM12);

   int PeHiBarM5ZZZ12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 72);
   int PeLoBarM5ZZZ12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 72);
   double PeHiM5ZZZ12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZZ12);
   double PeLoM5ZZZ12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZZ12);

   int PeHiBarM5ZZZM12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 84);
   int PeLoBarM5ZZZM12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 84);
   double PeHiM5ZZZM12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZZM12);
   double PeLoM5ZZZM12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZZM12);

   int PeHiBarM5ZZZZ12 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 12, 96);
   int PeLoBarM5ZZZZ12 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 12, 96);
   double PeHiM5ZZZZ12 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZZZ12);
   double PeLoM5ZZZZ12 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZZZ12);

   int PeHiBarM5A24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 0);
   int PeLoBarM5A24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 0);
   double PeHiM5A24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5A24);
   double PeLoM5A24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5A24);

   int PeHiBarM5B24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 1);
   int PeLoBarM5B24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 1);
   double PeHiM5B24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5B24);
   double PeLoM5B24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5B24);

   int PeHiBarM5C24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 2);
   int PeLoBarM5C24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 2);
   double PeHiM5C24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5C24);
   double PeLoM5C24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5C24);

   int PeHiBarM5D24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 3);
   int PeLoBarM5D24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 3);
   double PeHiM5D24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5D24);
   double PeLoM5D24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5D24);

   int PeHiBarM5E24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 4);
   int PeLoBarM5E24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 4);
   double PeHiM5E24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5E24);
   double PeLoM5E24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5E24);

   int PeHiBarM5F24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 4);
   int PeLoBarM5F24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 4);
   double PeHiM5F24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5F24);
   double PeLoM5F24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5F24);

   int PeHiBarM5G24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 6);
   int PeLoBarM5G24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 6);
   double PeHiM5G24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5G24);
   double PeLoM5G24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5G24);

   int PeHiBarM5K24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 10);
   int PeLoBarM5K24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 10);
   double PeHiM5K24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5K24);
   double PeLoM5K24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5K24);

   int PeHiBarM5M24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 12);
   int PeLoBarM5M24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 12);
   double PeHiM5M24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5M24);
   double PeLoM5M24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5M24);

   int PeHiBarM5R24 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 24, 18);
   int PeLoBarM5R24 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 24, 18);
   double PeHiM5R24 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5R24);
   double PeLoM5R24 = iLow(Symbol(), PERIOD_M5, PeLoBarM5R24);

   int PeHiBarM5A48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 0);
   int PeLoBarM5A48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 0);
   double PeHiM5A48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5A48);
   double PeLoM5A48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5A48);

   int PeHiBarM5B48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 1);
   int PeLoBarM5B48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 1);
   double PeHiM5B48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5B48);
   double PeLoM5B48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5B48);

   int PeHiBarM5C48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 2);
   int PeLoBarM5C48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 2);
   double PeHiM5C48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5C48);
   double PeLoM5C48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5C48);

   int PeHiBarM5D48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 3);
   int PeLoBarM5D48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 3);
   double PeHiM5D48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5D48);
   double PeLoM5D48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5D48);

   int PeHiBarM5E48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 4);
   int PeLoBarM5E48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 4);
   double PeHiM5E48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5E48);
   double PeLoM5E48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5E48);

   int PeHiBarM5F48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 5);
   int PeLoBarM5F48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 5);
   double PeHiM5F48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5F48);
   double PeLoM5F48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5F48);

   int PeHiBarM5G48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 6);
   int PeLoBarM5G48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 6);
   double PeHiM5G48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5G48);
   double PeLoM5G48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5G48);

   int PeHiBarM5H48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 7);
   int PeLoBarM5H48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 7);
   double PeHiM5H48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5H48);
   double PeLoM5H48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5H48);

   int PeHiBarM5I48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 8);
   int PeLoBarM5I48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 8);
   double PeHiM5I48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5I48);
   double PeLoM5I48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5I48);

   int PeHiBarM5J48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 9);
   int PeLoBarM5J48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 9);
   double PeHiM5J48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5J48);
   double PeLoM5J48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5J48);

   int PeHiBarM5K48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 10);
   int PeLoBarM5K48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 10);
   double PeHiM5K48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5K48);
   double PeLoM5K48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5K48);

   int PeHiBarM5L48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 11);
   int PeLoBarM5L48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 11);
   double PeHiM5L48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5L48);
   double PeLoM5L48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5L48);

   int PeHiBarM5M48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 12);
   int PeLoBarM5M48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 12);
   double PeHiM5M48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5M48);
   double PeLoM5M48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5M48);

   int PeHiBarM5R48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 18);
   int PeLoBarM5R48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 18);
   double PeHiM5R48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5R48);
   double PeLoM5R48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5R48);

   int PeHiBarM5Z48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 24);
   int PeLoBarM5Z48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 24);
   double PeHiM5Z48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5Z48);
   double PeLoM5Z48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5Z48);

   int PeHiBarM5ZM48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 36);
   int PeLoBarM5ZM48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 36);
   double PeHiM5ZM48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZM48);
   double PeLoM5ZM48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZM48);

   int PeHiBarM5ZZ48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 48);
   int PeLoBarM5ZZ48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 48);
   double PeHiM5ZZ48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZ48);
   double PeLoM5ZZ48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZ48);

   int PeHiBarM5ZZM48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 60);
   int PeLoBarM5ZZM48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 60);
   double PeHiM5ZZM48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZM48);
   double PeLoM5ZZM48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZM48);

   int PeHiBarM5ZZZ72 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 72);
   int PeLoBarM5ZZZ72 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 72);
   double PeHiM5ZZZ72 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZZ72);
   double PeLoM5ZZZ72 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZZ72);

   int PeHiBarM5ZZZM48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 84);
   int PeLoBarM5ZZZM48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 84);
   double PeHiM5ZZZM48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZZM48);
   double PeLoM5ZZZM48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZZM48);

   int PeHiBarM5ZZZZ48 = iHighest(Symbol(), PERIOD_M5, MODE_HIGH, 48, 96);
   int PeLoBarM5ZZZZ48 = iLowest(Symbol(), PERIOD_M5, MODE_LOW, 48, 96);
   double PeHiM5ZZZZ48 = iHigh(Symbol(), PERIOD_M5, PeHiBarM5ZZZZ48);
   double PeLoM5ZZZZ48 = iLow(Symbol(), PERIOD_M5, PeLoBarM5ZZZZ48);

   int PeHiBarM15A3 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 3, 0);
   int PeLoBarM15A3 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 3, 0);
   int PeHiBarM15B3 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 3, 1);
   int PeLoBarM15B3 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 3, 1);
   int PeHiBarM15C3 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 3, 2);
   int PeLoBarM15C3 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 3, 2);
   int PeHiBarM15D3 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 3, 3);
   int PeLoBarM15D3 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 3, 3);
   int PeHiBarM15E3 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 3, 4);
   int PeLoBarM15E3 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 3, 4);
   int PeHiBarM15F3 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 3, 5);
   int PeLoBarM15F3 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 3, 5);
   int PeHiBarM15G3 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 3, 6);
   int PeLoBarM15G3 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 3, 6);

   int PeHiBarM15A8 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 8, 0);
   int PeLoBarM15A8 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 8, 0);
   int PeHiBarM15B8 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 8, 1);
   int PeLoBarM15B8 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 8, 1);
   int PeHiBarM15C8 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 8, 2);
   int PeLoBarM15C8 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 8, 2);
   int PeHiBarM15D8 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 8, 3);
   int PeLoBarM15D8 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 8, 3);
   int PeHiBarM15E8 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 8, 4);
   int PeLoBarM15E8 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 8, 4);
   int PeHiBarM15F8 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 8, 5);
   int PeLoBarM15F8 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 8, 5);
   int PeHiBarM15G8 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 8, 6);
   int PeLoBarM15G8 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 8, 6);
   int PeHiBarM15A16 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 16, 0);
   int PeLoBarM15A16 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 16, 0);
   int PeHiBarM15B16 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 16, 1);
   int PeLoBarM15B16 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 16, 1);
   int PeHiBarM15C16 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 16, 2);
   int PeLoBarM15C16 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 16, 2);
   int PeHiBarM15D16 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 16, 3);
   int PeLoBarM15D16 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 16, 3);
   int PeHiBarM15E16 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 16, 4);
   int PeLoBarM15E16 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 16, 4);
   int PeHiBarM15A56 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 56, 0);
   int PeLoBarM15A56 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 56, 0);
   int PeHiBarM15B56 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 56, 1);
   int PeLoBarM15B56 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 56, 1);
   int PeHiBarM15C56 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 56, 2);
   int PeLoBarM15C56 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 56, 2);
   int PeHiBarM15D56 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 56, 3);
   int PeLoBarM15D56 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 56, 3);
   int PeHiBarM15E56 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 56, 4);
   int PeLoBarM15E56 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 56, 4);
   int PeHiBarM15A480 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 480, 0);
   int PeLoBarM15A480 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 480, 0);
   int PeHiBarM15B480 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 480, 1);
   int PeLoBarM15B480 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 480, 1);
   int PeHiBarM15C480 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 480, 2);
   int PeLoBarM15C480 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 480, 2);
   int PeHiBarM15D480 = iHighest(Symbol(), PERIOD_M15, MODE_HIGH, 480, 3);
   int PeLoBarM15D480 = iLowest(Symbol(), PERIOD_M15, MODE_LOW, 480, 3);

   double PeHiM15A3 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15A3);
   double PeLoM15A3 = iLow(Symbol(), PERIOD_M15, PeLoBarM15A3);
   double PeHiM15B3 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15B3);
   double PeLoM15B3 = iLow(Symbol(), PERIOD_M15, PeLoBarM15B3);
   double PeHiM15C3 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15C3);
   double PeLoM15C3 = iLow(Symbol(), PERIOD_M15, PeLoBarM15C3);
   double PeHiM15D3 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15D3);
   double PeLoM15D3 = iLow(Symbol(), PERIOD_M15, PeLoBarM15D3);
   double PeHiM15E3 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15E3);
   double PeLoM15E3 = iLow(Symbol(), PERIOD_M15, PeLoBarM15E3);
   double PeHiM15F3 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15F3);
   double PeLoM15F3 = iLow(Symbol(), PERIOD_M15, PeLoBarM15F3);
   double PeHiM15G3 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15G3);
   double PeLoM15G3 = iLow(Symbol(), PERIOD_M15, PeLoBarM15G3);

   double PeHiM15A8 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15A8);
   double PeLoM15A8 = iLow(Symbol(), PERIOD_M15, PeLoBarM15A8);
   double PeHiM15B8 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15B8);
   double PeLoM15B8 = iLow(Symbol(), PERIOD_M15, PeLoBarM15B8);
   double PeHiM15C8 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15C8);
   double PeLoM15C8 = iLow(Symbol(), PERIOD_M15, PeLoBarM15C8);
   double PeHiM15D8 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15D8);
   double PeLoM15D8 = iLow(Symbol(), PERIOD_M15, PeLoBarM15D8);
   double PeHiM15E8 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15E8);
   double PeLoM15E8 = iLow(Symbol(), PERIOD_M15, PeLoBarM15E8);
   double PeHiM15F8 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15F8);
   double PeLoM15F8 = iLow(Symbol(), PERIOD_M15, PeLoBarM15F8);
   double PeHiM15G8 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15G8);
   double PeLoM15G8 = iLow(Symbol(), PERIOD_M15, PeLoBarM15G8);
   double PeHiM15A16 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15A16);
   double PeLoM15A16 = iLow(Symbol(), PERIOD_M15, PeLoBarM15A16);
   double PeHiM15B16 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15B16);
   double PeLoM15B16 = iLow(Symbol(), PERIOD_M15, PeLoBarM15B16);
   double PeHiM15C16 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15C16);
   double PeLoM15C16 = iLow(Symbol(), PERIOD_M15, PeLoBarM15C16);
   double PeHiM15D16 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15D16);
   double PeLoM15D16 = iLow(Symbol(), PERIOD_M15, PeLoBarM15D16);
   double PeHiM15E16 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15E16);
   double PeLoM15E16 = iLow(Symbol(), PERIOD_M15, PeLoBarM15E16);
   double PeHiM15A56 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15A56);
   double PeLoM15A56 = iLow(Symbol(), PERIOD_M15, PeLoBarM15A56);
   double PeHiM15B56 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15B56);
   double PeLoM15B56 = iLow(Symbol(), PERIOD_M15, PeLoBarM15B56);
   double PeHiM15C56 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15C56);
   double PeLoM15C56 = iLow(Symbol(), PERIOD_M15, PeLoBarM15C56);
   double PeHiM15D56 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15D56);
   double PeLoM15D56 = iLow(Symbol(), PERIOD_M15, PeLoBarM15D56);
   double PeHiM15E56 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15E56);
   double PeLoM15E56 = iLow(Symbol(), PERIOD_M15, PeLoBarM15E56);
   double PeHiM15A480 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15A480);
   double PeLoM15A480 = iLow(Symbol(), PERIOD_M15, PeLoBarM15A480);
   double PeHiM15B480 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15B480);
   double PeLoM15B480 = iLow(Symbol(), PERIOD_M15, PeLoBarM15B480);
   double PeHiM15C480 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15C480);
   double PeLoM15C480 = iLow(Symbol(), PERIOD_M15, PeLoBarM15C480);
   double PeHiM15D480 = iHigh(Symbol(), PERIOD_M15, PeHiBarM15D480);
   double PeLoM15D480 = iLow(Symbol(), PERIOD_M15, PeLoBarM15D480);

   int PeHiBarH4A5 = iHighest(Symbol(), PERIOD_H4, MODE_HIGH, 5, 0);
   int PeLoBarH4A5 = iLowest(Symbol(), PERIOD_H4, MODE_LOW, 5, 0);
   int PeHiBarH4B5 = iHighest(Symbol(), PERIOD_H4, MODE_HIGH, 5, 1);
   int PeLoBarH4B5 = iLowest(Symbol(), PERIOD_H4, MODE_LOW, 5, 1);
   int PeHiBarH4C5 = iHighest(Symbol(), PERIOD_H4, MODE_HIGH, 5, 2);
   int PeLoBarH4C5 = iLowest(Symbol(), PERIOD_H4, MODE_LOW, 5, 2);
   int PeHiBarH4D5 = iHighest(Symbol(), PERIOD_H4, MODE_HIGH, 5, 3);
   int PeLoBarH4D5 = iLowest(Symbol(), PERIOD_H4, MODE_LOW, 5, 3);

   double PeHiH4A5 = iHigh(Symbol(), PERIOD_H4, PeHiBarH4A5);
   double PeLoH4A5 = iLow(Symbol(), PERIOD_H4, PeLoBarH4A5);
   double PeHiH4B5 = iHigh(Symbol(), PERIOD_H4, PeHiBarH4B5);
   double PeLoH4B5 = iLow(Symbol(), PERIOD_H4, PeLoBarH4B5);
   double PeHiH4C5 = iHigh(Symbol(), PERIOD_H4, PeHiBarH4C5);
   double PeLoH4C5 = iLow(Symbol(), PERIOD_H4, PeLoBarH4C5);
   double PeHiH4D5 = iHigh(Symbol(), PERIOD_H4, PeHiBarH4D5);
   double PeLoH4D5 = iLow(Symbol(), PERIOD_H4, PeLoBarH4D5);

         double   BB38UA=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_UPPER,0);
         double   BB38LA=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_LOWER,0);
         double   BB38UB=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_UPPER,1);
         double   BB38LB=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_LOWER,1);
         double   BB38UC=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_UPPER,2);
         double   BB38LC=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_LOWER,2);
         double   BB38UD=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_UPPER,3);
         double   BB38LD=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_LOWER,3);
         double   BB38UE=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_UPPER,4);
         double   BB38LE=  iBands(NULL,PERIOD_M1,38,1,0,PRICE_CLOSE,MODE_LOWER,4);
         double   BB50UB=  iBands(NULL,PERIOD_M1,50,1,0,PRICE_CLOSE,MODE_UPPER,1);
         double   BB50LB=  iBands(NULL,PERIOD_M1,50,1,0,PRICE_CLOSE,MODE_LOWER,1);
         double   BB60UB=  iBands(NULL,PERIOD_M1,60,1,0,PRICE_CLOSE,MODE_UPPER,1);
         double   BB60LB=  iBands(NULL,PERIOD_M1,60,1,0,PRICE_CLOSE,MODE_LOWER,1);
         double   BB64UA=  iBands(NULL,PERIOD_M15,64,1,0,PRICE_CLOSE,MODE_UPPER,0);
         double   BB64LA=  iBands(NULL,PERIOD_M15,64,1,0,PRICE_CLOSE,MODE_LOWER,0);
         double   BB64UB=  iBands(NULL,PERIOD_M15,64,1,0,PRICE_CLOSE,MODE_UPPER,1);
         double   BB64LB=  iBands(NULL,PERIOD_M15,64,1,0,PRICE_CLOSE,MODE_LOWER,1);
         double   BB4UA=  iBands(NULL,PERIOD_H4,4,1,0,PRICE_CLOSE,MODE_UPPER,0);
         double   BB4LA=  iBands(NULL,PERIOD_H4,4,1,0,PRICE_CLOSE,MODE_LOWER,0);
         double   BB4UB=  iBands(NULL,PERIOD_H4,4,1,0,PRICE_CLOSE,MODE_UPPER,1);
         double   BB4LB=  iBands(NULL,PERIOD_H4,4,1,0,PRICE_CLOSE,MODE_LOWER,1);
         double   copenM1A=iOpen(Symbol(),PERIOD_M1,0);
         double   copenM1B=iOpen(Symbol(),PERIOD_M1,1); double   ccloseM1B=iClose(Symbol(),PERIOD_M1,1);
         double   copenM1C=iOpen(Symbol(),PERIOD_M1,2); double   ccloseM1C=iClose(Symbol(),PERIOD_M1,2);
         double   copenM1D=iOpen(Symbol(),PERIOD_M1,3); double   ccloseM1D=iClose(Symbol(),PERIOD_M1,3);
         double   copenM1E=iOpen(Symbol(),PERIOD_M1,4); double   ccloseM1E=iClose(Symbol(),PERIOD_M1,4);
         double   copenM1F=iOpen(Symbol(),PERIOD_M1,5); double   ccloseM1F=iClose(Symbol(),PERIOD_M1,5);
         double   chighM1A=iHigh(Symbol(),PERIOD_M1,0); double   clowM1A=iLow(Symbol(),PERIOD_M1,0);
         double   chighM1B=iHigh(Symbol(),PERIOD_M1,1); double   clowM1B=iLow(Symbol(),PERIOD_M1,1);
         double   chighM1C=iHigh(Symbol(),PERIOD_M1,2); double   clowM1C=iLow(Symbol(),PERIOD_M1,2);
         double   chighM1D=iHigh(Symbol(),PERIOD_M1,3); double   clowM1D=iLow(Symbol(),PERIOD_M1,3);
         double   chighM1E=iHigh(Symbol(),PERIOD_M1,4); double   clowM1E=iLow(Symbol(),PERIOD_M1,4);
         double   copenM5A=iOpen(Symbol(),PERIOD_M5,0);
         double   chighM5A=iHigh(Symbol(),PERIOD_M5,0); double   clowM5A=iLow(Symbol(),PERIOD_M5,0);
         double   copenM5B=iOpen(Symbol(),PERIOD_M5,1); double   ccloseM5B=iClose(Symbol(),PERIOD_M5,1);
         double   copenM5C=iOpen(Symbol(),PERIOD_M5,2); double   ccloseM5C=iClose(Symbol(),PERIOD_M5,2);
         double   copenM5D=iOpen(Symbol(),PERIOD_M5,3); double   ccloseM5D=iClose(Symbol(),PERIOD_M5,3);
         double   copenM5E=iOpen(Symbol(),PERIOD_M5,4); double   ccloseM5E=iClose(Symbol(),PERIOD_M5,4);
         double   copenM5F=iOpen(Symbol(),PERIOD_M5,5); double   ccloseM5F=iClose(Symbol(),PERIOD_M5,5);
         double   copenM5G=iOpen(Symbol(),PERIOD_M5,6); double   ccloseM5G=iClose(Symbol(),PERIOD_M5,6);
         double   copenM5H=iOpen(Symbol(),PERIOD_M5,7); double   ccloseM5H=iClose(Symbol(),PERIOD_M5,7);
         double   copenM5I=iOpen(Symbol(),PERIOD_M5,8); double   ccloseM5I=iClose(Symbol(),PERIOD_M5,8);
         double   copenM5M=iOpen(Symbol(),PERIOD_M5,12); double   ccloseM5M=iClose(Symbol(),PERIOD_M5,12);
         double   chighM5B=iHigh(Symbol(),PERIOD_M5,1); double   clowM5B=iLow(Symbol(),PERIOD_M5,1);
         double   chighM5C=iHigh(Symbol(),PERIOD_M5,2); double   clowM5C=iLow(Symbol(),PERIOD_M5,2);
         double   chighM5D=iHigh(Symbol(),PERIOD_M5,3); double   clowM5D=iLow(Symbol(),PERIOD_M5,3);
         double   chighM5E=iHigh(Symbol(),PERIOD_M5,4); double   clowM5E=iLow(Symbol(),PERIOD_M5,4);
         double   chighM5F=iHigh(Symbol(),PERIOD_M5,5); double   clowM5F=iLow(Symbol(),PERIOD_M5,5);
         double   chighM5G=iHigh(Symbol(),PERIOD_M5,6); double   clowM5G=iLow(Symbol(),PERIOD_M5,6);
         double   chighM5H=iHigh(Symbol(),PERIOD_M5,7); double   clowM5H=iLow(Symbol(),PERIOD_M5,7);
         double   chighM5I=iHigh(Symbol(),PERIOD_M5,8); double   clowM5I=iLow(Symbol(),PERIOD_M5,8);
         double   chighM5J=iHigh(Symbol(),PERIOD_M5,9); double   clowM5J=iLow(Symbol(),PERIOD_M5,9);
         double   chighM5K=iHigh(Symbol(),PERIOD_M5,10); double   clowM5K=iLow(Symbol(),PERIOD_M5,10);
         double   chighM5L=iHigh(Symbol(),PERIOD_M5,11); double   clowM5L=iLow(Symbol(),PERIOD_M5,11);
         double   chighM5M=iHigh(Symbol(),PERIOD_M5,12); double   clowM5M=iLow(Symbol(),PERIOD_M5,12);
         double   copenM15A=iOpen(Symbol(),PERIOD_M15,0);
         double   chighM15A=iHigh(Symbol(),PERIOD_M15,0); double   clowM15A=iLow(Symbol(),PERIOD_M15,0);
         double   copenM15B=iOpen(Symbol(),PERIOD_M15,1); double   ccloseM15B=iClose(Symbol(),PERIOD_M15,1);
         double   copenM15C=iOpen(Symbol(),PERIOD_M15,2); double   ccloseM15C=iClose(Symbol(),PERIOD_M15,2);
         double   copenM15D=iOpen(Symbol(),PERIOD_M15,3); double   ccloseM15D=iClose(Symbol(),PERIOD_M15,3);
         double   copenM15E=iOpen(Symbol(),PERIOD_M15,4); double   ccloseM15E=iClose(Symbol(),PERIOD_M15,4);
         double   copenM15F=iOpen(Symbol(),PERIOD_M15,5); double   ccloseM15F=iClose(Symbol(),PERIOD_M15,5);
         double   copenM15G=iOpen(Symbol(),PERIOD_M15,6); double   ccloseM15G=iClose(Symbol(),PERIOD_M15,6);
         double   copenM15H=iOpen(Symbol(),PERIOD_M15,7); double   ccloseM15H=iClose(Symbol(),PERIOD_M15,7);
         double   chighM15B=iHigh(Symbol(),PERIOD_M15,1); double   clowM15B=iLow(Symbol(),PERIOD_M15,1);
         double   chighM15C=iHigh(Symbol(),PERIOD_M15,2); double   clowM15C=iLow(Symbol(),PERIOD_M15,2);
         double   chighM15D=iHigh(Symbol(),PERIOD_M15,3); double   clowM15D=iLow(Symbol(),PERIOD_M15,3);
         double   chighM15E=iHigh(Symbol(),PERIOD_M15,4); double   clowM15E=iLow(Symbol(),PERIOD_M15,4);
         double   chighM15F=iHigh(Symbol(),PERIOD_M15,5); double   clowM15F=iLow(Symbol(),PERIOD_M15,5);
         double   chighM15G=iHigh(Symbol(),PERIOD_M15,6); double   clowM15G=iLow(Symbol(),PERIOD_M15,6);
         double   chighM15H=iHigh(Symbol(),PERIOD_M15,7); double   clowM15H=iLow(Symbol(),PERIOD_M15,7);

         double   chighM30B=iHigh(Symbol(),PERIOD_M30,1); double   clowM30B=iLow(Symbol(),PERIOD_M30,1);
         double   chighM30C=iHigh(Symbol(),PERIOD_M30,2); double   clowM30C=iLow(Symbol(),PERIOD_M30,2);
         double   chighM30D=iHigh(Symbol(),PERIOD_M30,3); double   clowM30D=iLow(Symbol(),PERIOD_M30,3);
         double   chighM30E=iHigh(Symbol(),PERIOD_M30,4); double   clowM30E=iLow(Symbol(),PERIOD_M30,4);
         double   chighM30F=iHigh(Symbol(),PERIOD_M30,5); double   clowM30F=iLow(Symbol(),PERIOD_M30,5);
         double   chighM30G=iHigh(Symbol(),PERIOD_M30,6); double   clowM30G=iLow(Symbol(),PERIOD_M30,6);
         double   chighM30H=iHigh(Symbol(),PERIOD_M30,7); double   clowM30H=iLow(Symbol(),PERIOD_M30,7);

         double   copenH1B=iOpen(Symbol(),PERIOD_H1,1);double   ccloseH1B=iClose(Symbol(),PERIOD_H1,1);
         double   copenH1C=iOpen(Symbol(),PERIOD_H1,2);double   ccloseH1C=iClose(Symbol(),PERIOD_H1,2);
         double   clowH1A=iLow(Symbol(),PERIOD_H1,0); double   chighH1A=iHigh(Symbol(),PERIOD_H1,0);
         double   clowH1B=iLow(Symbol(),PERIOD_H1,1); double   chighH1B=iHigh(Symbol(),PERIOD_H1,1);
         double   clowH1C=iLow(Symbol(),PERIOD_H1,2); double   chighH1C=iHigh(Symbol(),PERIOD_H1,2);
         double   clowH1D=iLow(Symbol(),PERIOD_H1,3); double   chighH1D=iHigh(Symbol(),PERIOD_H1,3);
         double   clowH1E=iLow(Symbol(),PERIOD_H1,1); double   chighH1E=iHigh(Symbol(),PERIOD_H1,4);
         double   copenD1A=iOpen(Symbol(),PERIOD_D1,0);
         double   copenD1B=iOpen(Symbol(),PERIOD_D1,1);
         double   ccloseD1B=iClose(Symbol(),PERIOD_D1,1);
         double   clowH4A=iLow(Symbol(),PERIOD_H4,0); double   chighH4A=iHigh(Symbol(),PERIOD_H4,0);
         double   clowH4B=iLow(Symbol(),PERIOD_H4,1); double   chighH4B=iHigh(Symbol(),PERIOD_H4,1);
         double   clowD1A=iLow(Symbol(),PERIOD_D1,0); double   chighD1A=iHigh(Symbol(),PERIOD_D1,0);
         double   clowD1B=iLow(Symbol(),PERIOD_D1,1); double   chighD1B=iHigh(Symbol(),PERIOD_D1,1);

         double   copenH1A=iOpen(Symbol(),PERIOD_H1,0);
         double   copenH4A=iOpen(Symbol(),PERIOD_H4,0);
         double   copenH4B=iOpen(Symbol(),PERIOD_H4,1);double   ccloseH4B=iClose(Symbol(),PERIOD_H4,1);
         double   EMA2A4H      = GetMa(Symbol(),PERIOD_H4,2,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA3A4H      = GetMa(Symbol(),PERIOD_H4,3,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA4A4H      = GetMa(Symbol(),PERIOD_H4,4,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA6A4H      = GetMa(Symbol(),PERIOD_H4,6,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA12A4H      = GetMa(Symbol(),PERIOD_H4,12,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA18A4H      = GetMa(Symbol(),PERIOD_H4,18,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA25A4H      = GetMa(Symbol(),PERIOD_H4,25,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   SMA30A4H      = GetMa(Symbol(),PERIOD_H4,30,0,MODE_SMA,PRICE_OPEN,0);//7sma
         double   LWG25A      = GetMa(Symbol(),PERIOD_M1,25,0,MODE_LWMA,PRICE_OPEN,0);//7sma
         double   LWG5A      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,0);//7sma
         double   EMA10A      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA40A      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA94A      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA195A      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   SMA5A      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_SMA,PRICE_CLOSE,0);//7sma
         double   SMA24A      = GetMa(Symbol(),PERIOD_M5,24,0,MODE_SMA,PRICE_CLOSE,0);//7sma
         double   SMA30A      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,0);//7sma
         double   SMA60A      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,0);//7sma
         double   EMA200A      = GetMa(Symbol(),PERIOD_M1,200,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA50A      = GetMa(Symbol(),PERIOD_M1,50,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA3A      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA16A      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA24A      = GetMa(Symbol(),PERIOD_M15,24,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA32A      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   EMA48A      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,0);//7sma
         double   SMA64A      = GetMa(Symbol(),PERIOD_M15,64,0,MODE_SMA,PRICE_CLOSE,0);//7sma
         double   EMA360A      = GetMa(Symbol(),PERIOD_M15,360,0,MODE_EMA,PRICE_OPEN,0);//7sma
         bool     DragonB = false, DragonS = false;
                  if (EMA3A - EMA16A < NormalizeDouble(18/factor,Digits))if(EMA3A>EMA16A) DragonB = true;        
                  if (EMA3A<EMA16A) DragonB = true; 
                  if (EMA16A - EMA3A < NormalizeDouble(18/factor,Digits))if(EMA3A<EMA16A) DragonS = true;
                  if(EMA3A>EMA16A) DragonS = true;        
         double   EMA2B4H      = GetMa(Symbol(),PERIOD_H4,2,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA3B4H      = GetMa(Symbol(),PERIOD_H4,3,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA4B4H      = GetMa(Symbol(),PERIOD_H4,4,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA6B4H      = GetMa(Symbol(),PERIOD_H4,6,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA12B4H      = GetMa(Symbol(),PERIOD_H4,12,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA18B4H      = GetMa(Symbol(),PERIOD_H4,18,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA25B4H      = GetMa(Symbol(),PERIOD_H4,25,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   SMA30B4H      = GetMa(Symbol(),PERIOD_H4,30,0,MODE_SMA,PRICE_OPEN,1);//7sma
         double   LWG5B      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,1);//7sma
         double   EMA10B      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA40B      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA94B      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA195B      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   SMA24B      = GetMa(Symbol(),PERIOD_M5,24,0,MODE_SMA,PRICE_CLOSE,1);//7sma
         double   SMA30B      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,1);//7sma
         double   SMA60B      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,1);//7sma
         double   EMA50B      = GetMa(Symbol(),PERIOD_M1,50,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA200B      = GetMa(Symbol(),PERIOD_M1,200,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA3BO     = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA16BO      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA24BO      = GetMa(Symbol(),PERIOD_M15,24,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA32BO      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   EMA48BO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,1);//7sma
         double   SMA64B      = GetMa(Symbol(),PERIOD_M15,64,0,MODE_SMA,PRICE_CLOSE,1);//7sma

         double   LWG25B      = GetMa(Symbol(),PERIOD_M1,25,0,MODE_LWMA,PRICE_OPEN,1);//7sma
         double   EMA3B      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,1);//7sma
         double   EMA16B      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_CLOSE,1);//7sma
         double   EMA32B      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_CLOSE,1);//7sma
         double   EMA48B      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_CLOSE,1);//7sma

         double   EMA2C4H      = GetMa(Symbol(),PERIOD_H4,2,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA3C4H      = GetMa(Symbol(),PERIOD_H4,3,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA4C4H      = GetMa(Symbol(),PERIOD_H4,4,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA6C4H      = GetMa(Symbol(),PERIOD_H4,6,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA12C4H      = GetMa(Symbol(),PERIOD_H4,12,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA18C4H      = GetMa(Symbol(),PERIOD_H4,18,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA25C4H      = GetMa(Symbol(),PERIOD_H4,25,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   SMA30C4H      = GetMa(Symbol(),PERIOD_H4,30,0,MODE_SMA,PRICE_OPEN,2);//7sma
         double   LWG5C      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,2);//7sma
         double   EMA10C      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA40C      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA94C      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA195C      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   SMA24C      = GetMa(Symbol(),PERIOD_M5,24,0,MODE_SMA,PRICE_CLOSE,2);//7sma
         double   SMA30C      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,2);//7sma
         double   SMA60C      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,2);//7sma
         double   LWG25C      = GetMa(Symbol(),PERIOD_M1,25,0,MODE_LWMA,PRICE_OPEN,2);//7sma
         double   EMA50C      = GetMa(Symbol(),PERIOD_M1,50,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA200C      = GetMa(Symbol(),PERIOD_M1,200,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA3C      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,2);//7sma
         double   EMA16C      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_CLOSE,2);//7sma
         double   EMA32C      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_CLOSE,2);//7sma
         double   EMA48C      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_CLOSE,2);//7sma
         double   SMA64C      = GetMa(Symbol(),PERIOD_M15,64,0,MODE_SMA,PRICE_CLOSE,2);//7sma

         double   EMA3CO     = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA16CO      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA24CO      = GetMa(Symbol(),PERIOD_M15,24,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA32CO      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_OPEN,2);//7sma
         double   EMA48CO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,2);//7sma

         double   EMA2D4H      = GetMa(Symbol(),PERIOD_H4,2,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA3D4H      = GetMa(Symbol(),PERIOD_H4,3,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA4D4H      = GetMa(Symbol(),PERIOD_H4,4,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA6D4H      = GetMa(Symbol(),PERIOD_H4,6,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA12D4H      = GetMa(Symbol(),PERIOD_H4,12,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA18D4H      = GetMa(Symbol(),PERIOD_H4,18,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA25D4H      = GetMa(Symbol(),PERIOD_H4,25,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   SMA30D4H      = GetMa(Symbol(),PERIOD_H4,30,0,MODE_SMA,PRICE_OPEN,3);//7sma
         double   LWG5D      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,3);//7sma
         double   EMA10D      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA40D      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA94D      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA195D      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   SMA24D      = GetMa(Symbol(),PERIOD_M5,24,0,MODE_SMA,PRICE_CLOSE,3);//7sma
         double   SMA30D      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,3);//7sma
         double   SMA60D      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,3);//7sma
         double   LWG25D      = GetMa(Symbol(),PERIOD_M1,25,0,MODE_LWMA,PRICE_OPEN,3);//7sma
         double   EMA50D      = GetMa(Symbol(),PERIOD_M1,50,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA200D      = GetMa(Symbol(),PERIOD_M1,200,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA3D      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,3);//7sma
         double   EMA16D      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_CLOSE,3);//7sma
         double   EMA32D      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_CLOSE,3);//7sma
         double   EMA48D      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_CLOSE,3);//7sma

         double   EMA3DO     = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA16DO      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA24DO      = GetMa(Symbol(),PERIOD_M15,24,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA32DO      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_OPEN,3);//7sma
         double   EMA48DO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,3);//7sma

         double   LWG5E      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,4);//7sma
         double   EMA10E      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA40E      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA94E      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA195E      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   SMA24E      = GetMa(Symbol(),PERIOD_M5,24,0,MODE_SMA,PRICE_CLOSE,4);//7sma
         double   SMA30E      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,4);//7sma
         double   SMA60E      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,4);//7sma
         double   EMA2E4H      = GetMa(Symbol(),PERIOD_H4,2,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA3E4H      = GetMa(Symbol(),PERIOD_H4,3,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA4E4H      = GetMa(Symbol(),PERIOD_H4,4,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA6E4H      = GetMa(Symbol(),PERIOD_H4,6,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA12E4H      = GetMa(Symbol(),PERIOD_H4,12,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA18E4H      = GetMa(Symbol(),PERIOD_H4,18,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA25E4H      = GetMa(Symbol(),PERIOD_H4,25,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   SMA30E4H      = GetMa(Symbol(),PERIOD_H4,30,0,MODE_SMA,PRICE_OPEN,4);//7sma
         double   LWG25E      = GetMa(Symbol(),PERIOD_M1,25,0,MODE_LWMA,PRICE_OPEN,4);//7sma
         double   EMA50E      = GetMa(Symbol(),PERIOD_M1,50,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA200E      = GetMa(Symbol(),PERIOD_M1,200,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA3E      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,4);//7sma
         double   EMA16E      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_CLOSE,4);//7sma
         double   EMA32E      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_CLOSE,4);//7sma
         double   EMA48E      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_CLOSE,4);//7sma

         double   EMA3EO      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA16EO      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA32EO      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_OPEN,4);//7sma
         double   EMA48EO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,4);//7sma

         double   LWG5F      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,5);//7sma
         double   EMA10F      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA40F      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA94F      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA195F      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   SMA30F      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,5);//7sma
         double   SMA60F      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,5);//7sma
         double   EMA2F4H      = GetMa(Symbol(),PERIOD_H4,2,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA3F4H      = GetMa(Symbol(),PERIOD_H4,3,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA4F4H      = GetMa(Symbol(),PERIOD_H4,3,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA6F4H      = GetMa(Symbol(),PERIOD_H4,6,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA12F4H      = GetMa(Symbol(),PERIOD_H4,12,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA18F4H      = GetMa(Symbol(),PERIOD_H4,18,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA25F4H      = GetMa(Symbol(),PERIOD_H4,25,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   SMA30F4H      = GetMa(Symbol(),PERIOD_H4,30,0,MODE_SMA,PRICE_OPEN,5);//7sma
         double   EMA3FO      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA16FO      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA24FO      = GetMa(Symbol(),PERIOD_M15,24,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA32FO      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_OPEN,5);//7sma
         double   EMA48FO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,5);//7sma

         double   LWG5G      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,6);//7sma
         double   EMA10G      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   EMA40G      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   EMA94G      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   EMA195G      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   SMA30G      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,6);//7sma
         double   SMA60G      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,6);//7sma
         double   EMA3GO      = GetMa(Symbol(),PERIOD_M15,3,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   EMA16GO      = GetMa(Symbol(),PERIOD_M15,16,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   EMA24GO      = GetMa(Symbol(),PERIOD_M15,24,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   EMA32GO      = GetMa(Symbol(),PERIOD_M15,32,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   EMA48GO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,6);//7sma
         double   LWG5H      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,7);//7sma
         double   EMA10H      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,7);//7sma
         double   EMA40H      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,7);//7sma
         double   EMA48HO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,7);//7sma
         double   EMA94H      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,7);//7sma
         double   EMA195H      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,7);//7sma
         double   SMA30H      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,7);//7sma
         double   SMA60H      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,7);//7sma
         double   LWG5I      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,8);//7sma
         double   EMA10I      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,8);//7sma
         double   EMA40I      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,8);//7sma
          double   EMA48IO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,8);//7sma
        double   EMA94I      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,8);//7sma
         double   EMA195I      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,8);//7sma
         double   SMA30I      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,8);//7sma
         double   SMA60I      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,8);//7sma
         double   LWG5J      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,9);//7sma
         double   EMA10J      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,9);//7sma
         double   EMA40J      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,9);//7sma
         double   EMA48JO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,9);//7sma
         double   EMA94J      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,9);//7sma
         double   EMA195J      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,9);//7sma
         double   SMA30J      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,9);//7sma
         double   SMA60J      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,9);//7sma
         double   LWG5K      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,10);//7sma
         double   EMA10K      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,10);//7sma
         double   EMA40K      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,10);//7sma
         double   EMA48KO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,10);//7sma
         double   EMA94K      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,10);//7sma
         double   EMA195K      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,10);//7sma
         double   SMA30K      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,10);//7sma
         double   SMA60K      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,10);//7sma
         double   LWG5L      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,11);//7sma
         double   EMA10L      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,11);//7sma
         double   EMA40L      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,11);//7sma
         double   EMA48LO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,11);//7sma
         double   EMA94L      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,11);//7sma
         double   EMA195L      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,11);//7sma
         double   SMA30L      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,11);//7sma
         double   SMA60L      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,11);//7sma
         double   LWG5M      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,12);//7sma
         double   EMA10M      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,12);//7sma
         double   EMA40M      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,12);//7sma
         double   EMA48MO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,12);//7sma
         double   EMA94M      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,12);//7sma
         double   EMA195M      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,12);//7sma
         double   SMA30M      = GetMa(Symbol(),PERIOD_M5,30,0,MODE_SMA,PRICE_CLOSE,12);//7sma
         double   SMA60M      = GetMa(Symbol(),PERIOD_M5,60,0,MODE_SMA,PRICE_CLOSE,12);//7sma
         double   LWG5R      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,18);//7sma
         double   EMA10R      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,18);//7sma
         double   EMA40R      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,18);//7sma
         double   EMA48RO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,18);//7sma
         double   EMA94R      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,18);//7sma
         double   EMA195R      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,18);//7sma
         double   LWG5Z      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,24);//7sma
         double   EMA10Z      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,24);//7sma
         double   EMA40Z      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,24);//7sma
         double   EMA48ZO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,24);//7sma
         double   EMA94Z      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,24);//7sma
         double   EMA195Z      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,24);//7sma
         double   LWG5ZM      = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,36);//7sma
         double   EMA10ZM      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,36);//7sma
         double   EMA40ZM      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,36);//7sma
         double   EMA48ZMO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,36);//7sma
         double   EMA94ZM      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,36);//7sma
         double   EMA195ZM      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,36);//7sma
         double   LWG5ZZ     = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,48);//7sma
         double   EMA10ZZ      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,48);//7sma
         double   EMA40ZZ      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,48);//7sma
         double   EMA48ZZO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,48);//7sma
         double   EMA94ZZ      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,48);//7sma
         double   EMA195ZZ      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,48);//7sma
         double   LWG5ZZM     = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,60);//7sma
         double   EMA10ZZM      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,60);//7sma
         double   EMA40ZZM      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,60);//7sma
         double   EMA48ZZMO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,60);//7sma
         double   EMA94ZZM      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,60);//7sma
         double   EMA195ZZM      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,60);//7sma
         double   LWG5ZZZ     = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,72);//7sma
         double   EMA10ZZZ      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,72);//7sma
         double   EMA40ZZZ      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,72);//7sma
         double   EMA48ZZZO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,72);//7sma
         double   EMA94ZZZ      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,72);//7sma
         double   EMA195ZZZ      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,72);//7sma
         double   LWG5ZZZM     = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,84);//7sma
         double   EMA10ZZZM      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,84);//7sma
         double   EMA40ZZZM      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,84);//7sma
         double   EMA48ZZZMO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,84);//7sma
         double   EMA94ZZZM      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,84);//7sma
         double   EMA195ZZZM      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,84);//7sma
         double   LWG5ZZZZ     = GetMa(Symbol(),PERIOD_M5,5,0,MODE_LWMA,PRICE_OPEN,96);//7sma
         double   EMA10ZZZZ      = GetMa(Symbol(),PERIOD_M5,10,0,MODE_EMA,PRICE_OPEN,96);//7sma
         double   EMA40ZZZZ      = GetMa(Symbol(),PERIOD_M5,40,0,MODE_EMA,PRICE_OPEN,96);//7sma
         double   EMA48ZZZZO      = GetMa(Symbol(),PERIOD_M5,48,0,MODE_EMA,PRICE_OPEN,96);//7sma
         double   EMA94ZZZZ      = GetMa(Symbol(),PERIOD_M5,94,0,MODE_EMA,PRICE_OPEN,96);//7sma
         double   EMA195ZZZZ      = GetMa(Symbol(),PERIOD_M5,195,0,MODE_EMA,PRICE_OPEN,96);//7sma

         bool M5SA=false,M5SB=false,M5SC=false,M5BA=false,M5BB=false,M5BC=false;
         bool DragXUpF=false,DragXUpE=false,DragXUpD=false,DragXUpC=false,DragXUpB=false;
         

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

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

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

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

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

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

Стоимость полного кода
16 727,40₽ ≈ $204.44