Tynguska_GOLDM15

Author: Copyright 2017, MetaQuotes Software Corp.
Price Data Components
Series array that contains open prices of each barSeries array that contains close prices for each barSeries array that contains the lowest prices of each barSeries array that contains the highest prices of each bar
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reachedIt Closes Orders by itself It can change open orders parameters, due to possible stepping strategy
Indicators Used
MACD HistogramMoving average indicatorBill Williams Accelerator/Decelerator oscillator
Miscellaneous
It opens Message Boxes to the userIt plays sound alertsIt issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
Tynguska_GOLDM15
ÿþ//=====================================================================================================================

//=====================================================================================================================

#property copyright "Copyright 2017, MetaQuotes Software Corp."

#property link      "https://www.mql5.com"

#property version   "1.00"

#property strict

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//   ! !" / ! ! " 0.01 -  !'" " " +"/  "#

extern double    RazmerDepozita=3000;



//,/  / / % / '/ !   %    12    15

extern double    XranenieRazmaxaVeera15MIN=366.0;



//,/  / / % / !   %    12    5

extern double    ZnachSrednRazmaxVeera5MIN=224.0;



//,/  / / % / !   %    12    1

extern double    ZnachSrednRazmVeeraOneMIN=91.0;



//=====================================================================================================================

//=====================================================================================================================



//$$&" " !' ,+ / "& "'+% !

extern double    KoeffTelaOPTMIN=4.8;



//. ,!",  (+  + / "& "'+% !

extern int    DalnRazvOPTMIN=150;



//. (   "  +     / "& "'+% !

extern int    KrilProbOPTMIN=4;



//. -    !,/)% ! % / "& "'+% !

extern int    VeerMABallOPTMIN=85;



//=====================================================================================================================

//=====================================================================================================================



//(   "    "  /          

extern int    ShirinaOtrezkaTrapMA=50;



//=====================================================================================================================

//=====================================================================================================================



//. ,!",        / "& "'+% !

extern int    DalnostBaraOptimaMIN=25;



//!. ,!", !   &+  (+ / "& "'+% !

extern int    DalnPoiskaLevgrMAX=250;



//!. ,!", !  "  ! / "& "'+% !

extern int    DalnPoiskaProboyaMAX=500;        



//=====================================================================================================================

//=====================================================================================================================

// !'"+ -$$&"+ #!" / '!/   #    12 

extern double    KoefYzkostLittle=1.8;

extern double    KoefYzkostMedium=1.2;

extern double    KoefYzkostLarge=0.95;

extern double    KoefYzkostHuge=0.65;

extern double    KoefYzkostSuper=0.45;

extern double    KoefYzkostGigant=0.25;

extern double    KoefYzkostExcell=0.15;

//=====================================================================================================================

//=====================================================================================================================

// !'"+ +    12  / '!/    ,+   

extern int    BallVeerMALittle=80;

extern int    BallVeerMAMedium=95;

extern int    BallVeerMALarge=110;

extern int    BallVeerMAHuge=125;

extern int    BallVeerMASuper=140;

//=====================================================================================================================

//=====================================================================================================================

// !'"+ +    !,/)% ! %  !'

extern int    KolvoProbitMALittle=3;

extern int    KolvoProbitMAMedium=4;

extern int    KolvoProbitMALarge=5;

extern int    KolvoProbitMAHuge=6;

extern int    KolvoProbitMASuper=7;

extern int    KolvoProbitMAGigant=8;

extern int    KolvoProbitMAExcell=9;

//=====================================================================================================================

//=====================================================================================================================



//'!"   /  !'" !  "  !    !'

extern int    KolvoBarovRaschetaSredn=5000;



//=====================================================================================================================

//=====================================================================================================================

//!"  / + !  - 



//', !)   " Y ! %#   + !  % !

extern int    NachalnySdvigSverxy=20;



//!" + (   " # !! !/

extern int    ShagNadpisPoVertikal=28;



//&/   " / &" ,  !

extern int    CentralNadpisXPozition=465;



//   ( $" + / !% ! 

extern int    RazmerShriftaNadpisey=12;



//=====================================================================================================================

//=====================================================================================================================



//,+ $$&" " !#  !' / !'"+/  !'

extern double    KoeffTelaObshiySvechi2x=2.4;



//,+ $$&" "   2% !' / !'"+/  !'

extern double    KoeffTelaKajdoySvechi2x=1.6;



//=====================================================================================================================

//=====================================================================================================================



//,/ ,!",  (+  +  & 

extern int    DiverRazvorotDaln=50;



//,/   +',  ,  &

extern int    DiverLineMinLength=60;



//!. ,!", !   &+  & / "&

extern int    DalnPoiskaDiverMAX=400;



//'!" '!/+%    ' +',  ,  &

extern int    DiverLineAddBalls=21;



//,/ ,!",   (+   + / '!/ 

extern int    DalnostRazvorotaMIN=200;



//=====================================================================================================================

//=====================================================================================================================

//   ) !#   '  / !,% % 

extern int    DobavkaBallProbOneMA=4;



//. -  "+% !,/)% ! % / '!/  

extern int    KolProbMAOneMIN=2;

//=====================================================================================================================

//=====================================================================================================================

//-$$&" #!"    !,+ / '!/   #!",

extern double    KoeffYzkostiOPTITMAX=0.9;



//   ) !#  #!",   !,/)% ! %

extern int    DobavkaBallovYzkostVeeraMA=5;

//=====================================================================================================================

//=====================================================================================================================

// !'"+ +    12  / '!/    ,+   

extern int    BallVeerMALITTLE=90;

extern int    BallVeerMAMEDIUM=110;

extern int    BallVeerMANORMAL=130;

extern int    BallVeerMAGOODLY=150;

extern int    BallVeerMAGIGANT=175;

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//-$$&"+ " !' / '!/   ,(    !'    

extern double    KoeffTelaLITTLE=1.5;

extern double    KoeffTelaMEDIUM=4.5;

extern double    KoeffTelaNORMAL=6.5;

extern double    KoeffTelaGIGANT=6.5;



//   ) !#  ,(    " !'    

extern int    DobavkaTelaLITTLE=10;

extern int    DobavkaTelaMEDIUM=12;

extern int    DobavkaTelaNORMAL=6;

extern int    DobavkaTelaGIGANT=12;

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//-$$&" * ,+ / '!/   "+ *   

extern double    KoeffObyemaLITTLE=1.5;

extern double    KoeffObyemaMEDIUM=7.5;

extern double    KoeffObyemaNORMAL=11.0;

extern double    KoeffObyemaGIGANT=14.0;



//   ) !#  +%   "+ *   

extern int    DobavkaObyemaLITTLE=1;

extern int    DobavkaObyemaMEDIUM=5;

extern int    DobavkaObyemaNORMAL=1;

extern int    DobavkaObyemaGIGANT=0;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//! !", $ !" # "  !" "#. "'#  !'"", ,!",  (+



// ) "    +  " / +  / 



//) /", # !", !   # / 100



//   ) !#   ' $ !"

extern int    DobavkaBallovFIBO=13;



//, '!"    ( # / $ !"

extern int    ShirinaFiboSetkiMIN=20;



//,+ $$&" +!"+ $ !"  "(.  ! #  #

extern double    KoeffFiboSrednBarMIN=10.5;



//!, #!" " " # /   &"% " +!"+ / $ !"

extern double    OtklonFiboLevelMAX=1.5;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//!"  / $#& +'!/  /  !" "" 

extern int    NastrBetterWarp   = 67;

extern double NastrBetterDeviat = 1.85;

extern int    NastrBetterAmplit = 155;

extern double NastrBetterDistor = 0.79;



//   ! ! !  !'"  / !" "" 

extern int    DobavkaBallBetter = 0;



//,/ '  / ""  / '!/ 

extern double BetterNapravABCMin = 6.00;



//,/ '  / ""  /  +"/ &

extern double BetterZnachCloseMin = 150.00;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



// # * # !", '!"   ! # " +% * ,(



//   ) !#   '  !%/  *     !'

extern int    DobavkaBallRASXOBYEM=4;



//,+ $$&" " !' /  /  !%/ ! *

extern double    KoeffTelaRASXVMIN=4.5;



//!,+ + $$&" * ,( "   +", *

extern double    KoeffVolumeLITMAX=0.65;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//' #/ "   / #'/ !   +". &

extern double  MACDCloseBigLevel=11.5;



//, '!" #" ""  " &+ Open[0] / " +"/ !

extern int    RazmerOtkataPunkts=3;



//,/ (   +  " + / '!/ 

extern int    ShirinKrilProbitLEVEL=15;



//     (  +   (+

extern int    DobavBallsProboyLEVEL=5;



//+'+ "  $"   ' "   ,   !,/)% ! %

extern int    ProfitNormalPunkts=440;



//, '!"  +%  /  +"/  +, &

extern int    TyngusBallZAKRYTM15=67;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//!"  / ! '/ $"  +%  



//!. ,!", ! $"

extern int    DalnostPoiskaFletaMAX=3000;



//"!"#  "   , ! "  ' ", -$$&" #!"

extern int    YzkostFletaStartDist=50;



//,/ (  # #'!" $"   %

extern int    ShirinaFletaBarovMIN=80;



//,( $$&" #!" $", ! % "  +!"#  100   ( +

extern double   KoeffYzkostiFletaLARGE=9.0;



//  %  +%  # $"

extern int    DobavBallProboyFLETA=14; 



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//,+ !" !!  #"%     !  #+"

extern int    BezybStopPunkts=60;



//$! #/  +,  #"%     !  #+"

extern int    BezybProfitPunkt=0;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//$$&" /  !'" +' !" !! '     !   

extern double    KoeffStopLossSredBar=4.0;



//$$&" /  !'" , !" !! '     !   

extern double    KoeffStopLossDalniy=6.5;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//   ) !#   '  / 5" % 

extern int    DobavkaBallsProb5XMA=4;

extern int    DobavkaBallsProb6XMA=5;



//   #. #.  &#  (+  +

extern int    DobavkaBallsGRANICA=1;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//!"   "  $# + /  (  / 



//,/ (      (+   %

extern int    ShirinKrilOnePikVersh2X=80;



// &" !/ #  #%  (    +!"

extern int    ProcentSovpadLevelPIK2X=10;



//,/ ,!",  %    (+    %

extern int    DalnostPikaVershin2XMIN=600;



//  %     (   (+   +

extern int    DobavkaBallsVershina2X=5;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//!"  / $# + )   (   



//  %  ' /! "    "/

extern int   DobavkaBallovMOLOT=0;



//,/ ,!",  (+  + / $# + "  )

extern int   DalnostPIKAJapanMIN=150;



//,+  &" " #   ,( !' / $# + )

extern double  ProcTelaPogloshLARGE=85;



//,+ -$$&" " #   ,( !' / $# + )

extern double  KoefTelaPogloshLARGE=3.2;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



//'!"    !,/)% ! % / !+ " "  $"

extern int    BallVeeraSmenaPROF=120;



// " "  $"   "!#"!"  ,   !,/)% ! %, 

extern int    ProfitLittlePunkts=40;



//, '!"  +%  / " +"/ &   !

extern int    TyngusBallOTKRYTM15=65;



//+   !,/)% ! % / '!/   %

extern int    BallVeerMAGigant=169;

extern int    BallVeerMAExcell=179;



//  %   ,+    12 !,/)% ! %

extern int    DobavkaBallGIGANT=11;

extern int    DobavkaBallEXCELL=14;



//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

int OnInit()

{

   EventSetTimer(60);

   

   Print("!" "##! #)   "#");

   

   //B5AB8@>20=85 =0 3@0D8:5 15 A 01.01.2011 ?> 30.09.2021

   

   //PROFIT   111 519

   

   //FAKTOR      1.41

   

   // !  14 631

   

   //!     1 750

   

   // /    2 #"

   

   //>G8AB:0 3@0D8:0 >B AB0@KE >1J5:B>2, A>740==KE A>25B=8:><

   ObjectsDeleteAll();   

   

   //"  $", '" &&/ !"  ( #!(

   DrawCentralLABEL("#!",NachalnySdvigSverxy,clrYellow,"#! !"");

   

   if(Period()==PERIOD_M1)

   {

      /// #! /  !'"    !'" !   %     %  

      ZnachSrednRazmVeeraOneMIN=RaschetSrednRazmaxVeera12MA(1);

      Print("#!" !  '  %      $ 1   #"% = "+DoubleToStr(ZnachSrednRazmVeeraOneMIN,0));

   }   

   

   return(INIT_SUCCEEDED);

}

//=====================================================================================================================

//=====================================================================================================================

void OnDeinit(const int reason)

{

   EventKillTimer();

   

   //>G8AB:0 3@0D8:0 >B >1J5:B>2, A>740==KE A>25B=8:><

   ObjectsDeleteAll();   

}

//=====================================================================================================================

//=====================================================================================================================

void OnTick()

{

   double StopLevel, TeikLevel, RazmerLota;

   

   int KolvoBaev, KolvoSelov, VsegoOrderov, TicketOrdera, KodOshibki;

   

   static double SredniyBar=0, SredneeTelo=0, BetterDirect=0, BetterABC=0;

   

   //AB0B8AB8G5A:85 ?5@5<5==K5 4;O E@0=5=8O =01@0==KE 1KGL8E 8 <54256L8E 10;;>2

   static int NabranoBallovBULL=0, NabranoBallovBEAR=0, VeerMABallBULL=0, VeerMABallBEAR=0;   

   

   //AB0B8G5A:85 ?5@5<5==K5 8=8F80;878@CNBAO >48= @07 ?@8 70?CA:5 A>25B=8:0

   

   static bool OtkrivaemBUY=false, OtkrivaemSELL=false;

   

   static bool ZakrivaemBUY=false, ZakrivaemSELL=false;

   

   static bool ZapretPokypki=false, ZapretProdagi=false;

   

   static bool Veer4XMABULL=false, Veer4XMABEAR=false;   

   

   bool NaidenNovyBar, EstDengi;

   

   //?@>25@:0 10@>2, 8E 4>;6=> E20B0BL =0 @0AG5B  2584 + CA@54=5=85 5000

   if(Bars<8000)

   {

      MessageBox("    $ ,( 8000 !"   """);

      return;

   }   

   

   NaidenNovyBar=false; EstDengi=false;

   

   //C@>25=L AB>? ;>AA0 ?@8 CAB0=>2:5 >@45@>2

   StopLevel=0;

   

   //C@>25=L B59: ?@>D8B0 ?@8 CAB0=>2:5 >@45@>2

   TeikLevel=0;

   

   //@07<5@ ;>B0 4;O >B:@K205<>9 A45;:8

   RazmerLota=0;

   

   //:>4 >H81:8 ?@8 CAB0=>2:5 >@45@0

   KodOshibki=0;

   

   //:>;8G5AB2> 1052, >B:@KBKE A>25B=8:>< =0 MB>< 3@0D8:5   #+"

   KolvoBaev=0;

   

   //:>;8G5AB2> A5;>2, >B:@KBKE A>25B=8:>< =0 MB>< 3@0D8:5   #+"

   KolvoSelov=0;

   

   //>1I55 :>;8G5AB2> C65 >B:@KBKE >@45@>2

   VsegoOrderov=0;

   

   //B8:5B CA?5H=> >B:@KB>3> >@45@0

   TicketOrdera=0;

   

   //*********************************************************************************

   //*********************************************************************************

   //*********************************************************************************

   // !'" ! / " +"/ & - 45;05BAO ?@8 ?>O2;5=88 =>2>3> 10@0

   

   //>BA;568205< <><5=B ?>O2;5=8O =>2>3> 10@0

   NaidenNovyBar=DetectNewBar();

   

   //5A;8 =0945= =>2K9 10@ - 8I5< A83=0;K 8 >=8 E@0=OBAO 4> A;54CNI53> 10@0

   if(NaidenNovyBar==true)

   {

      //>1=>2;5=85 3@0D8:0

      RefreshRates();

      

      //********************************************************************

      //********************************************************************

      //********************************************************************

      

      //! ! +',%  ,%  +% 

      NabranoBallovBULL=0; NabranoBallovBEAR=0;

      

      //>1=C;O5< !""'! 10;;K 255@>2 A:>;L7OI8E A@54=8E

      VeerMABallBULL=0; VeerMABallBEAR=0;      

      

      //A1@>A !""'!% A83=0;>2 :  +". ?>78F89

      ZakrivaemBUY=false; ZakrivaemSELL=false;      

      

      //A1@>A !""'!% A83=0;>2 : " +". ?>78F89

      OtkrivaemBUY=false; OtkrivaemSELL=false;

      

      //A1@>A !""'!% A83=0;>2 =0  " >B:@KB8O ?>78F89

      ZapretPokypki=false; ZapretProdagi=false;

      

      //A1@>A !""'!% A83=0;>2 =0 255@ 4E BO65;KE 

      Veer4XMABULL=false; Veer4XMABEAR=false;

      

      //********************************************************************

      //********************************************************************

      //********************************************************************      

      

      // ) " +",  -   +  D1

      if(iClose(NULL,PERIOD_D1,1)<iOpen(NULL,PERIOD_D1,1))

      {

         if(iClose(NULL,PERIOD_D1,1)<iLow(NULL,PERIOD_D1,2))

         {

            ZapretPokypki=true;

         }

      } 

      

      // ) " +",  -   +  W1

      if(iClose(NULL,PERIOD_W1,1)<iOpen(NULL,PERIOD_W1,1))

      {

         if(iClose(NULL,PERIOD_W1,1)<iLow(NULL,PERIOD_W1,2))

         {

            ZapretPokypki=true;

         }

      }                    

      

      // ) " +",  -   +  MN1

      if(iClose(NULL,PERIOD_MN1,1)<iOpen(NULL,PERIOD_MN1,1))

      {

         if(iClose(NULL,PERIOD_MN1,1)<iLow(NULL,PERIOD_MN1,2))

         {

            ZapretPokypki=true;

         }

      }      

      

      //********************************************************************

      //********************************************************************

      //********************************************************************      

      

      // ) " +", ! -    (+  D1

      if(iClose(NULL,PERIOD_D1,1)>iOpen(NULL,PERIOD_D1,1))

      {

         if(iClose(NULL,PERIOD_D1,1)>iHigh(NULL,PERIOD_D1,2))

         {

            ZapretProdagi=true;

         }

      } 

      

      // ) " +", ! -    (+  W1

      if(iClose(NULL,PERIOD_W1,1)>iOpen(NULL,PERIOD_W1,1))

      {

         if(iClose(NULL,PERIOD_W1,1)>iHigh(NULL,PERIOD_W1,2))

         {

            ZapretProdagi=true;

         }

      }           

      

      // ) " +", ! -    (+  MN1

      if(iClose(NULL,PERIOD_MN1,1)>iOpen(NULL,PERIOD_MN1,1))

      {

         if(iClose(NULL,PERIOD_MN1,1)>iHigh(NULL,PERIOD_MN1,2))

         {

            ZapretProdagi=true;

         }

      }      

      

      //********************************************************************

      //********************************************************************

      //********************************************************************    

      

      //+'!  / !  !"# EA Better         

      BetterDirect=0;

      BetterDirect=DirectBETTER(NastrBetterWarp,NastrBetterDeviat,NastrBetterAmplit,NastrBetterDistor,1);

      BetterDirect=NormalizeDouble(BetterDirect,2);

      

      //#, '+  / !  !"# EA Better

      BetterABC=0;

      BetterABC=MathAbs(BetterDirect);

      

      //********************************************************************

      //********************************************************************

      //********************************************************************      

      

      //5A;8 A25G0 =0 10@5 !1 1KGLO - 8I5< A83=0; =0 ##

      if(Open[1]<Close[1])

      {

         //?>4AG5B 1KGL8E 10;;>2 =0 10@5 !1

         NabranoBallovBULL=AnalizPokypkiTynguska(1);      

               

         if((BetterDirect>0)&&(BetterABC>BetterNapravABCMin))

         {

            if((NabranoBallovBULL>=TyngusBallOTKRYTM15)&&(ZapretPokypki==false))

            {

               OtkrivaemBUY=true;

         

               PlaySound("CASHREG.wav");

            

               Alert("!" "##!: " +    $ "+Symbol()+"   = "+DoubleToStr(Period(),0));

            

               Print("!" "##!: " +    $ "+Symbol()+"   = "+DoubleToStr(Period(),0));

            }           

         }         

      }

    

      //5A;8 A25G0 =0 10@5 !1 <54256LO - 8I5< A83=0; =0  #

      if(Open[1]>Close[1])

      {  

         //?>4AG5B <54256L8E 10;;>2 =0 10@5 !1

         NabranoBallovBEAR=AnalizProdagiTynguska(1);

         

         if((BetterDirect<0)&&(BetterABC>BetterNapravABCMin))

         {

            if((NabranoBallovBEAR>=TyngusBallOTKRYTM15)&&(ZapretProdagi==false))

            {

               OtkrivaemSELL=true;

            

               PlaySound("CASHREG.wav");

            

               Alert("!" "##!: " + !   $ "+Symbol()+"   = "+DoubleToStr(Period(),0));

            

               Print("!" "##!: " + !   $ "+Symbol()+"   = "+DoubleToStr(Period(),0));

            }            

         }         

      }

      

      //*************************************************************

      //*************************************************************

      

      //+'! !      

      SredniyBar=SredniyRazmerBaraPunkts(1);      

      

      //+'! !     ";

      SredneeTelo=SredniyRazmerTelaPunkts(1);

      

      //*************************************************************

      //*************************************************************

      

      // +"  +, &   !# "  

      if(Open[1]>Close[1])

      {

         //ZakrivaemBUY=ZakrytSdelkyBUYCrossMACD(SredneeTelo,1);

      }

      

      //*************************************************************

      //*************************************************************

      

      // +"  +, & !  !# "  

      if(Open[1]<Close[1])

      {

         //ZakrivaemSELL=ZakrytSdelkySELLCrossMACD(SredneeTelo,1);

      }

      

      //*************************************************************

      //*************************************************************      

      

      //!    +',%  -  +  +,+ SELL

      if((NabranoBallovBULL>=TyngusBallZAKRYTM15)&&(Period()>=PERIOD_M15))

      {

         //ZakrivaemSELL=true;

         

         //OtkrivaemSELL=false;

      }

      

      //*************************************************************

      //*************************************************************

      

      //!    ,%  -  +  +,+ BUY

      if((NabranoBallovBEAR>=TyngusBallZAKRYTM15)&&(Period()>=PERIOD_M15))

      {

         //ZakrivaemBUY=true;

         

         //OtkrivaemBUY=false;

      }      

      

      //*************************************************************

      //*************************************************************

      

      // !'"+ !+ - !" '"  "#

      DrawCentralLABEL("#!",NachalnySdvigSverxy,clrLime,"!"  """);

      

      /// #! / "!" / -""  +/"!/       

      VsegoOrderov=OrdersTotal();

      

      if(VsegoOrderov>0)

      {

         // +"  $&/ # " +"+% !"   &

         PereborOrderovSovetnika(SredniyBar,ZakrivaemBUY,ZakrivaemSELL);

      }            

      

      //Print("/!/ +  ");

   }   

   

   //******************************************************************************

   //******************************************************************************

   //******************************************************************************

   //>B:@KB85 ?>78F88 BUY  - 5A;8 5ABL 45=L38, A83=0; =0 ?>:C?:C 8 =5B 1052      

   

   //5A;8 5ABL A83=0; =0 ?>:C?:C 8 F5=0 ?>H;0 225@E

   if((OtkrivaemBUY==true)&&(Bid==High[0]))

   {

      //?>4AG5B :>;8G5AB20 1052 =0H59 20;NBK C65 >B:@KBKE A>25B=8:><

      KolvoBaev=PodschetBaevSovetnika();

      

      //@0AG5B @07<5@0 ;>B0 4;O >B:@KB8O A45;:8, B>G=>ABL 0.01

      RazmerLota=0;

      RazmerLota=AccountFreeMargin()/RazmerDepozita;

      RazmerLota=MathFloor(RazmerLota);

      RazmerLota=RazmerLota*0.01;   

      

      //?@>25@:0 =0;8G8O A2>1>4=KE A@54AB2 4;O >B:@KB8O ?>78F88 BUY 

      EstDengi=false;

      

      if(AccountFreeMarginCheck(Symbol(),OP_BUY,RazmerLota)>800)

      {

         EstDengi=true;

      }      

      

      //5ABL 45=L38 8 109 5I5 =5 1K; >B:@KB, ;81> ?5@52545= 2 157C1KB>:

      if((EstDengi==true)&&(KolvoBaev==0))

      {

         //@01>B0 2 1C4=8, ;81> B5AB8@>20=85 2 2KE>4=K5

         if((MarketInfo(Symbol(),MODE_TRADEALLOWED)==true)||(IsTesting()==true))

         {

            //C@>25=L AB>? ;>AA0 ?@8 CAB0=>2:5 >@45@0

            StopLevel=0;

            StopLevel=RaschetStopLevelBULL(SredniyBar,1);

            

            //C@>25=L B59: ?@>D8B0 ?@8 CAB0=>2:5 >@45@0 OP_BUY

            TeikLevel=0;

            

            //@0AG5B +',% 10;;>2 255@0 A:>;L7OI8E A@54=8E

            VeerMABallBULL=0;

            VeerMABallBULL=RaschetBallovVeeraMABULL(1);

            

            //    '/  , +',    %  4% "/+%    

            Veer4XMABULL=false;

            Veer4XMABULL=ProverkaVeer4XMABigBULL(1);         

            

            // !'" "  $"  !!" "    ! % 

            if(VeerMABallBULL>=BallVeeraSmenaPROF)

            {

               TeikLevel=Ask+(ProfitNormalPunkts*Point);

            }                           

            else

            {

               TeikLevel=Ask+(ProfitLittlePunkts*Point);

            }        

            

            StopLevel=NormalizeDouble(StopLevel,Digits);

            TeikLevel=NormalizeDouble(TeikLevel,Digits);         

            

            //#!"    OP_BUY

            TicketOrdera=0;

            TicketOrdera=OrderSend(Symbol(),OP_BUY,RazmerLota,Ask,7,StopLevel,TeikLevel,"TYNGUSKA",0,0,clrBlue);

            

            //5A;8 109 CAB0=>2;5= CA?5H=>

            if(TicketOrdera>0)

            {

               Print("#A?5H=> CAB0=>2;5= >@45@  A>25B=8:>< "##!, B8:5B >@45@0 = "+DoubleToStr(TicketOrdera,0));

               

               //2B>@>9 @07 =0 >4=>< 8 B>< 65 10@5 >@45@ =5 >B:@K205<

               //OtkrivaemBUY=false;

               

               //745AL <>6=> 2K1@0BL CAB0=>2;5==K9 >@45@ ?> B8:5BC 8 <>48D8F8@>20BL SL 8 TP

            }

            else

            {

               KodOshibki=0;

               KodOshibki=GetLastError();

               

               if(KodOshibki!=0)

               {

                  PrintTradeServerError(KodOshibki);

                  

                  Sleep(2000);

                  

                  RefreshRates();

               }

            }      

         }

      }

   }

   

   //******************************************************************************

   //******************************************************************************

   //******************************************************************************

   //>B:@KB85 ?>78F88 SELL  - 5A;8 5ABL 45=L38, A83=0; =0 ?@>406C 8 =5B A5;>2  

   

   //5A;8 5ABL A83=0; =0 ?@>406C 8 F5=0 ?>H;0 2=87

   if((OtkrivaemSELL==true)&&(Bid==Low[0]))

   {

      //?>4AG5B :>;8G5AB20 A5;>2 =0H59 20;NBK C65 >B:@KBKE A>25B=8:><

      KolvoSelov=PodschetSelovSovetnika();

      

      //@0AG5B @07<5@0 ;>B0 4;O >B:@KB8O A45;:8, B>G=>ABL 0.01

      RazmerLota=0;

      RazmerLota=AccountFreeMargin()/RazmerDepozita;

      RazmerLota=MathFloor(RazmerLota);

      RazmerLota=RazmerLota*0.01;      

      

      //?@>25@:0 =0;8G8O A2>1>4=KE A@54AB2 4;O >B:@KB8O ?>78F88 SELL 

      EstDengi=false;

      

      if(AccountFreeMarginCheck(Symbol(),OP_SELL,RazmerLota)>800)

      {

         EstDengi=true;

      }       

      

      //5A;8 5ABL 45=L38, 8 A5; 5I5 =5 1K; >B:@KB, ;81> ?5@52545= 2 157C1KB>:

      if((EstDengi==true)&&(KolvoSelov==0))

      {

         //@01>B0 2 1C4=8, ;81> B5AB8@>20=85 2 2KE>4=K5

         if((MarketInfo(Symbol(),MODE_TRADEALLOWED)==true)||(IsTesting()==true))

         {

            //C@>25=L AB>? ;>AA0 ?@8 CAB0=>2:5 >@45@0

            StopLevel=0;         

            StopLevel=RaschetStopLevelBEAR(SredniyBar,1);

            

            //C@>25=L B59: ?@>D8B0 ?@8 CAB0=>2:5 >@45@0 OP_SELL

            TeikLevel=0;

            

            //@0AG5B ,% 10;;>2 255@0 A:>;L7OI8E A@54=8E

            VeerMABallBEAR=0;

            VeerMABallBEAR=RaschetBallovVeeraMABEAR(1);

            

            //    '/  , ,     4% "/+%    

            Veer4XMABEAR=false;

            Veer4XMABEAR=ProverkaVeer4XMABigBEAR(1);         

            

            // !'" "  $"  !!" "    ! % 

            if(VeerMABallBEAR>=BallVeeraSmenaPROF)                  

            {

               TeikLevel=Bid-(ProfitNormalPunkts*Point);

               TeikLevel=NormalizeDouble(TeikLevel,Digits);

            }         

            else

            {

               TeikLevel=Bid-(ProfitLittlePunkts*Point);

               TeikLevel=NormalizeDouble(TeikLevel,Digits);

            }         

      

            StopLevel=NormalizeDouble(StopLevel,Digits);

            TeikLevel=NormalizeDouble(TeikLevel,Digits);         

            

            //#!"    OP_SELL

            TicketOrdera=0;

            TicketOrdera=OrderSend(Symbol(),OP_SELL,RazmerLota,Bid,7,StopLevel,TeikLevel,"TYNGUSKA",0,0,clrRed);

            

            //5A;8 A5;; CAB0=>2;5= CA?5H=>

            if(TicketOrdera>0)

            {

               Print("#A?5H=> CAB0=>2;5= >@45@ ! A>25B=8:>< "##!, B8:5B >@45@0 = "+DoubleToStr(TicketOrdera,0));

               

               //2B>@>9 @07 =0 >4=>< 8 B>< 65 10@5 >@45@ =5 >B:@K205<

               //OtkrivaemSELL=false;            

               

               //745AL <>6=> 2K1@0BL CAB0=>2;5==K9 >@45@ ?> B8:5BC 8 <>48D8F8@>20BL SL 8 TP

            }

            else

            {

               KodOshibki=0;

               KodOshibki=GetLastError();

               

               if(KodOshibki!=0)

               {

                  PrintTradeServerError(KodOshibki);

                  

                  Sleep(2000);

                  

                  RefreshRates();

               }

            }      

         }

      }

   }   

   

   //******************************************************************************

   //******************************************************************************

   //******************************************************************************   

   

   //'  OnTick()

   

   return;      

}

//=====================================================================================================================

//=====================================================================================================================

void OnTimer()

{

   //MessageBox("! " "  !" "##!");   

}

//=====================================================================================================================

//=====================================================================================================================  

//$#&/  #/ //   

bool DetectNewBar()

{

   //:>;8G5AB2> 10@>2 1K;> =0 3@0D8:5 4> MB>3>

   static int BarovBylo=Bars;

   

   //2@5<O ?>O2;5=8O =C;52>3> 10@0 =0 ?@>H;>< B8:5

   static datetime PreviosTime0=0;

   

   //8=8F80;870F8O 2@5<5=8 >B:@KB8O =C;52>3> 10@0 =0 ?@>H;>< B8:5

   if(PreviosTime0==0) 

   {

      PreviosTime0=Time[0];

      return(false);

   }

   

   //5A;8 B5:CI55 2@5<O =C;52>3> 10@0 >B;8G05BAO >B ?@54K4CI53>

   if((PreviosTime0!=0)&&(PreviosTime0!=Time[0])&&(Bars>BarovBylo))

   {

      PreviosTime0=Time[0];

      BarovBylo=Bars;

      return(true);

   }

   

  return(false);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B :>;8G5AB20 >B:@KBKE ?>78F89 BUY 4;O =0H59 20;NBK

//AG8B05B B>;L:> B5 >@45@0, :>B>@K5 ?>AB028; A0< A>25B=8:

//=5 70AG8BK205< B5 >@45@0, :>B>@K5 C65 ?5@52545=K 2 157C1KB>:

int PodschetBaevSovetnika()

{

   int i, kolbaev, ordtotal;  

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   kolbaev=0;



   //?>;=>5 :>;8G5AB2> >@45@>2

   ordtotal=OrdersTotal();

   

   if(ordtotal>0)

   {

      for(i=0; i<ordtotal; i++) 

      {    

         //>@45@ 2K1@0=

         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

         {

            //5A;8 20;NB0 >@45@0 A>2?0405B A 3@0D8:>< A>25B=8:0 8 MB> BUY

            if((OrderSymbol()==Symbol())&&(OrderType()==OP_BUY))

            {

               //AG8B05< B>;L:> B5 >@45@0, :>B>@K5 =5 ?5@52545=K 2 157C1KB>:

               if((OrderStopLoss()<OrderOpenPrice())||(OrderStopLoss()==0))

               {

                  //AG8B05< B>;L:> B5 >@45@0, :>B>@K5 CAB0=>28; A>25B=8:

                  if(OrderComment()=="TYNGUSKA"){kolbaev=kolbaev+1;}

               }                      

            }

         }      

      }

   }

   

   return(kolbaev);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B :>;8G5AB20 >B:@KBKE ?>78F89 SELL 4;O =0H59 20;NBK

//AG8B05B B>;L:> B5 >@45@0, :>B>@K5 ?>AB028; A0< A>25B=8:

//=5 70AG8BK205< B5 >@45@0, :>B>@K5 C65 ?5@52545=K 2 157C1KB>:

int PodschetSelovSovetnika()

{

   int i, kolselov, ordtotal; 

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   kolselov=0;



   //?>;=>5 :>;8G5AB2> >@45@>2

   ordtotal=OrdersTotal();

   

   if(ordtotal>0)

   {

      for(i=0; i<ordtotal; i++) 

      {    

         //>@45@ 2K1@0=

         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

         {

            //5A;8 20;NB0 >@45@0 A>2?0405B A 3@0D8:>< A>25B=8:0 8 MB> SELL

            if((OrderSymbol()==Symbol())&&(OrderType()==OP_SELL))

            {

               //AG8B05< B>;L:> B5 >@45@0, :>B>@K5 =5 ?5@52545=K 2 157C1KB>:

               if((OrderStopLoss()>OrderOpenPrice())||(OrderStopLoss()==0))

               {

                  //AG8B05< B>;L:> B5 >@45@0, :>B>@K5 CAB0=>28; A>25B=8:

                  if(OrderComment()=="TYNGUSKA"){kolselov=kolselov+1;}

               }                      

            }

         }      

      }

   }

   

   return(kolselov);

}

//=====================================================================================================================

//=====================================================================================================================

// !($   (,  )+% " + !  

void PrintTradeServerError(int KodOshibki)

{

   string OpisanieOshibki;

   

   switch(KodOshibki)

   {

      case 0:    OpisanieOshibki="">@3>20O >?5@0F8O ?@>H;0 CA?5H=>.";                                                                                                                        break;

      case 1:    OpisanieOshibki="OrderModify ?KB05BAO 87<5=8BL C65 CAB0=>2;5==K5 7=0G5=8O B0:8<8 65 7=0G5=8O<8. C6=> 87<5=8BL >4=> 8;8 =5A:>;L:> 7=0G5=89 8 ?>2B>@8BL ?>?KB:C.";           break;

      case 2:    OpisanieOshibki="1I0O >H81:0. @5:@0B8BL 2A5 ?>?KB:8 B>@3>2KE >?5@0F89 4> 2KOA=5=8O >1AB>OB5;LAB2. >7<>6=> ?5@5703@C78BL >?5@0F8>==CN A8AB5<C 8 :;85=BA:89 B5@<8=0;.";    break;

      case 3:    OpisanieOshibki=" B>@3>2CN DC=:F8N ?5@540=K =5?@028;L=K5 ?0@0<5B@K.0?@8<5@, =5?@028;L=K9 A8<2>;, =5>?>7=0==0O B>@3>20O >?5@0F8O. 5>1E>48<> 87<5=8BL ;>38:C ?@>3@0<<K";   break;

      case 4:    OpisanieOshibki="">@3>2K9 A5@25@ 70=OB. >6=> ?>2B>@8BL ?>?KB:C G5@57 4>AB0B>G=> 1>;LH>9 ?@><56CB>: 2@5<5=8 (>B =5A:>;L:8E <8=CB).";                                        break;

      case 5:    OpisanieOshibki="!B0@0O 25@A8O :;85=BA:>3> B5@<8=0;0. 5>1E>48<> CAB0=>28BL ?>A;54=NN 25@A8N :;85=BA:>3> B5@<8=0;0.";                                                       break;

      case 6:    OpisanieOshibki="5B A2O78 A B>@3>2K< A5@25@><. 5>1E>48<> C1548BLAO, GB> A2O7L =5 =0@CH5=0 (=0?@8<5@, ?@8 ?><>I8 DC=:F88 IsConnected)  8 ?>2B>@8BL ?>?KB:C";               break;

      case 8:    OpisanieOshibki="!;8H:>< G0ABK5 70?@>AK. 5>1E>48<> C<5=LH8BL G0AB>BC 70?@>A>2, 87<5=8BL ;>38:C ?@>3@0<<K.";                                                                break;

      case 64:   OpisanieOshibki="!G5B 701;>:8@>20=. 5>1E>48<> ?@5:@0B8BL 2A5 ?>?KB:8 B>@3>2KE >?5@0F89.";                                                                                  break;

      case 65:   OpisanieOshibki="5?@028;L=K9 =><5@ AG5B0. 5>1E>48<> ?@5:@0B8BL 2A5 ?>?KB:8 B>@3>2KE >?5@0F89.";                                                                           break;

      case 128:  OpisanieOshibki="AB5: A@>: >6840=8O A>25@H5=8O A45;:8. 5>1E>48<> C1548BLAO, GB> B>@3>20O >?5@0F8O 459AB28B5;L=> =5 ?@>H;0";                                               break;

      case 129:  OpisanieOshibki="5?@028;L=0O F5=0 bid 8;8 ask, 2>7<>6=>, =5=>@<0;87>20==0O F5=0. 5>1E>48<> >1=>28BL 40==K5 DC=:F859 RefreshRates 8 ?>2B>@8BL ?>?KB:C.";                   break;

      case 130:  OpisanieOshibki="!;8H:>< 1;87:85 AB>?K 8;8 =5?@028;L=> @0AAG8B0==K5 8;8 =5=>@<0;87>20==K5 F5=K 2 AB>?0E ";                                                                  break;

      case 131:  OpisanieOshibki="5?@028;L=K9 >1J5<, >H81:0 2 3@0=C;OF88 >1J5<0. 5>1E>48<> ?@5:@0B8BL 2A5 ?>?KB:8 B>@3>2KE >?5@0F89 8 87<5=8BL ;>38:C ?@>3@0<<K.";                         break;

      case 132:  OpisanieOshibki=" K=>: 70:@KB. >6=> ?>2B>@8BL ?>?KB:C G5@57 4>AB0B>G=> 1>;LH>9 ?@><56CB>: 2@5<5=8 (>B =5A:>;L:8E <8=CB).";                                                 break;

      case 133:  OpisanieOshibki="">@3>2;O 70?@5I5=0. 5>1E>48<> ?@5:@0B8BL 2A5 ?>?KB:8 B>@3>2KE >?5@0F89.";                                                                                 break;

      case 134:  OpisanieOshibki="54>AB0B>G=> 45=53 4;O A>25@H5=8O >?5@0F88. >2B>@OBL A45;:C A B5<8 65 ?0@0<5B@0<8 =5;L7O.";                                                               break;

      case 135:  OpisanieOshibki="&5=0 87<5=8;0AL. >6=> 157 7045@6:8 >1=>28BL 40==K5 ?@8 ?><>I8 DC=:F88 RefreshRates 8 ?>2B>@8BL ?>?KB:C";                                                  break;

      case 136:  OpisanieOshibki="5B F5=. @>:5@ ?> :0:>9-B> ?@8G8=5 (=0?@8<5@, 2 =0G0;5 A5AA88 F5= =5B, =5?>4B25@645==K5 F5=K, 1KAB@K9 @K=>:) =5 40; F5= 8;8 >B:070;.";                    break;

      case 138:  OpisanieOshibki="0?@>H5==0O F5=0 CAB0@5;0, ;81> ?5@5?CB0=K bid 8 ask. >6=> 157 7045@6:8 >1=>28BL 40==K5 ?@8 ?><>I8 DC=:F88 RefreshRates 8 ?>2B>@8BL ?>?KB:C!";            break;

      case 139:  OpisanieOshibki="@45@ 701;>:8@>20= 8 C65 >1@010BK205BAO. 5>1E>48<> ?@5:@0B8BL 2A5 ?>?KB:8 B>@3>2KE >?5@0F89 8 87<5=8BL ;>38:C ?@>3@0<<K";                                 break;

      case 140:  OpisanieOshibki=" 07@5H5=0 B>;L:> ?>:C?:0. >2B>@OBL >?5@0F8N SELL =5;L7O.";                                                                                                break;

      case 141:  OpisanieOshibki="!;8H:>< <=>3> 70?@>A>2. 5>1E>48<> C<5=LH8BL G0AB>BC 70?@>A>2, 87<5=8BL ;>38:C ?@>3@0<<K.";                                                                break;

      case 145:  OpisanieOshibki=">48D8:0F8O 70?@5I5=0, B0: :0: >@45@ A;8H:>< 1;87>: : @K=:C 8 701;>:8@>20= 87-70 2>7<>6=>3> A:>@>3> 8A?>;=5=8O";                                           break;

      case 146:  OpisanieOshibki=">4A8AB5<0 B>@3>2;8 70=OB0. >2B>@8BL ?>?KB:C B>;L:> ?>A;5 B>3>, :0: DC=:F8O IsTradeContextBusy 25@=5B FALSE.";                                            break;

      case 147:  OpisanieOshibki="A?>;L7>20=85 40BK 8AB5G5=8O >@45@0 70?@5I5=> 1@>:5@><. ?5@0F8N <>6=> ?>2B>@8BL B>;L:> 2 B>< A;CG05, 5A;8 >1=C;8BL ?0@0<5B@ expiration";                  break;

      case 148:  OpisanieOshibki=">;8G5AB2> >B:@KBKE 8 >B;>65==KE >@45@>2 4>AB83;> ?@545;0, CAB0=>2;5==>3> 1@>:5@><";                                                                       break;

      case 149:  OpisanieOshibki=">?KB:0 >B:@KBL ?@>B82>?>;>6=CN ?>78F8N : C65 ACI5AB2CNI59 2 A;CG05, 5A;8 E5468@>20=85 70?@5I5=>. ";                                                       break;

      case 150:  OpisanieOshibki=">?KB:0 70:@KBL ?>78F8N ?> 8=AB@C<5=BC 2 ?@>B82>@5G88 A ?@028;>< FIFO. !=0G0;0 =5>1E>48<> 70:@KBL 1>;55 @0==85 ACI5AB2CNI85 ?>78F88 ";                     break;

      case 4109: OpisanieOshibki="">@3>2;O =5 @07@5H5=0. !>25B=8:C 70?@5I5=> B>@3>20BL, =0 3@0D8:5 3@CAB=K9 A<09; 8;8 :@5AB8:. :;NG8B5 30;>G:C « 07@5H8BL A>25B=8:C B>@3>20BL»";            break;

      default:   OpisanieOshibki="!"/ (,  ( = "+DoubleToStr(KodOshibki,0);                                                                                              break;

   }

  

   Print("( "   &,  !($  = "+OpisanieOshibki);

}

//=====================================================================================================================

//=====================================================================================================================

// "    OP_BUY        

void ObrabotkaOrderaOPENBUY(double RazmSredBara, bool ZakrytBUY)

{          

   double LevelStopBezyb;

   

   int KodOshibki;   

   

   bool RezultClose, RezultModify;

   

   RezultClose=false; RezultModify=false;

   

   LevelStopBezyb=0; KodOshibki=0;

   

   //*****************************************************************************

   //*****************************************************************************

   //*****************************************************************************

   

   // +"  +,    OP_BUY  !"#(# !#   +"

   if((ZakrytBUY==true)&&(OrderProfit()>0))

   {

      RezultClose=false;

      RezultClose=OrderClose(OrderTicket(),OrderLots(),Bid,7,clrRed);

   

      //5A;8 >@45@ =5 C40;>AL 70:@KBL

      if(RezultClose==false)

      { 

         KodOshibki=0;

         KodOshibki=GetLastError();

         

         if(KodOshibki!=0)

         {

            PrintTradeServerError(KodOshibki);

            

            Sleep(2000);

            

            RefreshRates();

         }                  

      }

    

      return;

   }   

   

   //*****************************************************************************

   //*****************************************************************************

   //*****************************************************************************



   //  !" !!  #+" /    OP_BUY

   

   //5A;8 C >@45@0 !", AB>? ;>AA, => >= =0E>48BAO  2 157C1KB:5

   if((OrderStopLoss()>0)&&(OrderStopLoss()<OrderOpenPrice()))

   {      

      //C@>25=L AB>? ;>AA0 4;O ?5@52>40 2 157C1KB>:

      LevelStopBezyb=0;

      LevelStopBezyb=Bid-BezybStopPunkts*Point;

      LevelStopBezyb=NormalizeDouble(LevelStopBezyb,Digits);

      

      //5A;8 AB>? ;>AA  ?5@525AB8 2 157C1KB>:

      if(LevelStopBezyb>(OrderOpenPrice()+BezybProfitPunkt*Point))

      {

         //?5@52>48< AB>? ;>AA 2 157C1KB>: D8:A8@CO =51>;LHCN ?@81K;L

         RezultModify=false;

         RezultModify=OrderModify(OrderTicket(),OrderOpenPrice(),LevelStopBezyb,OrderTakeProfit(),0,Aqua);

         

         if(RezultModify==false)

         {

            KodOshibki=0;

            KodOshibki=GetLastError();

            

            if(KodOshibki!=0)

            {

               PrintTradeServerError(KodOshibki);

               

               Sleep(2000);

               

               RefreshRates();

            }            

         }

         

         return;

      }

   }

   

   //*****************************************************************************

   //*****************************************************************************

   //*****************************************************************************        

   

   return;

}

//=====================================================================================================================

//=====================================================================================================================

// "    OP_SELL        

void ObrabotkaOrderaOPENSELL(double RazmSredBara, bool ZakrytSELL)

{         

   double LevelStopBezyb;

   

   int KodOshibki;  

   

   bool RezultClose, RezultModify;

   

   RezultClose=false; RezultModify=false;

   

   LevelStopBezyb=0; KodOshibki=0;     

   

   //*****************************************************************************

   //*****************************************************************************

   //*****************************************************************************  

   

   // +"  +,    OP_SELL   " ,

   if((ZakrytSELL==true)&&(OrderProfit()>0))

   {

      RezultClose=false;

      RezultClose=OrderClose(OrderTicket(),OrderLots(),Ask,7,clrRed);

   

      //5A;8 >@45@ =5 C40;>AL 70:@KBL

      if(RezultClose==false)

      { 

         KodOshibki=0;

         KodOshibki=GetLastError();

         

         if(KodOshibki!=0)

         {

            PrintTradeServerError(KodOshibki);

            

            Sleep(2000);

            

            RefreshRates();

         }                  

      }

    

      return;

   }         

   

   //*****************************************************************************

   //*****************************************************************************

   //*****************************************************************************

   

   //  !" !!  #+" /    OP_SELL

   

   //5A;8 C >@45@0 !", AB>? ;>AA, => >= =0E>48BAO  2 157C1KB:5

   if((OrderStopLoss()>0)&&(OrderStopLoss()>OrderOpenPrice()))

   {      

      //C@>25=L AB>? ;>AA0 4;O ?5@52>40 2 157C1KB>:

      LevelStopBezyb=0;

      LevelStopBezyb=Ask+BezybStopPunkts*Point;

      LevelStopBezyb=NormalizeDouble(LevelStopBezyb,Digits);

      

      //5A;8 AB>? ;>AA  ?5@525AB8 2 157C1KB>:

      if(LevelStopBezyb<(OrderOpenPrice()-BezybProfitPunkt*Point))

      {

         //?5@52>48< AB>? ;>AA 2 157C1KB>: D8:A8@CO =51>;LHCN ?@81K;L

         RezultModify=false;

         RezultModify=OrderModify(OrderTicket(),OrderOpenPrice(),LevelStopBezyb,OrderTakeProfit(),0,Aqua);

         

         if(RezultModify==false)

         {

            KodOshibki=0;

            KodOshibki=GetLastError();

            

            if(KodOshibki!=0)

            {

               PrintTradeServerError(KodOshibki);

               

               Sleep(2000);

               

               RefreshRates();

            }            

         }

         

         return;

      }

   }

   

   //*****************************************************************************

   //*****************************************************************************

   //*****************************************************************************   

   

   return;

}

//=====================================================================================================================

//=====================================================================================================================

// +"  $&/   , " +"+% !"

void PereborOrderovSovetnika(double RazmerSrednBara, bool ZakrivayBUY, bool ZakrivaySELL)

{

   int KolvoOrderov, i;   

   

   KolvoOrderov=0;

   

   KolvoOrderov=OrdersTotal();

   

   //5A;8 >@45@>2 =5B - 2KE>48< 87 ?@>F54C@K

   if(KolvoOrderov<1)

   {

      return;

   }

   

   //2K18@05< B>;L:> B5 >@45@0, :>B>@K5 >B:@K; =0H A>25B=8:

   for(i=(KolvoOrderov-1); i>=0; i--)

   {

      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)

      {

         // "    OP_BUY

         if((OrderSymbol()==Symbol())&&(OrderType()==OP_BUY))

         {

            if(OrderComment()=="TYNGUSKA")

            {

               ObrabotkaOrderaOPENBUY(RazmerSrednBara,ZakrivayBUY);

               continue;

            }                                     

         }

         

         // "    OP_SELL

         if((OrderSymbol()==Symbol())&&(OrderType()==OP_SELL))

         {

            if(OrderComment()=="TYNGUSKA")

            {

               ObrabotkaOrderaOPENSELL(RazmerSrednBara,ZakrivaySELL);

               continue;

            }                                     

         }         

      }

   }

      

   return;

}

//=====================================================================================================================

//=====================================================================================================================

// +" !   !  !'/   !, 

bool ZakrytSdelkyBUYCrossMACD(double SredTelo, int b)

{

   double MacdCurrent, MacdPrevious, MacdValueABS;

   

   double SignalCurrent, SignalPrevious, BetterDirect, BetterABC;

   

   int levbar;

   

   bool zakrbuy, DiverBEAR;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   zakrbuy=false;

   

   //10@ A;520 >B 10@0 

   levbar=b+1;



   //2 7=0G5=8O 8=48:0B>@0 

   MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b);

   MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,levbar);

   

   //2 7=0G5=8O A83=0;L=>9 ;8=88 

   SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,b);

   SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,levbar);

   

   //<>4C;L B5:CI53> 7=0G5=8O 

   MacdValueABS=MathAbs(MacdCurrent);



   //?5@5A5G5=85  8 A83=0;L=>9 ;8=88 A25@EC 2=87 =0 1>;LH>9 2KA>B5

   if((MacdCurrent>0)&&(MacdCurrent<SignalCurrent)) 

   {

      if((MacdPrevious>SignalPrevious)&&(MacdValueABS>MACDCloseBigLevel))

      {

         //zakrbuy=true;

      }

   }

   

   //?@>25@:0 =0 =0;8G85 , 4825@35=F88

   DiverBEAR=false;

   DiverBEAR=DiverBearOXOTNIK777(SredTelo,b);

   

   //5A;8 5ABL <54256LO 4825@35=F8O - 70:@K205< ?@81K;L=CN ##

   if(DiverBEAR==true)

   {

      //zakrbuy=true;

   }

   

   BetterDirect=0;

   BetterDirect=DirectBETTER(NastrBetterWarp,NastrBetterDeviat,NastrBetterAmplit,NastrBetterDistor,b);

   BetterDirect=NormalizeDouble(BetterDirect,2);

   

   BetterABC=0;

   BetterABC=MathAbs(BetterDirect);

   

   if((BetterDirect<0)&&(BetterABC>BetterZnachCloseMin))

   {

      //zakrbuy=true;

   }

   

   return(zakrbuy);

}

//=====================================================================================================================

//=====================================================================================================================

// +" ! !  !  !'/   !, 

bool ZakrytSdelkySELLCrossMACD(double SredTelo, int b)

{

   double MacdCurrent, MacdPrevious, MacdValueABS;

   

   double SignalCurrent, SignalPrevious, BetterDirect, BetterABC;

   

   int levbar;

   

   bool zakrsell, DiverBULL;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   zakrsell=false;

   

   //10@ A;520 >B 10@0 

   levbar=b+1;



   //2 7=0G5=8O 8=48:0B>@0 

   MacdCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b);

   MacdPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,levbar);

   

   //2 7=0G5=8O A83=0;L=>9 ;8=88 

   SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,b);

   SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,levbar);

   

   //<>4C;L B5:CI53> 7=0G5=8O 

   MacdValueABS=MathAbs(MacdCurrent);



   //?5@5A5G5=85  8 A83=0;L=>9 ;8=88 A=87C 225@E =0 1>;LH>9 3;C18=5

   if((MacdCurrent<0)&&(MacdCurrent>SignalCurrent)) 

   {

      if((MacdPrevious<SignalPrevious)&&(MacdValueABS>MACDCloseBigLevel))

      {

         //zakrsell=true;

      }

   }

   

   //?@>25@:0 =0 =0;8G85 +', 4825@35=F88

   DiverBULL=false;

   DiverBULL=DiverBullOXOTNIK777(b);

   

   //5A;8 5ABL +',/ 4825@35=F8O - 70:@K205< ?@81K;L=CN  #

   if(DiverBULL==true)

   {

      //zakrsell=true;

   }   

   

   BetterDirect=0;

   BetterDirect=DirectBETTER(NastrBetterWarp,NastrBetterDeviat,NastrBetterAmplit,NastrBetterDistor,b);

   BetterDirect=NormalizeDouble(BetterDirect,2);   

   

   BetterABC=0;

   BetterABC=MathAbs(BetterDirect);

   

   if((BetterDirect>0)&&(BetterABC>BetterZnachCloseMin))

   {

      //zakrsell=true;

   }   

   

   return(zakrsell);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//A@54=89 @07<5@   2 ?C=:B0E, B>G=>ABL 2 7=0:0, >BAG5B 845B >B C:070==>3> 10@0 

double SredniyRazmerBaraPunkts(int b)

{

   double sredrazmbara, dlinabarobsh, razmerbarai;



   int i, count, total, levgr;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   sredrazmbara=0;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 4;O ?>4AG5B0

   total=Bars-30;

   levgr=KolvoBarovRaschetaSredn+b;

   levgr=MathMin(total,levgr);

   

   //>1I0O 4;8=0 AC<<8@C5<KE 10;;>2 2 ?C=:B0E

   dlinabarobsh=0;

   

   count=0;

   

   for(i=b; i<levgr; i++)

   {

      razmerbarai=High[i]-Low[i];

      

      dlinabarobsh=dlinabarobsh+razmerbarai;

      

      count=count+1;

   }

   

   //>1I0O 4;8=0 2 F5;KE ?C=:B0E

   dlinabarobsh=dlinabarobsh/Point;

   dlinabarobsh=MathRound(dlinabarobsh);

   

   //A@54=89 @07<5@ 10@0 2 ?C=:B0E =0 3@0D8:5 B>G=>ABL 2 7=0:0

   sredrazmbara=dlinabarobsh/count;

   

   sredrazmbara=NormalizeDouble(sredrazmbara,2);

  

   return(sredrazmbara);

}

//=====================================================================================================================

//=====================================================================================================================

//A@54=89 @07<5@ B5;0 A25G8 2 ?C=:B0E, B>G=>ABL 2 7=0:0, >BAG5B 845B >B C:070==>3> 10@0 

double SredniyRazmerTelaPunkts(int b)

{

   double sredrazmtela, dlinatelobsh, razmertelai;



   int i, count, total, levgr;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   sredrazmtela=0;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 4;O ?>4AG5B0

   total=Bars-30;

   levgr=KolvoBarovRaschetaSredn+b;

   levgr=MathMin(total,levgr);

   

   dlinatelobsh=0;

   

   count=0;

   

   for(i=b; i<levgr; i++)

   {

      razmertelai=Open[i]-Close[i];

      

      razmertelai=MathAbs(razmertelai);

      

      dlinatelobsh=dlinatelobsh+razmertelai;

      

      count=count+1;

   }

   

   //>1I0O 4;8=0 2 F5;KE ?C=:B0E

   dlinatelobsh=dlinatelobsh/Point;

   dlinatelobsh=MathRound(dlinatelobsh);

   

   //A@54=89 @07<5@ B5;0 A25G8 =0 3@0D8:5 B>G=>ABL 2 7=0:0

   sredrazmtela=dlinatelobsh/count;

   

   sredrazmtela=NormalizeDouble(sredrazmtela,2);

  

   return(sredrazmtela);

}

//=====================================================================================================================

//=====================================================================================================================

//$$&" " +', !'  ! #   # "   $

double KoeffTelaSvechiBULL(double sredtelo, int b)

{

   double koeftela, telob;

   

   koeftela=0; telob=0;

   

   //@0AG5B B5;0 +', A25G8 2 ?C=:B0E

   telob=Close[b]-Open[b];

   telob=telob/Point;

   telob=MathRound(telob);

   

   //:>5DD8F85=B B5;0 A25G8 : A@54=5<C @07<5@C B5;0 =0 3@0D8:5

   koeftela=telob/sredtelo;

   koeftela=NormalizeDouble(koeftela,2);   

   

   return(koeftela);

}

//=====================================================================================================================

//=====================================================================================================================

//$$&" " , !'  ! #   # "   $

double KoeffTelaSvechiBEAR(double sredtelo, int b)

{

   double koeftela, telob;

   

   koeftela=0; telob=0;

   

   //@0AG5B B5;0 , A25G8 2 ?C=:B0E

   telob=Open[b]-Close[b];

   telob=telob/Point;

   telob=MathRound(telob);

   

   //:>5DD8F85=B B5;0 A25G8 : A@54=5<C @07<5@C B5;0 =0 3@0D8:5

   koeftela=telob/sredtelo;

   koeftela=NormalizeDouble(koeftela,2);   

   

   return(koeftela);

}

//=====================================================================================================================

//=====================================================================================================================

//$$&"    "#)     ! #   #     $

double KoeffRazmeraBaraB(double srednbar, int b)

{

   double koefbara, razmbarab;

   

   koefbara=0; razmbarab=0;

   

   //@0AG5B @07<5@0 10@0  2 ?C=:B0E

   razmbarab=High[b]-Low[b];

   razmbarab=razmbarab/Point;

   razmbarab=MathRound(razmbarab);

   

   //:>5DD8F85=B @07<5@0 10@0  : A@54=5<C @07<5@C 10@0 =0 3@0D8:5

   koefbara=razmbarab/srednbar;

   koefbara=NormalizeDouble(koefbara,2);   

   

   return(koefbara);

}

//=====================================================================================================================

//=====================================================================================================================

// &" " !' " )     

double ProcentTelaSvechi(int b)

{

   double proctela, razmerbara, telosvechi;

   

   proctela=0; razmerbara=0; telosvechi=0;

   

   //@0AG5B @07<5@0 10@0 2 ?C=:B0E

   razmerbara=High[b]-Low[b];

   razmerbara=razmerbara/Point;

   razmerbara=MathRound(razmerbara);

   

   //@0AG5B B5;0 A25G8 2 ?C=:B0E

   telosvechi=Open[b]-Close[b];

   telosvechi=MathAbs(telosvechi);

   telosvechi=telosvechi/Point;

   telosvechi=MathRound(telosvechi);

   

   //=5;L7O 4>?CA:0BL 45;5=85 =0 0

   if(razmerbara>0)

   {

      //?@>F5=B B5;0 A25G8 >B >1I53> @07<5@0 10@0

      proctela=telosvechi*100;

      proctela=proctela/razmerbara;

      proctela=NormalizeDouble(proctela,2);

   }  

   

   return(proctela);

}

//=====================================================================================================================

//=====================================================================================================================

//+'! '!"   +  "+%  (  +', !'    

int RaschetProbitVershinOne(int b)

{

   int i, st, count, levgr;

   

   count=0;

   

   st=b+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-30;

   

   for(i=st; i<levgr; i++)

   {  

      if((Open[b]<High[i])&&(Close[b]>High[i]))

      {

         count=count+1;

      }

      else

      {

         break;

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//+'! '!"   +  "+%  (  +', !'    

int RaschetProbitVershinTWO(int b)

{

   int i, st, count, levgr;

   

   count=0;

   

   st=b+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-30;

   

   for(i=st; i<levgr; i++)

   {  

      if((Open[st]<High[i])&&(Close[b]>High[i]))

      {

         count=count+1;

      }

      else

      {

         break;

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

// !'" '!"   +  "+%   , !'    

int RaschetProbitNizinOne(int b)

{

   int i, st, count, levgr;

   

   count=0;

   

   st=b+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-30;

   

   for(i=st; i<levgr; i++)

   {  

      if((Open[b]>Low[i])&&(Close[b]<Low[i]))

      {

         count=count+1;

      }

      else

      {

         break;

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

// !'" '!"   +  "+%   , !'    

int RaschetProbitNizinTWO(int b)

{

   int i, st, count, levgr;

   

   count=0;

   

   st=b+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-30;

   

   for(i=st; i<levgr; i++)

   {  

      if((Open[st]>Low[i])&&(Close[b]<Low[i]))

      {

         count=count+1;

      }

      else

      {

         break;

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A;520 >B 7040==>9 =878=K niz, =87K :>B>@KE 2KH5, G5< =878=0 niz

//4;O CA:>@5=8O @01>BK DC=:F88, ?>4AG5B 2545< 4> KolBarovSrednTelo 0 =5 2A5E 10@>2

// &#   "!"  -  ""  ,

int SlevaTeloSvechOtNiziny(int niz)

{

   int i, st, total, count, levgr;

   

   count=0;

   

   st=niz+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-10;

   total=KolvoBarovRaschetaSredn+niz;

   total=MathMin(total,levgr);      

   

   for(i=st; i<total; i++)

   {

      //B5;> A25G8 =0 10@5 i 4>;6=> =0E>48BLAO 2KH5 4=0 =878=K

      if((Open[i]>=Low[niz])&&(Close[i]>=Low[niz]))

      {

         count=count+1;

      }

      else

      {

         break;

      }      

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A;520 >B 7040==>9 =878=K niz, =87K :>B>@KE 2KH5, G5< =878=0 niz

//4;O CA:>@5=8O @01>BK DC=:F88, ?>4AG5B 2545< 4> KolBarovSrednTelo 0 =5 2A5E 10@>2

// &#   "!"  -  ""  ,

int SlevaBarovOtNiziny(int niz)

{

   int i, st, total, count, levgr;

   

   count=0;

   

   st=niz+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-10;

   total=KolvoBarovRaschetaSredn+niz;

   total=MathMin(total,levgr);      

   

   for(i=st; i<total; i++)

   {

      if(Low[i]>=Low[niz])

      {

         count=count+1;

      }

      else

      {

         break;

      }      

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A;520 >B ?8:0, 25@H8=K :>B>@KE =865, G5< 25@H8=0 ?8:0 pik

//4;O CA:>@5=8O @01>BK DC=:F88, ?>4AG5B 2545< 4> KolBarovSrednTelo 0 =5 4> Bars

// &#   "!"  -  ""  ,

int SlevaBarovOtVershiny(int pik)

{

   int i, st, total, count, levgr;

   

   count=0;

   

   st=pik+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-10;

   total=KolvoBarovRaschetaSredn+pik;

   total=MathMin(total,levgr);   

   

   for(i=st; i<total; i++)

   {

      if(High[i]<=High[pik])

      {

         count=count+1;

      }

      else

      {

         break;

      }      

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A;520 >B ?8:0, 25@H8=K :>B>@KE =865, G5< 25@H8=0 ?8:0 pik

//4;O CA:>@5=8O @01>BK DC=:F88, ?>4AG5B 2545< 4> KolBarovSrednTelo 0 =5 4> Bars

// &#   "!"  -  ""  ,

int SlevaTeloSvechOtVershiny(int pik)

{

   int i, st, total, count, levgr;

   

   count=0;

   

   st=pik+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-10;

   total=KolvoBarovRaschetaSredn+pik;

   total=MathMin(total,levgr);   

   

   for(i=st; i<total; i++)

   {

      //B5;> A25G8 =0 10@5 i 4>;6=> =0E>48BLAO =865 ?8:0 25@H8=K

      if((Open[i]<=High[pik])&&(Close[i]<=High[pik]))

      {

         count=count+1;

      }

      else

      {

         break;

      }      

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

/// +',/ !'

//   '/  +', !'  #% !!% +',% !'

bool DvoinayaSvechaBULL(double sredtel, int b1)

{

   double levtel, pravtel, telomin, telosum;

   

   int b2;

   

   bool svecha2x;

   

   b2=b1+1;

   

   svecha2x=false;

   

   if((Open[b2]<Close[b2])&&(Open[b1]<Close[b1]))

   {

      if((Close[b1]>High[b2])&&(Open[b2]<=Open[b1]))

      {

         //B5;> ;52>9 A25G8 2 ?C=:B0E

         levtel=Close[b2]-Open[b2];

         levtel=levtel/Point;

         levtel=MathRound(levtel);         

         

         //B5;> ?@02>9 A25G8 2 ?C=:B0E

         pravtel=Close[b1]-Open[b1];

         pravtel=pravtel/Point;

         pravtel=MathRound(pravtel);         

         

         //B5;> A>AB02=>9 A25G8 2 ?C=:B0E

         telosum=Close[b1]-Open[b2];

         telosum=telosum/Point;

         telosum=MathRound(telosum);

         

         //<8=8<0;L=K9 @07<5@ AC<<0@=>3> B5;0 42>9=>9 A25G8 2 ?C=:B0E

         telomin=sredtel*KoeffTelaObshiySvechi2x;

         telomin=MathRound(telomin);

         

         //8B>3>20O A25G0 1>;LH0O 8 5ABL @073>=  %

         if((telosum>telomin)&&(levtel<pravtel))

         {

            svecha2x=true;

         }

         

         //"   "

         

         //<8=8<0;L=K9 @07<5@ B5;0 :064>9 87 A25G59

         telomin=sredtel*KoeffTelaKajdoySvechi2x;

         telomin=MathRound(telomin);         

         

         //;520O 8 ?@020O A25G8 4>AB0B>G=> 1>;LH85

         if((levtel>telomin)&&(pravtel>telomin))

         {

            //?@020O A25G0 =5 A8;L=> <5=LH5 ;52>9

            pravtel=pravtel*1.6;

            pravtel=MathRound(pravtel);

            

            if(pravtel>levtel)

            {

               svecha2x=true;

            }

         }         

      }

   }

   

   return(svecha2x);

}

//=====================================================================================================================

//=====================================================================================================================

/// ,/ !'

//   '/  , !'  #% !!% ,% !'

bool DvoinayaSvechaBEAR(double sredtel, int b1)

{

   double levtel, pravtel, telomin, telosum;

   

   int b2;

   

   bool svecha2x;

   

   b2=b1+1;

   

   svecha2x=false;

   

   if((Open[b2]>Close[b2])&&(Open[b1]>Close[b1]))

   {

      if((Open[b2]>=Open[b1])&&(Close[b1]<Low[b2]))

      {

         //B5;> ;52>9 A25G8 2 ?C=:B0E

         levtel=Open[b2]-Close[b2];

         levtel=levtel/Point;         

         

         //B5;> ?@02>9 A25G8 2 ?C=:B0E

         pravtel=Open[b1]-Close[b1];

         pravtel=pravtel/Point;         

         

         //B5;> A>AB02=>9 A25G8 2 ?C=:B0E

         telosum=Open[b2]-Close[b1];

         telosum=telosum/Point;

         

         //<8=8<0;L=K9 @07<5@ AC<<0@=>3> B5;0 42>9=>9 A25G8 2 ?C=:B0E

         telomin=sredtel*KoeffTelaObshiySvechi2x;

         telomin=MathRound(telomin);

         

         //8B>3>20O A25G0 1>;LH0O 8 5ABL @073>= 

         if((telosum>telomin)&&(levtel<pravtel))

         {

            svecha2x=true;

         }

         

         //"   "

         

         //<8=8<0;L=K9 @07<5@ B5;0 :064>9 87 A25G59

         telomin=sredtel*KoeffTelaKajdoySvechi2x;

         telomin=MathRound(telomin);         

         

         //;520O 8 ?@020O A25G8 4>AB0B>G=> 1>;LH85

         if((levtel>telomin)&&(pravtel>telomin))

         {

            //?@020O A25G0 =5 A8;L=> <5=LH5 ;52>9

            pravtel=pravtel*1.6;

            pravtel=MathRound(pravtel);

            

            if(pravtel>levtel)

            {

               svecha2x=true;

            }

         }         

      }

   }

   

   return(svecha2x);

}

//=====================================================================================================================

//=====================================================================================================================

// !'" !+ #,! /    / !'    

double RaschetImpulsStrength(double koefvolume, double sredtelo, int b)

{

   double impulspower, xodbarab, koeffxoda;

   

   impulspower=0; xodbarab=0; koeffxoda=0;

   

   // " / +', !'

   if((Open[b]<Close[b])&&(sredtelo>0))

   {

      //@0AG5B 4;8=K E>40 A=87C 225@E 4;O +', A25G8 2 ?C=:B0E

      xodbarab=Close[b]-Low[b];

      xodbarab=xodbarab/Point;

      xodbarab=MathRound(xodbarab);

      

      //:>MDD8F85=B 4;8=K E>40 10@0  : A@54=5<C @07<5@C B5;0 A25G8

      koeffxoda=xodbarab/sredtelo;

      koeffxoda=NormalizeDouble(koeffxoda,2);

      

      //@0AG5B A8;K 8<?C;LA0 4;O ?@>25@O5<>9 A25G8 =0 10@5 

      impulspower=koefvolume*koeffxoda;

      impulspower=MathRound(impulspower);

   }   

   

   // " / , !'

   if((Open[b]>Close[b])&&(sredtelo>0))

   {

      //@0AG5B 4;8=K E>40 A25@EC 2=87 4;O , A25G8 2 ?C=:B0E

      xodbarab=High[b]-Close[b];

      xodbarab=xodbarab/Point;

      xodbarab=MathRound(xodbarab);

      

      //:>MDD8F85=B 4;8=K E>40 10@0  : A@54=5<C @07<5@C B5;0 A25G8

      koeffxoda=xodbarab/sredtelo;

      koeffxoda=NormalizeDouble(koeffxoda,2);

      

      //@0AG5B A8;K 8<?C;LA0 4;O ?@>25@O5<>9 A25G8 =0 10@5 

      impulspower=koefvolume*koeffxoda;

      impulspower=MathRound(impulspower);

   }   

   

   return(impulspower);

}

//=====================================================================================================================

//=====================================================================================================================

// / "!"/ " - A=0G0;0 C40;O5B AB0@CN, 70B5< @8AC5B =>2CN

void DrawRightLABEL(string name, int X, int Y, color clr, string Nadpis)

{

   int win_idx;

   

   bool sozdan;

   

   sozdan=false;

   

   win_idx=0;

   

   //5A;8 B0:>9 >1J5:B C65 5ABL =0 3@0D8:5, 53> =C6=> C40;8BL

   win_idx=ObjectFind(name);

   

   if(win_idx!=-1)

   {

      ObjectDelete(name);

      Sleep(100);

   }

   

   //?>A;5 C40;5=8O >1J5:B0 ?@>25@O5<, GB> 53> =0 3@0D8:5 C65 =5B

   win_idx=ObjectFind(name);

   

   //5A;8 B0:>3> >1J5:B0 =0 3@0D8:5 =5B, B> <>6=> A>74020BL =>2K9

   if(win_idx==-1)

   {

      sozdan=ObjectCreate(name,OBJ_LABEL,0,0,0);

      Sleep(100);

   }

   

   //?@>25@8<, 5ABL ;8 =0 3@0D8:5 =>2K9 A>740==K9 >1J5:B

   win_idx=ObjectFind(name);

   

   //5A;8 >1J5:B A>740=, <>6=> 704020BL 53> ?0@0<5B@K

   if((win_idx!=-1)&&(sozdan==true))

   {

      ObjectSet(name,OBJPROP_CORNER,CORNER_RIGHT_UPPER);

      ObjectSet(name,OBJPROP_XDISTANCE,X);

      ObjectSet(name,OBJPROP_YDISTANCE,Y);

      ObjectSetText(name,Nadpis,RazmerShriftaNadpisey,"Arial",clr);

   }

   

   return;

}

//=====================================================================================================================

//=====================================================================================================================

//&" ,/ "!"/ " - A=0G0;0 C40;O5B AB0@CN, 70B5< @8AC5B =>2CN

//'  "  !    % ##

void DrawCentralLABEL(string name,int Y,color clr,string Nadpis)

{

   int win_idx;

   

   bool sozdan;

   

   sozdan=false;

   

   win_idx=0;

   

   //5A;8 B0:>9 >1J5:B C65 5ABL =0 3@0D8:5, 53> =C6=> C40;8BL

   win_idx=ObjectFind(name);

   

   if(win_idx!=-1)

   {

      ObjectDelete(name);

      Sleep(100);

   }

   

   //?>A;5 C40;5=8O >1J5:B0 ?@>25@O5<, GB> 53> =0 3@0D8:5 C65 =5B

   win_idx=ObjectFind(name);

   

   //5A;8 B0:>3> >1J5:B0 =0 3@0D8:5 =5B, B> <>6=> A>74020BL =>2K9

   if(win_idx==-1)

   {

      sozdan=ObjectCreate(name,OBJ_LABEL,0,0,0);

      Sleep(100);

   }

   

   //?@>25@8<, 5ABL ;8 =0 3@0D8:5 =>2K9 A>740==K9 >1J5:B

   win_idx=ObjectFind(name);

   

   //5A;8 >1J5:B A>740=, <>6=> 704020BL 53> ?0@0<5B@K

   if((win_idx!=-1)&&(sozdan==true))

   {

      ObjectSet(name,OBJPROP_CORNER,CORNER_LEFT_UPPER);

      ObjectSet(name,OBJPROP_XDISTANCE,CentralNadpisXPozition);

      ObjectSet(name,OBJPROP_YDISTANCE,Y);

      ObjectSetText(name,Nadpis,RazmerShriftaNadpisey,"Arial",clr);

   }

   

   return;

}

//=====================================================================================================================

//=====================================================================================================================

/// "!"/ " - A=0G0;0 C40;O5B AB0@CN, 70B5< @8AC5B =>2CN

void DrawLeftLABEL(string name,int Y,color clr,string Nadpis)

{

   int win_idx;

   

   bool sozdan;

   

   sozdan=false;

   

   win_idx=0;

   

   //5A;8 B0:>9 >1J5:B C65 5ABL =0 3@0D8:5, 53> =C6=> C40;8BL

   win_idx=ObjectFind(name);

   

   if(win_idx!=-1)

   {

      ObjectDelete(name);

      Sleep(100);

   }

   

   //?>A;5 C40;5=8O >1J5:B0 ?@>25@O5<, GB> 53> =0 3@0D8:5 C65 =5B

   win_idx=ObjectFind(name);

   

   //5A;8 B0:>3> >1J5:B0 =0 3@0D8:5 =5B, B> <>6=> A>74020BL =>2K9

   if(win_idx==-1)

   {

      sozdan=ObjectCreate(name,OBJ_LABEL,0,0,0);

      Sleep(100);

   }

   

   //?@>25@8<, 5ABL ;8 =0 3@0D8:5 =>2K9 A>740==K9 >1J5:B

   win_idx=ObjectFind(name);

   

   //5A;8 >1J5:B A>740=, <>6=> 704020BL 53> ?0@0<5B@K

   if((win_idx!=-1)&&(sozdan==true))

   {

      ObjectSet(name,OBJPROP_CORNER,CORNER_LEFT_UPPER);

      ObjectSet(name,OBJPROP_XDISTANCE,15);

      ObjectSet(name,OBJPROP_YDISTANCE,Y);

      ObjectSetText(name,Nadpis,RazmerShriftaNadpisey,"Arial",clr);

   }

   

   return;

}

//=====================================================================================================================

//=====================================================================================================================

//@0AG5B 1>;55 AB0@H53> B09<D@59<0 >B=>A8B5;L=> B5:CI53>

int StarshiyTimeFrame()

{

   int TekyshPeriod, StarshPeriod;

   

   TekyshPeriod=0; StarshPeriod=0;

   

   TekyshPeriod=Period();

   

   if(TekyshPeriod==PERIOD_M1) {StarshPeriod=PERIOD_M5;}

   if(TekyshPeriod==PERIOD_M5) {StarshPeriod=PERIOD_M15;}

   if(TekyshPeriod==PERIOD_M15){StarshPeriod=PERIOD_M30;}

   if(TekyshPeriod==PERIOD_M30){StarshPeriod=PERIOD_H1;}

   if(TekyshPeriod==PERIOD_H1) {StarshPeriod=PERIOD_H4;}

   if(TekyshPeriod==PERIOD_H4) {StarshPeriod=PERIOD_D1;}

   if(TekyshPeriod==PERIOD_D1) {StarshPeriod=PERIOD_W1;}

   if(TekyshPeriod==PERIOD_W1) {StarshPeriod=PERIOD_MN1;}

   

   return(StarshPeriod);

}

//=====================================================================================================================

//=====================================================================================================================

//$$&" *    / !'  "(.  ! # *#

double RaschetKoeffVolumeTyng(int b)

{

   //>B25B 2>72@0I05<K9 DC=:F859

   double SrednVolume, KoeffVolume;   

   

   long TekyshVolume, ObshiyVolume;



   int i, c, count, total, levgr;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   KoeffVolume=0;

   

   //10@ A;520 >B 10@0 

   c=b+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levgr=Bars-30;

   total=KolvoBarovRaschetaSredn+b;

   total=MathMin(total,levgr);

   

   ObshiyVolume=0;

   

   count=0;

   

   for(i=b; i<total; i++)

   {

      ObshiyVolume=ObshiyVolume+Volume[i];

      

      count=count+1;

   }

   

   //A@54=OO 25;8G8=0 >1J5<0 10@0

   SrednVolume=ObshiyVolume/count;

   

   //B5:CI89 >1J5< =0 ?@>25@O5<>< 10@5 

   TekyshVolume=Volume[b];

   

   //5A;8 5ABL 42>9=0O 1KGLO A25G0

   if((Open[c]<Close[c])&&(Open[b]<Close[b]))

   {

      if((Open[c]<Low[b])&&(Close[b]>High[c]))

      {

         TekyshVolume=MathMax(Volume[c],Volume[b]);

      }

   }

   

   //5A;8 5ABL 42>9=0O <54256LO A25G0

   if((Open[c]>Close[c])&&(Open[b]>Close[b]))

   {

      if((Open[c]>High[b])&&(Close[b]<Low[c]))

      {

         TekyshVolume=MathMax(Volume[c],Volume[b]);

      }

   }   

   

   //:>5DD8F85=B >1J5<0 =0 ?@>25@O5<>< 10@5  : A@54=5<C >1J5<C

   KoeffVolume=TekyshVolume/SrednVolume;

   KoeffVolume=NormalizeDouble(KoeffVolume,2);

  

   return(KoeffVolume);   

}



//=====================================================================================================================

//=====================================================================================================================



//=====================================================================================================================

//=====================================================================================================================

//:>;8G5AB2> A25G59 A;520 >B ?@>25@O5<>9, C :>B>@KE B5;> <5=LH5, G5< C ?@>25@O5<>9

int KolvoLittleCandelsLeft(int b)

{

   double teloi, telob;

   

   int i, st, count;

   

   //B5;> A25G8 =0 10@5  2 F5;KE ?C=:B0E

   telob=Open[b]-Close[b];

   telob=MathAbs(telob);

   telob=telob/Point;

   telob=MathRound(telob);

   

   teloi=0;

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=b+1;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   count=0;

      

   //A:>;L:> A25G59 A;520 >B 10@0  8<5NB <5=LH55 B5;>, G5< =0 10@5 

   for(i=st; i<Bars; i++)

   {  

      //B5;> A25G8 =0 10@5 i 2 F5;KE ?C=:B0E

      teloi=Open[i]-Close[i];

      teloi=MathAbs(teloi);

      teloi=teloi/Point;

      teloi=MathRound(teloi);      

      

      if(teloi<telob)

      {

         count=count+1;

      }

      else

      {

         break;

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

///  &  (+ &

//?>8A: ;52>3> :@0O  (+ F5= - A;>6=K9 20@80=B, GB>1K @072>@>B 1K; 

//845< 2;52>, ?>:0 + !' =0E>4OBAO +( 70:@KB8O , A25G8 =0 10@5 

//2 A;CG05 CA?5E0 2>72@0I05B       &+  (+, ;81> 0 5A;8 =5B

int RaschetLevgrVershinGOOD(double sredtelo, int b)

{

   double xodpunkt, verxlevel;

   

   int levgran, predvgrn, levpoisk, totalbar, kolprobniz, st, i;

   

   int kolvnytbars, PikVershBar;

   

   bool Svecha2XBEAR;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //?@5420@8B5;L=0O ;520O 3@0=8F0 25@H8=K

   predvgrn=0;

   

   //:>;8G5AB2> ?@>18BKE =878= <54256L59 A25G59 =0 10@5 

   kolprobniz=0;

   

   //:>;8G5AB2> 2=CB@5==8E 10@>2 25@H8=K

   kolvnytbars=0;

   

   //=><5@ 10@0 - ?8:0 25@H8=K

   PikVershBar=0;   



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   totalbar=Bars-50;

   levpoisk=b+DalnPoiskaLevgrMAX;

   levpoisk=MathMin(totalbar,levpoisk);

   

   //AB0@B>2K9 10@ F8:;0

   st=b+1;   

   

   //A25G0 =0 10@5  4>;60 1KBL ,/

   if(Open[b]>Close[b])

   {

      //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK  (+ F5=

      for(i=st; i<levpoisk; i++)

      {

         //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/    !'

         if(Close[b]<Low[i])

         {

            continue;

         }

         else

         {

            //?@5420@8B5;L=0O ;520O 3@0=8F0  (+

            predvgrn=i;

            break;

         }

      }

   }

   

   //5A;8 ?@5420@8B5;L=0O 3@0=8F0 =0945=0  +  "  (+

   if(predvgrn>b)

   {

      //:>;8G5AB2> ?@>18BKE =878= >4=>9 <54256L59 A25G59 =0 10@5 

      kolprobniz=RaschetProbitNizinOne(b);

      

      //:>;8G5AB2> 2=CB@5==8E 10@>2 25@H8=K

      kolvnytbars=predvgrn-b;

      kolvnytbars=kolvnytbars-1;

      

      //<54256LO A25G0 =0 10@5  ?@>18205B 2A5 2=CB@5==85 10@K 25@H8=K

      if((kolprobniz==kolvnytbars)&&(kolvnytbars>1))

      {

         levgran=predvgrn;

      }

   }

   

   //"   "  (+ &

   if(predvgrn>b)

   {

      //?>8A: 10@0 - ?8:0 25@H8=K

      PikVershBar=0;

      PikVershBar=PoiskBaraPikaVershin(predvgrn,b);

      

      //=86=OO B>G:0 10@0 ?8:0 25@H8=K ?@>18205BAO 2=87 =0 10@5 

      if((Open[b]>Low[PikVershBar])&&(Close[b]<Low[PikVershBar]))

      {

         levgran=predvgrn;

      }   

   }         

   

   //" "  "  (+ &

   

   /// ,/ !'

   Svecha2XBEAR=false;

   Svecha2XBEAR=DvoinayaSvechaBEAR(sredtelo,b);

   

   if((predvgrn>b)&&(Svecha2XBEAR==true))

   {      

      //E>4 F5=K 2 ?C=:B0E A25@EC 2=87 =0 42>9=>9 A25G5

      xodpunkt=(Open[st]-Close[b])/Point;

      xodpunkt=MathRound(xodpunkt);

      

      //25@E=89 C@>25=L 5A;8 : >B:@KB8N A25G8 ?@81028BL E>4 2 ?C=:B0E

      verxlevel=Open[st]+xodpunkt*Point;

      verxlevel=NormalizeDouble(verxlevel,Digits);

      

      //5A;8 ?>;CG5==K9 C@>25=L >:070;AO 2KH5 ?8:0 25@H8=K

      if((verxlevel>Open[PikVershBar])&&(verxlevel>Close[PikVershBar]))

      {

         levgran=predvgrn;

      }

   }

   

   //'" "+  "  (+ &

   

   if(predvgrn>b)

   {      

      //E>4 F5=K 2 ?C=:B0E A25@EC 2=87 =0 ' A25G5

      xodpunkt=(Open[b]-Close[b])/Point;

      xodpunkt=MathRound(xodpunkt);

      

      //25@E=89 C@>25=L 5A;8 : >B:@KB8N A25G8 ?@81028BL E>4 2 ?C=:B0E

      verxlevel=Open[b]+xodpunkt*Point;

      verxlevel=NormalizeDouble(verxlevel,Digits);

      

      //5A;8 ?>;CG5==K9 C@>25=L >:070;AO 2KH5  ?8:0 25@H8=K

      if(verxlevel>Low[PikVershBar])

      {

         levgran=predvgrn;

      }

   }  

   

   return(levgran);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?>8A: 10@0 - ?8:0 25@H8=K, 2E>4OI85 ?0@0<5B@K - ;520O 3@0=8F0 25@H8=K 8 10@ 

int PoiskBaraPikaVershin(int levgrn, int b)

{

   int kolbarov, pikverxbar;

   

   //>1I55 :>;8G5AB2> 10@>2 2 A>AB025 25@H8=K

   kolbarov=0;

   

   //>B25B, 2>72@0I05<K9 DC=:F859 - =><5@ 10@0 ?8:0 25@H8=K

   pikverxbar=0;

   

   if((levgrn>b)&&(b>0))

   {

      kolbarov=levgrn-b;

      kolbarov=kolbarov+1;

      

      pikverxbar=iHighest(NULL,0,MODE_HIGH,kolbarov,b);

   }

   

   return(pikverxbar);

}

//=====================================================================================================================

//=====================================================================================================================

//?>8A: ;52>3> :@0O + F5= - A;>6=K9 20@80=B, GB>1K @072>@>B 1K; 

//845< 2;52>, ?>:0  (+ !' =0E>4OBAO  70:@KB8O +', A25G8 =0 10@5 

//2 A;CG05 CA?5E0 2>72@0I05B       &+ +, ;81> 0 5A;8 =5B

int RaschetLevgrNizinyGOOD(double sredtelo, int b)

{

   double xodpunkt, niznlevel;

   

   int levgran, predvgrn, levpoisk, totalbar, kolprobpik, st, i;

   

   int kolvnytbars, DnoNizinBar;

   

   bool Svecha2XBULL;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //?@5420@8B5;L=0O ;520O 3@0=8F0 =878=K

   predvgrn=0;

   

   //:>;8G5AB2> ?@>18BKE 25@H8= 1KGL59 A25G59 =0 10@5 

   kolprobpik=0;

   

   //:>;8G5AB2> 2=CB@5==8E 10@>2 =878=K

   kolvnytbars=0;

   

   //=><5@ 10@0 4=0 =878=K

   DnoNizinBar=0;   



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   totalbar=Bars-50;

   levpoisk=b+DalnPoiskaLevgrMAX;

   levpoisk=MathMin(totalbar,levpoisk);

   

   //AB0@B>2K9 10@ F8:;0

   st=b+1;   

   

   //A25G0 =0 10@5  4>;60 1KBL +',/

   if(Open[b]<Close[b])

   {

      //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK + F5=

      for(i=st; i<levpoisk; i++)

      {

         //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/  +(  !'

         if(Close[b]>High[i])

         {

            continue;

         }

         else

         {

            //?@5420@8B5;L=0O ;520O 3@0=8F0 +

            predvgrn=i;

            break;

         }

      }

   }

   

   //5A;8 ?@5420@8B5;L=0O 3@0=8F0 =0945=0  +  " +

   if(predvgrn>b)

   {

      //:>;8G5AB2> ?@>18BKE 25@H8= >4=>9 1KGL59 A25G59 =0 10@5 

      kolprobpik=RaschetProbitVershinOne(b);

      

      //:>;8G5AB2> 2=CB@5==8E 10@>2 =878=K

      kolvnytbars=predvgrn-b;

      kolvnytbars=kolvnytbars-1;

      

      //1KGLO A25G0 =0 10@5  ?@>18205B 2A5 2=CB@5==85 10@K =878=K

      if((kolprobpik==kolvnytbars)&&(kolvnytbars>1))

      {

         levgran=predvgrn;

      }

   }

   

   //"   " + &

   if(predvgrn>b)

   {

      //?>8A: 10@0 - 4=0 =878=K

      DnoNizinBar=0;

      DnoNizinBar=PoiskBaraDnaNiziny(predvgrn,b);

      

      //25@E=OO B>G:0 10@0 4=0 =878=K ?@>18205BAO 225@E =0 10@5 

      if((Open[b]<High[DnoNizinBar])&&(Close[b]>High[DnoNizinBar]))

      {

         levgran=predvgrn;

      }   

   }            

   

   //" "  " + &

   

   /// +',/ !'

   Svecha2XBULL=false;

   Svecha2XBULL=DvoinayaSvechaBULL(sredtelo,b);

   

   if((predvgrn>b)&&(Svecha2XBULL==true))

   {      

      //E>4 F5=K 2 ?C=:B0E A=87C 225@E =0 42>9=>9 A25G5

      xodpunkt=(Close[b]-Open[st])/Point;

      xodpunkt=MathRound(xodpunkt);

      

      //=86=89 C@>25=L 5A;8 >B >B:@KB8O 42>9=>9 A25G8 >B=OBL 55 E>4 2 ?C=:B0E

      niznlevel=Open[st]-xodpunkt*Point;

      niznlevel=NormalizeDouble(niznlevel,Digits);

      

      //5A;8 ?>;CG5==K9 C@>25=L >:070;AO =865 4=0 =878=K

      if((niznlevel<Open[DnoNizinBar])&&(niznlevel<Close[DnoNizinBar]))

      {

         levgran=predvgrn;

      }

   }   

   

   //'" "+  " + &

   

   if(predvgrn>b)

   {      

      //E>4 F5=K 2 ?C=:B0E A=87C 225@E =0 ' +', A25G5

      xodpunkt=(Close[b]-Open[b])/Point;

      xodpunkt=MathRound(xodpunkt);

      

      //=86=89 C@>25=L 5A;8 >B >B:@KB8O A25G8 >B=OBL 55 E>4 2 ?C=:B0E

      niznlevel=Open[b]-xodpunkt*Point;

      niznlevel=NormalizeDouble(niznlevel,Digits);

      

      //5A;8 ?>;CG5==K9 C@>25=L >:070;AO =865  4=0 =878=K

      if(niznlevel<High[DnoNizinBar])

      {

         levgran=predvgrn;

      }

   }   

   

   return(levgran);

}

//=====================================================================================================================

//=====================================================================================================================

//?>8A: 10@0 - 4=0 =878=K, 2E>4OI85 ?0@0<5B@K - ;520O 3@0=8F0 =878=K 8 10@ 

int PoiskBaraDnaNiziny(int levgrn, int b)

{

   int kolbarov, dnonizbar;

   

   //>1I55 :>;8G5AB2> 10@>2 2 A>AB025 =878=K

   kolbarov=0;

   

   //>B25B, 2>72@0I05<K9 DC=:F859 - =><5@ 10@0 4=0 =878=K

   dnonizbar=0;

   

   if((levgrn>b)&&(b>0))

   {

      kolbarov=levgrn-b;

      kolbarov=kolbarov+1;

      

      dnonizbar=iLowest(NULL,0,MODE_LOW,kolbarov,b);

   }

   

   return(dnonizbar);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//@0AG5B H8@8=K :@K;0 4;O + 2=CB@8  (+, 745AL chkbar - ?@>25@O5<K9 10@ :>B>@K9 4>;65= ?@>1820BL # 

int ShirinaKrilaNiziny(int levgrn, int nizbar, int chkbar)

{

   int i, krilslev, krilprav, krilotvet;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   krilotvet=0; 

   

   //@0AG5B 4;8=K :@K;0 krilprav A?@020 >B +

   krilprav=0;

   

   for(i=nizbar-1; i>=chkbar; i--)

   {

      if(Low[nizbar]<=Low[i])

      {

         krilprav=krilprav+1;

      }

      else

      {

         break;

      }

   }

   

   //@0AG5B 4;8=K :@K;0 krilslev A;520 >B +

   krilslev=0;

   

   for(i=nizbar+1; i<=levgrn; i++)

   {

      if(Low[nizbar]<=Low[i])

      {

         krilslev=krilslev+1;

      }

      else

      {

         break;

      }

   }

   

   //@0AG5B 4;8=K :@K;0 2 >15 AB>@>=K >B 10@0 nizbar

   krilotvet=MathMin(krilslev,krilprav);   

   

   return(krilotvet);

}

//=====================================================================================================================

//?>8A: 3;02=>9 =878=:8 A@548 2=CB@5==8E 10@>2  (+, 3@0=8FK  (+ - levgr 8 pravb

//?@54?>;0305BAO, GB> :>;8G5AB2> 2=CB@5==8E 10@>2 4>;6=> 1KBL =5 <5=55 3E

int PoiskGlavnogoNiza(int levgrn, int pravb)

{

   int glavniz, kolvnyt, kriltek, krilmax, i;

   

   glavniz=0; kolvnyt=0; krilmax=0;

   

   //:>;8G5AB2> 2=CB@5==8E 10@>2  (+

   kolvnyt=levgrn-pravb-1;

   

   if(kolvnyt<3)

   {

      return(0);

   }

   

   for(i=pravb+1; i<levgrn; i++)

   {

      kriltek=ShirinaKrilaNiziny(levgrn,i,pravb);

      

      if(kriltek>krilmax)

      {

         krilmax=kriltek;

         

         glavniz=i;

      }      

   }

   

   return(glavniz);

}

//=====================================================================================================================

//@0AG5B H8@8=K :@K;0 4;O  2=CB@8 +, 745AL chkbar - ?@>25@O5<K9 10@ :>B>@K9 4>;65= ?@>1820BL ?8:  %

int ShirinaKrilaPika(int levgrn, int pikbar, int chkbar)

{

   int i, krilslev, krilprav, krilotvet;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   krilotvet=0; 

   

   //@0AG5B 4;8=K :@K;0 krilprav A?@020 >B 

   krilprav=0;

   

   for(i=pikbar-1; i>=chkbar; i--)

   {

      if(High[pikbar]>=High[i])

      {

         krilprav=krilprav+1;

      }

      else

      {

         break;

      }

   }

   

   //@0AG5B 4;8=K :@K;0 krilslev A;520 >B 

   krilslev=0;

   

   for(i=pikbar+1; i<=levgrn; i++)

   {

      if(High[pikbar]>=High[i])

      {

         krilslev=krilslev+1;

      }

      else

      {

         break;

      }

   }

   

   //@0AG5B 4;8=K :@K;0 2 >15 AB>@>=K >B 10@0 pikbar

   krilotvet=MathMin(krilslev,krilprav);   

   

   return(krilotvet);

}

//=====================================================================================================================

//?>8A: 3;02=>9 25@H8=:8 A@548 2=CB@5==8E 10@>2 +, 3@0=8FK + - levgr 8 pravb

//?@54?>;0305BAO, GB> :>;8G5AB2> 2=CB@5==8E 10@>2 4>;6=> 1KBL =5 <5=55 3E

int PoiskGlavnogoPika(int levgrn, int pravb)

{

   int glavpik, kolvnyt, kriltek, krilmax, i;

   

   glavpik=0; kolvnyt=0; krilmax=0;

   

   //:>;8G5AB2> 2=CB@5==8E 10@>2 =878=K

   kolvnyt=levgrn-pravb-1;

   

   if(kolvnyt<3)

   {

      return(0);

   }

   

   for(i=pravb+1; i<levgrn; i++)

   {

      kriltek=ShirinaKrilaPika(levgrn,i,pravb);

      

      if(kriltek>krilmax)

      {

         krilmax=kriltek;

         

         glavpik=i;

      }      

   }

   

   return(glavpik);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A?@020 >B =878=K dno, =878=K :>B>@KE 2KH5 8;8 @02=K =878=5 

//?>4AG5B 2545BAO 4> ?@02>3> 10@0 pravbr, MB> <>65B 1KBL 10@  ?@>1>O =878=K

int KrilSpravaOtNiza(int dno, int pravbr)

{

   int i, st, count;

   

   count=0;

   

   if((dno>pravbr)&&(pravbr>0))

   {

      //AB0@B>2>5 7=0G5=85 F8:;0

      st=dno-1;      

      

      for(i=st; i>=pravbr; i--)

      {

         if(Low[dno]<=Low[i])

         {

            count=count+1;   

         }

         else

         {

            break;

         }   

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A;520 >B =878=K dno, =878=K :>B>@KE 2KH5 8;8 @02=K =878=5 

//?>4AG5B 2;52> 2545< =0 7040==CN 40;L=>ABL, =5 1>;55 G5< =0945==>5 ?@02>5 :@K;>

int KrilSlevaOtNiza(int dno, int pravkril)

{

   int i, st, total, ttmax, count;

   

   count=0;

   

   st=dno+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   ttmax=Bars-50;

   total=dno+pravkril+1;

   total=MathMin(total,ttmax);   

   

   if(pravkril>0)

   {

      for(i=st; i<total; i++)

      {

         if(Low[dno]<=Low[i])

         {

            count=count+1;

         }

         else

         {

            break;

         }      

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//!  " + ! "    ! ,( (   +

//2>72@0I05B =><5@ 10@0 - 4=> ?@>18B>9 =878=K

int PoiskProbitNiziny(int b)

{

   double LevelProbNiza;

   

   int i, st, brmax, total, leftkril, pravkril, rezultkril, krilmax;   

   

   int DnoNizBar;

   

   leftkril=0; pravkril=0; rezultkril=0;

   

   //<0:A8<0;L=0O =0945==0O H8@8=0 :@K;0 4;O =878=K A;520 >B 

   krilmax=0;

   

   //10@, 345 1K;0 =0945=0 <0:A8<0;L=0O H8@8=0 :@K;0 ?@>18B>9 =878=K

   DnoNizBar=0;

   

   //AB0@B>2K9 10@ 4;O F8:;0 ?>8A:0

   st=b+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   brmax=Bars-50;

   total=b+DalnPoiskaProboyaMAX;

   total=MathMin(total,brmax);   

   

   //C@>25=L 4=0 ?@>18B>9 =878=K

   LevelProbNiza=High[b];

   

   for(i=st; i<total; i++)

   {     

      if(Close[b]<Low[i])

      {

         //4;8=0 :@K;0 A?@020 >B ?@>25@O5<>3> 10@0  i

         pravkril=KrilSpravaOtNiza(i,b);         

         

         //5A;8 4;8=0 :@K;0 A?@020 1>;LH5 <0:A8<0;L=>9 H8@8=K :@K;0

         if(pravkril>krilmax)

         {

            //4;8=0 :@K;0 A;520 >B ?@>25@O5<>3> 10@0  i

            leftkril=KrilSlevaOtNiza(i,pravkril);

            

            //@57C;LB0B8@CNI0O H8@8=0 :@K;0 2;52> 8 2?@02> >B =0945==>3> 

            rezultkril=MathMin(leftkril,pravkril);

            

            //>1=>2;5=85 <0:A8<0;L=>9 H8@8=K :@K;0  8 A0<>3> 10@0 

            if((rezultkril>krilmax)&&(Low[i]<=LevelProbNiza))

            {

               //=878=0 4>;6=0 ?@>1820BLAO A25@EC 2=87 10@>< 

               if((Open[b]>Low[i])&&(Close[b]<Low[i])&&(rezultkril>2))

               {

                  DnoNizBar=i;

                  

                  krilmax=rezultkril;

                  

                  LevelProbNiza=Low[i];                  

               }

            }                        

         }

      }

      else

      {

         break;

      }

   }

      

   return(DnoNizBar);

}

//=====================================================================================================================

//=====================================================================================================================

// !'"  + +

//@07<5@ :@K;0 4;O =878=K, :>B>@0O =0E>48BAO A;520 >B ?@>25@O5<>3> 10@0 

int RazmerKrilaNizaKnight(int niz, int b)

{

   int krilo, sleva, sprava, levgrn;

   

   krilo=0; sleva=0; sprava=0; levgrn=0;

   

   //:>;8G5AB2> 10@>2 A?@020 >B =878=K, :>B>@K5 2KH5 55 <8=8<C<0

   sprava=BarovSpravaOtNizaKnight(niz,b);

   

   //@0AG5B ;52>9 3@0=8FK 4;O ?>4AG5B0 10@>2 A;520

   levgrn=niz+sprava+1;

   

   //:>;8G5AB2> 10@>2 A;520 >B =878=K, :>B>@K5 2KH5 55 <8=8<C<0

   sleva=BarovSlevaOtNizaKnight(levgrn, niz);

   

   //@07<5@ :@K;0 2 >15 AB>@>=K >B =878=K

   krilo=MathMin(sleva,sprava); 

   

   return(krilo);

}

//=====================================================================================================================

//=====================================================================================================================

// !'"  + +

//?>4AG5B 10@>2 A?@020 >B =878=K niz, =878=K :>B>@KE 2KH5 8;8 @02=K =878=5 

//?>4AG5B 2545BAO 4> ?@02>3> 10@0  =0 :>B>@>< 2>7<>65= ?@>1>9 =878=K 

int BarovSpravaOtNizaKnight(int niz, int b)

{

   int i, st, count;

   

   count=0;

   

   if((niz>b)&&(b>0))

   {

      //AB0@B>2>5 7=0G5=85 F8:;0

      st=niz-1;

      

      for(i=st; i>b; i--)

      {

         if(Low[niz]<=Low[i])

         {

            count=count+1;   

         }

         else

         {

            break;

         }   

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

// !'"  + +

//?>4AG5B 10@>2 A;520 >B =878=K niz, 25@H8=K :>B>@KE 2KH5 8;8 @02=K =878=5 

//?>4AG5B 2545BAO 4> ;52>9 3@0=8FK, @0AAG8B0==>9 ?> :>;-2C 10@>2 A?@020 >B 

int BarovSlevaOtNizaKnight(int levgrn, int niz)

{

   int i, st, count, total, barmax;

   

   //<0:A8<0;L=K9 =><5@ 10@0 - ;520O 3@0=8F0 ?>8A:>2

   barmax=Bars-50;

   total=MathMin(levgrn,barmax);   

   

   count=0;

   

   if(levgrn>niz)

   {

      //AB0@B>2>5 7=0G5=85 F8:;0

      st=niz+1;      

      

      for(i=st; i<total; i++)

      {

         if(Low[i]>=Low[niz])

         {

            count=count+1;   

         }

         else

         {

            break;

         }   

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A;520 >B ?8:0, 25@H8=K :>B>@KE =865 8;8 @02=K, G5< 25@H8=0 ?8:0 pik

//?>4AG5B 2;52> 2545< =0 7040==CN 40;L=>ABL, =5 1>;55 G5< =0945==>5 ?@02>5 :@K;>

int KrilSlevaOtPika(int pik, int pravkril)

{

   int i, st, total, ttmax, count;

   

   count=0;

   

   st=pik+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   ttmax=Bars-50;

   total=pik+pravkril+1;

   total=MathMin(total,ttmax);   

   

   if(pravkril>0)

   {

      for(i=st; i<total; i++)

      {

         if(High[i]<=High[pik])

         {

            count=count+1;

         }

         else

         {

            break;

         }      

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?>4AG5B 10@>2 A?@020 >B ?8:0 pik, 25@H8=K :>B>@KE =865 8;8 @02=K 25@H8=5 

//?>4AG5B 2545BAO 4> ?@02>3> 10@0 pravbr, MB> <>65B 1KBL 10@  ?@>1>O 25@H8=K

int KrilSpravaOtPika(int pik, int pravbr)

{

   int i, st, count;

   

   count=0;

   

   if((pik>pravbr)&&(pravbr>0))

   {

      //AB0@B>2>5 7=0G5=85 F8:;0

      st=pik-1;      

      

      for(i=st; i>=pravbr; i--)

      {

         if(High[pik]>=High[i])

         {

            count=count+1;   

         }

         else

         {

            break;

         }   

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//!  "  (+ ! "    ! ,( (   +

//2>72@0I05B =><5@ 10@0 ?8:0 25@H8=K

int PoiskProbitVershin(int b)

{

   double LevelProbPika;

   

   int i, st, brmax, total, leftkril, pravkril, rezultkril, krilmax;   

   

   int PikVerxBar;

   

   leftkril=0; pravkril=0; rezultkril=0;

   

   //<0:A8<0;L=0O =0945==0O H8@8=0 :@K;0 4;O 25@H8=K A;520 >B 

   krilmax=0;  

   

   //AB0@B>2K9 10@ 4;O F8:;0 ?>8A:0

   st=b+1;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   brmax=Bars-50;

   total=b+DalnPoiskaProboyaMAX;

   total=MathMin(total,brmax);   

   

   //C@>25=L ?8:0 ?@>18B>9 25@H8=K

   LevelProbPika=Low[b];

   

   //>B25B, 2>72@0I05<K9 DC=:F859 - =><5@ 10@0 ?8:0 25@H8=K

   PikVerxBar=0;   

   

   for(i=st; i<total; i++)

   {     

      if(Close[b]>High[i])

      {

         //4;8=0 :@K;0 A?@020 >B ?@>25@O5<>3> 10@0  i

         pravkril=KrilSpravaOtPika(i,b);         

         

         //5A;8 4;8=0 :@K;0 A?@020 1>;LH5 <0:A8<0;L=>9 H8@8=K :@K;0

         if(pravkril>krilmax)

         {

            //4;8=0 :@K;0 A;520 >B ?@>25@O5<>3> 10@0  i

            leftkril=KrilSlevaOtPika(i,pravkril);

            

            //@57C;LB0B8@CNI0O H8@8=0 :@K;0 2;52> 8 2?@02> >B =0945==>3> ?8:0

            rezultkril=MathMin(leftkril,pravkril);

            

            //>1=>2;5=85 <0:A8<0;L=>9 H8@8=K :@K;0  8 A0<>3> 10@0 

            if((rezultkril>krilmax)&&(High[i]>=LevelProbPika))

            {

               //25@H8=0 4>;6=0 ?@>1820BLAO A=87C 225@E 10@>< 

               if((Open[b]<High[i])&&(Close[b]>High[i])&&(rezultkril>2))

               {

                  PikVerxBar=i;

                  

                  krilmax=rezultkril;

                  

                  LevelProbPika=High[i];

               }

            }                        

         }

      }

      else

      {

         break;

      }

   }

   

   return(PikVerxBar);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

// !'"  + 

//@07<5@ :@K;0 4;O ?8:0, :>B>@K9 =0E>48BAO A;520 >B ?@>25@O5<>3> 10@0 

int RazmerKrilaPikaKnight(int pik, int b)

{

   int krilo, sleva, sprava, levgrn;

   

   krilo=0; sleva=0; sprava=0; levgrn=0;

   

   //:>;8G5AB2> 10@>2 A?@020 >B ?8:0, :>B>@K5 =865 53>

   sprava=BarovSpravaOtPikaKnight(pik,b);

   

   //@0AG5B ;52>9 3@0=8FK 4;O ?>4AG5B0 10@>2 A;520

   levgrn=pik+sprava+1;

   

   //:>;8G5AB2> 10@>2 A;520 >B ?8:0, :>B>@K5 =865 53>

   sleva=BarovSlevaOtPikaKnight(levgrn, pik);

   

   //@07<5@ :@K;0 2 >15 AB>@>=K >B ?8:0

   krilo=MathMin(sleva,sprava); 

   

   return(krilo);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

// !'"  + 

//?>4AG5B 10@>2 A;520 >B ?8:0 pik, 25@H8=K :>B>@KE =865 8;8 @02=K 25@H8=5 

//?>4AG5B 2545BAO 4> ;52>9 3@0=8FK, @0AAG8B0==>9 ?> :>;-2C 10@>2 A?@020 >B 

int BarovSlevaOtPikaKnight(int levgrn, int pik)

{

   int i, st, count, total, barmax;

   

   //<0:A8<0;L=K9 =><5@ 10@0 - ;520O 3@0=8F0 ?>8A:>2

   barmax=Bars-50;

   total=MathMin(levgrn,barmax);   

   

   count=0;

   

   if(levgrn>pik)

   {

      //AB0@B>2>5 7=0G5=85 F8:;0

      st=pik+1;      

      

      for(i=st; i<total; i++)

      {

         if(High[pik]>=High[i])

         {

            count=count+1;   

         }

         else

         {

            break;

         }   

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

// !'"  + 

//?>4AG5B 10@>2 A?@020 >B ?8:0 pik, 25@H8=K :>B>@KE =865 8;8 @02=K 25@H8=5 

//?>4AG5B 2545BAO 4> ?@02>3> 10@0  =0 :>B>@>< 2>7<>65= ?@>1>9 25@H8=K 

int BarovSpravaOtPikaKnight(int pik, int b)

{

   int i, st, count;

   

   count=0;

   

   if((pik>b)&&(b>0))

   {

      //AB0@B>2>5 7=0G5=85 F8:;0

      st=pik-1;      

      

      for(i=st; i>b; i--)

      {

         if(High[pik]>=High[i])

         {

            count=count+1;   

         }

         else

         {

            break;

         }   

      }

   }

   

   return(count);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//+'    %  #% !% !'%

bool Razgon2XCheckBULL(int b1)

{

   double levtel, pravtel;

   

   int b2;

   

   bool razgverx;

   

   b2=b1+1;

   

   razgverx=false;

   

   if((Open[b2]<Close[b2])&&(Open[b1]<Close[b1]))

   {

      if((Close[b1]>High[b2])&&(Open[b2]<Open[b1]))

      {

         //B5;> ;52>9 A25G8 2 ?C=:B0E

         levtel=Close[b2]-Open[b2];

         levtel=levtel/Point;

         levtel=MathRound(levtel);         

         

         //B5;> ?@02>9 A25G8 2 ?C=:B0E

         pravtel=Close[b1]-Open[b1];

         pravtel=pravtel/Point;

         pravtel=MathRound(pravtel);         

  

         // !" *  + " !'  !% #%  %

         if((Volume[b2]<Volume[b1])&&(levtel<pravtel))

         {

            razgverx=true;

         } 

      }

   }

   

   return(razgverx);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//     #% !% !'%

bool Razgon2XCheckBEAR(int b1)

{

   double levtel, pravtel;

   

   int b2;

   

   bool razgvniz;

   

   b2=b1+1;

   

   razgvniz=false;

   

   if((Open[b2]>Close[b2])&&(Open[b1]>Close[b1]))

   {

      if((Open[b2]>Open[b1])&&(Close[b1]<Low[b2]))

      {

         //B5;> ;52>9 A25G8 2 ?C=:B0E

         levtel=Open[b2]-Close[b2];

         levtel=levtel/Point;

         levtel=MathRound(levtel);          

         

         //B5;> ?@02>9 A25G8 2 ?C=:B0E

         pravtel=Open[b1]-Close[b1];

         pravtel=pravtel/Point;

         pravtel=MathRound(pravtel);         

         

         // !" *  + " !'  !% #%  %

         if((Volume[b2]<Volume[b1])&&(levtel<pravtel))

         {

            razgvniz=true;

         }

      }

   }

   

   return(razgvniz);

}

//=====================================================================================================================

//=====================================================================================================================



//=====================================================================================================================

//=====================================================================================================================

//=86=89 C@>25=L B5; A25G59 =0 C:070==>< CG0AB:5 -   ,  ""

double NizniyYrovenTelSvechei(int KolvoSvechei, int PravSvecha)

{

   double NiznLevelTel, NiznOpenPrice, NiznClosPrice;

   

   int LwOpenBar, LwClosBar;

   

   NiznLevelTel=0;

   

   // , 345 =0945=  C@>25=L F5= " +"/

   LwOpenBar=iLowest(NULL,0,MODE_OPEN,KolvoSvechei,PravSvecha);

   

   // , 345 =0945=  C@>25=L F5=  +"/

   LwClosBar=iLowest(NULL,0,MODE_CLOSE,KolvoSvechei,PravSvecha);

   

   //// & " +"/  " 

   NiznOpenPrice=Open[LwOpenBar];

   

   //// &  +"/  " 

   NiznClosPrice=Close[LwClosBar];

   

   // # , " !'  " 

   NiznLevelTel=MathMin(NiznOpenPrice,NiznClosPrice);

   

   NiznLevelTel=NormalizeDouble(NiznLevelTel,Digits);

   

   return(NiznLevelTel);

}

//=====================================================================================================================

//=====================================================================================================================

//+'! '!"   +  "+%  "    

int prb_niz_kol(int b)

{

   int i, kol;

   

   kol=0;

   

   if(Open[b]>Close[b])

   {

      for(i=(b+1); i<Bars; i++)

      {  

         if((Open[b]>Low[i]) && (Close[b]<Low[i]))

         {

            kol = kol+1;

         }

         else

         {

            break;

         }

      }

   }

   

   return(kol);

}

//=====================================================================================================================

//=====================================================================================================================

//A@54=89 @07<5@ B5;0 A25G8, CA@54=5=85 ?> AverageBars, 2 ?C=:B0E 4> 3 7=0:0

//?@>25@5=0 =0 A:@8?B5 - @01>B05B

double average_body_length()

{

   double length, result;



   int i, count, total;

   

   total = KolvoBarovRaschetaSredn;

   

   if(total>Bars)

   {

      total=Bars;   

   }

   

   length=0;

   count=0;

   

   for(i=1; i<total; i++)

   {

      length = length+MathAbs((Open[i]-Close[i]));

      count  = count+1;

   }

   

   //>1I0O 4;8=0 2 ?C=:B0E

   length = length/Point;

   

   //A@54=89 @07<5@ 2 ?C=:B0E

   result = length/count;

   result = NormalizeDouble(result,3);

  

   return(result);

}

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 B>3> GB> =878=0 <0:A8<C<0 10@0 hi 2?5@2K5 ?@>18B0 10@>< b

bool check_high(int hi, int b)

{

   int i, prb;

   

   prb = 0;

   

   if(hi>b)

   {

      for(i=(hi-1); i>=b; i--)

      {

         if(Close[i]<Low[hi])

         {

            prb=i;

            break;

         }

      }

   }

   

   if((prb==b)&&(prb>0))

   {

      return(true);

   }

   

   return(false);

}

//=====================================================================================================================

//=====================================================================================================================

//+'! '!"   +  "+%  ( "   

int prb_ver_kol(int b)

{

   int i, kol;

   

   kol=0;

   

   if(Open[b]<Close[b])

   {

      for(i=(b+1); i<Bars; i++)

      {  

         if((Open[b]<High[i])&&(Close[b]>High[i]))

         {

            kol=kol+1;

         }

         else

         {

            break;

         }

      }

   }

   

   return(kol);

}

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 B>3> GB> 25@H8=0 <8=8<C<0 10@0 lw 2?5@2K5 ?@>18B0 B5;>< 10@0 b

bool check_low(int lw, int b)

{

   int i, prb;

   

   prb = 0;

   

   if(lw>b)

   {

      for(i=(lw-1); i>=b; i--)

      {

         if(Close[i]>High[lw])

         {

            prb=i;

            break;

         }

      }

   }

   

   if((prb==b)&&(prb>0))

   {

      return(true);

   }

   

   return(false);

}

//=====================================================================================================================

//=====================================================================================================================





//=====================================================================================================================

//=====================================================================================================================

//25@E=89 C@>25=L B5; A25G59 =0 C:070==>< CG0AB:5 -   ,  ""

double VerxiyYrovenTelSvechei(int KolvoSvechei, int PravSvecha)

{

   double VerxLevelTel, VerxOpenPrice, VerxClosPrice;

   

   int HiOpenBar, HiClosBar;

   

   VerxLevelTel=0;

   

   // , 345 =0945=  % C@>25=L F5= " +"/

   HiOpenBar=iHighest(NULL,0,MODE_OPEN,KolvoSvechei,PravSvecha);

   

   // , 345 =0945=  % C@>25=L F5=  +"/

   HiClosBar=iHighest(NULL,0,MODE_CLOSE,KolvoSvechei,PravSvecha);

   

   // %// & " +"/  " 

   VerxOpenPrice=Open[HiOpenBar];

   

   // %// &  +"/  " 

   VerxClosPrice=Close[HiClosBar];

   

   // % # , " !'  " 

   VerxLevelTel=MathMax(VerxOpenPrice,VerxClosPrice);

   

   VerxLevelTel=NormalizeDouble(VerxLevelTel,Digits);

   

   return(VerxLevelTel);

}

//=====================================================================================================================

//=====================================================================================================================

//%   !% " % !'% ! "   !"/ *

bool SpyskVnizVolumeBEAR3X(int b1)

{

   int b3, b2;

   

   bool spysk3x;

   

   spysk3x=false;

   

   b2=b1+1;

   b3=b1+2;

   

   //?5@20O 8 ?>A;54=OO 87 B@5E A25G59 <54256L8

   if((Open[b3]>Close[b3])&&(Open[b1]>Close[b1]))

   {

      //F5=0 >B:@KB8O ?5@2>9 A25G8 2KH5 42CE ?8:>2 A?@020 >B =55

      if((Open[b3]>High[b2])&&(Open[b3]>High[b1]))

      {

         //F5=0 70:@KB8O ?>A;54=59 A25G8 =865 42CE =878= A;520 >B =55

         if((Close[b1]<Low[b2])&&(Close[b1]<Low[b3]))

         {

            //845B =0@0AB0=85 >1J5<0

            if((Volume[b3]<Volume[b1])&&(Volume[b2]<Volume[b1]))

            {

               spysk3x=true;

            }

         }

      }

   }

   

   return(spysk3x);

}

//=====================================================================================================================

//=====================================================================================================================

//*  %  !% " % !'% ! "   !"/ *

bool PodyemVerxVolumeBULL3X(int b1)

{

   int b3, b2;

   

   bool podyem3x;

   

   podyem3x=false;

   

   b2=b1+1;

   b3=b1+2;

   

   //?5@20O 8 ?>A;54=OO 87 B@5E A25G59 1KGL8

   if((Open[b3]<Close[b3])&&(Open[b1]<Close[b1]))

   {

      //F5=0 >B:@KB8O ?5@2>9 A25G8 =865 42CE =878= A?@020 >B =55

      if((Open[b3]<Low[b2])&&(Open[b3]<Low[b1]))

      {

         //F5=0 70:@KB8O ?>A;54=59 A25G8 2KH5 42CE 25@H8= A;520 >B =55

         if((Close[b1]>High[b2])&&(Close[b1]>High[b3]))

         {

            //845B =0@0AB0=85 >1J5<0

            if((Volume[b3]<Volume[b2])&&(Volume[b2]<Volume[b1]))

            {

               podyem3x=true;

            }

         }

      }

   }

   

   return(podyem3x);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//   >4=>9 A:>;L7OI59 A@54=59 A #+ ?5@8>4>< "  , A25G59 =0 10@5 

bool ProboyOneMACandleThreeBEAR(int PerMA, int b)

{

   double maleft, maprav;

   

   int levbr;

   

   bool prob3x;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   prob3x=false;

   

   //10@ A;520 >B ?@>25@O5<>3> 10@0 

   levbr=b+2;

   

   //C@>25=L  =0 ;52>< 10@5

   maleft=iMA(NULL,0,PerMA,0,MODE_EMA,PRICE_CLOSE,levbr);

   maleft=NormalizeDouble(maleft,Digits);

   

   //C@>25=L  =0 ?@>25@O5<>< 10@5 

   maprav=iMA(NULL,0,PerMA,0,MODE_EMA,PRICE_CLOSE,b);

   maprav=NormalizeDouble(maprav,Digits);

   

   //?@>25@:0 ?@>18B8O  42>9=>9 A25G59 =0 10@5  ! %# 

   if((Open[levbr]>maleft)&&(Close[b]<maprav))

   {

      prob3x=true;

   }   

   

   return(prob3x);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E ! %#  "  , A25G59

int KolvoProbitMACandleThreeBEAR(int b)

{

   int KolvoProbMA;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6, prob7, prob8, prob9, prob10, prob11, prob12;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   KolvoProbMA=0;

   

   //?>4AG5B ,% ?@>1>52 A:>;L7OI8E A@54=8E "  , A25G59

   

   //***************************************************************

   

   prob1=false;

   prob1=ProboyOneMACandleThreeBEAR(13,b);

   

   if(prob1==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob2=false;

   prob2=ProboyOneMACandleThreeBEAR(21,b);

   

   if(prob2==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob3=false;

   prob3=ProboyOneMACandleThreeBEAR(34,b);

   

   if(prob3==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob4=false;

   prob4=ProboyOneMACandleThreeBEAR(55,b);

   

   if(prob4==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob5=false;

   prob5=ProboyOneMACandleThreeBEAR(89,b);

   

   if(prob5==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob6=false;

   prob6=ProboyOneMACandleThreeBEAR(144,b);

   

   if(prob6==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob7=false;

   prob7=ProboyOneMACandleThreeBEAR(233,b);

   

   if(prob7==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob8=false;

   prob8=ProboyOneMACandleThreeBEAR(377,b);

   

   if(prob8==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob9=false;

   prob9=ProboyOneMACandleThreeBEAR(610,b);

   

   if(prob9==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob10=false;

   prob10=ProboyOneMACandleThreeBEAR(987,b);

   

   if(prob10==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob11=false;

   prob11=ProboyOneMACandleThreeBEAR(1597,b);

   

   if(prob11==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob12=false;

   prob12=ProboyOneMACandleThreeBEAR(2584,b);

   

   if(prob12==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************                                             

   

   return(KolvoProbMA);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=0?@02;5=85 87 A>25B=8:0 Better, 5A;8 ?>;>68B5;L=>5 B> BUY, >B@8F0B5;L=>5 SELL

double DirectBETTER(int Warp, double Deviation, int Amplitude, double Distortion, int b)

{

   double NapravlBETTER, YskorTekysh, YskorShift7, YskorShift14, YskorShift21;

   

   //8=48:0B>@ CA:>@5=8O

   YskorTekysh=0;

   YskorShift7=0;

   YskorShift14=0;

   YskorShift21=0;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   NapravlBETTER=0;

   

   YskorTekysh  = iAC(NULL,0,b);

   YskorShift7  = iAC(NULL,0,(b+7));

   YskorShift14 = iAC(NULL,0,(b+14));

   YskorShift21 = iAC(NULL,0,(b+21));



   //?5@2>5 A;0305<>5 - C<=>605< B5:CI55 CA:>@5=85 =0 8A:065=85

   //80?07>= 4>?CAB8<KE 7=0G5=89 Warp >B -100 4> +100 A H03>< 1

   //!"   #'. NastrBetterWarp = 67

   NapravlBETTER = Warp*YskorTekysh;

   

   //2B>@>5 A;0305<>5 - C<=>605< CA:>@5=85 =0 7< 10@5 =0 (5280F8O-1)

   //80?07>= 4>?CAB8<KE 7=0G5=89 Deviation >B 0 4> +2 A H03>< 0.01

   //!"   #'. NastrBetterDeviat = 1.85

   NapravlBETTER = NapravlBETTER + (100.0*(Deviation-1.0)*YskorShift7);

   

   //B@5BL5 A;0305<>5 - C<=>605< CA:>@5=85 =0 14< 10@5 =0 (<?;8BC40-100)

   //80?07>= 4>?CAB8<KE 7=0G5=89 Amplitude >B 0 4> +200 A H03>< 1

   //!"   #'. NastrBetterAmplit = 155;

   NapravlBETTER = NapravlBETTER + ((Amplitude-100)*YskorShift14);

   

   //G5B25@B>5 A;0305<>5 - C<=>605< CA:>@5=85 =0 21< 10@5 =0 Distortion

   //80?07>= 4>?CAB8<KE 7=0G5=89 Distortion >B -1 4> +1 A H03>< 0.01

   //!"   #'. NastrBetterDistor = 0.79

   NapravlBETTER = NapravlBETTER + (100.0*Distortion*YskorShift21);

   

   //"/ $ # = !0*67 + !7*85 + !14*55 + !21*79

   

   return(NapravlBETTER);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

// !'" +', # / !" !! / !  ##     

double RaschetStopLevelBULL(double RazmerSrednBara, int b)

{

   double LevelStopRESULT, LevelStopDalniy, SpreadPUNKT, PriceBID;

   

   double LevelStopMarket, LevelStopSredBar, LevelStopLow2X;

   

   double StopSredBarPUNKT, StopMarketPUNKT, StopDalniyPUNKT;

     

   

   LevelStopRESULT=0; LevelStopDalniy=0; SpreadPUNKT=0; PriceBID=0;

   

   LevelStopMarket=0; LevelStopSredBar=0; LevelStopLow2X=0;   

   

   StopSredBarPUNKT=0; StopMarketPUNKT=0; StopDalniyPUNKT=0;

   

   //>B25B, 2>72@0I05<K9 DC=:F859 - C@>25=L AB>? ;>AA0 4;O A45;:8  ##

   LevelStopRESULT=0;

   

   //**********************************************************

   

   //' !   #"%

   SpreadPUNKT=MarketInfo(Symbol(),MODE_SPREAD);

   SpreadPUNKT=MathRound(SpreadPUNKT);

   

   //**********************************************************

   

   //"#)/ &  /    

   if(b==1)

   {

      //4;O >B:@KB8O A45;:8 ?@8 @01>B5 A>25B=8:0

      PriceBID=MarketInfo(Symbol(),MODE_BID);   

   }

   

   if(b>1)

   {

      //4;O B5AB8@>20=8O 10@0 704=8< G8A;><

      PriceBID=Open[(b-1)];

   }

   

   PriceBID=NormalizeDouble(PriceBID,Digits);

   

   //**********************************************************

   //**********************************************************

   

   //@0AG5B ?C=:B>2 >1KG=>3> AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   StopSredBarPUNKT=RazmerSrednBara*KoeffStopLossSredBar;

   StopSredBarPUNKT=MathRound(StopSredBarPUNKT);

   

   //C@>25=L AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   LevelStopSredBar=PriceBID-StopSredBarPUNKT*Point;

   LevelStopSredBar=LevelStopSredBar-5*Point;

   LevelStopSredBar=NormalizeDouble(LevelStopSredBar,Digits);   

   

   //**********************************************************

   //**********************************************************       

   

   //C@>25=L AB>? ;>AA0   !% #%  

   LevelStopLow2X=MathMin(Low[b],Low[(b+1)]);

   LevelStopLow2X=LevelStopLow2X-5*Point;

   LevelStopLow2X=NormalizeDouble(LevelStopLow2X,Digits);

   

   //AB>? ;>AA 2 ?C=:B0E =5 4>;65= 1KBL A;8H:>< <0;5=L:8<

   

   //@57C;LB0B @0AG5B0 C@>2=O AB>? ;>AA0 - 15@5< A0<K9 

   LevelStopRESULT=MathMin(LevelStopSredBar,LevelStopLow2X);

   LevelStopRESULT=NormalizeDouble(LevelStopRESULT,Digits);   

   

   //**********************************************************

   //**********************************************************

   

   //AB>? ;>AA 2 ?C=:B0E =5 4>;65= 1KBL A;8H:>< 1>;LH8<

   

   //@0AG5B ?C=:B>2 40;L=53> AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   StopDalniyPUNKT=RazmerSrednBara*KoeffStopLossDalniy;

   StopDalniyPUNKT=MathRound(StopDalniyPUNKT);

   

   //C@>25=L 40;L=53> AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   LevelStopDalniy=PriceBID-StopDalniyPUNKT*Point;

   LevelStopDalniy=LevelStopDalniy-5*Point;

   LevelStopDalniy=NormalizeDouble(LevelStopDalniy,Digits);

   

   //@57C;LB0B @0AG5B0 C@>2=O AB>? ;>AA0 - 15@5< A0<K9 +!

   LevelStopRESULT=MathMax(LevelStopRESULT,LevelStopDalniy);

   LevelStopRESULT=NormalizeDouble(LevelStopRESULT,Digits);

   

   //**********************************************************

   //**********************************************************

   

   //C@>25=L AB>? ;>AA0 =5 4>;65= 1KBL 1;865, G5< @07@5H5=>

   

   //<8=8<0;L=K9 @07<5@ AB>? ;>AA0 2 ?C=:B0E   " $

   StopMarketPUNKT=MarketInfo(Symbol(),MODE_STOPLEVEL);

   StopMarketPUNKT=MathRound(StopMarketPUNKT);  

   

   //C@>25=L <8=8<0;L=>3> AB>? ;>AA0 4;O A45;:8  ##   " $

   LevelStopMarket=PriceBID-StopMarketPUNKT*Point;

   LevelStopMarket=LevelStopMarket-5*Point;

   LevelStopMarket=NormalizeDouble(LevelStopMarket,Digits);

   

   //@57C;LB0B @0AG5B0 C@>2=O AB>? ;>AA0 - 15@5< A0<K9 

   LevelStopRESULT=MathMin(LevelStopRESULT,LevelStopMarket);

   LevelStopRESULT=NormalizeDouble(LevelStopRESULT,Digits);      

   

   //**********************************************************

   //**********************************************************

   

   //+' !" !!

   

   return(LevelStopRESULT);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

// !'" , # / !" !! / !   #     

double RaschetStopLevelBEAR(double RazmerSrednBara, int b)

{

   double LevelStopRESULT, LevelStopDalniy, SpreadPUNKT, PriceASK;

   

   double LevelStopMarket, LevelStopSredBar, LevelStopHigh2X;

   

   double StopSredBarPUNKT, StopMarketPUNKT, StopDalniyPUNKT;

     

   

   LevelStopRESULT=0; LevelStopDalniy=0; SpreadPUNKT=0; PriceASK=0;

   

   LevelStopMarket=0; LevelStopSredBar=0; LevelStopHigh2X=0;   

   

   StopSredBarPUNKT=0; StopMarketPUNKT=0; StopDalniyPUNKT=0;

   

   //>B25B, 2>72@0I05<K9 DC=:F859 - C@>25=L AB>? ;>AA0 4;O A45;:8   #

   LevelStopRESULT=0;

   

   //**********************************************************

   

   //' !   #"%

   SpreadPUNKT=MarketInfo(Symbol(),MODE_SPREAD);

   SpreadPUNKT=MathRound(SpreadPUNKT);

   

   //**********************************************************

   

   //"#)/ & ! /    

   if(b==1)

   {

      //4;O >B:@KB8O A45;:8 ?@8 @01>B5 A>25B=8:0

      PriceASK=MarketInfo(Symbol(),MODE_ASK);   

   }

   

   if(b>1)

   {

      //4;O B5AB8@>20=8O 10@0 704=8< G8A;><

      PriceASK=Open[(b-1)]+SpreadPUNKT*Point;

   }

   

   PriceASK=NormalizeDouble(PriceASK,Digits);

   

   //**********************************************************

   //**********************************************************

   

   //@0AG5B ?C=:B>2 >1KG=>3> AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   StopSredBarPUNKT=RazmerSrednBara*KoeffStopLossSredBar;

   StopSredBarPUNKT=MathRound(StopSredBarPUNKT);

   

   //C@>25=L AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   LevelStopSredBar=PriceASK+StopSredBarPUNKT*Point;

   LevelStopSredBar=LevelStopSredBar+5*Point;

   LevelStopSredBar=NormalizeDouble(LevelStopSredBar,Digits);  

   

   //**********************************************************

   //**********************************************************       

   

   //C@>25=L AB>? ;>AA0   ( !% #%  

   LevelStopHigh2X=MathMax(High[b],High[(b+1)]);

   LevelStopHigh2X=LevelStopHigh2X+SpreadPUNKT*Point;

   LevelStopHigh2X=LevelStopHigh2X+5*Point;

   LevelStopHigh2X=NormalizeDouble(LevelStopHigh2X,Digits);

   

   //AB>? ;>AA 2 ?C=:B0E =5 4>;65= 1KBL A;8H:>< <0;5=L:8<

   

   //@57C;LB0B @0AG5B0 C@>2=O AB>? ;>AA0 - 15@5< A0<K9 +!

   LevelStopRESULT=MathMax(LevelStopSredBar,LevelStopHigh2X);

   LevelStopRESULT=NormalizeDouble(LevelStopRESULT,Digits);   

   

   //**********************************************************

   //**********************************************************

   

   //AB>? ;>AA 2 ?C=:B0E =5 4>;65= 1KBL A;8H:>< 1>;LH8<

   

   //@0AG5B ?C=:B>2 40;L=53> AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   StopDalniyPUNKT=RazmerSrednBara*KoeffStopLossDalniy;

   StopDalniyPUNKT=MathRound(StopDalniyPUNKT);

   

   //C@>25=L 40;L=53> AB>? ;>AA0 G5@57 @07<5@ A@54=53> 10@0

   LevelStopDalniy=PriceASK+StopDalniyPUNKT*Point;

   LevelStopDalniy=LevelStopDalniy+5*Point;

   LevelStopDalniy=NormalizeDouble(LevelStopDalniy,Digits);

   

   //@57C;LB0B @0AG5B0 C@>2=O AB>? ;>AA0 - 15@5< A0<K9 

   LevelStopRESULT=MathMin(LevelStopRESULT,LevelStopDalniy);

   LevelStopRESULT=NormalizeDouble(LevelStopRESULT,Digits);

   

   //**********************************************************

   //**********************************************************

   

   //C@>25=L AB>? ;>AA0 =5 4>;65= 1KBL 1;865, G5< @07@5H5=>

   

   //<8=8<0;L=K9 @07<5@ AB>? ;>AA0 2 ?C=:B0E   " $

   StopMarketPUNKT=MarketInfo(Symbol(),MODE_STOPLEVEL);

   StopMarketPUNKT=MathRound(StopMarketPUNKT);  

   

   //C@>25=L <8=8<0;L=>3> AB>? ;>AA0 4;O A45;:8   #   " $

   LevelStopMarket=PriceASK+StopMarketPUNKT*Point;

   LevelStopMarket=LevelStopMarket+5*Point;

   LevelStopMarket=NormalizeDouble(LevelStopMarket,Digits);

   

   //@57C;LB0B @0AG5B0 C@>2=O AB>? ;>AA0 - 15@5< A0<K9 +!

   LevelStopRESULT=MathMax(LevelStopRESULT,LevelStopMarket);

   LevelStopRESULT=NormalizeDouble(LevelStopRESULT,Digits);   

   

   //**********************************************************

   //**********************************************************      

   

   // !" !!

   

   return(LevelStopRESULT);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//>?@545;5=85 =0;8G8O D;5B0 8  ?@>1>9 53>  3@0=8FK

bool ProboyYzkogoFletaBEAR(double sredtel, int b)

{

   double verteli, nizteli, verlevtel, nizlevtel, koefyzkmin, koefyzkcur, visotflt;



   int i, st, hiop, hicl, lwop, lwcl, kolbarov, brmax, total, YzkiyLevyiBar, dnoflt;   

   

   bool probbear;



   probbear=false;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   brmax=Bars-50;

   total=b+DalnostPoiskaFletaMAX;

   total=MathMin(total,brmax);

   

   st=b+1;

   

   kolbarov=0;

   

   //10@ - ;520O 3@0=8F0 D;5B0, 345 :>5DD. C7:>AB8 <8=8<;0L=K9

   YzkiyLevyiBar=0;

   

   //=0G0;L=>5 ,( 7=0G5=85 :>5DD8F85=B0 C7:>AB8 D;5B0

   koefyzkmin=80;

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =081>;LH0O F5=0 >B:@KB8O

   hiop=iHighest(NULL,0,MODE_OPEN,YzkostFletaStartDist,st);

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =081>;LH0O F5=0 70:@KB8O

   hicl=iHighest(NULL,0,MODE_CLOSE,YzkostFletaStartDist,st);

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =08<5=LH0O F5=0 >B:@KB8O

   lwop=iLowest(NULL,0,MODE_OPEN,YzkostFletaStartDist,st);

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =08<5=LH0O F5=0 70:@KB8O

   lwcl=iLowest(NULL,0,MODE_CLOSE,YzkostFletaStartDist,st);

   

   //25@E=89 C@>25=L B5; A25G59 =0 =0G0;L=>< >B@57:5

   verlevtel=MathMax(Open[hiop],Close[hicl]);

   

   //=86=89 C@>25=L B5; A25G59 =0 =0G0;L=>< >B@57:5

   nizlevtel=MathMin(Open[lwop],Close[lwcl]);

   

   for(i=st; i<total; i++)

   {

      //=86=OO 3@0=8F0 D;5B0 4>;6=0 1KBL ?@>18B0 B5;>< A25G8 10@0 

      if(Close[b]<Low[i])

      {

         verteli=MathMax(Open[i],Close[i]);

         

         nizteli=MathMin(Open[i],Close[i]);

         

         //>1=>2;O5< 25@E=89 C@>25=L D;5B0

         if(verteli>verlevtel)

         {

            verlevtel=verteli;

         }

         

         //>1=>2;O5< =86=89 C@>25=L D;5B0

         if(nizteli<nizlevtel)

         {

            nizlevtel=nizteli;

         }

         

         //2KA>B0 D;5B0 2 ?C=:B0E

         visotflt=verlevtel-nizlevtel;

         visotflt=visotflt/Point;

         visotflt=MathRound(visotflt);

         

         //:>;8G5AB2> 10@>2 D;5B0

         kolbarov=kolbarov+1;

         

         //5A;8 ?@>H;8 AB0@B>2K9 CG0AB>: - @538AB@8@C5< :>5DD. C7:>AB8

         if(kolbarov>YzkostFletaStartDist)

         {

            //B5:CI89 :>5DD8F85=B C7:>AB8 D;5B0

            koefyzkcur=(visotflt*100)/sredtel;

            koefyzkcur=koefyzkcur/kolbarov;

            koefyzkcur=NormalizeDouble(koefyzkcur,3);

            

            //70?><8=05< 7=0G5=85 10@0 i, 345 :>5DD. C7:>AB8 D;5B0 <8=8<0;L=K9

            if(koefyzkcur<koefyzkmin)

            {

               koefyzkmin=koefyzkcur;

               

               YzkiyLevyiBar=i;

            }  

         }

      }

      else

      {

         break;

      }      

   }

   

   //?>;=>5 :>;8G5AB2> 10@>2 D;5B0  # #'!"

   if(YzkiyLevyiBar>st)

   {

      kolbarov=YzkiyLevyiBar-st+1;

      

      //25@B8:0;L=0O ;8=8O A;520 >B #   D;5B0

      ObjectCreate("YZK_flet_left_line",OBJ_VLINE,0,Time[(YzkiyLevyiBar+1)],0);

      ObjectSet("YZK_flet_left_line",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("YZK_flet_left_line",OBJPROP_COLOR,clrAqua);      

   }

   

   //4=> D;5B0

   dnoflt=iLowest(NULL,0,MODE_LOW,kolbarov,st);        

   

   //5A;8 =0945= 4>AB0B>G=> 4;8==K9 8 C7:89 D;5B

   if((YzkiyLevyiBar>st)&&(Open[b]<verlevtel)&&(Open[b]>nizlevtel))

   {

      if((Open[b]>Low[dnoflt])&&(Close[b]<Low[dnoflt])&&(Close[b]<nizlevtel))

      {

         if((kolbarov>ShirinaFletaBarovMIN)&&(koefyzkmin<KoeffYzkostiFletaLARGE))

         {

            probbear=true;

            

            MessageBox("-$$&" #!" $" = "+DoubleToStr(koefyzkmin,2));

         }         

      }

   }  

   

   return(probbear);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//>?@545;5=85 =0;8G8O D;5B0 8 +' ?@>1>9 53>  % 3@0=8FK

bool ProboyYzkogoFletaBULL(double sredtel, int b)

{

   double verteli, nizteli, verlevtel, nizlevtel, koefyzkmin, koefyzkcur, visotflt;



   int i, st, hiop, hicl, lwop, lwcl, kolbarov, brmax, total, YzkiyLevyiBar, pikflt;   

   

   bool probbull;



   probbull=false;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   brmax=Bars-50;

   total=b+DalnostPoiskaFletaMAX;

   total=MathMin(total,brmax);

   

   st=b+1;

   

   kolbarov=0;

   

   //10@ - ;520O 3@0=8F0 D;5B0, 345 :>5DD. C7:>AB8 <8=8<;0L=K9

   YzkiyLevyiBar=0;

   

   //=0G0;L=>5 ,( 7=0G5=85 :>5DD8F85=B0 C7:>AB8 D;5B0

   koefyzkmin=80;

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =081>;LH0O F5=0 >B:@KB8O

   hiop=iHighest(NULL,0,MODE_OPEN,YzkostFletaStartDist,st);

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =081>;LH0O F5=0 70:@KB8O

   hicl=iHighest(NULL,0,MODE_CLOSE,YzkostFletaStartDist,st);

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =08<5=LH0O F5=0 >B:@KB8O

   lwop=iLowest(NULL,0,MODE_OPEN,YzkostFletaStartDist,st);

   

   //A25G0 2 =0G0;5 >B@57:0, 345 =08<5=LH0O F5=0 70:@KB8O

   lwcl=iLowest(NULL,0,MODE_CLOSE,YzkostFletaStartDist,st);

   

   //25@E=89 C@>25=L B5; A25G59 =0 =0G0;L=>< >B@57:5

   verlevtel=MathMax(Open[hiop],Close[hicl]);

   

   //=86=89 C@>25=L B5; A25G59 =0 =0G0;L=>< >B@57:5

   nizlevtel=MathMin(Open[lwop],Close[lwcl]);

   

   for(i=st; i<total; i++)

   {

      //25@E=OO 3@0=8F0 D;5B0 4>;6=0 1KBL ?@>18B0 B5;>< A25G8 10@0 

      if(Close[b]>High[i])

      {

         verteli=MathMax(Open[i],Close[i]);

         

         nizteli=MathMin(Open[i],Close[i]);

         

         //>1=>2;O5< 25@E=89 C@>25=L D;5B0

         if(verteli>verlevtel)

         {

            verlevtel=verteli;

         }

         

         //>1=>2;O5< =86=89 C@>25=L D;5B0

         if(nizteli<nizlevtel)

         {

            nizlevtel=nizteli;

         }

         

         //2KA>B0 D;5B0 2 ?C=:B0E

         visotflt=verlevtel-nizlevtel;

         visotflt=visotflt/Point;

         visotflt=MathRound(visotflt);

         

         //:>;8G5AB2> 10@>2 D;5B0

         kolbarov=kolbarov+1;

         

         //5A;8 ?@>H;8 AB0@B>2K9 CG0AB>: - @538AB@8@C5< :>5DD. C7:>AB8

         if(kolbarov>YzkostFletaStartDist)

         {

            //B5:CI89 :>5DD8F85=B C7:>AB8 D;5B0

            koefyzkcur=(visotflt*100)/sredtel;

            koefyzkcur=koefyzkcur/kolbarov;

            koefyzkcur=NormalizeDouble(koefyzkcur,3);

            

            //70?><8=05< 7=0G5=85 10@0 i, 345 :>5DD. C7:>AB8 D;5B0 <8=8<0;L=K9

            if(koefyzkcur<koefyzkmin)

            {

               koefyzkmin=koefyzkcur;

               

               YzkiyLevyiBar=i;

            }  

         }

      }

      else

      {

         break;

      }

   }

   

   //?>;=>5 :>;8G5AB2> 10@>2 D;5B0  # #'!"

   if(YzkiyLevyiBar>st)

   {

      kolbarov=YzkiyLevyiBar-st+1;

      

      //25@B8:0;L=0O ;8=8O A;520 >B #   D;5B0

      ObjectCreate("YZK_flet_left_line",OBJ_VLINE,0,Time[(YzkiyLevyiBar+1)],0);

      ObjectSet("YZK_flet_left_line",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("YZK_flet_left_line",OBJPROP_COLOR,clrAqua);      

   }

   

   //?8: D;5B0

   pikflt=iHighest(NULL,0,MODE_HIGH,kolbarov,st);  

   

   //5A;8 =0945= 4>AB0B>G=> 4;8==K9 8 C7:89 D;5B

   if((YzkiyLevyiBar>st)&&(Open[b]>nizlevtel)&&(Open[b]<verlevtel))

   {

      if((Open[b]<High[pikflt])&&(Close[b]>High[pikflt])&&(Close[b]>verlevtel))

      {

         if((kolbarov>ShirinaFletaBarovMIN)&&(koefyzkmin<KoeffYzkostiFletaLARGE))

         {

            probbull=true;

            

            MessageBox("-$$&" #!" $" = "+DoubleToStr(koefyzkmin,2));

         }              

      }

   }   

   

   return(probbull);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//@0AG5B H8@8=K :@K;0 4;O 10@0 niz 2=CB@8 25@H8=K,AG8B05< GB> :@0O 25@H8=K - ?@545;

// "!"  -  ""

int ShirinKrilaVnytrNiziny(int b2, int niz, int b1)

{

   int kol2, kol1, gr2, gr1, st2, st1, i, kril;

   

   kril=0; kol2=0; kol1=0; 

   

   //@0AG5B 4;8=K :@K;0 kol1 A?@020 >B 10@0 niz

   gr1=b1+1;

   

   if((niz>gr1)&&(niz<b2))

   {

      st1=niz-1;

      

      for(i=st1; i>b1; i--)

      {

         if(Low[niz]<=Low[i])

         {

            kol1=kol1+1;

         }

         else

         {

            break;

         }

      }

   }

   

   //@0AG5B 4;8=K :@K;0 kol2 A;520 >B 10@0 niz

   gr2=b2-1;

   

   if((niz<gr2)&&(niz>b1))

   {

      st2=niz+1;

      

      for(i=st2; i<b2; i++)

      {

         if(Low[niz]<=Low[i])

         {

            kol2=kol2+1;

         }

         else

         {

            break;

         }

      }

   }

   

   //@0AG5B 4;8=K :@K;0 2 >15 AB>@>=K >B 10@0  

   kril=MathMin(kol2,kol1);   

   

   return(kril);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//@0AG5B H8@8=K :@K;0 4;O  2=CB@8 =878=K,AG8B05< GB> :@0O =878=K - ?@545;

int ShirKrilaPika(int levgrn, int pik, int b1)

{

   int kol2, kol1, gr2, gr1, st2, st1, i, kril;

   

   kril=0; kol2=0; kol1=0; 

   

   //@0AG5B 4;8=K :@K;0 kol1 A?@020 >B 

   gr1=b1+1;

   

   if((pik>gr1)&&(pik<levgrn))

   {

      //AB0@B>2K9 10@ 4;O F8:;0 2?@02>

      st1=pik-1;

      

      for(i=st1; i>b1; i--)

      {

         if(High[pik]>=High[i])

         {

            kol1=kol1+1;

         }

         else

         {

            break;

         }

      }

   }

   

   //@0AG5B 4;8=K :@K;0 kol2 A;520 >B 

   gr2=levgrn-1;

   

   if((pik<gr2)&&(pik>b1))

   {

      //AB0@B>2K9 10@ 4;O F8:;0 2;52>

      st2=pik+1;

      

      for(i=st2; i<levgrn; i++)

      {

         if(High[pik]>=High[i])

         {

            kol2=kol2+1;

         }

         else

         {

            break;

         }

      }

   }

   

   //@0AG5B 4;8=K :@K;0 2 >15 AB>@>=K >B 10@0  

   kril=MathMin(kol2,kol1);   

   

   return(kril);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0;8G8O 42>9=>9  (+ 8 ?@>1>O  55 ;8=88 H58 =0 10@5 

bool DvoinayaVershina(int levgran, int b)

{

   double verxtela, visot2, visot1, visotlit, visothug, prcsov;

   

   int kolfig, kolvnyt, shirlev, shirprv, levpik, prvpik, glavniz, gp;

   

   int fighibr, dalnpik, hiopn, hicls, raznbr, shirniz, krilniz, st; 

   

   bool versh2x;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   versh2x=false;

   

   glavniz=0;

   

   krilniz=0;

   

   shirniz=0;

   

   st=b+1;

   

   //4>;6=0 1KBL =0945=0 ;520O 3@0=8F0 >1I59 D83C@K 25@H8=K

   if(levgran>b)

   {

      //10@ A?@020 >B ;52>9 3@0=8FK

      gp=levgran-1;

      

      //:>;8G5AB2> 2=CB@5==8E 10@>2 D83C@K

      kolvnyt=levgran-b-1;      

      

      //3;02=K9 =87 - 10@, 345 =0E>48BAO A0<0O =87:0O 2=CB@5==OO =878=0

      glavniz=iLowest(NULL,0,MODE_LOW,kolvnyt,st);

      

      //H8@8=0 :@K;0 3;02=>9 2=CB@5==59 =878=:8

      krilniz=ShirinKrilaVnytrNiziny(levgran,glavniz,b);

      

      //H8@>:89 =87 - A0<0O H8@>:0O 2=CB@5==OO =878=:0

      shirniz=PoiskGlavnogoNiza(levgran,b);

      

      //5A;8 3;02=0O =878=:0 =5 ?>4E>48B, 70<5=8< 55 =0 1>;55 H8@>:CN

      if((Low[glavniz]==Low[shirniz])||(glavniz==st)||(glavniz==gp))

      {

         glavniz=shirniz;

         

         //>1=>2;5=85 8=D>@<0F88 > H8@8=5 :@K;0

         krilniz=ShirinKrilaVnytrNiziny(levgran,glavniz,b);         

      }

      

      //5A;8 3;02=0O =878=:0 =0945=0 8 H8@8=0 :@K;0 1>;LH0O

      if((glavniz>b)&&(krilniz>=ShirinKrilOnePikVersh2X))            

      {

         //>1I55 :>;8G5AB2> 10@>2 D83C@K

         kolfig=levgran-b+1;

         

         //A0<K9 2KA>:89 10@ D83C@K 42>9=0O 25@H8=0

         fighibr=iHighest(NULL,0,MODE_HIGH,kolfig,b);

         

         //=081>;LH0O 2KA>B0 - @0AAB>O=85 >B 25@H8=K 4> ;8=88 H58

         visothug=High[fighibr]-Low[glavniz];

         visothug=visothug/Point;      

         

         //40;L=>ABL 3;02=>3> ?8:0 D83C@K 2 10@0E

         dalnpik=SlevaBarovOtVershiny(fighibr);      

         

         //H8@8=0 ;52>3> ?8:0 2 10@0E

         shirlev=levgran-glavniz+1;

         

         //H8@8=0 ?@02>3> ?8:0 2 10@0E

         shirprv=glavniz-b+1;

         

         //=><5@ 10@0 ;52>3> ?8:0 42>9=>9 25@H8=K

         levpik=iHighest(NULL,0,MODE_HIGH,shirlev,glavniz);

         

         //2KA>B0 ;52>9 25@H8=K 2 ?C=:B0E

         visot2=High[levpik]-Low[glavniz];

         visot2=visot2/Point;      

         

         //=><5@ 10@0 ?@02>3> ?8:0 42>9=>9 25@H8=K

         prvpik=iHighest(NULL,0,MODE_HIGH,shirprv,b);

         

         //2KA>B0 ?@02>9 25@H8=K 2 ?C=:B0E

         visot1=High[prvpik]-Low[glavniz];

         visot1=visot1/Point;

         

         //2KA>B0 =08<5=LH0O 87 42CE

         visotlit=MathMin(visot2,visot1);      

         

         //10@ D83C@K, 345 =0945=0 A0<0O 2KA>:0O F5=0 >B:@KB8O

         hiopn=iHighest(NULL,0,MODE_OPEN,kolfig,b);

         

         //10@ D83C@K, 345 =0945=0 A0<0O 2KA>:0O F5=0 70:@KB8O

         hicls=iHighest(NULL,0,MODE_CLOSE,kolfig,b);

         

         //A0<K9 2KA>:89 C@>25=L B5; A25G59 D83C@K

         verxtela=MathMax(Open[hiopn],Close[hicls]);

         

         //?@>F5=B A>2?045=8O 2KA>BK =08<5=LH59 25@H8=K : 2KA>B5 =081>;LH59

         prcsov=(visotlit*100)/visothug;

         prcsov=MathRound(prcsov);      

         

         //@07=>ABL 2 10@0E <564C 42C<O 25@H8=0<8

         raznbr=levpik-prvpik;      

         

         //CA;>28O 2K?>;=5=8O D83C@K 42>9=0O  (

         if(((High[levpik]>=verxtela)&&(High[prvpik]>=verxtela))||(prcsov>ProcentSovpadLevelPIK2X))

         {

            //3;02=0O 2=CB@5==O =878=:0 - ;8=8O H58 4>;6=0 1KBL ?@>18B0 =0 10@5 

            if((Open[b]>=Low[glavniz])&&(Close[b]<Low[glavniz]))

            {

               //40;L=>ABL ?8:0 42>9=>9 25@H8=K 4>;6=0 1KBL 1>;LH>9, 10@K 25@H8= 40;5:>

               if((dalnpik>DalnostPikaVershin2XMIN)&&(raznbr>ShirinKrilOnePikVersh2X))

               {

                  versh2x=true;

               }

            } 

         }

      }

   }

   

   return(versh2x);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0;8G8O 42>9=>9 + 8 ?@>1>O  % 55 ;8=88 H58 =0 10@5 

bool DvoinayaNizinya(int levgran, int b)

{

   double niztela, glybin2, glybin1, glyblit, glybhug, prcsov;

   

   int kolfig, kolvnyt, shirlev, shirprv, levdno, prvdno, glavpik, gp;

   

   int figlwbr, dalndna, lwopn, lwcls, raznbr, shirpik, krilpik, st; 

   

   bool nizin2x;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   nizin2x=false;

   

   glavpik=0;

   

   krilpik=0;

   

   shirpik=0;

   

   st=b+1;

   

   //4>;6=0 1KBL =0945=0 ;520O 3@0=8F0 >1I59 D83C@K =878=K

   if(levgran>b)

   {

      //10@ A?@020 >B ;52>9 3@0=8FK

      gp=levgran-1;

      

      //:>;8G5AB2> 2=CB@5==8E 10@>2 D83C@K

      kolvnyt=levgran-b-1;      

      

      //3;02=K9 2=CB@5==89 ?8: - 10@ A0<>9 2KA>:>9 2=CB@5==59 25@H8=K

      glavpik=iHighest(NULL,0,MODE_HIGH,kolvnyt,st);

      

      //@07<5@ :@K;0 3;02=>3> 2=CB@5==53> ?8:0

      krilpik=ShirKrilaPika(levgran,glavpik,b);

      

      //H8@>:89 ?8: - A0<0O H8@>:0O 2=CB@5==OO 25@H8=:0

      shirpik=PoiskGlavnogoPika(levgran,b);

      

      //5A;8 3;02=0O 25@H8=:0 =5 ?>4E>48B, 70<5=8< 55 =0 1>;55 H8@>:CN

      if((High[glavpik]==High[shirpik])||(glavpik==st)||(glavpik==gp))

      {

         glavpik=shirpik;

         

         //>1=>2;5=85 8=D>@<0F88 > H8@8=5 :@K;0

         krilpik=ShirKrilaPika(levgran,glavpik,b);

      }      

      

      //5A;8 3;02=K9 2=CB@5==89 ?8: =0945= 8 H8@8=0 :@K;0 53> 1>;LH0O

      if((glavpik>b)&&(krilpik>=ShirinKrilOnePikVersh2X))         

      {

         //>1I55 :>;8G5AB2> 10@>2 D83C@K

         kolfig=levgran-b+1;

         

         //A0<K9 =87:89 10@ D83C@K 42>9=0O =878=0

         figlwbr=iLowest(NULL,0,MODE_LOW,kolfig,b);

         

         //=081>;LH0O 3;C18=0 - @0AAB>O=85 >B =878=K 4> ;8=88 H58

         glybhug=High[glavpik]-Low[figlwbr];

         glybhug=glybhug/Point;

         

         //40;L=>ABL 4=0 3;02=>9 =878=K D83C@K 2 10@0E

         dalndna=SlevaBarovOtNiziny(figlwbr);      

         

         //H8@8=0 ;52>9 =878=K 2 10@0E

         shirlev=levgran-glavpik+1;

         

         //H8@8=0 ?@02>9 =878=K 2 10@0E

         shirprv=glavpik-b+1;

         

         //=><5@ 10@0 ;52>3> 4=0 42>9=>9 =878=K

         levdno=iLowest(NULL,0,MODE_LOW,shirlev,glavpik);

         

         //3;C18=0 ;52>9 =878=K 2 ?C=:B0E

         glybin2=High[glavpik]-Low[levdno];

         glybin2=glybin2/Point;

         

         //=><5@ 10@0 ?@02>3> 4=0 42>9=>9 =878=K

         prvdno=iLowest(NULL,0,MODE_LOW,shirprv,b);

         

         //3;C18=0 ?@02>9 =878=K 2 ?C=:B0E

         glybin1=High[glavpik]-Low[prvdno];

         glybin1=glybin1/Point;

         

         //3;C18=0 =08<5=LH0O 87 42CE

         glyblit=MathMin(glybin2,glybin1);      

         

         //10@ D83C@K, 345 =0945=0 A0<0O / F5=0 >B:@KB8O

         lwopn=iLowest(NULL,0,MODE_OPEN,kolfig,b);

         

         //10@ D83C@K, 345 =0945=0 / F5=0 70:@KB8O

         lwcls=iLowest(NULL,0,MODE_CLOSE,kolfig,b);

         

         //A0<K9  C@>25=L B5; A25G59 D83C@K

         niztela=MathMin(Open[lwopn],Close[lwcls]);

         

         //?@>F5=B A>2?045=8O 3;C18=K =08<5=LH59 =878=K : 3;C18=5 =081>;LH59

         prcsov=(glyblit*100)/glybhug;

         prcsov=MathRound(prcsov);

         

         //@07=>ABL 2 10@0E <564C 42C<O =878=0<8

         raznbr=levdno-prvdno;

         

         //CA;>28O 2K?>;=5=8O D83C@K 42>9=0O 

         if(((Low[levdno]<=niztela)&&(Low[prvdno]<=niztela))||(prcsov>ProcentSovpadLevelPIK2X))

         {

            //3;02=0O 2=CB@5==O 25@H8=:0 - ;8=8O H58 4>;6=0 1KBL ?@>18B0 =0 10@5 

            if((Open[b]<=High[glavpik])&&(Close[b]>High[glavpik]))

            {

               //40;L=>ABL  42>9=>9 + 4>;6=0 1KBL 1>;LH>9, 10@K =878= 40;5:>

               if((dalndna>DalnostPikaVershin2XMIN)&&(raznbr>ShirinKrilOnePikVersh2X))

               {

                  nizin2x=true;

               }

            } 

         }

      }

   }

   

   return(nizin2x);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K macdbar1 :0A0B5;L=>9 ;8=88 A=87C ?> <8=8<C<0< 

//=C6=> GB>1K 2 B>G:5 macdbar2 8=48:0B>@  1K; A0<K9 =87:89 =0 >B@57:5

//?@82O7K205< ?;0=:C :  2 B>G:5 macdbar2 8 ?>4=8<05< 225@E ?@02K9 55 :>=5F

//>?@545;O5< =><5@ 10@0 macdbar1 345 ?;0=:0 C?5@;0AL 2 8=48:0B>@ 

//=0 >B@57:5 A macdbar2 ?> , MB> 1C45B ?@020O B>G:0 4;O :0A0B5;L=>9 ;8=88

int MACDBullDiverRightBar(int macdbar2, int b)

{

   double yi, macdlev2, macdlevi, koeffcur, koeffmin;

   

   int i, xi, st, macdbar1;



   //>B25B, 2>72@0I05<K9 DC=:F859

   macdbar1=0;

   

   //;52K9 =86=89 C@>25=L <8=8<C<0 MACD =0 10@5 macdbar2

   macdlev2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar2);

   macdlev2=NormalizeDouble(macdlev2,7);



   //@0AAB>O=85 >B =C;52>9 ;8=88 - ?> 25@B8:0;8 45;8< =0 >48= 10@

   koeffmin=MathAbs(macdlev2);

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=macdbar2-1;

   

   //8I5< 10@, 345 =08<5=LH89 :>MDD =0:;>=0 koeffcur 4;O :0A0B5;L=>9 ;8=88

   for(i=st; i>=b; i--)

   {

      macdlevi=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      macdlevi=NormalizeDouble(macdlevi,7);

   

      //@0AAB>O=85 ?> >A8 X <564C >?>@=K<8 B>G:0<8 :0A0B5;L=>9 ;8=88

      xi=macdbar2-i;

      

      //@0AAB>O=85 ?> >A8 Y <564C >?>@=K<8 B>G:0<8 :0A0B5;L=>9 ;8=88

      yi=macdlevi-macdlev2;

      

      koeffcur=yi/xi;

      koeffcur=NormalizeDouble(koeffcur,7);

      

      if(koeffcur<koeffmin)

      {

         koeffmin=koeffcur;

         

         macdbar1=i;

      }

   }

   

   return(macdbar1);

}

//================================================================================

//@0AG5B ;52>3> >?>@=>3> 10@0 4;O :0A0B5;L=>9 ;8=88 A=87C ?> 

//2E>4OI85 ?0@0<5B@K - 10@   + , ?@>25@O5<K9 10@ 

//15@5< 87 2A5E 2>7<>6=KE :0A0B5;L=CN ;8=8N <0:A8<0;L=>9 4;8=K, => 1;87:> : 

int MACDBullDiverLeftBar(int dnomacdbar, int levgrniz, int b)

{

   int levyibar, pravbar, macdbar2, macdbar1, dlincur, dlinmax, st, i;

   

   bool estline;

   

   //C40;>AL ;8 2>>1I5 ?>AB@>8BL :0A0B5;L=CN ;8=8N

   estline=false;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   macdbar2=0;

   macdbar1=0;

   

   //;52K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   levyibar=dnomacdbar;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   pravbar=dnomacdbar;

   

   //=081>;LH55 @0AAB>O=85 <564C 10@0<8 >?>@ :0A0B5;L=>9 ;8=88

   dlinmax=0;

   

   //B5:CI55 @0AAB>O=85 <564C 10@0<8 >?>@ :0A0B5;L=>9 ;8=88

   dlincur=0;

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=dnomacdbar-1;

   

   for(i=st; i>=b; i--)

   {

      //45;05< (, 8I5<  #. "'#  + 4;O :0A0B5;L=>9 ;8=88

      pravbar=MACDBullDiverRightBar(levyibar,b);

      

      //5A;8 :0A0B5;L=CN ;8=8N C40;>AL ?>AB@>8BL

      if((pravbar>=b)&&(pravbar<levyibar))

      {

         estline=true;

         

         //B5:CI55 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=>9 ;8=88

         dlincur=levyibar-pravbar;

         

         //70?><8=05< 10@K =0 :>B>@KE 4;8=0 ;8=88 <0:A8<0;L=0O

         if((dlincur>dlinmax)&&(pravbar<=levgrniz))

         {

            dlinmax=dlincur;

            

            macdbar2=levyibar;

            

            macdbar1=pravbar;

         }

         

         //2 :>=F5 H030 ?5@5AB02;O5< ;52CN >?>@=CN B>G:C =0 <5AB> ?@02>9

         levyibar=pravbar;         

      }

      else

      {

         //5A;8 ;8=8N ?>AB@>8BL =5 C40;>AL - 7025@H05< ?>8A:

         break;

      }

      

      //5A;8 4>H;8 4> 10@0  - 7025@H05< ?>8A:

      if(pravbar==b)

      {

         break;

      }

   }

   

   //5A;8 4;8=0 ;8=88 4>AB0B>G=0O 2>72@0I05< =><5@ ;52>3> 10@0

   if((dlinmax>3)&&(estline==true))

   {

      return(macdbar2);

   }

   

   return(0);

}

//================================================================================

//?>8A: 10@0 =0 7040==>< >B@57:5 345 7=0G5=85 MACD <8=8<0;L=>, 0=0;>3 iLowest

//?@>25@5=0 =0 A:@8?B5 - @01>B05B

int PoiskBaraLowestMACD(int kolbarov, int b)

{

   double curmacd, minmacd;

   

   int i, st, total, levkrai, nizbar;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=b+kolbarov;

   total=MathMin(total,levkrai);   

   

   //8A:><K9 10@ - >B25B, 2>72@0I05<K9 DC=:F859

   nizbar=b;

   

   minmacd=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b);

   minmacd=NormalizeDouble(minmacd,7);

   

   //AB0@B>2K9 10@ F8:;0

   st=b+1;   

   

   for(i=st;i<total;i++)

   {

      curmacd=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      curmacd=NormalizeDouble(curmacd,7);

      

      if(curmacd<minmacd)

      {

         minmacd=curmacd;

         

         nizbar=i;   

      }   

   }   

   

   return(nizbar);

}

//================================================================================

//?>8A: =878=K F5= =0 10@5 , 5A;8 >=0 ACI5AB2C5B - 2>72@0I05< ;52CN 3@0=8FC

int LevGranNizaCenyDiverBull(int b)

{

   int levgran, levkrai, total, predv, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //?@5420@8B5;L=0O ;520O 3@0=8F0

   predv=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=b+120;

   total=MathMin(total,levkrai);

   

   st=b+1;   

   

   //A25G0 =0 10@5  4>;60 1KBL +',/

   if(Open[b]<Close[b])

   {

      //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK + F5=

      for(i=st; i<total; i++)

      {

         //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/  +( " !'

         if((Close[b]>=Open[i])&&(Close[b]>=Close[i]))

         {

            continue;

         }

         else

         {

            //?@5420@8B5;L=0O ;520O 3@0=8F0 +

            predv=i;

            break;

         }

      }

   }

   

   //5A;8 ?@5420@8B5;L=0O 3@0=8F0 =0945=0

   if(predv>b)

   {

      //;520O 3@0=8F0 - ,/ A25G0, F5=0 >B:@KB8O 2KH5 70:@KB8O 10@0 

      if((Open[predv]>Close[predv])&&(Open[predv]>Close[b]))

      {

         levgran=predv;

      }

   }

   

   //5A;8 ;520O 3@0=8F0 =5 =0945=0 ?>?@>1C5< 2B>@>9 20@80=B

   if(levgran==0)

   {

      //A25G0 =0 10@5  4>;60 1KBL +',/

      if(Open[b]<Close[b])

      {

         //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK + F5=

         for(i=st; i<total; i++)

         {

            //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/  +(  ( !'

            if(Close[b]>=High[i])

            {

               continue;

            }

            else

            {

               //;520O 3@0=8F0 +

               levgran=i;

               break;

            }

         }

      }   

   }      

   

   return(levgran);

}

//================================================================================

//!    &+ ,( ()  

//  "    ,    #"  "

int PravayaGranNizinyMACD2(int macdbar1)

{

   double LevelMACD1, TekLevelMACD;

   

   int pravgran, levkrai, total, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   pravgran=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=macdbar1+400;

   total=MathMin(total,levkrai);

   

   st=macdbar1+1;

   

   //C@>25=L  =0 ?@02>9 (<0;>9) =878=5

   LevelMACD1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar1);

   LevelMACD1=NormalizeDouble(LevelMACD1,7);   

   

   //!    &+ ,( ()  2

   for(i=st; i<total; i++)

   {

      //C@>25=L  =0 B5:CI5< 10@5

      TekLevelMACD=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      TekLevelMACD=NormalizeDouble(TekLevelMACD,7); 

      

      //845< 2;52> 4> B5E ?>@, ?>:0  2KH5 8;8 @025= ?@02>9 =878=K

      if(TekLevelMACD>=LevelMACD1)

      {

         continue;

      }

      else

      {

         //?@020O 3@0=8FK 3;C1>:>9 =878=K 

         pravgran=i;

         break;

      }

   }      

   

   return(pravgran);

}

//=================================================================================

//!   &+ ,( ()  

//  "    &+  "%  ,    # "!/  ##. .

int LevayaGranNizinyMACD2(int pravgran)

{

   double TekLevelMACD;

   

   int levgran, levkrai, total, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=pravgran+400;

   total=MathMin(total,levkrai);   

   

   //!   &+ ,( ()  

   for(i=pravgran; i<total; i++)

   {

      //C@>25=L  =0 B5:CI5< 10@5

      TekLevelMACD=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      TekLevelMACD=NormalizeDouble(TekLevelMACD,7); 

      

      //845< 2;52> 4> B5E ?>@, ?>:0  =5 C?@5BAO 2 =C;52CN ;8=8N

      if(TekLevelMACD<0)

      {

         continue;

      }

      else

      {

         //;520O 3@0=8F0 3;C1>:>9 =878=K 

         levgran=i-1;

         break;

      }

   }      

   

   return(levgran);

}

//=================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K 4;O :0A0B5;L=>9 ;8=88 ?> <8=8<C<0< F5=

//0;3>@8B< ?@82O7K205< ;52K9 :>=5F ?;0=:8 : Low[levcenbar] 8 A<>B@8< =0 :0:><

//10@5 1C45B 4@C3>9 :>=5F ?;0=:8 pravcenbar - 10@ B>G:8 >?>@K ;8=88 B@5=40

//?@>2>@>B ?;0=:8 ?@>B82 G0A>2>9 AB@5;:8, =0G0;> 42865=8O - 10@ levcenbar

int RightBarDiverBullPrice(int levcenbar, int b)

{

   double yi, koeffcur, koeffmax;

   

   int i, xi, st, pravcenbar;



   //>B25B, 2>72@0I05<K9 DC=:F859

   pravcenbar=0;

     

   //<0:A8<0;L=K9 :>5DD8F85=B =0:;>=0 :0A0B5;L=>9 ;8=88

   koeffmax=0;

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=levcenbar-1;   

   

   //8I5< <8=8<0;L=K9 :>MDD 4;O C@02=5=8O ?@O<>9 ;8=88, =0< =C65= 10@,

   //:>B>@K9 A2>8< 4=>< A8;L=5 2A53> >?CAB8; ;52K9 :>=5F ?;0=:8

   for(i=st; i>=b; i--) 

   {

      //=0:;>= 4>;65= 1KBL A25@EC 2=87 A;520 =0?@02>

      if(Low[levcenbar]>Low[i])

      {

         xi=levcenbar-i;

         

         yi=Low[levcenbar]-Low[i];

         yi=yi/Point;

         

         koeffcur=yi/xi;

         

         koeffcur=NormalizeDouble(koeffcur,7);

         

         if(koeffcur>koeffmax)

         {

            koeffmax=koeffcur;

            

            pravcenbar=i;            

         }         

      }  

   }

   

   return(pravcenbar);

}

//=================================================================================

//>B ;52>9 3@0=8FK  845< 4>   + &, 2KG8A;O5< :0A0B5;L=CN ;8=8N F5=K

//70?><8=05< 2 10@0, =0 :>B>@KE ;8=8O 1K;0 <0:A8<0;L=>9 4;8=K, => 1;87:> : 

//2>72@0I05< =><5@   otvetleftbar ;52>9 B>G:8 >?>@K 4;O :0A0B5;L=>9 ;8=88 &

int LeftBarDiverBullPrice(int levgrnmacd, int levgrniz, int dnocenbar, int b)

{

   int levyibar, pravbar, dlinacur, dlinamax, otvetleftbar, otvetpravbar, st, i;

   

   bool estline;

   

   //C40;>AL ;8 2>>1I5 ?>AB@>8BL :0A0B5;L=CN ;8=8N

   estline=false;   

   

   //<0:A8<0;L=0O 4;8==0 :0A0B5;L=>9 ;8=88 =0 CG0AB:5

   dlinamax=0;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   otvetleftbar=0;

   otvetpravbar=0;

   

   //;52K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   levyibar=levgrnmacd;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   pravbar=0;

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=levgrnmacd-1;

   

   for(i=st; i>=b; i--)

   {

      //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

      pravbar=RightBarDiverBullPrice(levyibar,b);

      

      //5A;8 :0A0B5;L=CN ;8=8N C40;>AL ?>AB@>8BL

      if((pravbar>=dnocenbar)&&(pravbar<levyibar))

      {

         estline=true;

         

         //B5:CI55 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=>9 ;8=88

         dlinacur=levyibar-pravbar;

         

         //70?><8=05< 10@K =0 :>B>@KE 4;8=0 ;8=88 <0:A8<0;L=0O

         if((dlinacur>dlinamax)&&(pravbar<=levgrniz))

         {

            dlinamax=dlinacur;

            

            otvetleftbar=levyibar;

            

            otvetpravbar=pravbar;

         }

         

         //2 :>=F5 H030 ?5@5AB02;O5< ;52CN >?>@=CN B>G:C =0 <5AB> ?@02>9

         levyibar=pravbar;         

      }

      else

      {

         //5A;8 ;8=8N ?>AB@>8BL =5 C40;>AL - 7025@H05< ?>8A:

         break;

      }      

      

      //5A;8 4>H;8 4> 10@0 dnocenbar - 7025@H05< ?>8A:

      if(pravbar==dnocenbar)

      {

         break;

      }     

   }

   

   //5A;8 4;8=0 ;8=88 4>AB0B>G=0O 2>72@0I05< =><5@ ;52>3> 10@0

   if((dlinamax>3)&&(estline==true))

   {

      return(otvetleftbar);

   }

   

   return(0);

}

//=================================================================================

//=>2K9 0;3>@8B< ?>8A:0 1KGL59 4825@35=F88 - A=0G0;0 8I5< =878=C F5= 2>7;5 10@0 

//5ABL 425 >1;0AB8 - >B@57:0 =0 CG0AB:5 10@>2 ;520O 2 8 ?@020O 1

//?@020O - MB> 345 =0E>48BAO =878=0 F5=, =0 MB>< 65 CG0AB:5 8I5< =878=C 

//;520O >1;0ABL - MB> 1>;55 3;C1>:0O =878=0 , 345 >=0 =865 ?@02>3> C@>2=O

bool DiverBullOXOTNIK777(int b)

{

   double macdlev2, macdlev1, macdlevb;

   

   int levbarnizcen, koltotnizcen, dnocenbar, macdbar2, macdbar1, dalnostdna, glavpiknizcen;

   

   int pravgrmacd2, leftgrmacd2, koltotmacd2, pricebar2, pricebar1, niznakrbar;

   

   bool diverbull, estmacdline, estpriceline, probglavpika;

   

   diverbull=false; estmacdline=false; estpriceline=false; probglavpika=false;

   

   levbarnizcen=0; koltotnizcen=0; dnocenbar=0; macdbar2=0; macdbar1=0;

   

   koltotmacd2=0; macdlev2=0; macdlev1=0; pricebar2=0; pricebar1=0;

   

   pravgrmacd2=0; leftgrmacd2=0; dalnostdna=0; niznakrbar=0; glavpiknizcen=0;

   

   //?>8A: ;52>3> :@0O =878=K F5=

   levbarnizcen=LevGranNizaCenyDiverBull(b);

   

   //?@>25@:0 =0;8G8O ?@>1>O 3;02=>9 25@H8=:8 2=CB@8 =878=K F5=

   if(levbarnizcen>b)

   {

      //?>8A: 3;02=>3> ?8:0 =878=K F5=

      glavpiknizcen=PoiskGlavnogoPika(levbarnizcen,b);

      

      if((Open[b]<High[glavpiknizcen])&&(Close[b]>High[glavpiknizcen]))

      {

         probglavpika=true;

      }

   }   

   

   //C@>25=L  =0 10@5 

   macdlevb=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,(b+1));   

   

   //5A;8 D83C@0 =878=K F5= =0945=0, 8I5< 10@ - <8=8<C< F5=

   if((levbarnizcen>b)&&((macdlevb<0)||(probglavpika==true)))

   {

      // '!"   + &

      koltotnizcen=levbarnizcen-b+1;

      

      //   + &

      dnocenbar=iLowest(NULL,0,MODE_LOW,koltotnizcen,b);

      

      //40;L=>ABL 4=0 =878=K F5=

      dalnostdna=SlevaBarovOtNiziny(dnocenbar);

      

      //?@545;L=K9 ;52K9 10@ =0:@KB8O =878=K F5=

      niznakrbar=b+dalnostdna;

      

      //?>8A: 10@0 =0 CG0AB:5 =878=K F5=, 345 =0945=> <8=8<0;L=>5 7=0G5=85 

      macdbar1=PoiskBaraLowestMACD(koltotnizcen,b);

      

      //C@>25=L ?@02>9 =878=:8 

      macdlev1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar1);

      

      //!    &+ ,( ()  2

      pravgrmacd2=PravayaGranNizinyMACD2(macdbar1);                  

   }

   

   //5A;8 ?@020O 3@0=8FK 1>;LH>3> ;52>3> ?8:0  =0945=0

   if((pravgrmacd2>levbarnizcen)&&(levbarnizcen>b))

   {

      //!   &+ ,( ()  

      leftgrmacd2=LevayaGranNizinyMACD2(pravgrmacd2);

      

      //5A;8 ;520O 3@0=8F0    =0945=0

      if(leftgrmacd2>pravgrmacd2)

      {

         //?>;=>5 :>;8G5AB2> 10@>2 ;52>9 =878=K 2 

         koltotmacd2=leftgrmacd2-pravgrmacd2+1;

         

         //=86=89 10@ ;52>9 =878=K 

         macdbar2=PoiskBaraLowestMACD(koltotmacd2,pravgrmacd2);

         

         //C@>25=L  =878=:8 

         macdlev2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar2);             

      }         

   }      

   

   //?>?KB:0 ?>AB@>8BL :0A0B5;L=CN ;8=8N A=87C 225@E ?> 

   if((macdlev1<0)&&(macdlev2<macdlev1))

   {

      //@0AG5B ;52>9 >?>@=>9 B>G:8 :0A0B5;L=>9 A=87C ?> 

      macdbar2=MACDBullDiverLeftBar(macdbar2,levbarnizcen,b);

      

      //@0AG5B ?@02>9 >?>@=>9 B>G:8 B>G:8 :0A0B5;L=>9 A=87C ?> 

      macdbar1=MACDBullDiverRightBar(macdbar2,b);

      

      if((macdbar2>macdbar1)&&(macdbar1>=b))

      {

         //C@>25=L ?@02>9 >?>@=>9 B>G:8 

         macdlev1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar1);

         

         //C@>25=L ;52>9 >?>@=>9 B>G:8 

         macdlev2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar2);

         

         estmacdline=true;

      }

   }

   

   //?>?KB:0 ?>AB@>8BL :0A0B5;L=CN ;8=8N A25@EC 2=87 ?> <8=8<C<0< &

   if((niznakrbar>leftgrmacd2)&&(leftgrmacd2>pravgrmacd2)&&(pravgrmacd2>b))

   {

      //@0AG5B ;52>9 >?>@=>9 B>G:8 :0A0B5;L=>9 A=87C ?> <8=8<C<0< &+

      pricebar2=LeftBarDiverBullPrice(leftgrmacd2,levbarnizcen,dnocenbar,b);

      

      //@0AG5B ?@02>9 >?>@=>9 B>G:8 :0A0B5;L=>9 A=87C ?> <8=8<C<0< &+

      pricebar1=RightBarDiverBullPrice(pricebar2,b);

      

      if((pricebar2>pricebar1)&&(pricebar1>=dnocenbar))

      {

         estpriceline=true;

      }

   }   

         

   //>:>=G0B5;L=0O ?@>25@:0 A>>B=>H5=89 4;O =0;8G8O +', 4825@35=F88

   if((Low[pricebar2]>Low[pricebar1])&&(macdlev2<macdlev1)&&(estmacdline==true))

   {

      if((pricebar1<=levbarnizcen)&&(pricebar1>=b)&&(estpriceline==true))

      {

         diverbull=true;

         

         //?>AB@>5=85 ;8=89 1KGL59 4825@35=F88

         ObjectDelete("MACDBullDiverLine");

         ObjectCreate("MACDBullDiverLine",OBJ_TREND,1,Time[macdbar2],macdlev2,Time[macdbar1],macdlev1);

         

         ObjectDelete("PRICEBullDiverLine");

         ObjectCreate("PRICEBullDiverLine",OBJ_TREND,0,Time[pricebar2],Low[pricebar2],Time[pricebar1],Low[pricebar1]);

      }

   }

   

   if(diverbull==false)

   {

      diverbull=DiverBull(b);

   }

   

   return(diverbull);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?>8A: 25@H8=K F5= =0 10@5 , 5A;8 >=0 ACI5AB2C5B - 2>72@0I05< ;52CN 3@0=8FC

int LevGranPikaCenyDiverBear(double sredtelo, int b)

{

   int levgran, levkrai, total, predv, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //?@5420@8B5;L=0O ;520O 3@0=8F0

   predv=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=b+120;

   total=MathMin(total,levkrai);

   

   st=b+1;   

   

   //A25G0 =0 10@5  4>;60 1KBL ,/

   if(Open[b]>Close[b])

   {

      //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK  (+ F5=

      for(i=st; i<total; i++)

      {

         //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/   " !'

         if((Close[b]<=Open[i])&&(Close[b]<=Close[i]))

         {

            continue;

         }

         else

         {

            //?@5420@8B5;L=0O ;520O 3@0=8F0  (+

            predv=i;

            break;

         }

      }

   }

   

   //5A;8 ?@5420@8B5;L=0O 3@0=8F0 =0945=0

   if(predv>b)

   {

      //;520O 3@0=8F0 - +',/ A25G0, F5=0 >B:@KB8O  70:@KB8O 10@0 

      if((Open[predv]<Close[predv])&&(Open[predv]<Close[b]))

      {

         levgran=predv;

      }

   }      

   

   //5A;8 ;520O 3@0=8F0 =5 =0945=0 ?>?@>1C5< 2B>@>9 20@80=B

   if(levgran==0)

   {

      //A25G0 =0 10@5  4>;60 1KBL ,/

      if(Open[b]>Close[b])

      {

         //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK  (+ F5=

         for(i=st; i<total; i++)

         {

            //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/    !'

            if(Close[b]<=Low[i])

            {

               continue;

            }

            else

            {

               //;520O 3@0=8F0  (+

               levgran=i;

               break;

            }

         }

      }   

   }   

   

   //5A;8 ;52CN 3@0=8FC =5 C40;>AL =09B8 ?@>1C5< 2B>@>9 20@80=B

   if(levgran==0)

   {

      levgran=RaschetLevgrVershinGOOD(sredtelo,b);

   }

   

   return(levgran);

}

//================================================================================

//?>8A: 10@0 =0 7040==>< >B@57:5 345 7=0G5=85 MACD <0:A8<0;L=>, 0=0;>3 iHighest

int PoiskBaraHighestMACD(int kolbarov, int b)

{

   double curmacd, maxmacd;

   

   int i, st, total, levkrai, pikbar;

   

   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=b+kolbarov;

   total=MathMin(total,levkrai);   

   

   //8A:><K9 10@ - >B25B, 2>72@0I05<K9 DC=:F859

   pikbar=b;

   

   maxmacd=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b);

   maxmacd=NormalizeDouble(maxmacd,7);

   

   //AB0@B>2K9 10@ F8:;0

   st=b+1;   

   

   for(i=st;i<total;i++)

   {

      curmacd=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      curmacd=NormalizeDouble(curmacd,7);

      

      if(curmacd>maxmacd)

      {

         maxmacd=curmacd;

         

         pikbar=i;   

      }   

   }   

   

   return(pikbar);

}

//================================================================================

//!    &+ ,( ()  

//  "    ,    #"  "

int PravayaGranVershinyMACD2(int macdbar1)

{

   double LevelMACD1, TekLevelMACD;

   

   int pravgran, levkrai, total, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   pravgran=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=macdbar1+400;

   total=MathMin(total,levkrai);

   

   st=macdbar1+1;

   

   //C@>25=L  =0 ?@02>9 (<0;>9) 25@H8=5

   LevelMACD1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar1);

   LevelMACD1=NormalizeDouble(LevelMACD1,7);   

   

   //!    &+ ,( ()  2

   for(i=st; i<total; i++)

   {

      //C@>25=L  =0 B5:CI5< 10@5

      TekLevelMACD=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      TekLevelMACD=NormalizeDouble(TekLevelMACD,7); 

      

      //845< 2;52> 4> B5E ?>@, ?>:0  =865 8;8 @025= ?@02>9 25@H8=K

      if(TekLevelMACD<=LevelMACD1)

      {

         continue;

      }

      else

      {

         //?@020O 3@0=8FK 25@H8=K =878=K 

         pravgran=i;

         break;

      }

   }      

   

   return(pravgran);

}

//================================================================================

//!   &+ ,( ()  

//  "    &+  "%  ,    # "!/  ##. .

int LevayaGranVershinyMACD2(int pravgran)

{

   double TekLevelMACD;

   

   int levgran, levkrai, total, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=pravgran+400;

   total=MathMin(total,levkrai);   

   

   //!   &+ ,( ()  

   for(i=pravgran; i<total; i++)

   {

      //C@>25=L  =0 B5:CI5< 10@5

      TekLevelMACD=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      TekLevelMACD=NormalizeDouble(TekLevelMACD,7); 

      

      //845< 2;52> 4> B5E ?>@, ?>:0  =5 C?@5BAO 2 =C;52CN ;8=8N

      if(TekLevelMACD>0)

      {

         continue;

      }

      else

      {

         //;520O 3@0=8F0 3;C1>:>9 =878=K 

         levgran=i-1;

         break;

      }

   }      

   

   return(levgran);

}

//================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K macdbar1 :0A0B5;L=>9 ;8=88 A25@EC ?> ?8:0< 

//=C6=> GB>1K 2 B>G:5 macdbar2 8=48:0B>@  1K; A0<K9 2KA>:89 =0 >B@57:5

//?@82O7K205< ?;0=:C :  2 B>G:5 macdbar2 8 >?CA:05< 2=87 55 ?@02K9 :>=5F

//>?@545;O5< =><5@ 10@0 macdbar1 345 ?;0=:0 C?5@;0AL 2 8=48:0B>@ 

//=0 >B@57:5 A macdbar2 ?> , MB> 1C45B ?@020O B>G:0 4;O :0A0B5;L=>9 ;8=88

int MACDBearDiverRightBar(int macdbar2, int b)

{

   double yi, macdlev2, macdlevi, koeffcur, koeffmin;

   

   int i, xi, st, macdbar1;



   //>B25B, 2>72@0I05<K9 DC=:F859

   macdbar1=0;

   

   //;52K9 25@E=89 C@>25=L <0:A8<C<0 MACD =0 10@5 macdbar2

   macdlev2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar2);

   macdlev2=NormalizeDouble(macdlev2,7);



   //@0AAB>O=85 >B =C;52>9 ;8=88 - ?> 25@B8:0;8 45;8< =0 >48= 10@

   koeffmin=MathAbs(macdlev2);

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=macdbar2-1;

   

   //8I5< 10@, 345 =08<5=LH89 :>MDD =0:;>=0 koeffcur 4;O :0A0B5;L=>9 ;8=88

   for(i=st; i>=b; i--)

   {

      macdlevi=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      macdlevi=NormalizeDouble(macdlevi,7);

   

      //@0AAB>O=85 ?> >A8 X <564C >?>@=K<8 B>G:0<8 :0A0B5;L=>9 ;8=88

      xi=macdbar2-i;

      

      //@0AAB>O=85 ?> >A8 Y <564C >?>@=K<8 B>G:0<8 :0A0B5;L=>9 ;8=88

      yi=macdlev2-macdlevi;

      

      koeffcur=yi/xi;

      koeffcur=NormalizeDouble(koeffcur,7);

      

      if(koeffcur<koeffmin)

      {

         koeffmin=koeffcur;

         

         macdbar1=i;

      }

   }

   

   return(macdbar1);

}

//================================================================================

//@0AG5B ;52>3> >?>@=>3> 10@0 4;O :0A0B5;L=>9 ;8=88 A25@EC ?> 

//2E>4OI85 ?0@0<5B@K - 10@    (+ , ?@>25@O5<K9 10@ 

//15@5< 87 2A5E 2>7<>6=KE :0A0B5;L=CN ;8=8N <0:A8<0;L=>9 4;8=K, => 1;87:> : 

int MACDBearDiverLeftBar(int verxmacdbar, int levgrpikcen, int b)

{

   int levyibar, pravbar, macdbar2, macdbar1, dlincur, dlinmax, st, i;

   

   bool estline;

   

   //C40;>AL ;8 2>>1I5 ?>AB@>8BL :0A0B5;L=CN ;8=8N

   estline=false;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   macdbar2=0;

   macdbar1=0;

   

   //;52K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   levyibar=verxmacdbar;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   pravbar=verxmacdbar;

   

   //=081>;LH55 @0AAB>O=85 <564C 10@0<8 >?>@ :0A0B5;L=>9 ;8=88

   dlinmax=0;

   

   //B5:CI55 @0AAB>O=85 <564C 10@0<8 >?>@ :0A0B5;L=>9 ;8=88

   dlincur=0;

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=verxmacdbar-1;

   

   for(i=st; i>=b; i--)

   {

      //45;05< (, 8I5<  #. "'#  + 4;O :0A0B5;L=>9 ;8=88

      pravbar=MACDBearDiverRightBar(levyibar,b);

      

      //5A;8 :0A0B5;L=CN ;8=8N C40;>AL ?>AB@>8BL

      if((pravbar>=b)&&(pravbar<levyibar))

      {

         estline=true;

         

         //B5:CI55 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=>9 ;8=88

         dlincur=levyibar-pravbar;

         

         //70?><8=05< 10@K =0 :>B>@KE 4;8=0 ;8=88 <0:A8<0;L=0O

         if((dlincur>dlinmax)&&(pravbar<=levgrpikcen))

         {

            dlinmax=dlincur;

            

            macdbar2=levyibar;

            

            macdbar1=pravbar;

         }

         

         //2 :>=F5 H030 ?5@5AB02;O5< ;52CN >?>@=CN B>G:C =0 <5AB> ?@02>9

         levyibar=pravbar;         

      }

      else

      {

         //5A;8 ;8=8N ?>AB@>8BL =5 C40;>AL - 7025@H05< ?>8A:

         break;

      }

      

      //5A;8 4>H;8 4> 10@0  - 7025@H05< ?>8A:

      if(pravbar==b)

      {

         break;

      }

   }

   

   //5A;8 4;8=0 ;8=88 4>AB0B>G=0O 2>72@0I05< =><5@ ;52>3> 10@0

   if((dlinmax>3)&&(estline==true))

   {

      return(macdbar2);

   }

   

   return(0);

}

//================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K 4;O :0A0B5;L=>9 ;8=88 ?> !# F5=

//0;3>@8B< ?@82O7K205< ;52K9 :>=5F ?;0=:8 : High[levcenbar] 8 A<>B@8< =0 :0:><

//10@5 1C45B 4@C3>9 :>=5F ?;0=:8 pravcenbar - 10@ B>G:8 >?>@K ;8=88 B@5=40

//?@>2>@>B ?;0=:8 ?> G0A>2>9 AB@5;:5, =0G0;> 42865=8O - 10@ levcenbar

int RightBarDiverBEARPrice(int levcenbar, int b)

{

   double yi, koeffcur, koeffmax;

   

   int i, xi, st, pravcenbar;



   //>B25B, 2>72@0I05<K9 DC=:F859

   pravcenbar=0;

     

   //<0:A8<0;L=K9 :>5DD8F85=B =0:;>=0 :0A0B5;L=>9 ;8=88

   koeffmax=0;

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=levcenbar-1;   

   

   //8I5< <8=8<0;L=K9 :>MDD 4;O C@02=5=8O ?@O<>9 ;8=88, =0< =C65= 10@,

   //:>B>@K9 A2>8< 4=>< A8;L=5 2A53> ?>4=O; ?@02K9 :>=5F ?;0=:8

   for(i=st; i>=b; i--) 

   {

      //=0:;>= 4>;65= 1KBL A=87C 225@E A;520 =0?@02>

      if(High[levcenbar]<High[i])

      {

         xi=levcenbar-i;

         

         yi=High[i]-High[levcenbar];

         yi=yi/Point;

         

         koeffcur=yi/xi;

         

         koeffcur=NormalizeDouble(koeffcur,7);

         

         if(koeffcur>koeffmax)

         {

            koeffmax=koeffcur;

            

            pravcenbar=i;            

         }         

      }  

   }

   

   return(pravcenbar);

}

//================================================================================

//>B ;52>9 3@0=8FK  845< 4>    (+ &, 2KG8A;O5< :0A0B5;L=CN ;8=8N F5=K

//70?><8=05< 2 10@0, =0 :>B>@KE ;8=8O 1K;0 <0:A8<0;L=>9 4;8=K, => 1;87:> : 

//2>72@0I05< =><5@   otvetleftbar ;52>9 B>G:8 >?>@K 4;O :0A0B5;L=>9 ;8=88 &

int LeftBarDiverBEARPrice(int levgrnmacd, int levgrpik, int pikcenbar, int b)

{

   int levyibar, pravbar, dlinacur, dlinamax, otvetleftbar, otvetpravbar, st, i;

   

   bool estline;

   

   //C40;>AL ;8 2>>1I5 ?>AB@>8BL :0A0B5;L=CN ;8=8N

   estline=false;   

   

   //<0:A8<0;L=0O 4;8==0 :0A0B5;L=>9 ;8=88 =0 CG0AB:5

   dlinamax=0;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   otvetleftbar=0;

   otvetpravbar=0;

   

   //;52K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   levyibar=levgrnmacd;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   pravbar=0;

   

   //AB0@B>2K9 10@ F8:;0 ?>8A:0

   st=levgrnmacd-1;

   

   for(i=st; i>=b; i--)

   {

      //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

      pravbar=RightBarDiverBEARPrice(levyibar,b);

      

      //5A;8 :0A0B5;L=CN ;8=8N C40;>AL ?>AB@>8BL

      if((pravbar>=pikcenbar)&&(pravbar<levyibar))

      {

         estline=true;

         

         //B5:CI55 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=>9 ;8=88

         dlinacur=levyibar-pravbar;

         

         //70?><8=05< 10@K =0 :>B>@KE 4;8=0 ;8=88 <0:A8<0;L=0O

         if((dlinacur>dlinamax)&&(pravbar<=levgrpik))

         {

            dlinamax=dlinacur;

            

            otvetleftbar=levyibar;

            

            otvetpravbar=pravbar;

         }

         

         //2 :>=F5 H030 ?5@5AB02;O5< ;52CN >?>@=CN B>G:C =0 <5AB> ?@02>9

         levyibar=pravbar;         

      }

      else

      {

         //5A;8 ;8=8N ?>AB@>8BL =5 C40;>AL - 7025@H05< ?>8A:

         break;

      }      

      

      //5A;8 4>H;8 4> 10@0 pikcenbar - 7025@H05< ?>8A:

      if(pravbar==pikcenbar)

      {

         break;

      }     

   }

   

   //5A;8 4;8=0 ;8=88 4>AB0B>G=0O 2>72@0I05< =><5@ ;52>3> 10@0

   if((dlinamax>3)&&(estline==true))

   {

      return(otvetleftbar);

   }

   

   return(0);

}

//================================================================================

//0;3>@8B< ?>8A:0 <54256L59 4825@35=F88 - A=0G0;0 8I5< 25@H8=C F5= 2>7;5 10@0 

//5ABL 425 >1;0AB8 - >B@57:0 =0 CG0AB:5 10@>2 ;520O 2 8 ?@020O 1

//?@020O - MB> 345 =0E>48BAO 25@H8=0 F5=, =0 MB>< 65 CG0AB:5 8I5< 25@H8=C 

//;520O >1;0ABL - MB> 1>;55 2KA>:0O 25@H8=0 , 345 >=0 2KH5 ?@02>3> C@>2=O

bool DiverBearOXOTNIK777(double sredtelo, int b)

{

   double macdlev2, macdlev1, macdlevb;

   

   int levbarpikcen, koltotpikcen, pikcenbar, macdbar2, macdbar1, dalnostpika, glavnizvercen;

   

   int pravgrmacd2, leftgrmacd2, koltotmacd2, pricebar2, pricebar1, piknakrbar;

   

   bool diverbear, estmacdline, estpriceline, probglavniza;

   

   diverbear=false; estmacdline=false; estpriceline=false; probglavniza=false;

   

   levbarpikcen=0; koltotpikcen=0; pikcenbar=0; macdbar2=0; macdbar1=0;

   

   koltotmacd2=0; macdlev2=0; macdlev1=0; pricebar2=0; pricebar1=0;

   

   pravgrmacd2=0; leftgrmacd2=0; dalnostpika=0; piknakrbar=0; glavnizvercen=0;

   

   //?>8A: ;52>3> :@0O 25@H8=K F5=

   levbarpikcen=LevGranPikaCenyDiverBear(sredtelo,b);

   

   //?@>25@:0 =0;8G8O ?@>1>O 3;02=>9 =878=:8 2=CB@8 25@H8=K F5=

   if(levbarpikcen>b)

   {

      //?>8A: 3;02=>9 =878=:8 2=CB@8 25@H8=K F5=

      glavnizvercen=PoiskGlavnogoNiza(levbarpikcen,b);

      

      if((Open[b]>Low[glavnizvercen])&&(Close[b]<Low[glavnizvercen]))

      {

         probglavniza=true;

      }

   }   

   

   //C@>25=L  =0 10@5 

   macdlevb=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,(b+1));

   

   //5A;8 D83C@0 =878=K F5= =0945=0, 8I5< 10@ - <8=8<C< F5=

   if((levbarpikcen>b)&&((macdlevb>0)||(probglavniza==true)))

   {

      // '!"    (+ &

      koltotpikcen=levbarpikcen-b+1;

      

      //    (+ &

      pikcenbar=iHighest(NULL,0,MODE_HIGH,koltotpikcen,b);

      

      //40;L=>ABL ?8:0 25@H8=K F5=

      dalnostpika=SlevaBarovOtVershiny(pikcenbar);

      

      //?@545;L=K9 ;52K9 10@ =0:@KB8O 25@H8=K F5=

      piknakrbar=b+dalnostpika;

      

      //?>8A: 10@0 =0 CG0AB:5 25@H8=K F5=, 345 =0945=> <0:A8<0;L=>5 7=0G5=85 

      macdbar1=PoiskBaraHighestMACD(koltotpikcen,b);

      

      //C@>25=L ?@02>9 25@H8=K 

      macdlev1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar1);

      

      //!    &+ ,( ()  2

      pravgrmacd2=PravayaGranVershinyMACD2(macdbar1);                  

   }

   

   //5A;8 ?@020O 3@0=8FK 1>;LH>3> ;52>3> ?8:0  =0945=0

   if((pravgrmacd2>levbarpikcen)&&(levbarpikcen>b))

   {

      //!   &+ ,( ()  

      leftgrmacd2=LevayaGranVershinyMACD2(pravgrmacd2);

      

      //5A;8 ;520O 3@0=8F0    =0945=0

      if(leftgrmacd2>pravgrmacd2)

      {

         //?>;=>5 :>;8G5AB2> 10@>2 ;52>9 =878=K 2 

         koltotmacd2=leftgrmacd2-pravgrmacd2+1;

         

         //25@E=89 10@ ;52>9 25@H8=K 2 

         macdbar2=PoiskBaraHighestMACD(koltotmacd2,pravgrmacd2);

         

         //C@>25=L  25@H8=K 2 

         macdlev2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar2);            

      }         

   }      

   

   //?>?KB:0 ?>AB@>8BL :0A0B5;L=CN ;8=8N A25@EC 2=87 ?> 

   if((macdlev1>0)&&(macdlev2>macdlev1))

   {

      //@0AG5B ;52>9 >?>@=>9 B>G:8 :0A0B5;L=>9 A25@EC ?> 

      macdbar2=MACDBearDiverLeftBar(macdbar2,levbarpikcen,b);

      

      //@0AG5B ?@02>9 >?>@=>9 B>G:8 B>G:8 :0A0B5;L=>9 A=87C ?> 

      macdbar1=MACDBearDiverRightBar(macdbar2,b);

      

      if((macdbar2>macdbar1)&&(macdbar1>=b))

      {

         //C@>25=L ?@02>9 >?>@=>9 B>G:8 

         macdlev1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar1);

         

         //C@>25=L ;52>9 >?>@=>9 B>G:8 

         macdlev2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,macdbar2);

         

         estmacdline=true;

      }

   }

   

   //?>?KB:0 ?>AB@>8BL :0A0B5;L=CN ;8=8N A=87C 225@E ?> ?8:0< &

   if((piknakrbar>leftgrmacd2)&&(leftgrmacd2>pravgrmacd2)&&(pravgrmacd2>b))

   {

      //@0AG5B ;52>9 >?>@=>9 B>G:8 :0A0B5;L=>9 A=87C 225@E ?> ?8:0< &+

      pricebar2=LeftBarDiverBEARPrice(leftgrmacd2,levbarpikcen,pikcenbar,b);

      

      //@0AG5B ?@02>9 >?>@=>9 B>G:8 :0A0B5;L=>9 A=87C 225@E ?> ?8:0< &+

      pricebar1=RightBarDiverBEARPrice(pricebar2,b);

      

      if((pricebar2>pricebar1)&&(pricebar1>=pikcenbar))

      {

         estpriceline=true;

      }

   }   

         

   //>:>=G0B5;L=0O ?@>25@:0 A>>B=>H5=89 4;O =0;8G8O , 4825@35=F88

   if((High[pricebar2]<High[pricebar1])&&(macdlev2>macdlev1)&&(estmacdline==true))

   {

      if((pricebar1<=levbarpikcen)&&(pricebar1>=b)&&(estpriceline==true))

      {

         diverbear=true;

         

         ObjectDelete("MACDBearDiverLine");

         ObjectCreate("MACDBearDiverLine",OBJ_TREND,1,Time[macdbar2],macdlev2,Time[macdbar1],macdlev1);         

         

         ObjectDelete("PRICEBearDiverLine");

         ObjectCreate("PRICEBearDiverLine",OBJ_TREND,0,Time[pricebar2],High[pricebar2],Time[pricebar1],High[pricebar1]);                  

      }

   }

   

   if(diverbear==false)

   {

      diverbear=DiverBear(b);

   }

   

   return(diverbear);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0;8G8O +', D81> A5B:8 8 55 ?>AB@>5=85 =0 3@0D8:5

bool FiboSetkaBullOxotnikCHECK(double SrednBar, int b)

{

   double visotasetki, koeffvisot;

   

   int levgrnizotk, levgrpika100, kolbarnizotk, levgrbigniz0, pikbarobsh;

   

   int kolbarpika100, pikbar100, nachnizbar0, rostkolbars, barotkata;

   

   int dalnbigniza, obshkolbar, spravapikabarov, spravapikanizbar, st; 

   

   bool firstcheck, otkatsovpal, estfibosetka;

   

   //**************************************************************************

   

   firstcheck=false;  otkatsovpal=false;  estfibosetka=false;

   

   levgrnizotk=0; levgrpika100=0; kolbarnizotk=0; barotkata=0; dalnbigniza=0;

   

   obshkolbar=0;  kolbarpika100=0;  pikbar100=0;  levgrbigniz0=0; pikbarobsh=0;

   

   rostkolbars=0; nachnizbar0=0; spravapikabarov=0; spravapikanizbar=0;

   

   visotasetki=0; koeffvisot=0;

   

   //**************************************************************************

   

   //10@ A;520 >B 10@0 

   st=b+1;

   

   //;520O 3@0=8F0 + >B:0B0, 345 1K; >BA:>:  % >B D81> C@>2=O

   levgrnizotk=LevgrNizinyOtkataFiboBULL(b);   

   

   //5A;8 ;520O 3@0=8F0 + >B:0B0 =0945=0

   if(levgrnizotk>b)

   {

      //?>;=>5 :>;8G5AB2> 10@>2 + >B:0B0

      kolbarnizotk=levgrnizotk-b+1;

      

      //=86=89 10@ =878=K >B:0B0 - 345 =0G0;AO >BA:>: 225@E

      barotkata=iLowest(NULL,0,MODE_LOW,kolbarnizotk,b);

      

      //;520O 3@0=8F0  (+, :>B>@0O 2:;NG05B 2 A51O 10@ 100

      levgrpika100=LevgrVershinyFiboBULL(barotkata);

      

      //5A;8 ;520O 3@0=8F0  (+ =0945=0

      if(levgrpika100>levgrnizotk)

      {

         //?>;=>5 :>;8G5AB2> 10@>2  (+, :>B>@0O 2:;NG05B 2 A51O 10@ 100

         kolbarpika100=levgrpika100-b;

         

         //25@E=89 10@  (+, :>B>@0O 2:;NG05B 2 A51O 10@ 100

         pikbar100=iHighest(NULL,0,MODE_HIGH,kolbarpika100,st);

         

         //;520O 3@0=8F0 ,( AB0@B>2>9 + F5=, 345 =0E>48BAO C@>25=L 0

         levgrbigniz0=LevgrHUGENIZFiboBULL(pikbar100);

         

         //5A;8 ;520O 3@0=8F0 ,( AB0@B>2>9 + F5= =0945=0

         if(levgrbigniz0>levgrpika100)

         {

            //?>8A: =0G0;L=>3> 10@0 0 +', D81> A5B:8 - 845< 2?@02> >B 3@0=8FK

            nachnizbar0=RaschetNachalaFiboBULL(levgrbigniz0,levgrpika100);

            

            //:>;8G5AB2> 10@>2 =0 CG0AB:5 @>AB0 >B 10@0 0 : 10@C 100

            rostkolbars=nachnizbar0-pikbar100+1;

            

            //>1I55 :>;8G5AB2> 10@>2 =0 >B@57:5 >B 10@0 0 4> 10@0 

            obshkolbar=nachnizbar0-b+1;

            

            //40;L=>ABL 3;02=>9 =878=K D81> A5B:8 2;52>

            dalnbigniza=SlevaBarovOtNiziny(nachnizbar0);

            

            //3;02=K9 ?8: =0 >1I5< CG0AB:5 >B 10@0 0 4> 10@0 

            pikbarobsh=iHighest(NULL,0,MODE_HIGH,obshkolbar,st);

            

            //2KA>B0 D81> A5B:8 2 ?C=:B0E

            visotasetki=High[pikbar100]-Low[nachnizbar0];

            visotasetki=visotasetki/Point;

            

            //@0AG5B :>MDD8F85=B0 2KA>BK D81> A5B:8 : A@54=5<C @07<5@C 10@0

            koeffvisot=visotasetki/SrednBar;

            koeffvisot=NormalizeDouble(koeffvisot,1);

                        

            if((pikbarobsh==pikbar100)&&(koeffvisot>KoeffFiboSrednBarMIN))

            {

               //A;520 >B =878=K 4>;6=> 1KBL 1>;LH5 10@>2, G5< A?@020

               if((dalnbigniza>rostkolbars)&&(obshkolbar>ShirinaFiboSetkiMIN))

               {                  

                  firstcheck=true;

               }

            }            

         }                  

      }              

   }   

   

   //5A;8 ?5@2>5 CA;>285 2K?>;=5=> ?@>25@8< B>G=>ABL >BA:>:0 >B D81> C@>2=O

   if(firstcheck==true)

   {

      //?>;=>5 :>;8G5AB2> 10@>2 ?@02>9 =878=K - >B ?8:0 100 4> 10@0 

      spravapikabarov=pikbar100-b+1;

      

      //=><5@ =86=53> 10@0 ?@02>9 =878=K - >B ?8:0 100 4> 10@0 

      spravapikanizbar=iLowest(NULL,0,MODE_LOW,spravapikabarov,b);

      

      //?@>25@:0 =0 A>2?045=85 =878=K >B:0B0 A >4=8< 87 D81> C@>2=59

      otkatsovpal=ProverkaOtkataFiboBULL(nachnizbar0,pikbar100,levgrnizotk,barotkata,b);

      

      if((otkatsovpal==true)&&(barotkata==spravapikanizbar))

      {

         estfibosetka=true;

         

         ObjectCreate("FiboBullOXOTNIK777",OBJ_FIBO,0,Time[pikbar100],High[pikbar100],Time[nachnizbar0],Low[nachnizbar0]);

         

         //MessageBox("+',/ $ !" !" ");          

      }

   }   

   

   return(estfibosetka);

}

//=================================================================================

//?5@2K9 H03 2 ?>AB@>5=88 1KGL59 D81> A5B:8 ?>8A: =878=K, 345 1K; >BA:>: >B C@>2=O

//2 A;CG05 CA?5E0 2>72@0I05B =><5@ 10@0 - ;520O 3@0=8F0 =878=K, ;81> 0

int LevgrNizinyOtkataFiboBULL(int b)

{

   int levgran, levkrai, total, predv, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //?@5420@8B5;L=0O ;520O 3@0=8F0

   predv=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=b+150;

   total=MathMin(total,levkrai);

   

   st=b+1;   

   

   //A25G0 =0 10@5  4>;60 1KBL +',/

   if(Open[b]<Close[b])

   {

      //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK + F5=

      for(i=st; i<total; i++)

      {

         //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/  +( " !'

         if((Close[b]>Open[i])&&(Close[b]>Close[i]))

         {

            continue;

         }

         else

         {

            //?@5420@8B5;L=0O ;520O 3@0=8F0 +

            predv=i;

            break;

         }

      }

   }

   

   //5A;8 ?@5420@8B5;L=0O 3@0=8F0 =0945=0

   if(predv>b)

   {

      //;520O 3@0=8F0 - ,/ A25G0, F5=0 >B:@KB8O 2KH5 70:@KB8O 10@0 

      if((Open[predv]>Close[predv])&&(Open[predv]>=Close[b]))

      {

         levgran=predv;

      }

   }      

   

   return(levgran);

}

//================================================================================

//?>8A: 25@H8=K 2=CB@8 :>B>@>9 =0E>48BAO 10@ 100 1KGL59 D81> A5B:8

//2 A;CG05 CA?5E0 2>72@0I05B ;52CN 3@0=8FC 25@H8=K, ;81> 0

int LevgrVershinyFiboBULL(int nizbar)

{

   double nizlevel;

   

   int levgran, levkrai, total, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //C@>25=L <8=8<C<0 F5= =0 CG0AB:5 ?>8A:0  ;52>9 3@0=8FK

   nizlevel=Low[nizbar];



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=nizbar+400;

   total=MathMin(total,levkrai);

   

   st=nizbar+1;   

   

   //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK  (+ F5=

   for(i=st; i<total; i++)

   {

      //;520O 3@0=8F0 25@H8=K - 1KGLO A25G0 A =87:>9 F5=>9 >B:@KB8O

      if((Open[i]<Close[i])&&(Open[i]<nizlevel))

      {

         levgran=i;

         break;

      }      

   }    

   

   return(levgran);

}

//================================================================================

//?>8A: ;52>9 3@0=8FK 1>;LH>9 =878=K, 345 =0E>48BAO C@>25=L 0 1KGL59 D81> A5B:8

//2 A;CG05 CA?5E0 2>72@0I05B ;52CN 3@0=8FC 25@H8=K, ;81> 0

int LevgrHUGENIZFiboBULL(int pikbar100)

{  

   int levgran, levkrai, total, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=pikbar100+1200;

   total=MathMin(total,levkrai);

   

   st=pikbar100+1;   

   

   //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK + F5=

   for(i=st; i<total; i++)

   {

      //;520O 3@0=8F0 ,( + - B0< 345 2?5@2K9 ?@>18B ?8: 100

      if(High[i]>High[pikbar100])

      {

         levgran=i;

         break;

      }      

   }    

   

   return(levgran);

}

//================================================================================

// !'" !" " "' 0 / !" / +', $ !"

int RaschetNachalaFiboBULL(int levgrniz, int levgrpik)

{

   double nizlevel;

   

   int nachbar0, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   nachbar0=0;

   

   nizlevel=Low[levgrniz];   

   

   //?>8A: A0<>3> =86=53> ?@02>3> 10@0 - =0G0;0 0 D81> A5B:8

   for(i=levgrniz; i>=levgrpik; i--)

   {

      if(Low[i]<=nizlevel)

      {

         nizlevel=Low[i];

         nachbar0=i;

      }      

   }    

   

   return(nachbar0);

}

//=================================================================================

//?@>25@:0 =0 B>G=>5 A>2?045=85 =878=K >B:0B0 A C:070==K< 2 ?0@0<5B@0E D81> C@>2=5<

//?@>25@O5< 420 20@80=B0 - ?> <8=8<C<C >B:0B0, ;81> ?> =86=5<C C@>2=N B5; A25G59

//?@>F5=B C@>2=O C:07K20BL =C6=> B@5E7=0G=K9  2 7=0:0 + 1 ?>A;5 70?OB>9 :0: F5;>5

bool TochnFiboLevelBULL(int fiboproc, int niznbar0, int pikbar100, int levgrnizotk, int barotkata, int b)

{

   double tekfibolevel, visotasetki, sdviglevel, otklonlow, otklontel, otklonmax, otklonmin, levelniztel;

   

   int kolbarnizotk;

   

   bool tochnotkat;

   

   //>B25B 2>72@0I05<K9 DC=:F859 - 5ABL ;8 B>G=>5 A>2?045=85 =878=K >B:0B0 A D81> C@>2=5< 8;8 =5B

   tochnotkat=false;

   

   //?>;=0O 2KA>B0 D81> A5B:8  #"%

   visotasetki=High[pikbar100]-Low[niznbar0];

   visotasetki=visotasetki/Point;

   visotasetki=MathRound(visotasetki);

      

   //<0:A8<0;L=> 4>?CAB8<>5 >B:;>=5=85 >B D81> C@>2=O  #"%

   otklonmax=OtklonFiboLevelMAX*visotasetki;

   otklonmax=otklonmax/100;

   otklonmax=NormalizeDouble(otklonmax,2);

   

   //A>2A5< =51>;LH>5 >B:;>=5=85 - 2.5% >B D81> C@>2=O  #"%

   otklonmin=25*visotasetki;

   otklonmin=otklonmin/1000;

   otklonmin=NormalizeDouble(otklonmin,2);   

   

   //:>;8G5AB2> 10@>2 =878=K >B:0B0 2:;NG0O 3@0=8FK =878=K

   kolbarnizotk=levgrnizotk-b+1;

   

   //=86=89 C@>25=L B5; A25G59 =0 CG0AB:5 =878=K >B:0B0

   levelniztel=NizniyYrovenTelSvechei(kolbarnizotk,b);

   levelniztel=NormalizeDouble(levelniztel,Digits);   

      

   //****************************************************************

   

   //    ! + "" ! #+ $ # 

   

   //A4283  %  #"% >B  B>G:8 0 D81> A5B:8 4> C:070==>3> D81> C@>2=O

   sdviglevel=visotasetki*fiboproc;

   sdviglevel=sdviglevel/1000;

   sdviglevel=NormalizeDouble(sdviglevel,2);

   

   // !'" # "#) $ # / ! "'!",.  #"

   tekfibolevel=Low[niznbar0]+sdviglevel*Point;

   tekfibolevel=NormalizeDouble(tekfibolevel,Digits);

      

   //>B:;>=5=85 >B # D81> C@>2=O  #"% - ?> =878=0< Low 

   otklonlow=Low[barotkata]-tekfibolevel;

   otklonlow=MathAbs(otklonlow);

   otklonlow=otklonlow/Point;

   otklonlow=NormalizeDouble(otklonlow,2);

   

   //>B:;>=5=85 >B # D81> C@>2=O  #"% -  # " !'

   otklontel=levelniztel-tekfibolevel;

   otklontel=MathAbs(otklontel);

   otklontel=otklontel/Point;

   otklontel=NormalizeDouble(otklontel,2);   

      

   //5A;8 >B:0B ?> =878=0< Low 2?8AK205BAO 2 4>?CAB8<>5 >B:;>=5=85   

   if(otklonlow<=otklonmax)

   {

      tochnotkat=true;

   }

   

   //>B:0B ?>  B5; 2?8AK205BAO 2 4>?CAB8<>5 >B:;>=5=85 8 B5;> +( C@>2=O   

   if((otklontel<=otklonmax)&&((levelniztel>=tekfibolevel)||(otklontel<=otklonmin)))

   {

      tochnotkat=true;

   }

   

   //****************************************************************    

   

   return(tochnotkat);

}

//=================================================================================

//   + "" $ !"  "' ! !   $ # 

//  /  ! '"+  $ # /: 23.6 , 38.2 , 50.0 , 61.8

bool ProverkaOtkataFiboBULL(int niznbar0, int verxnbar100, int levgrnizotk, int barotkata, int b)

{

   bool otkatsovpal, levelcheck;

   

   otkatsovpal=false;  levelcheck=false;

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85 + >B:0B0 8 D81> C@>2=O 61.8

   levelcheck=TochnFiboLevelBULL(618,niznbar0,verxnbar100,levgrnizotk,barotkata,b);

   

   if(levelcheck==true)

   {

      otkatsovpal=true;

   }

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85 =878=K >B:0B0 8 D81> C@>2=O 50.0

   levelcheck=TochnFiboLevelBULL(500,niznbar0,verxnbar100,levgrnizotk,barotkata,b);

   

   if(levelcheck==true)

   {

      otkatsovpal=true;

   }   

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85 =878=K >B:0B0 8 D81> C@>2=O 38.2

   levelcheck=TochnFiboLevelBULL(382,niznbar0,verxnbar100,levgrnizotk,barotkata,b);

   

   if(levelcheck==true)

   {

      otkatsovpal=true;

   }   

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85 =878=K >B:0B0 8 D81> C@>2=O 23.6

   levelcheck=TochnFiboLevelBULL(236,niznbar0,verxnbar100,levgrnizotk,barotkata,b);

   

   if(levelcheck==true)

   {

      otkatsovpal=true;

   }   

   

   //***************************************************************************

   

   return(otkatsovpal);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0 +' <>;>B =0 10@5 , ?@>25@O5BAO ?@>F5=B B5=59 8 @07<5@ 10@0

bool MolotBullNew(double sredbar, int b)

{   

   double razmbr, nizgrn, vergrn, nizten, verten;

   

   double telo, procvert, procnizt, koefrazm, proctela;   

   

   bool molbull;

   

   molbull=false;   

   

   //@0AG5B @07<5@0 10@0, @07<5@0 B5;0 8 B5=59 2 ?C=:B0E

   razmbr=High[b]-Low[b];

   razmbr=razmbr/Point;

   razmbr=MathRound(razmbr);

   

   //25@E=OO 8 =86=OO 3@0=8FK B5;0 A25G8

   vergrn=MathMax(Open[b],Close[b]);

   nizgrn=MathMin(Open[b],Close[b]);

   

   nizten=nizgrn-Low[b];

   nizten=nizten/Point;

   

   verten=High[b]-vergrn;

   verten=verten/Point;

   

   telo=Open[b]-Close[b];

   telo=MathAbs(telo);

   telo=telo/Point;

   

   //=5;L7O 4>?CA:0BL 45;5=85 =0 0

   if((razmbr>0)&&(sredbar>0))

   {    

      //?@>F5=B 25@E=59 B5=8

      procvert=(verten*100)/razmbr;

      procvert=MathRound(procvert);

      

      //?@>F5=B =86=59 B5=8

      procnizt=(nizten*100)/razmbr;

      procnizt=MathRound(procnizt);

      

      //?@>F5=B B5;0 A25G8

      proctela=(telo*100)/razmbr;

      proctela=MathRound(proctela);   

      

      //:>5DD8F85=B @07<5@0 10@0 : A@54=5<C 10@C

      koefrazm=razmbr/sredbar;

      koefrazm=NormalizeDouble(koefrazm,2);

      

      //+' "  " !1 - 1>;LH>9 => ?@>F5=BK EC65

      if((procnizt>50)&&(procvert<25)&&(koefrazm>1.4))

      {

         molbull=true;

      }            

      

      //+' "  " !2 - >1KG=K9 1KG89 <>;>B

      if((procnizt>64)&&(procvert<20)&&(koefrazm>1.2))

      {

         molbull=true;

      }      

      

      //+' "  " !3 - <>;>B <5=LH5 => ?@>F. ;CGH5

      if((procnizt>70)&&(procvert<17)&&(koefrazm>0.91))

      {

         molbull=true;

      }      

      

      //+' "  " !4 - ?><5HLH5 => ?@>F5=BK ;CGH5

      if((procnizt>75)&&(procvert<14)&&(koefrazm>0.8))

      {

         molbull=true;

      }

      

      //+' "  " !5 - =51>;LH>9 => E>@>H85 ?@>F5=BK

      if((procnizt>81)&&(procvert<9)&&(koefrazm>0.69))

      {

         molbull=true;

      }       

      

      //+' "  " !6 - 8A?>;L7C5BAO ?@>F5=B B5;0 

      if((procnizt>60)&&(proctela<11)&&(koefrazm>1.2))

      {

         molbull=true;

      }     

   }                

                          

   return(molbull);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0  <>;>B =0 10@5 , ?@>25@O5BAO ?@>F5=B B5=59 8 @07<5@ 10@0

bool MolotBearNew(double sredbar, int b)

{

   double razmbr, nizgrn, vergrn, nizten, verten;

   

   double telo, procvert, procnizt, koefrazm, proctela;

   

   bool molbear;

   

   molbear=false;   

   

   //@0AG5B @07<5@0 10@0, @07<5@0 B5;0 8 B5=59 2 ?C=:B0E

   razmbr=High[b]-Low[b];

   razmbr=razmbr/Point;

   razmbr=MathRound(razmbr);

   

   //25@E=OO 8 =86=OO 3@0=8FK B5;0 A25G8

   vergrn=MathMax(Open[b],Close[b]);

   nizgrn=MathMin(Open[b],Close[b]);

   

   nizten=nizgrn-Low[b];

   nizten=nizten/Point;

   

   verten=High[b]-vergrn;

   verten=verten/Point;

   

   telo=Open[b]-Close[b];

   telo=MathAbs(telo);

   telo=telo/Point;

   

   //=5;L7O 4>?CA:0BL 45;5=85 =0 0

   if((razmbr>0)&&(sredbar>0))

   {    

      //?@>F5=B 25@E=59 B5=8

      procvert=(verten*100)/razmbr;

      procvert=MathRound(procvert);

      

      //?@>F5=B =86=59 B5=8

      procnizt=(nizten*100)/razmbr;

      procnizt=MathRound(procnizt);

      

      //?@>F5=B B5;0 A25G8

      proctela=(telo*100)/razmbr;

      proctela=MathRound(proctela);   

      

      //:>5DD8F85=B @07<5@0 10@0 : A@54=5<C 10@C

      koefrazm=razmbr/sredbar;

      koefrazm=NormalizeDouble(koefrazm,2);

      

      // "  " !1 - 1>;LH>9 => ?@>F5=BK ?>EC65

      if((procvert>50)&&(procnizt<25)&&(koefrazm>1.4))

      {

         molbear=true;

      }      

      

      // "  " !2 - >1KG=K9 1KG89 <>;>B

      if((procvert>64)&&(procnizt<20)&&(koefrazm>1.2))

      {

         molbear=true;

      }      

      

      // "  " !3 - <>;>B <5=LH5 => ?@>F. ;CGH5

      if((procvert>70)&&(procnizt<17)&&(koefrazm>0.91))

      {

         molbear=true;

      }      

      

      // "  " !4 - ?><5=LH5, => ?@>F5=BK ?>;CGH5

      if((procvert>75)&&(procnizt<14)&&(koefrazm>0.8))

      {

         molbear=true;   

      }

      

      // "  " !5 - =51>;LH>9 => E>@>H85 ?@>F5=BK

      if((procvert>81)&&(procnizt<9)&&(koefrazm>0.69))

      {

         molbear=true;

      }       

      

      // "  " !6 - 8A?>;L7C5BAO ?@>F5=B B5;0 

      if((procvert>60)&&(proctela<11)&&(koefrazm>1.2))

      {

         molbear=true;

      }           

   }                        



   return(molbear);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0 '!"+  <>;>B =0 10@5 

bool MolotBearGood(double sredbar, int b)

{

   double razmbr, nizgrn, vergrn, nizten, verten;

   

   double telo, procvert, procnizt, koefrazm, proctela;

   

   int dalnpika;

   

   bool molbear;

   

   molbear=false;   

   

   //@0AG5B @07<5@0 10@0, @07<5@0 B5;0 8 B5=59 2 ?C=:B0E

   razmbr=High[b]-Low[b];

   razmbr=razmbr/Point;

   razmbr=MathRound(razmbr);

   

   //25@E=OO 8 =86=OO 3@0=8FK B5;0 A25G8

   vergrn=MathMax(Open[b],Close[b]);

   nizgrn=MathMin(Open[b],Close[b]);

   

   nizten=nizgrn-Low[b];

   nizten=nizten/Point;

   

   verten=High[b]-vergrn;

   verten=verten/Point;

   

   telo=Open[b]-Close[b];

   telo=MathAbs(telo);

   telo=telo/Point;

   

   //=5;L7O 4>?CA:0BL 45;5=85 =0 0

   if((razmbr>0)&&(sredbar>0))

   {   

      //?@>F5=B 25@E=59 B5=8

      procvert=(verten*100)/razmbr;

      procvert=MathRound(procvert);

      

      //?@>F5=B =86=59 B5=8

      procnizt=(nizten*100)/razmbr;

      procnizt=MathRound(procnizt);

      

      //?@>F5=B B5;0 A25G8

      proctela=(telo*100)/razmbr;

      proctela=MathRound(proctela);   

      

      //:>5DD8F85=B @07<5@0 10@0 : A@54=5<C 10@C

      koefrazm=razmbr/sredbar;

      koefrazm=NormalizeDouble(koefrazm,2);

      

      //Print(""#)       #"% = "+DoubleToStr(razmbr,2));

      

      //Print("!         $ = "+DoubleToStr(sredbar,2));      

      

      //Print("$$&"      " = "+DoubleToStr(koefrazm,2));      

      

      //40;L=>ABL  10@0 <>;>B0

      dalnpika=SlevaBarovOtVershiny(b);

      

      // "  " !1

      if((procvert>81)&&(procnizt<14)&&(koefrazm>2.4)&&(dalnpika>9))

      {

         molbear=true;

      }

      

      // "  " !2 - :>@>B:0O =86=OO B5=L

      if((procvert>78)&&(procnizt<8)&&(koefrazm>2.1)&&(dalnpika>9))

      {

         molbear=true;

      }

      

      // "  " !3 - 1>;LH0O 40;L=>ABL 25@H8=K E2>AB0 <>;>B0

      if((procvert>75)&&(procnizt<9)&&(koefrazm>1.8)&&(dalnpika>33))

      {

         molbear=true;

      }            

      

      // "  " !4 - <5=LH89 @07<5@, => ;CGH5 ?@>F5=B B5=59

      if((procvert>87)&&(procnizt<10)&&(koefrazm>1.6)&&(dalnpika>9))

      {

         molbear=true;

      }

      

      // "  " !5 - <5=LH89 @07<5@, => ;CGH5 ?@>F5=B B5=59

      if((procvert>85)&&(procnizt<5)&&(koefrazm>1.2)&&(dalnpika>9))

      {

         molbear=true;

      }             

      

      // "  " !6  - 8A?>;L7C5BAO ?@>F5=B B5;0

      if((procvert>75)&&(proctela<5)&&(koefrazm>2.2)&&(dalnpika>9))

      {

         molbear=true;

      }

      

      // "  " !7 - 1>;LH>9 @07<5@ 8 2KA>:89 <0:A8<C<

      if((procvert>71)&&(procnizt<12)&&(koefrazm>2.7)&&(dalnpika>50))

      {

         molbear=true;

      }            

   }                        



   return(molbear);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0 '!"+ +' <>;>B =0 10@5 

bool MolotBullGood(double sredbar, int b)

{

   double razmbr, nizgrn, vergrn, nizten, verten;

   

   double telo, procvert, procnizt, koefrazm, proctela;

   

   int dalndna;

   

   bool molbull;

   

   molbull=false;   

   

   //@0AG5B @07<5@0 10@0, @07<5@0 B5;0 8 B5=59 2 ?C=:B0E

   razmbr=High[b]-Low[b];

   razmbr=razmbr/Point;

   razmbr=MathRound(razmbr);

   

   //25@E=OO 8 =86=OO 3@0=8FK B5;0 A25G8

   vergrn=MathMax(Open[b],Close[b]);

   nizgrn=MathMin(Open[b],Close[b]);

   

   nizten=nizgrn-Low[b];

   nizten=nizten/Point;

   

   verten=High[b]-vergrn;

   verten=verten/Point;

   

   telo=Open[b]-Close[b];

   telo=MathAbs(telo);

   telo=telo/Point;

   

   //=5;L7O 4>?CA:0BL 45;5=85 =0 0

   if((razmbr>0)&&(sredbar>0))

   {

      //?@>F5=B 25@E=59 B5=8

      procvert=(verten*100)/razmbr;

      procvert=MathRound(procvert);

      

      //?@>F5=B =86=59 B5=8

      procnizt=(nizten*100)/razmbr;

      procnizt=MathRound(procnizt);

      

      //?@>F5=B B5;0 A25G8

      proctela=(telo*100)/razmbr;

      proctela=MathRound(proctela);   

      

      //:>5DD8F85=B @07<5@0 10@0 : A@54=5<C 10@C

      koefrazm=razmbr/sredbar;

      koefrazm=NormalizeDouble(koefrazm,2);

      

      //Print(""#)       #"% = "+DoubleToStr(razmbr,2));

      

      //Print("!         $ = "+DoubleToStr(sredbar,2));      

      

      //Print("$$&"      " = "+DoubleToStr(koefrazm,2));

      

      //40;L=>ABL 4=0 10@0 <>;>B0

      dalndna=SlevaBarovOtNiziny(b);

      

      //+' "  " !1

      if((procnizt>81)&&(procvert<14)&&(koefrazm>2.4)&&(dalndna>9))

      {

         molbull=true;

      }

      

      //+' "  " !2 - :>@>B:0O 25@E=OO B5=L

      if((procnizt>78)&&(procvert<8)&&(koefrazm>2.1)&&(dalndna>9))

      {

         molbull=true;

      }

      

      //+' "  " !3 - 1>;LH0O 40;L=>ABL =878=K E2>AB0 <>;>B0

      if((procnizt>75)&&(procvert<9)&&(koefrazm>1.8)&&(dalndna>33))

      {

         molbull=true;

      }      

      

      //+' "  " !4 - <5=LH89 @07<5@, => ;CGH5 ?@>F5=B B5=59

      if((procnizt>87)&&(procvert<10)&&(koefrazm>1.6)&&(dalndna>9))

      {

         molbull=true;

      }

      

      //+' "  " !5 - <5=LH89 @07<5@, => ;CGH5 ?@>F5=B B5=59

      if((procnizt>85)&&(procvert<5)&&(koefrazm>1.2)&&(dalndna>9))

      {

         molbull=true;

      }                  

      

      //+' "  " !6  - 8A?>;L7C5BAO ?@>F5=B B5;0

      if((procnizt>75)&&(proctela<5)&&(koefrazm>2.2)&&(dalndna>9))

      {

         molbull=true;

      }

      

      //+' "  " !7 - 1>;LH>9 @07<5@ 8 3;C1>:89 <8=8<C<

      if((procnizt>71)&&(procvert<12)&&(koefrazm>2.7)&&(dalndna>50))

      {

         molbull=true;

      }      

   }                        



   return(molbull);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0 '!" +', ) =0 10@5 

bool PogloshBullGood(double sredtel, int b)

{

   double razmbara, telopnkt, koeftelb, proctela;

   

   int kolpogl, dalnniza, levgrn, niz, st, i;

   

   bool pogloshbull, pogli;

   

   pogloshbull=false; pogli=false;

   

   st=b+1;

   

   levgrn=b+20;

   

   kolpogl=0;

   

   //A25G0 =0 10@5  4>;6=0 1KBL +',

   if((Open[b]<Close[b])&&(Open[st]>Close[st]))

   {

      //@0AG5B :>;8G5AB20 1KGL8E ?>3;>I5=89

      for(i=st; i<levgrn; i++)

      {

         pogli=false;

         

         if((Open[b]<Open[i])&&(Open[b]<Close[i]))

         {

            if((Close[b]>Open[i])&&(Close[b]>Close[i]))

            {

               pogli=true;

               

               kolpogl=kolpogl+1;

            }

         }

         

         if(pogli==false)

         {

            break;

         }

      }

   }

   

   //5A;8 ?>3;>I5=8O =0945=K

   if(kolpogl>0)

   {

      //>1I55 :>;8G5AB2> 10@>2 D83C@K

      kolpogl=kolpogl+1;

      

      //=878=0 D83C@K +', ?>3;>I5=85

      niz=iLowest(NULL,0,MODE_LOW,kolpogl,b);   

   

      //@0AG5B @07<5@0 10@0  2 ?C=:B0E

      razmbara=High[b]-Low[b];

      razmbara=razmbara/Point;

      razmbara=MathRound(razmbara);

      

      //B5;> A25G8  2 ?C=:B0E

      telopnkt=Close[b]-Open[b];

      telopnkt=telopnkt/Point;

      telopnkt=MathRound(telopnkt);



      //=5;L7O 4>?CA:0BL 45;5=8O =0 0

      if((razmbara>0.1)&&(sredtel>0.1))

      {

         //?@>F5=B B5;0 A25G8

         proctela=(telopnkt*100)/razmbara;

         proctela=MathRound(proctela);   

         

         //:>5DD. @07<5@0 B5;0 A25G8  : A@54=5<C @07<5@C B5;0

         koeftelb=telopnkt/sredtel;

         koeftelb=NormalizeDouble(koeftelb,2);

         

         //40;L=>ABL =878=K D83C@K 1KGL5 ?>3;>I5=85

         dalnniza=SlevaBarovOtNiziny(niz);

         

         //+', )  " !1

         if((proctela>ProcTelaPogloshLARGE)&&(koeftelb>KoefTelaPogloshLARGE))

         {

            if(dalnniza>DalnostPIKAJapanMIN)

            {               

               pogloshbull=true;

            }

         }         

      }

   }                        



   return(pogloshbull);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0 '!" , ) =0 10@5 

bool PogloshBearGood(double sredtel, int b)

{

   double razmbara, telopnkt, koeftelb, proctela;

   

   int kolpogl, dalnpika, levgrn, pik, st, i;

   

   bool pogloshbear, pogli;

   

   pogloshbear=false; pogli=false;

   

   st=b+1;

   

   levgrn=b+20;

   

   kolpogl=0;

   

   //A25G0 =0 10@5  4>;6=0 1KBL ,

   if((Open[b]>Close[b])&&(Open[st]<Close[st]))

   {

      //@0AG5B :>;8G5AB20 <54256L8E ?>3;>I5=89

      for(i=st; i<levgrn; i++)

      {

         pogli=false;

         

         if((Open[b]>Open[i])&&(Open[b]>Close[i]))

         {

            if((Close[b]<Open[i])&&(Close[b]<Close[i]))

            {

               pogli=true;

               

               kolpogl=kolpogl+1;

            }

         }

         

         if(pogli==false)

         {

            break;

         }

      }

   }

   

   //5A;8 ?>3;>I5=8O =0945=K

   if(kolpogl>0)

   {

      //>1I55 :>;8G5AB2> 10@>2 D83C@K

      kolpogl=kolpogl+1;

      

      //?8: D83C@K , ?>3;>I5=85

      pik=iHighest(NULL,0,MODE_HIGH,kolpogl,b);   

   

      //@0AG5B @07<5@0 10@0  2 ?C=:B0E

      razmbara=High[b]-Low[b];

      razmbara=razmbara/Point;

      razmbara=MathRound(razmbara);

      

      //B5;> A25G8  2 ?C=:B0E

      telopnkt=Open[b]-Close[b];

      telopnkt=telopnkt/Point;

      telopnkt=MathRound(telopnkt);

   

      //=5;L7O 4>?CA:0BL 45;5=8O =0 0

      if((razmbara>0.1)&&(sredtel>0.1))

      {

         //?@>F5=B B5;0 A25G8

         proctela=(telopnkt*100)/razmbara;

         proctela=MathRound(proctela);   

         

         //:>5DD. @07<5@0 B5;0 A25G8  : A@54=5<C @07<5@C B5;0

         koeftelb=telopnkt/sredtel;

         koeftelb=NormalizeDouble(koeftelb,2);

         

         //40;L=>ABL ?8:0 D83C@K <54256L5 ?>3;>I5=85

         dalnpika=SlevaBarovOtVershiny(pik);

         

         //, )  " !1

         if((proctela>ProcTelaPogloshLARGE)&&(koeftelb>KoefTelaPogloshLARGE))

         {

            if(dalnpika>DalnostPIKAJapanMIN)

            {

               pogloshbear=true;

            }

         }        

      }

   }                        



   return(pogloshbear);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//?@>25@:0 =0;8G8O , D81> A5B:8 8 55 ?>AB@>5=85 =0 3@0D8:5

bool FiboSetkaBearOxotnikCHECK(double sredtelo, int b)

{

   double visotasetki, koeffvisot, Level764;

   

   int levgrverotk, levgrniza100, kolbarverotk, levgrbigpik0, dnobarobsh;

   

   int kolbarniza100, nizbar100, nachpikbar0, spadkolbars, barotkata;

   

   int dalnbigpika, obshkolbar, spravanizabarov, spravanizapikbar, st; 

   

   bool firstcheck, otkatsovpal, estfibosetka;

   

   //**************************************************************************

   

   firstcheck=false;  otkatsovpal=false;  estfibosetka=false;

   

   levgrverotk=0; levgrniza100=0; kolbarverotk=0; barotkata=0; dalnbigpika=0;

   

   obshkolbar=0;  kolbarniza100=0;  nizbar100=0;  levgrbigpik0=0; dnobarobsh=0;

   

   spadkolbars=0; nachpikbar0=0; spravanizabarov=0; spravanizapikbar=0;

   

   visotasetki=0; koeffvisot=0; Level764=0;

   

   //**************************************************************************

   

   //10@ A;520 >B 10@0 

   st=b+1;

   

   //;520O 3@0=8F0  (+ >B:0B0, 345 1K; >BA:>:  >B D81> C@>2=O

   levgrverotk=LevgrVershinyOtkataFiboBEAR(b);   

   

   //5A;8 ;520O 3@0=8F0  (+ >B:0B0 =0945=0

   if(levgrverotk>b)

   {  

      //MessageBox(";520O 3@0=8F0 >B:0B0 =0945=0 =0 10@5 = "+DoubleToStr(levgrverotk,0));

      

      //?>;=>5 :>;8G5AB2> 10@>2  (+ >B:0B0

      kolbarverotk=levgrverotk-b+1;

      

      //25@E=89 10@ 25@H8=K >B:0B0 - 345 =0G0;AO >BA:>: 2=87

      barotkata=iHighest(NULL,0,MODE_HIGH,kolbarverotk,b);

      

      //MessageBox("25@H8=0 >B:0B0 =0945=0 =0 10@5 = "+DoubleToStr(barotkata,0));

      

      //3>@87>=B0;L=0O ;8=8O ?> C@>2=N  (+ ""

      //ObjectDelete("PikOtkataLevelLine");

      //ObjectCreate("PikOtkataLevelLine",OBJ_HLINE,0,Time[barotkata],High[barotkata]);

      //ObjectSet("PikOtkataLevelLine",OBJPROP_STYLE,STYLE_DASH);

      //ObjectSet("PikOtkataLevelLine",OBJPROP_COLOR,clrBlue);      

      

      //;520O 3@0=8F0 +, :>B>@0O 2:;NG05B 2 A51O 10@ 100

      levgrniza100=LevgrNizinyFiboBEAR(barotkata);

      

      //MessageBox("/  & + =0945=0 =0 10@5 = "+DoubleToStr(levgrniza100,0));   

      

      //5A;8 ;520O 3@0=8F0 + =0945=0

      if(levgrniza100>levgrverotk)

      {           

         //25@B8:0;L=0O ;8=8O A;520 >B levgrniza100

         //ObjectDelete("levgrniza100LeftLine");

         //ObjectCreate("levgrniza100LeftLine",OBJ_VLINE,0,Time[(levgrniza100+1)],0);

         //ObjectSet("levgrniza100LeftLine",OBJPROP_STYLE,STYLE_DASH);

         //ObjectSet("levgrniza100LeftLine",OBJPROP_COLOR,clrYellow);         

         

         //?>;=>5 :>;8G5AB2> 10@>2 +, :>B>@0O 2:;NG05B 2 A51O 10@ 100

         kolbarniza100=levgrniza100-b;

         

         // 10@ +, :>B>@0O 2:;NG05B 2 A51O 10@ 100

         nizbar100=iLowest(NULL,0,MODE_LOW,kolbarniza100,st);

         

         //MessageBox("# =878=K =0945= =0 10@5 = "+DoubleToStr(nizbar100,0));

         

         //25@B8:0;L=0O ;8=8O A;520 >B nizbar100

         //ObjectDelete("nizbar100LeftLine");

         //ObjectCreate("nizbar100LeftLine",OBJ_VLINE,0,Time[(nizbar100+1)],0);

         //ObjectSet("nizbar100LeftLine",OBJPROP_STYLE,STYLE_DASH);

         //ObjectSet("nizbar100LeftLine",OBJPROP_COLOR,clrAqua);         

         

         //;520O 3@0=8F0 ,( AB0@B>2>9  (+ F5=, 345 =0E>48BAO C@>25=L 0

         levgrbigpik0=LevgrHUGEPIKFiboBEAR(nizbar100);

         

         //25@B8:0;L=0O ;8=8O A;520 >B nizbar100

         //ObjectDelete("LevgrHUGEPIKLeftLine");

         //ObjectCreate("LevgrHUGEPIKLeftLine",OBJ_VLINE,0,Time[(levgrbigpik0+1)],0);

         //ObjectSet("LevgrHUGEPIKLeftLine",OBJPROP_STYLE,STYLE_DASH);

         //ObjectSet("LevgrHUGEPIKLeftLine",OBJPROP_COLOR,clrLime);         

         

         //5A;8 ;520O 3@0=8F0 ,( AB0@B>2>9  (+ F5= =0945=0

         if(levgrbigpik0>levgrniza100)

         {  

            //MessageBox("1>;LH0O AB0@B>20O 25@H8=0 =0945=0");

            

            //?>8A: =0G0;L=>3> 10@0 0 , D81> A5B:8 - 845< 2?@02> >B 3@0=8FK

            nachpikbar0=RaschetNachalaFiboBEAR(levgrbigpik0,levgrniza100);

            

            //@0AG5B C@>2=O 76.4

            Level764=RaschetFiboLevelBEAR(764,nachpikbar0,nizbar100);

            

            //3>@87>=B0;L=0O ;8=8O ?> C@>2=N  (+ !" " 

            //ObjectDelete("Piknachpikbar0LevelLine");

            //ObjectCreate("Piknachpikbar0LevelLine",OBJ_HLINE,0,Time[nachpikbar0],High[nachpikbar0]);

            //ObjectSet("Piknachpikbar0LevelLine",OBJPROP_STYLE,STYLE_DASH);

            //ObjectSet("Piknachpikbar0LevelLine",OBJPROP_COLOR,clrRed);

            

            //:>;8G5AB2> 10@>2 =0 CG0AB:5 A?040 >B 10@0 0 : 10@C 100

            spadkolbars=nachpikbar0-nizbar100+1;

            

            //>1I55 :>;8G5AB2> 10@>2 =0 >B@57:5 >B 10@0 0 4> 10@0 

            obshkolbar=nachpikbar0-b+1;

            

            //40;L=>ABL 3;02=>9 25@H8=K D81> A5B:8 2;52>

            dalnbigpika=SlevaBarovOtVershiny(nachpikbar0);

                        

            //3;02=0O =878=0 =0 >1I5< CG0AB:5 >B 10@0 0 4> 10@0 

            dnobarobsh=iLowest(NULL,0,MODE_LOW,obshkolbar,st);

            

            //2KA>B0 D81> A5B:8 2 ?C=:B0E

            visotasetki=High[nachpikbar0]-Low[nizbar100];

            visotasetki=visotasetki/Point;

                        

            //@0AG5B :>MDD8F85=B0 2KA>BK D81> A5B:8 : A@54=5<C B5;C A25G8

            koeffvisot=visotasetki/sredtelo;

            koeffvisot=NormalizeDouble(koeffvisot,1);

            

            //MessageBox(">5DD D81> A5B:8 2 2KA>BC = "+DoubleToStr(koeffvisot,2));

                        

            if((dnobarobsh==nizbar100)&&(koeffvisot>=KoeffFiboSrednBarMIN))

            {                              

               //A;520 >B 25@H8=K 4>;6=> 1KBL 1>;LH5 10@>2, G5< A?@020

               if(obshkolbar>ShirinaFiboSetkiMIN)

               {          

                  firstcheck=true;

                  

                  //MessageBox("?5@2>5 CA;>285 2K?>;=5=>");

               }

            }            

         }                  

      }              

   }  

   

   //5A;8 ?5@2>5 CA;>285 2K?>;=5=> ?@>25@8< B>G=>ABL >BA:>:0 >B D81> C@>2=O

   if(firstcheck==true)

   {

      //?>;=>5 :>;8G5AB2> 10@>2 ?@02>9 25@H8=K - >B =878=K 100 4> 10@0 

      spravanizabarov=nizbar100-b;

      

      //=><5@ 25@E=53> 10@0 ?@02>9 25@H8=K - >B =878=K 100 4> 10@0 

      spravanizapikbar=iHighest(NULL,0,MODE_HIGH,spravanizabarov,b);

      

      //25@B8:0;L=0O ;8=8O A?@020 >B spravanizapikbar

      //ObjectDelete("spravanizapikbarLine");

      //ObjectCreate("spravanizapikbarLine",OBJ_VLINE,0,Time[(spravanizapikbar-1)],0);

      //ObjectSet("spravanizapikbarLine",OBJPROP_STYLE,STYLE_DASH);

      //ObjectSet("spravanizapikbarLine",OBJPROP_COLOR,clrMagenta);       

      

      //?@>25@:0 =0 A>2?045=85 25@H8=K >B:0B0 A >4=8< 87 D81> C@>2=59

      otkatsovpal=ProverkaOtkataFiboBEAR(nachpikbar0,nizbar100,levgrverotk,barotkata,b);

      

      if(otkatsovpal==true)

      {

         //MessageBox("B>G=>ABL >B:0B0 2K?>;=5=0");

      }

      else

      {

         //MessageBox("=5 ?@>H5; ?@>25@:C >B:0B =0 B>G=>ABL");

      }

      

      if((otkatsovpal==true)&&(barotkata==spravanizapikbar)&&(Close[b]<Level764))

      {

         estfibosetka=true;

                  

         ObjectCreate("FiboBearOXOTNIK777",OBJ_FIBO,0,Time[nizbar100],Low[nizbar100],Time[nachpikbar0],High[nachpikbar0]);

         

         //MessageBox(",/ $ !" !" ");          

      }

   }   

   

   return(estfibosetka);

}

//=====================================================================================================================

//?5@2K9 H03 4;O <54256L59 D81> A5B:8 - ?>8A: 25@H8=K, 345 1K; >BA:>: 2=87 >B C@>2=O

//2 A;CG05 CA?5E0 2>72@0I05B =><5@ 10@0 - ;520O 3@0=8F0 25@H8=K, ;81> 0

int LevgrVershinyOtkataFiboBEAR(int b)

{

   int levgran, levkrai, total, predv, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //?@5420@8B5;L=0O ;520O 3@0=8F0 25@H8=K

   predv=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=b+150;

   total=MathMin(total,levkrai);

   

   st=b+1;   

   

   //A25G0 =0 10@5  4>;60 1KBL ,/

   if(Open[b]>Close[b])

   {

      //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK  (+ F5=

      for(i=st; i<total; i++)

      {

         //845< 2;52> 4> B5E ?>@, ?>:0 &  +"/   " !'

         if((Close[b]<Open[i])&&(Close[b]<Close[i]))

         {

            continue;

         }

         else

         {

            //?@5420@8B5;L=0O ;520O 3@0=8F0  (+

            predv=i;

            break;

         }

      }

   }

   

   //5A;8 ?@5420@8B5;L=0O 3@0=8F0 =0945=0

   if(predv>b)

   {

      //;520O 3@0=8F0 - +',/ A25G0, F5=0 >B:@KB8O  70:@KB8O 10@0 

      if((Open[predv]<Close[predv])&&(Open[predv]<=Close[b]))

      {

         levgran=predv;

      }

   }      

   

   return(levgran);

}

//=====================================================================================================================

//?>8A: =878=K 2=CB@8 :>B>@>9 =0E>48BAO 10@ 100 , D81> A5B:8

//2 A;CG05 CA?5E0 2>72@0I05B ;52CN 3@0=8FC +, ;81> 0

int LevgrNizinyFiboBEAR(int barotkata)

{

   double piklevel;

   

   int levgran, levkrai, total, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;

   

   //C@>25=L <0:A8<C<0 F5= =0 CG0AB:5 ?>8A:0  ;52>9 3@0=8FK

   piklevel=High[barotkata];



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=barotkata+400;

   total=MathMin(total,levkrai);

   

   st=barotkata+1;   

   

   //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK + F5=

   for(i=st; i<total; i++)

   {

      //;520O 3@0=8F0 + - ,/ A25G0 A +! F5=>9 >B:@KB8O

      if((Open[i]>Close[i])&&(Open[i]>piklevel))

      {

         levgran=i;

         break;

      }      

   }    

   

   return(levgran);

}

//=====================================================================================================================

//?>8A: ;52>9 3@0=8FK 1>;LH>9  (+, 345 =0E>48BAO C@>25=L 0 , D81> A5B:8

//2 A;CG05 CA?5E0 2>72@0I05B ;52CN 3@0=8FC  (+, ;81> 0

int LevgrHUGEPIKFiboBEAR(int dnobar100)

{  

   int levgran, levkrai, total, st, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   levgran=0;



   //<0:A8<0;L=0O ;520O 3@0=8F0 ?>8A:>2

   levkrai=Bars-10;

   total=dnobar100+1200;

   total=MathMin(total,levkrai);

   

   st=dnobar100+1;   

   

   //?>8A: ?@5420@8B5;L=>9 ;52>9 3@0=8FK  (+ F5=

   for(i=st; i<total; i++)

   {

      //;520O 3@0=8F0 ,(  (+ - B0< 345 2?5@2K9 ?@>18B ?8: 100

      if(Low[i]<Low[dnobar100])

      {

         levgran=i;

         break;

      }      

   }    

   

   return(levgran);

}

//=====================================================================================================================

// !'" !" " "' 0 / !" / , $ !"

int RaschetNachalaFiboBEAR(int levgrverx, int levgrniza)

{

   double piklevel;

   

   int nachbar0, i;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   nachbar0=0;

   

   piklevel=High[levgrverx];   

   

   //?>8A: A0<>3> 25@E=53> ?@02>3> 10@0 - =0G0;0 0 D81> A5B:8

   for(i=levgrverx; i>=levgrniza; i--)

   {

      if(High[i]>=piklevel)

      {

         piklevel=High[i];

         nachbar0=i;

      }      

   }    

   

   return(nachbar0);

}

//=====================================================================================================================

//?@>25@:0 B>3>, GB> B5;0 A25G59 2 A>AB025 25@H8=K =0E>4OBAO =865 C:070==>3> D81> C@>2=O

//70 8A:;NG5=85< 2E A25G59 =0 ?8:5 - A>A54=85 425 1KGLO 8 <54256LO <>3CB >48= @07 1KBL 2KH5

bool ProverkaVershinyOtkataBEAR2X(double tekfibolevel, int levgrverotk, int b)

{

   int kolbarversh, hiclbar, pravhicl, hiopbar, kolgood, i;

   

   bool goodotkat;

   

   goodotkat=false;

   

   //:>;8G5AB2> 10@>2 2 A>AB025 25@H8=K, :>B>@K5 2K?>;=ONB CA;>28O 7040G8

   kolgood=0;

   

   //:>;8G5AB2> 10@>2 25@H8=K >B:0B0 2:;NG0O 3@0=8FK

   kolbarversh=levgrverotk-b+1;

   

   //B5:CI89 ?@>25@O5<K9 D81> C@>25=L

   tekfibolevel=NormalizeDouble(tekfibolevel,Digits);

   

   //10@, 345 =0945=0 A0<0O 2KA>:0O F5=0 >B:@KB8O A25G8

   hiopbar=iHighest(NULL,0,MODE_OPEN,kolbarversh,b);

   

   //10@, 345 =0945=0 A0<0O 2KA>:0O F5=0 70:@KB8O A25G8

   hiclbar=iHighest(NULL,0,MODE_CLOSE,kolbarversh,b);

   

   //10@ A?@020 >B A25G8, 345 1K;0 =0945=0 A0<0O 2KA>:0O F5=0 70:@KB8O

   pravhicl=hiclbar-1;

   

   for(i=b; i<=levgrverotk; i++)

   {

      if((Open[i]<=tekfibolevel)&&(Close[i]<=tekfibolevel))

      {

         kolgood=kolgood+1;

      }

      

      if((Close[i]>tekfibolevel)&&(i==hiclbar)&&(pravhicl==hiopbar))

      {

         kolgood=kolgood+1;

      }

      

      if((Open[i]>tekfibolevel)&&(i==hiopbar)&&(pravhicl==hiopbar))

      {

         kolgood=kolgood+1;

      }                  

   }

      

   //5A;8 2A5 10@K 2 A>AB025 25@H8=K ?@>H;8 ?@>25@:C

   if(kolgood==kolbarversh)

   {

      goodotkat=true;

   }

   

   return(goodotkat);

}

//=====================================================================================================================

//?@>25@:0 =0 B>G=>5 A>2?045=85 25@H8=K >B:0B0 A C:070==K< 2 ?0@0<5B@0E D81> C@>2=5<

//?@>25@O5< 420 20@80=B0 - ?> ?8:C >B:0B0, ;81> ?> 25@E=5<C C@>2=N B5; A25G59

//?@>F5=B C@>2=O C:07K20BL =C6=> B@5E7=0G=K9  2 7=0:0 + 1 ?>A;5 70?OB>9 :0: F5;>5

bool TochnFiboLevelBEAR(int fiboproc, int verxbar0, int dnobar100, int levgrverotk, int barotkata, int b)

{

   double tekfibolevel, visotasetki, sdviglevel, otklonhigh, otklontel, otklonmax, otklonmin, levelverxtel;

   

   int kolbarverotk;

   

   bool tochnotkat, verxtelcheck;

   

   //>B25B 2>72@0I05<K9 DC=:F859 - 5ABL ;8 B>G=>5 A>2?045=85 25@H8=K >B:0B0 A D81> C@>2=5< 8;8 =5B

   tochnotkat=false; verxtelcheck=false;

   

   //?>;=0O 2KA>B0 D81> A5B:8  #"%

   visotasetki=High[verxbar0]-Low[dnobar100];

   visotasetki=visotasetki/Point;

   visotasetki=MathRound(visotasetki);

      

   //<0:A8<0;L=> 4>?CAB8<>5 >B:;>=5=85 >B D81> C@>2=O  #"%

   otklonmax=OtklonFiboLevelMAX*visotasetki;

   otklonmax=otklonmax/100;

   otklonmax=NormalizeDouble(otklonmax,2);

   

   //A>2A5< =51>;LH>5 >B:;>=5=85 - 2.5% >B D81> C@>2=O  #"%

   otklonmin=25*visotasetki;

   otklonmin=otklonmin/1000;

   otklonmin=NormalizeDouble(otklonmin,2);   

   

   //:>;8G5AB2> 10@>2 25@H8=K >B:0B0 2:;NG0O 3@0=8FK 25@H8=K

   kolbarverotk=levgrverotk-b+1;

   

   //25@E=89 C@>25=L B5; A25G59 =0 CG0AB:5 25@H8=K >B:0B0

   levelverxtel=VerxiyYrovenTelSvechei(kolbarverotk,b);

   levelverxtel=NormalizeDouble(levelverxtel,Digits);   

      

   //****************************************************************

   

   //    !  (+ "" ! #+ $ # 

   

   //A4283   #"% >B  % B>G:8 0 D81> A5B:8 4> C:070==>3> D81> C@>2=O

   sdviglevel=visotasetki*fiboproc;

   sdviglevel=sdviglevel/1000;

   sdviglevel=NormalizeDouble(sdviglevel,2);

   

   // !'" # "#) $ # / ! "'!",.  #"

   tekfibolevel=High[verxbar0]-sdviglevel*Point;

   tekfibolevel=NormalizeDouble(tekfibolevel,Digits);

      

   //>B:;>=5=85 >B # D81> C@>2=O  #"% - ?> 25@H8=0< High 

   otklonhigh=High[barotkata]-tekfibolevel;

   otklonhigh=MathAbs(otklonhigh);

   otklonhigh=otklonhigh/Point;

   otklonhigh=NormalizeDouble(otklonhigh,2);

   

   //>B:;>=5=85 >B # D81> C@>2=O  #"% -   %# " !'

   otklontel=tekfibolevel-levelverxtel;

   otklontel=MathAbs(otklontel);

   otklontel=otklontel/Point;

   otklontel=NormalizeDouble(otklontel,2);   

      

   //5A;8 >B:0B ?> 25@H8=0< High 2?8AK205BAO 2 4>?CAB8<>5 >B:;>=5=85   

   if(otklonhigh<=otklonmax)

   {

      tochnotkat=true;

   }

   

   //B5;0 A25G59 25@H8=K =0E>4OBAO =865 C:070==>3> D81> C@>2=O :@><5 25@E=8E 2E

   verxtelcheck=ProverkaVershinyOtkataBEAR2X(tekfibolevel,levgrverotk,b);

   

   //>B:0B ?>  % B5; 2?8AK205BAO 2 4>?CAB8<>5 >B:;>=5=85 8 B5;>  C@>2=O   

   if((otklontel<=otklonmax)&&((verxtelcheck==true)||(otklontel<=otklonmin)))

   {

      tochnotkat=true;

   }

   

   //****************************************************************    

   

   return(tochnotkat);

}

//=====================================================================================================================

//    (+ "" $ !"  "' ! !   $ # 

//  /  ! '"+  $ # /: 23.6 , 38.2 , 50.0 , 61.8

bool ProverkaOtkataFiboBEAR(int verxnbar0, int niznbar100, int levgrverotk, int barotkata, int b)

{

   bool otkatsovpal, levelcheck;

   

   otkatsovpal=false;  levelcheck=false;

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85  (+ >B:0B0 8 D81> C@>2=O 61.8

   levelcheck=TochnFiboLevelBEAR(618,verxnbar0,niznbar100,levgrverotk,barotkata,b);

   

   if(levelcheck==true)

   {      

      otkatsovpal=true;

   }

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85 =878=K >B:0B0 8 D81> C@>2=O 50.0

   levelcheck=TochnFiboLevelBEAR(500,verxnbar0,niznbar100,levgrverotk,barotkata,b);

   

   if(levelcheck==true)

   {      

      otkatsovpal=true;

   }   

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85 =878=K >B:0B0 8 D81> C@>2=O 38.2

   levelcheck=TochnFiboLevelBEAR(382,verxnbar0,niznbar100,levgrverotk,barotkata,b);

   

   if(levelcheck==true)

   {      

      otkatsovpal=true;

   }   

   

   //***************************************************************************

   

   //?@>25@:0 =0 A>2?045=85 =878=K >B:0B0 8 D81> C@>2=O 23.6

   levelcheck=TochnFiboLevelBEAR(236,verxnbar0,niznbar100,levgrverotk,barotkata,b);

   

   if(levelcheck==true)

   {      

      otkatsovpal=true;

   }   

   

   //***************************************************************************

   

   return(otkatsovpal);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//@0AG5B C:070==>3> D81> C@>2=O 4;O <54256L59 D81> A5B:8

//?@>F5=B C@>2=O =C6=> C:07K20BL B@5E7=0G=>5 F5;>5 G8A;> =0?@8<5@ 618 - MB> 61.8

double RaschetFiboLevelBEAR(int levelproc, int verxbar0, int dnobar100)

{

   double fibolevel, visotasetki, sdviglevel;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   fibolevel=0;

   

   //?>;=0O 2KA>B0 D81> A5B:8  #"%

   visotasetki=High[verxbar0]-Low[dnobar100];

   visotasetki=visotasetki/Point;

   visotasetki=MathRound(visotasetki);

   

   //!   #"% >B  % B>G:8 0 D81> A5B:8 4> C:070==>3> D81> C@>2=O

   sdviglevel=visotasetki*levelproc;

   sdviglevel=sdviglevel/1000;

   sdviglevel=MathRound(sdviglevel);

   

   // !'" # $ # / ! "'!",.  #"

   fibolevel=High[verxbar0]-sdviglevel*Point;

   fibolevel=NormalizeDouble(fibolevel,Digits);    

   

   return(fibolevel);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

// !'"   +'    12 !,/)% ! %  "#)  $

int RaschetBallovVeeraMABULL(int b)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;

   

   int KolBullBalls;

   

   KolBullBalls=0;

   

   //2KG8A;5=85 7=0G5=89  =0 10@5 

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 2 BO65;>9

   if(ma2<ma1){KolBullBalls=KolBullBalls+1;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 3 BO65;>9

   if(ma3<ma1){KolBullBalls=KolBullBalls+1;}

   if(ma3<ma2){KolBullBalls=KolBullBalls+1;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 4 BO65;>9

   if(ma4<ma1){KolBullBalls=KolBullBalls+1;}

   if(ma4<ma2){KolBullBalls=KolBullBalls+1;}

   if(ma4<ma3){KolBullBalls=KolBullBalls+1;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 5 BO65;>9

   if(ma5<ma1){KolBullBalls=KolBullBalls+1;}

   if(ma5<ma2){KolBullBalls=KolBullBalls+1;}

   if(ma5<ma3){KolBullBalls=KolBullBalls+1;}

   if(ma5<ma4){KolBullBalls=KolBullBalls+1;}    

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 6 BO65;>9

   if(ma6<ma1){KolBullBalls=KolBullBalls+1;}

   if(ma6<ma2){KolBullBalls=KolBullBalls+1;}

   if(ma6<ma3){KolBullBalls=KolBullBalls+1;}

   if(ma6<ma4){KolBullBalls=KolBullBalls+1;}

   if(ma6<ma5){KolBullBalls=KolBullBalls+1;}  

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 7 BO65;>9

   if(ma7<ma1){KolBullBalls=KolBullBalls+2;}

   if(ma7<ma2){KolBullBalls=KolBullBalls+2;}

   if(ma7<ma3){KolBullBalls=KolBullBalls+2;}

   if(ma7<ma4){KolBullBalls=KolBullBalls+2;}

   if(ma7<ma5){KolBullBalls=KolBullBalls+2;}

   if(ma7<ma6){KolBullBalls=KolBullBalls+2;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 8 BO65;>9

   if(ma8<ma1){KolBullBalls=KolBullBalls+2;}

   if(ma8<ma2){KolBullBalls=KolBullBalls+2;}

   if(ma8<ma3){KolBullBalls=KolBullBalls+2;}

   if(ma8<ma4){KolBullBalls=KolBullBalls+2;}

   if(ma8<ma5){KolBullBalls=KolBullBalls+2;}

   if(ma8<ma6){KolBullBalls=KolBullBalls+2;}

   if(ma8<ma7){KolBullBalls=KolBullBalls+2;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 9 BO65;>9

   if(ma9<ma1){KolBullBalls=KolBullBalls+3;}

   if(ma9<ma2){KolBullBalls=KolBullBalls+3;}

   if(ma9<ma3){KolBullBalls=KolBullBalls+3;}

   if(ma9<ma4){KolBullBalls=KolBullBalls+3;}

   if(ma9<ma5){KolBullBalls=KolBullBalls+3;}

   if(ma9<ma6){KolBullBalls=KolBullBalls+3;}

   if(ma9<ma7){KolBullBalls=KolBullBalls+3;}

   if(ma9<ma8){KolBullBalls=KolBullBalls+3;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 10 BO65;>9

   if(ma10<ma1){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma2){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma3){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma4){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma5){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma6){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma7){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma8){KolBullBalls=KolBullBalls+3;}

   if(ma10<ma9){KolBullBalls=KolBullBalls+3;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 11 BO65;>9

   if(ma11<ma1){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma2){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma3){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma4){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma5){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma6){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma7){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma8){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma9){KolBullBalls=KolBullBalls+4;}

   if(ma11<ma10){KolBullBalls=KolBullBalls+4;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 12 BO65;>9

   if(ma12<ma1){KolBullBalls=KolBullBalls+4;}

   if(ma12<ma2){KolBullBalls=KolBullBalls+4;}

   if(ma12<ma3){KolBullBalls=KolBullBalls+4;}

   if(ma12<ma4){KolBullBalls=KolBullBalls+4;}

   if(ma12<ma5){KolBullBalls=KolBullBalls+4;}

   if(ma12<ma6){KolBullBalls=KolBullBalls+4;}

   if(ma12<ma7){KolBullBalls=KolBullBalls+4;}

   if(ma12<ma8){KolBullBalls=KolBullBalls+5;}

   if(ma12<ma9){KolBullBalls=KolBullBalls+5;}

   if(ma12<ma10){KolBullBalls=KolBullBalls+5;}

   if(ma12<ma11){KolBullBalls=KolBullBalls+5;}           

   

   return(KolBullBalls);

}

//=====================================================================================================================

//=====================================================================================================================

// !'"       12 !,/)% ! %  "#)  $

int RaschetBallovVeeraMABEAR(int b)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;

   

   int KolBearBalls;

   

   KolBearBalls=0;

   

   //2KG8A;5=85 7=0G5=89  =0 10@5 

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 2 BO65;>9

   if(ma2>ma1){KolBearBalls=KolBearBalls+1;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 3 BO65;>9

   if(ma3>ma1){KolBearBalls=KolBearBalls+1;}

   if(ma3>ma2){KolBearBalls=KolBearBalls+1;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 4 BO65;>9

   if(ma4>ma1){KolBearBalls=KolBearBalls+1;}

   if(ma4>ma2){KolBearBalls=KolBearBalls+1;}

   if(ma4>ma3){KolBearBalls=KolBearBalls+1;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 5 BO65;>9

   if(ma5>ma1){KolBearBalls=KolBearBalls+1;}

   if(ma5>ma2){KolBearBalls=KolBearBalls+1;}

   if(ma5>ma3){KolBearBalls=KolBearBalls+1;}

   if(ma5>ma4){KolBearBalls=KolBearBalls+1;}    

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 6 BO65;>9

   if(ma6>ma1){KolBearBalls=KolBearBalls+1;}

   if(ma6>ma2){KolBearBalls=KolBearBalls+1;}

   if(ma6>ma3){KolBearBalls=KolBearBalls+1;}

   if(ma6>ma4){KolBearBalls=KolBearBalls+1;}

   if(ma6>ma5){KolBearBalls=KolBearBalls+1;}  

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 7 BO65;>9

   if(ma7>ma1){KolBearBalls=KolBearBalls+2;}

   if(ma7>ma2){KolBearBalls=KolBearBalls+2;}

   if(ma7>ma3){KolBearBalls=KolBearBalls+2;}

   if(ma7>ma4){KolBearBalls=KolBearBalls+2;}

   if(ma7>ma5){KolBearBalls=KolBearBalls+2;}

   if(ma7>ma6){KolBearBalls=KolBearBalls+2;}   

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 8 BO65;>9

   if(ma8>ma1){KolBearBalls=KolBearBalls+2;}

   if(ma8>ma2){KolBearBalls=KolBearBalls+2;}

   if(ma8>ma3){KolBearBalls=KolBearBalls+2;}

   if(ma8>ma4){KolBearBalls=KolBearBalls+2;}

   if(ma8>ma5){KolBearBalls=KolBearBalls+2;}

   if(ma8>ma6){KolBearBalls=KolBearBalls+2;}

   if(ma8>ma7){KolBearBalls=KolBearBalls+2;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 9 BO65;>9

   if(ma9>ma1){KolBearBalls=KolBearBalls+3;}

   if(ma9>ma2){KolBearBalls=KolBearBalls+3;}

   if(ma9>ma3){KolBearBalls=KolBearBalls+3;}

   if(ma9>ma4){KolBearBalls=KolBearBalls+3;}

   if(ma9>ma5){KolBearBalls=KolBearBalls+3;}

   if(ma9>ma6){KolBearBalls=KolBearBalls+3;}

   if(ma9>ma7){KolBearBalls=KolBearBalls+3;}

   if(ma9>ma8){KolBearBalls=KolBearBalls+3;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 10 BO65;>9

   if(ma10>ma1){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma2){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma3){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma4){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma5){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma6){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma7){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma8){KolBearBalls=KolBearBalls+3;}

   if(ma10>ma9){KolBearBalls=KolBearBalls+3;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 11 BO65;>9

   if(ma11>ma1){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma2){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma3){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma4){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma5){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma6){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma7){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma8){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma9){KolBearBalls=KolBearBalls+4;}

   if(ma11>ma10){KolBearBalls=KolBearBalls+4;}

   

   //0=0;87 @0A?>;>65=8O ;53:8E  >B=>A8B5;L=> 12 BO65;>9

   if(ma12>ma1){KolBearBalls=KolBearBalls+4;}

   if(ma12>ma2){KolBearBalls=KolBearBalls+4;}

   if(ma12>ma3){KolBearBalls=KolBearBalls+4;}

   if(ma12>ma4){KolBearBalls=KolBearBalls+4;}

   if(ma12>ma5){KolBearBalls=KolBearBalls+4;}

   if(ma12>ma6){KolBearBalls=KolBearBalls+4;}

   if(ma12>ma7){KolBearBalls=KolBearBalls+4;}

   if(ma12>ma8){KolBearBalls=KolBearBalls+5;}

   if(ma12>ma9){KolBearBalls=KolBearBalls+5;}

   if(ma12>ma10){KolBearBalls=KolBearBalls+5;}

   if(ma12>ma11){KolBearBalls=KolBearBalls+5;}           

   

   return(KolBearBalls);

}

//=====================================================================================================================

//=====================================================================================================================

// !'" # / !  % !,/) !      12 

double RaschetLevelVerxney12MA(int b)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12, verxlevel;

   

   //2KG8A;5=85 7=0G5=89  =0 10@5 

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);   

   

   verxlevel=MathMax(ma1,ma2);

   verxlevel=MathMax(verxlevel,ma3);

   verxlevel=MathMax(verxlevel,ma4);

   verxlevel=MathMax(verxlevel,ma5);

   verxlevel=MathMax(verxlevel,ma6);

   verxlevel=MathMax(verxlevel,ma7);

   verxlevel=MathMax(verxlevel,ma8);

   verxlevel=MathMax(verxlevel,ma9);

   verxlevel=MathMax(verxlevel,ma10);

   verxlevel=MathMax(verxlevel,ma11);

   verxlevel=MathMax(verxlevel,ma12);

   

   verxlevel=NormalizeDouble(verxlevel,Digits);

   

   return(verxlevel);    

}

//=====================================================================================================================

//=====================================================================================================================

// !'" # / !  !,/) !      12 

double RaschetLevelNizney12MA(int b)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12, niznlevel;

   

   //2KG8A;5=85 7=0G5=89  =0 10@5 

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);   

   

   niznlevel=MathMin(ma1,ma2);

   niznlevel=MathMin(niznlevel,ma3);

   niznlevel=MathMin(niznlevel,ma4);

   niznlevel=MathMin(niznlevel,ma5);

   niznlevel=MathMin(niznlevel,ma6);

   niznlevel=MathMin(niznlevel,ma7);

   niznlevel=MathMin(niznlevel,ma8);

   niznlevel=MathMin(niznlevel,ma9);

   niznlevel=MathMin(niznlevel,ma10);

   niznlevel=MathMin(niznlevel,ma11);

   niznlevel=MathMin(niznlevel,ma12);

   

   niznlevel=NormalizeDouble(niznlevel,Digits);

   

   return(niznlevel);    

}

//=====================================================================================================================

//=====================================================================================================================

// !'"  %    12 !,/)% ! %  #"%

double RaschetRazmaxaVeera12MA(int b)

{

   double LevelVerxneyMA, LevelNizneyMA, RazmaxVeeraMA;

   

   LevelVerxneyMA=0; LevelNizneyMA=0; RazmaxVeeraMA=0;

   

   //C@>25=L 25@E=59 A:>;L7OI59 A@54=59

   LevelVerxneyMA=RaschetLevelVerxney12MA(b);

   

   //C@>25=L =86=59 A:>;L7OI59 A@54=59

   LevelNizneyMA=RaschetLevelNizney12MA(b);

   

   //@0AAB>O=85 <564C =8<8 2 ?C=:B0E

   RazmaxVeeraMA=LevelVerxneyMA-LevelNizneyMA;

   RazmaxVeeraMA=RazmaxVeeraMA/Point;

   RazmaxVeeraMA=MathRound(RazmaxVeeraMA);

   

   return(RazmaxVeeraMA);

}

//=====================================================================================================================

//=====================================================================================================================

//!   %    12 !,/)% ! %  &+% #"%

double RaschetSrednRazmaxVeera12MA(int b)

{

   double SrednRazmaxMA, ObshiyRazmax, TekyshRazmax;



   int i, count, LevayaGranica, DalnostGranicy;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   SrednRazmaxMA=0;

   

   //;520O 3@0=8F0 4;O ?>4AG5B0, A;520 >B =55 4>;6=> 1KBL =5 <5=55 3000 10@>2

   LevayaGranica=Bars-3000;

   

   //@0AAB>O=85 >B ;52>9 3@0=8FK ?>4AG5B0 4> 10@0  4>;6=> 1KBL =5 <5=55 5000

   DalnostGranicy=LevayaGranica-b;   

   

   //AC<<0 ?C=:B>2 2A5E ?>4AG8B0==KE @07<0E>2 

   ObshiyRazmax=0;

   

   //B5:CI89 @07<0E 255@0 2 ?C=:B0E

   TekyshRazmax=0;

   

   //:>;8G5AB2> 2A5E ?>4AG8B0==KE @07<0E>2 

   count=0;

   

   //?@>F54C@0 4>;30O, ?>MB><C 15@5< =5 2A5 10@K ?>4@O4

   if(DalnostGranicy>5000)

   {

      for(i=b; i<LevayaGranica; i=i+20)

      {

         //@0AG5B B5:CI53> @07<0E0 255@0 87 12  2 ?C=:B0E =0 10@5 i

         TekyshRazmax=RaschetRazmaxaVeera12MA(i);

         

         ObshiyRazmax=ObshiyRazmax+TekyshRazmax;

         

         count=count+1;

      }

   }

   

   //A@54=89 @07<5@ C7:>AB8 255@0 87 12  2 F5;KE ?C=:B0E

   SrednRazmaxMA=ObshiyRazmax/count;

   

   SrednRazmaxMA=MathRound(SrednRazmaxMA);

  

   return(SrednRazmaxMA);

}

//=====================================================================================================================

//=====================================================================================================================

//>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  +', A25G59  "#)  $

int RaschetProbitMAOneBULL(int b)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;

   

   int KolvoProbitMA;

   

   //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  +', A25G59

   KolvoProbitMA=0;

   

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   if((Open[b]<=ma1)&&(Close[b]>=ma1))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma2)&&(Close[b]>=ma2))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma3)&&(Close[b]>=ma3))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma4)&&(Close[b]>=ma4))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma5)&&(Close[b]>=ma5))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma6)&&(Close[b]>=ma6))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma7)&&(Close[b]>=ma7))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma8)&&(Close[b]>=ma8))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma9)&&(Close[b]>=ma9))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma10)&&(Close[b]>=ma10)){KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma11)&&(Close[b]>=ma11)){KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]<=ma12)&&(Close[b]>=ma12)){KolvoProbitMA=KolvoProbitMA+1;}         

   

   return(KolvoProbitMA);

}

//=====================================================================================================================

//=====================================================================================================================

//>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  , A25G59  "#)  $

int RaschetProbitMAOneBEAR(int b)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;

   

   int KolvoProbitMA;

   

   KolvoProbitMA=0;

   

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   if((Open[b]>=ma1)&&(Close[b]<=ma1))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma2)&&(Close[b]<=ma2))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma3)&&(Close[b]<=ma3))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma4)&&(Close[b]<=ma4))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma5)&&(Close[b]<=ma5))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma6)&&(Close[b]<=ma6))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma7)&&(Close[b]<=ma7))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma8)&&(Close[b]<=ma8))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma9)&&(Close[b]<=ma9))  {KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma10)&&(Close[b]<=ma10)){KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma11)&&(Close[b]<=ma11)){KolvoProbitMA=KolvoProbitMA+1;}

   if((Open[b]>=ma12)&&(Close[b]<=ma12)){KolvoProbitMA=KolvoProbitMA+1;}         

   

   return(KolvoProbitMA);

}

//=====================================================================================================================

//=====================================================================================================================

//    '/  , +',    %  4% "/+% 

bool ProverkaVeer4XMABigBULL(int b)

{

   double ma9, ma10, ma11, ma12;

   

   bool Veer4XMABigBULL;

   

   //?@>25@:0 =0;8G8O 255@0 225@E 87 4E BO65;KE 

   Veer4XMABigBULL=false;

   

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);   

   

   //?@028;L=K9 255@  % 87 4E BO65;KE 

   if((ma12<=ma11)&&(ma11<=ma10)&&(ma10<=ma9))

   {

      Veer4XMABigBULL=true;

   }      

   

   return(Veer4XMABigBULL);    

}

//=====================================================================================================================

//=====================================================================================================================

//    '/  , ,     4% "/+% 

bool ProverkaVeer4XMABigBEAR(int b)

{

   double ma9, ma10, ma11, ma12;

   

   bool Veer4XMABigBEAR;

   

   //?@>25@:0 =0;8G8O 255@0 225@E 87 4E BO65;KE 

   Veer4XMABigBEAR=false;

   

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);   

   

   //?@028;L=K9 255@  87 4E BO65;KE 

   if((ma12>=ma11)&&(ma11>=ma10)&&(ma10>=ma9))

   {

      Veer4XMABigBEAR=true;

   }      

   

   return(Veer4XMABigBEAR);    

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

// !'" , "    !,/)% ! %  "#)  $

int RaschetVektoraNapravlMABEAR(int b)

{

   //A:>;L7OI85 A@54=85 =0 ;52>< A@575 B@0?5F88

   

   double malevo1, malevo2, malevo3, malevo4, malevo5, malevo6, malevo7;

   

   double malevo8, malevo9, malevo10, malevo11, malevo12;

   

   //A:>;L7OI85 A@54=85 =0 ?@02>< A@575 B@0?5F88   

   

   double maprav1, maprav2, maprav3, maprav4, maprav5, maprav6, maprav7;

   

   double maprav8, maprav9, maprav10, maprav11, maprav12;

   

   int VektorBEARMA, levbar;

   

   //>B25B, 2>72@0I05<K9 DC=:F859 -  "    

   VektorBEARMA=0;

   

   //10@ A;520 >B 10@0  - ;52K9 A@57 B@0?5F88 

   levbar=0;

   levbar=b+ShirinaOtrezkaTrapMA;

   

   //@0AG5B A:>;L7OI8E A@54=8E =0 ?@02>< A@575 B@0?5F88 

   

   maprav1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   maprav2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   maprav3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   maprav4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   maprav5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   maprav6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   maprav7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   maprav8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   maprav9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   maprav10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   maprav11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   maprav12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   //@0AG5B A:>;L7OI8E A@54=8E =0 ;52>< A@575 B@0?5F88 

   

   malevo1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,levbar);

   malevo12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,levbar);   



   return(VektorBEARMA);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//   5-" %   " #

bool ProboyFiveLightMATrendBEAR(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5;

   

   bool ProbBearLight5X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  <54256L59 A25G59

   kolprobma=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> <54256L53> 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  <54256L59 A25G59

   kolvoprob2x=0;

   

   //"",  )+ $#&

   ProbBearLight5X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> ,% ?@>1>52 4;O 5 ;53:8E 

   if((Open[b]>=ma1)&&(Close[b]<=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma2)&&(Close[b]<=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma3)&&(Close[b]<=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma4)&&(Close[b]<=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma5)&&(Close[b]<=ma5)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 , 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12>=ma7) {tochnveera=tochnveera+1;}

   if(ma11>=ma8) {tochnveera=tochnveera+1;}

   if(ma10>=ma9) {tochnveera=tochnveera+1;}

   if(ma9>=ma8)  {tochnveera=tochnveera+1;}

   if(ma8>=ma7)  {tochnveera=tochnveera+1;}

   if(ma7>=ma6)  {tochnveera=tochnveera+1;}

   if(ma6>=ma5)  {tochnveera=tochnveera+1;}

   if(ma6>=ma4)  {tochnveera=tochnveera+1;}

   if(ma6>=ma3)  {tochnveera=tochnveera+1;}

   if(ma6>=ma2)  {tochnveera=tochnveera+1;}

   if(ma6>=ma1)  {tochnveera=tochnveera+1;}

   

   //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 5% ;53:8E  A 2KE>4>< 2=87

   if((tochnveera==11)&&(kolprobma==5))

   {

      ProbBearLight5X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O <54256LO A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 <54256L59 A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBEAR(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBEAR(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBEAR(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBEAR(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBEAR(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 5% ;53:8E  A 2KE>4>< 2=87

      if((tochnveera==11)&&(kolvoprob2x==5)&&(kolprobma>0))

      {

         ProbBearLight5X=true;

      }

   }   

   

   return(ProbBearLight5X);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//+'   5-" %   " #

bool ProboyFiveLightMATrendBULL(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5;

   

   bool ProbBullLight5X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolprobma=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolvoprob2x=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> 1KGL53> 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //"",  )+ $#&

   ProbBullLight5X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> +',% ?@>1>52 4;O 5 ;53:8E 

   if((Open[b]<=ma1)&&(Close[b]>=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma2)&&(Close[b]>=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma3)&&(Close[b]>=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma4)&&(Close[b]>=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma5)&&(Close[b]>=ma5)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 +', 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12<=ma7) {tochnveera=tochnveera+1;}

   if(ma11<=ma8) {tochnveera=tochnveera+1;}

   if(ma10<=ma9) {tochnveera=tochnveera+1;}

   if(ma9<=ma8)  {tochnveera=tochnveera+1;}

   if(ma8<=ma7)  {tochnveera=tochnveera+1;}

   if(ma7<=ma6)  {tochnveera=tochnveera+1;}

   if(ma6<=ma5)  {tochnveera=tochnveera+1;}

   if(ma6<=ma4)  {tochnveera=tochnveera+1;}

   if(ma6<=ma3)  {tochnveera=tochnveera+1;}

   if(ma6<=ma2)  {tochnveera=tochnveera+1;}

   if(ma6<=ma1)  {tochnveera=tochnveera+1;}

   

   //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 5% ;53:8E  A 2KE>4>< 225@E

   if((tochnveera==11)&&(kolprobma==5))

   {

      ProbBullLight5X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O 1KGLO A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 1KGL59 A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBULL(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBULL(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBULL(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBULL(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBULL(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 5% ;53:8E  A 2KE>4>< 225@E

      if((tochnveera==11)&&(kolvoprob2x==5)&&(kolprobma>0))

      {

         ProbBullLight5X=true;

      }

   }   

   

   return(ProbBullLight5X);

}

//=====================================================================================================================

//=====================================================================================================================

// ?@>1>9 >4=>9 A:>;L7OI59 A@54=59 A #+ ?5@8>4><  A25G59 =0 10@5 

bool ProboyOneMACandle2XBEAR(int PerMA, int b)

{

   double maleft, maprav;

   

   int levbr;

   

   bool prob2x;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   prob2x=false;

   

   //10@ A;520 >B ?@>25@O5<>3> 10@0 

   levbr=b+1;

   

   //C@>25=L  =0 ;52>< 10@5

   maleft=iMA(NULL,0,PerMA,0,MODE_EMA,PRICE_CLOSE,levbr);

   maleft=NormalizeDouble(maleft,Digits);

   

   //C@>25=L  =0 ?@>25@O5<>< 10@5 

   maprav=iMA(NULL,0,PerMA,0,MODE_EMA,PRICE_CLOSE,b);

   maprav=NormalizeDouble(maprav,Digits);

   

   //?@>25@:0 ?@>18B8O  42>9=>9 A25G59 =0 10@5  ! %# 

   if((High[levbr]>=maleft)&&(Close[b]<=maprav))

   {

      prob2x=true;

   }   

   

   return(prob2x);

}

//=====================================================================================================================

//=====================================================================================================================

//>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  , A25G59

int KolvoProbMASvecha2XBEAR(int b)

{

   int KolvoProbMA;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6, prob7, prob8, prob9, prob10, prob11, prob12;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   KolvoProbMA=0;

   

   //?>4AG5B ,% ?@>1>52 A:>;L7OI8E A@54=8E  , A25G59

   

   //***************************************************************

   

   prob1=false;

   prob1=ProboyOneMACandle2XBEAR(13,b);

   

   if(prob1==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob2=false;

   prob2=ProboyOneMACandle2XBEAR(21,b);

   

   if(prob2==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob3=false;

   prob3=ProboyOneMACandle2XBEAR(34,b);

   

   if(prob3==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob4=false;

   prob4=ProboyOneMACandle2XBEAR(55,b);

   

   if(prob4==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob5=false;

   prob5=ProboyOneMACandle2XBEAR(89,b);

   

   if(prob5==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob6=false;

   prob6=ProboyOneMACandle2XBEAR(144,b);

   

   if(prob6==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob7=false;

   prob7=ProboyOneMACandle2XBEAR(233,b);

   

   if(prob7==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob8=false;

   prob8=ProboyOneMACandle2XBEAR(377,b);

   

   if(prob8==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob9=false;

   prob9=ProboyOneMACandle2XBEAR(610,b);

   

   if(prob9==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob10=false;

   prob10=ProboyOneMACandle2XBEAR(987,b);

   

   if(prob10==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob11=false;

   prob11=ProboyOneMACandle2XBEAR(1597,b);

   

   if(prob11==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob12=false;

   prob12=ProboyOneMACandle2XBEAR(2584,b);

   

   if(prob12==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************                                             

   

   return(KolvoProbMA);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//+' ?@>1>9 >4=>9 A:>;L7OI59 A@54=59 A #+ ?5@8>4><  A25G59 =0 10@5 

bool ProboyOneMACandle2XBULL(int PerMA, int b)

{

   double maleft, maprav;

   

   int levbr;

   

   bool prob2x;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   prob2x=false;

   

   //10@ A;520 >B ?@>25@O5<>3> 10@0 

   levbr=b+1;

   

   //C@>25=L  =0 ;52>< 10@5

   maleft=iMA(NULL,0,PerMA,0,MODE_EMA,PRICE_CLOSE,levbr);

   maleft=NormalizeDouble(maleft,Digits);

   

   //C@>25=L  =0 ?@>25@O5<>< 10@5 

   maprav=iMA(NULL,0,PerMA,0,MODE_EMA,PRICE_CLOSE,b);

   maprav=NormalizeDouble(maprav,Digits);

   

   //?@>25@:0 ?@>18B8O  42>9=>9 +', A25G59 =0 10@5  !#  %

   if((Low[levbr]<=maleft)&&(Close[b]>=maprav))

   {

      prob2x=true;

   }   

   

   return(prob2x);

}

//=====================================================================================================================

//=====================================================================================================================

//>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  +', A25G59

int KolvoProbMASvecha2XBULL(int b)

{

   int KolvoProbMA;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6, prob7, prob8, prob9, prob10, prob11, prob12;

   

   //>B25B, 2>72@0I05<K9 DC=:F859

   KolvoProbMA=0;

   

   //?>4AG5B +',% ?@>1>52 A:>;L7OI8E A@54=8E  +', A25G59

   

   //***************************************************************

   

   prob1=false;

   prob1=ProboyOneMACandle2XBULL(13,b);

   

   if(prob1==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob2=false;

   prob2=ProboyOneMACandle2XBULL(21,b);

   

   if(prob2==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob3=false;

   prob3=ProboyOneMACandle2XBULL(34,b);

   

   if(prob3==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob4=false;

   prob4=ProboyOneMACandle2XBULL(55,b);

   

   if(prob4==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob5=false;

   prob5=ProboyOneMACandle2XBULL(89,b);

   

   if(prob5==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob6=false;

   prob6=ProboyOneMACandle2XBULL(144,b);

   

   if(prob6==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob7=false;

   prob7=ProboyOneMACandle2XBULL(233,b);

   

   if(prob7==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob8=false;

   prob8=ProboyOneMACandle2XBULL(377,b);

   

   if(prob8==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob9=false;

   prob9=ProboyOneMACandle2XBULL(610,b);

   

   if(prob9==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob10=false;

   prob10=ProboyOneMACandle2XBULL(987,b);

   

   if(prob10==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob11=false;

   prob11=ProboyOneMACandle2XBULL(1597,b);

   

   if(prob11==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************

   

   prob12=false;

   prob12=ProboyOneMACandle2XBULL(2584,b);

   

   if(prob12==true)

   {

      KolvoProbMA=KolvoProbMA+1;

   }

   

   //***************************************************************                                             

   

   return(KolvoProbMA);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//+'   6-" %   " #

bool ProboySixLightMATrendBULL(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6;

   

   bool ProbBullLight6X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolprobma=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolvoprob2x=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> 1KGL53> 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //"",  )+ $#&

   ProbBullLight6X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> +',% ?@>1>52 4;O 6 ;53:8E 

   if((Open[b]<=ma1)&&(Close[b]>=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma2)&&(Close[b]>=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma3)&&(Close[b]>=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma4)&&(Close[b]>=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma5)&&(Close[b]>=ma5)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma6)&&(Close[b]>=ma6)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 +', 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12<=ma7) {tochnveera=tochnveera+1;}

   if(ma11<=ma8) {tochnveera=tochnveera+1;}

   if(ma10<=ma9) {tochnveera=tochnveera+1;}

   if(ma9<=ma8)  {tochnveera=tochnveera+1;}

   if(ma8<=ma7)  {tochnveera=tochnveera+1;}

   if(ma7<=ma6)  {tochnveera=tochnveera+1;}

   if(ma7<=ma5)  {tochnveera=tochnveera+1;}

   if(ma7<=ma4)  {tochnveera=tochnveera+1;}

   if(ma7<=ma3)  {tochnveera=tochnveera+1;}

   if(ma7<=ma2)  {tochnveera=tochnveera+1;}

   if(ma7<=ma1)  {tochnveera=tochnveera+1;}

   

   //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 6% ;53:8E  A 2KE>4>< 225@E

   if((tochnveera==11)&&(kolprobma==6))

   {

      ProbBullLight6X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O 1KGLO A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 1KGL59 A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBULL(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBULL(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBULL(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBULL(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBULL(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob6=false;

      prob6=ProboyOneMACandle2XBULL(144,b);

      

      if(prob6==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 6% ;53:8E  A 2KE>4>< 225@E

      if((tochnveera==11)&&(kolvoprob2x==6)&&(kolprobma>0))

      {

         ProbBullLight6X=true;

      }

   }   

   

   return(ProbBullLight6X);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//   6-" %   " #

bool ProboySixLightMATrendBEAR(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6;

   

   bool ProbBearLight6X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  , A25G59

   kolprobma=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  , A25G59

   kolvoprob2x=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> , 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //"",  )+ $#&

   ProbBearLight6X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> ,% ?@>1>52 4;O 6 ;53:8E 

   if((Open[b]>=ma1)&&(Close[b]<=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma2)&&(Close[b]<=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma3)&&(Close[b]<=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma4)&&(Close[b]<=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma5)&&(Close[b]<=ma5)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma6)&&(Close[b]<=ma6)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 , 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12>=ma7) {tochnveera=tochnveera+1;}

   if(ma11>=ma8) {tochnveera=tochnveera+1;}

   if(ma10>=ma9) {tochnveera=tochnveera+1;}

   if(ma9>=ma8)  {tochnveera=tochnveera+1;}

   if(ma8>=ma7)  {tochnveera=tochnveera+1;}

   if(ma7>=ma6)  {tochnveera=tochnveera+1;}

   if(ma7>=ma5)  {tochnveera=tochnveera+1;}

   if(ma7>=ma4)  {tochnveera=tochnveera+1;}

   if(ma7>=ma3)  {tochnveera=tochnveera+1;}

   if(ma7>=ma2)  {tochnveera=tochnveera+1;}

   if(ma7>=ma1)  {tochnveera=tochnveera+1;}

   

   //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 6% ;53:8E  A 2KE>4>< 

   if((tochnveera==11)&&(kolprobma==6))

   {

      ProbBearLight6X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O ,/ A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 , A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBEAR(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBEAR(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBEAR(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBEAR(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBEAR(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob6=false;

      prob6=ProboyOneMACandle2XBEAR(144,b);

      

      if(prob6==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 6% ;53:8E  A 2KE>4>< 

      if((tochnveera==11)&&(kolvoprob2x==6)&&(kolprobma>0))

      {

         ProbBearLight6X=true;

      }

   }   

   

   return(ProbBearLight6X);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//+'   7- %   " #

bool ProboySevenLightMATrendBULL(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6, prob7;

   

   bool ProbBullLight7X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolprobma=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolvoprob2x=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> 1KGL53> 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //"",  )+ $#&

   ProbBullLight7X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> +',% ?@>1>52 4;O 7 ;53:8E 

   if((Open[b]<=ma1)&&(Close[b]>=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma2)&&(Close[b]>=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma3)&&(Close[b]>=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma4)&&(Close[b]>=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma5)&&(Close[b]>=ma5)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma6)&&(Close[b]>=ma6)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma7)&&(Close[b]>=ma7)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 +', 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12<=ma11){tochnveera=tochnveera+1;}

   if(ma11<=ma10){tochnveera=tochnveera+1;}

   if(ma10<=ma9) {tochnveera=tochnveera+1;}

   if(ma9<=ma8)  {tochnveera=tochnveera+1;}

   if(ma8<=ma7)  {tochnveera=tochnveera+1;}

   if(ma8<=ma6)  {tochnveera=tochnveera+1;}

   if(ma8<=ma5)  {tochnveera=tochnveera+1;}

   if(ma8<=ma4)  {tochnveera=tochnveera+1;}

   if(ma8<=ma3)  {tochnveera=tochnveera+1;}

   if(ma8<=ma2)  {tochnveera=tochnveera+1;}

   if(ma8<=ma1)  {tochnveera=tochnveera+1;}

   

   //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 7% ;53:8E  A 2KE>4>< 225@E

   if((tochnveera==11)&&(kolprobma==7))

   {

      ProbBullLight7X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O 1KGLO A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 1KGL59 A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBULL(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBULL(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBULL(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBULL(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBULL(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob6=false;

      prob6=ProboyOneMACandle2XBULL(144,b);

      

      if(prob6==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      prob7=false;

      prob7=ProboyOneMACandle2XBULL(233,b);

      

      if(prob7==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 7% ;53:8E  A 2KE>4>< 225@E

      if((tochnveera==11)&&(kolvoprob2x==7)&&(kolprobma>0))

      {

         ProbBullLight7X=true;

      }

   }   

   

   return(ProbBullLight7X);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//   7- %   " #

bool ProboySevenLightMATrendBEAR(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6, prob7;

   

   bool ProbBearLight7X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  , A25G59

   kolprobma=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  , A25G59

   kolvoprob2x=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> , 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //"",  )+ $#&

   ProbBearLight7X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> ,% ?@>1>52 4;O 7 ;53:8E 

   if((Open[b]>=ma1)&&(Close[b]<=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma2)&&(Close[b]<=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma3)&&(Close[b]<=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma4)&&(Close[b]<=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma5)&&(Close[b]<=ma5)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma6)&&(Close[b]<=ma6)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma7)&&(Close[b]<=ma7)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 , 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12>=ma11){tochnveera=tochnveera+1;}

   if(ma11>=ma10){tochnveera=tochnveera+1;}

   if(ma10>=ma9) {tochnveera=tochnveera+1;}

   if(ma9>=ma8)  {tochnveera=tochnveera+1;}

   if(ma8>=ma7)  {tochnveera=tochnveera+1;}

   if(ma8>=ma6)  {tochnveera=tochnveera+1;}

   if(ma8>=ma5)  {tochnveera=tochnveera+1;}

   if(ma8>=ma4)  {tochnveera=tochnveera+1;}

   if(ma8>=ma3)  {tochnveera=tochnveera+1;}

   if(ma8>=ma2)  {tochnveera=tochnveera+1;}

   if(ma8>=ma1)  {tochnveera=tochnveera+1;}   

   

   //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 7% ;53:8E  A 2KE>4>< 

   if((tochnveera==11)&&(kolprobma==7))

   {

      ProbBearLight7X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O ,/ A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 , A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBEAR(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBEAR(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBEAR(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBEAR(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBEAR(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob6=false;

      prob6=ProboyOneMACandle2XBEAR(144,b);

      

      if(prob6==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      prob7=false;

      prob7=ProboyOneMACandle2XBEAR(233,b);

      

      if(prob7==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 7% ;53:8E  A 2KE>4>< 

      if((tochnveera==11)&&(kolvoprob2x==7)&&(kolprobma>0))

      {

         ProbBearLight7X=true;

      }

   }   

   

   return(ProbBearLight7X);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//+'   8- %   " #

bool ProboyEightLightMATrendBULL(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6, prob7, prob8;

   

   bool ProbBullLight8X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolprobma=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  1KGL59 A25G59

   kolvoprob2x=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> 1KGL53> 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //"",  )+ $#&

   ProbBullLight8X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> +',% ?@>1>52 4;O 8 ;53:8E 

   if((Open[b]<=ma1)&&(Close[b]>=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma2)&&(Close[b]>=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma3)&&(Close[b]>=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma4)&&(Close[b]>=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma5)&&(Close[b]>=ma5)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma6)&&(Close[b]>=ma6)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma7)&&(Close[b]>=ma7)){kolprobma=kolprobma+1;}

   if((Open[b]<=ma8)&&(Close[b]>=ma8)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 +', 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12<=ma11){tochnveera=tochnveera+1;}

   if(ma11<=ma10){tochnveera=tochnveera+1;}

   if(ma10<=ma9) {tochnveera=tochnveera+1;}

   if(ma9<=ma8)  {tochnveera=tochnveera+1;}

   if(ma9<=ma7)  {tochnveera=tochnveera+1;}

   if(ma9<=ma6)  {tochnveera=tochnveera+1;}

   if(ma9<=ma5)  {tochnveera=tochnveera+1;}

   if(ma9<=ma4)  {tochnveera=tochnveera+1;}

   if(ma9<=ma3)  {tochnveera=tochnveera+1;}

   if(ma9<=ma2)  {tochnveera=tochnveera+1;}

   if(ma9<=ma1)  {tochnveera=tochnveera+1;}

   

   //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 8% ;53:8E  A 2KE>4>< 225@E

   if((tochnveera==11)&&(kolprobma==8))

   {

      ProbBullLight8X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O 1KGLO A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 1KGL59 A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBULL(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBULL(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBULL(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBULL(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBULL(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob6=false;

      prob6=ProboyOneMACandle2XBULL(144,b);

      

      if(prob6==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      prob7=false;

      prob7=ProboyOneMACandle2XBULL(233,b);

      

      if(prob7==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      prob8=false;

      prob8=ProboyOneMACandle2XBULL(377,b);

      

      if(prob8==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************      

      

      //5A;8 5ABL ?@028;L=K9 +' 255@ 8 ?@>1>9 7% ;53:8E  A 2KE>4>< 225@E

      if((tochnveera==11)&&(kolvoprob2x==8)&&(kolprobma>0))

      {

         ProbBullLight8X=true;

      }

   }   

   

   return(ProbBullLight8X);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//   8- %   " #

bool ProboyEightLightMATrendBEAR(int b, bool svecha2x)

{

   double ma1, ma2, ma3, ma4, ma5, ma6, ma7, ma8, ma9, ma10, ma11, ma12;



   int kolprobma, kolvoprob2x, tochnveera;

   

   bool prob1, prob2, prob3, prob4, prob5, prob6, prob7, prob8;

   

   bool ProbBearLight8X;



   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  , A25G59

   kolprobma=0;

   

   //:>;8G5AB2> ?@>18BKE ;53:8E A:>;L7OI8E A@54=8E  , A25G59

   kolvoprob2x=0;

   

   //B>G=>ABL 2K?>;=5=8O CA;>289 ?@028;L=>3> , 255@0 4;O ?@>1>O

   tochnveera=0;

   

   //"",  )+ $#&

   ProbBearLight8X=false;    

   

   //@0AG5B C@>2=59 12 A:>;L7OI8E A@54=8E

   ma1=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,b);

   ma2=iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,b);

   ma3=iMA(NULL,0,34,0,MODE_EMA,PRICE_CLOSE,b);

   ma4=iMA(NULL,0,55,0,MODE_EMA,PRICE_CLOSE,b);

   ma5=iMA(NULL,0,89,0,MODE_EMA,PRICE_CLOSE,b);

   ma6=iMA(NULL,0,144,0,MODE_EMA,PRICE_CLOSE,b);

   ma7=iMA(NULL,0,233,0,MODE_EMA,PRICE_CLOSE,b);

   ma8=iMA(NULL,0,377,0,MODE_EMA,PRICE_CLOSE,b);

   ma9=iMA(NULL,0,610,0,MODE_EMA,PRICE_CLOSE,b);

   ma10=iMA(NULL,0,987,0,MODE_EMA,PRICE_CLOSE,b);

   ma11=iMA(NULL,0,1597,0,MODE_EMA,PRICE_CLOSE,b);

   ma12=iMA(NULL,0,2584,0,MODE_EMA,PRICE_CLOSE,b);

   

   ma1=NormalizeDouble(ma1,Digits);

   ma2=NormalizeDouble(ma2,Digits);

   ma3=NormalizeDouble(ma3,Digits);

   ma4=NormalizeDouble(ma4,Digits);

   ma5=NormalizeDouble(ma5,Digits);

   ma6=NormalizeDouble(ma6,Digits);

   ma7=NormalizeDouble(ma7,Digits);

   ma8=NormalizeDouble(ma8,Digits);

   ma9=NormalizeDouble(ma9,Digits);

   ma10=NormalizeDouble(ma10,Digits);

   ma11=NormalizeDouble(ma11,Digits);

   ma12=NormalizeDouble(ma12,Digits);

   

   //?>4AG8BK205< :>;8G5AB2> ,% ?@>1>52 4;O 8 ;53:8E 

   if((Open[b]>=ma1)&&(Close[b]<=ma1)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma2)&&(Close[b]<=ma2)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma3)&&(Close[b]<=ma3)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma4)&&(Close[b]<=ma4)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma5)&&(Close[b]<=ma5)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma6)&&(Close[b]<=ma6)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma7)&&(Close[b]<=ma7)){kolprobma=kolprobma+1;}

   if((Open[b]>=ma8)&&(Close[b]<=ma8)){kolprobma=kolprobma+1;}

   

   //?>4AG8BK205< AB5?5=L ?@028;L=>AB8 , 255@0 87 12 A:>;L7OI8E A@54=8E

   if(ma12>=ma11){tochnveera=tochnveera+1;}

   if(ma11>=ma10){tochnveera=tochnveera+1;}

   if(ma10>=ma9) {tochnveera=tochnveera+1;}

   if(ma9>=ma8)  {tochnveera=tochnveera+1;}

   if(ma9>=ma7)  {tochnveera=tochnveera+1;}

   if(ma9>=ma6)  {tochnveera=tochnveera+1;}

   if(ma9>=ma5)  {tochnveera=tochnveera+1;}

   if(ma9>=ma4)  {tochnveera=tochnveera+1;}

   if(ma9>=ma3)  {tochnveera=tochnveera+1;}

   if(ma9>=ma2)  {tochnveera=tochnveera+1;}

   if(ma9>=ma1)  {tochnveera=tochnveera+1;}

   

   //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 8% ;53:8E  A 2KE>4>< 

   if((tochnveera==11)&&(kolprobma==8))

   {

      ProbBearLight8X=true;

   }

   

   //*************************************************************************

   //*************************************************************************

   

   //5A;8 5ABL 42>9=0O ,/ A25G0

   if(svecha2x==true)

   {

      //:>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E 42>9=>9 , A25G59

      kolvoprob2x=0;

      

      //***************************************************************

      

      prob1=false;

      prob1=ProboyOneMACandle2XBEAR(13,b);

      

      if(prob1==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob2=false;

      prob2=ProboyOneMACandle2XBEAR(21,b);

      

      if(prob2==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob3=false;

      prob3=ProboyOneMACandle2XBEAR(34,b);

      

      if(prob3==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob4=false;

      prob4=ProboyOneMACandle2XBEAR(55,b);

      

      if(prob4==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob5=false;

      prob5=ProboyOneMACandle2XBEAR(89,b);

      

      if(prob5==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }

      

      //***************************************************************

      

      prob6=false;

      prob6=ProboyOneMACandle2XBEAR(144,b);

      

      if(prob6==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      prob7=false;

      prob7=ProboyOneMACandle2XBEAR(233,b);

      

      if(prob7==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************

      

      prob8=false;

      prob8=ProboyOneMACandle2XBEAR(377,b);

      

      if(prob8==true)

      {

         kolvoprob2x=kolvoprob2x+1;

      }      

      

      //***************************************************************      

      

      //5A;8 5ABL ?@028;L=K9  255@ 8 ?@>1>9 8% ;53:8E  A 2KE>4>< 

      if((tochnveera==11)&&(kolvoprob2x==8)&&(kolprobma>0))

      {

         ProbBearLight8X=true;

      }

   }   

   

   return(ProbBearLight8X);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//$#& / ,  &

//?>8A: 10@0 =0 7040==>< >B@57:5 345 7=0G5=85 MACD <0:A8<0;L=>, 0=0;>3 iHigest

int leftmacd_maxbar(int count_bars, int b)

{

   double cur_macd, max_macd;

   

   int i, total, bmax;

   

   total = b+count_bars;

   

   if(total>Bars)

   {

      total=Bars;

   }

   

   //8A:><K9 10@

   bmax = b;

   

   max_macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b);

   max_macd = NormalizeDouble(max_macd,7);

   

   for(i=(b+1); i<total; i++)

   {

      cur_macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      cur_macd = NormalizeDouble(cur_macd,7);

      

      if(cur_macd > max_macd)

      {

         max_macd = cur_macd;

         

         bmax = i;   

      }   

   }   

   

   return(bmax);

}

//================================================================================



//================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K bart :0A0B5;L=>9 ;8=88 A25@EC ?> <0:A8<C<0< 

//=C6=> GB>1K 2 B>G:5 2 8=48:0B>@  1K; A0<K9 2KA>:89 =0 >B@57:5

//?@82O7K205< ?;0=:C :  2 B>G:5 2 8 >?CA:05< 2=87 ?@02K9 55 :>=5F

//>?@545;O5< =><5@ 10@0 bart 345 ?;0=:0 C?5@;0AL 2 8=48:0B>@ 

//=0 >B@57:5 A 2  1, MB> 1C45B ?@020O B>G:0 4;O :0A0B5;L=>9 ;8=88

int macdbear_trendbar(int b2, int b1)

{

   double yi, macmax, maci, ki, kmin;

   

   int i, xi, bart;



   bart=b2;

   

   //;52K9 25@E=89 <0:A8<C< MACD =0 10@5 2

   macmax = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b2);

   macmax = NormalizeDouble(macmax,7);

   

   //8I5< 10@, 345 =08<5=LH89 :>MDD =0:;>=0 ki 4;O C@02=5=8O ?@O<>9 ;8=88

   if(macmax>0)

   {

      kmin = macmax;

      

      for(i=(b2-1); i>=b1; i--)

      {

         maci = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

         maci = NormalizeDouble(maci,7);

      

         xi = b2-i;

         yi = macmax-maci;

         ki = NormalizeDouble((yi/xi),7);

         

         if(ki<kmin)

         {

            kmin=ki;

            bart=i;

         }

      }

   }

   

   return(bart);

}

//================================================================================

//?>AB@>5=85 :0A0B5;L=>9 ;8=88 A25@EC ?> <0:A8<C<0< 8=48:0B>@0  =0 >B@57:5

//>B 10@0 2 845< 2?@02> 4> 10@0 1, AB@>8< :0A0B5;L=CN ;8=8N A25@EC ?> 

//70?><8=05< 2 10@0, p2  8 p1 =0 :>B>@KE ;8=8O 1K;0 =081>;LH59 4;8=K

//2>72@0I05< =><5@ 10@0 p2 4;O ;52>9 >?>@=>9 B>G:8

int beardiver_macd_line(int b2, int b1)

{

   int t1, p2, p1, disti, dimax;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   p2=0;

   p1=0;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   t1=b2;

   

   //=081>;LH55 @0AAB>O=85 <564C 10@0<8 >?>@K :0A0B5;L=>9 ;8=88

   dimax=0;

   

   while((t1>b1)&&(IsStopped()==false))

   {

      //45;05< H03 >B 2 2 AB>@>=C 1 8I5< B>G:C t1 4;O :0A0B5;L=>9 ;8=88

      t1=macdbear_trendbar(b2,b1);

      

      //B5:CI55 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=>9 ;8=88

      disti = b2-t1;

      

      //70?><8=05< 10@K =0 :>B>@KE 4;8=0 ;8=88 <0:A8<0;L=0O

      if(disti>dimax)

      {

         dimax=disti;

         p2=b2;

         p1=t1;

      }

      

      //5A;8 4>H;8 4> 10@0 1  8;8 =5 ?>;CG8;>AL ?>AB@>8BL ;8=8N

      if((t1==b2)||(t1==b1))

      {

         break;

      }

      

      //2 :>=F5 H030 ?5@5AB02;O5< ;52CN >?>@=CN B>G:C =0 <5AB> ?@02>9

      b2=t1;

   }

   

   //5A;8 4;8=0 ;8=88 4>AB0B>G=0O 2>72@0I05< =><5@ ;52>3> 10@0

   if((p2>(p1+DiverLineMinLength))&&(p1>=b1))

   {

      return(p2);

   }

   

   return(0);

}

//================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K 4;O :0A0B5;L=>9 ;8=88 ?> <0:A8<C<0< F5=

//0;3>@8B< ?@82O7K205< ;52K9 :>=5F ?;0=:8 : High[b2] 8 A<>B@8< =0 :0:><

//10@5 1C45B 4@C3>9 :>=5F ?;0=:8 brt - 10@ ;8=88 B@5=40

int rightbear_barprice(int b2, int b1)

{

   double ki, kmax, yi;

   

   int i, xi, brt;

   

   brt  = b2;

   

   kmax = 0;

   

   //8I5< =081>;LH89 :>MDD 4;O C@02=5=8O ?@O<>9 ;8=88, =0< =C65= 10@,

   //:>B>@K9 A2>8< 25@E>< A8;L=5 2A53> ?>4=O; ?@02K9 :>=5F ?;0=:8

   for(i=(b2-1); i>=b1; i--) 

   {

      //=0:;>= 4>;65= 1KBL A=87C 225@E A;520 =0?@02>

      if(High[b2]<High[i])

      {

         xi = b2-i;

         

         yi = (High[i]-High[b2])/Point;

         

         ki = NormalizeDouble((yi/xi),7);

         

         if(ki>kmax)

         {

            kmax = ki;

            

            brt = i;            

         }         

      }  

   }

   

   return(brt);

}

//================================================================================

//>B 2 845< 2?@02> 4> 10@0 1, 2KG8A;O5< :0A0B5;L=CN ;8=8N ?> <0:A8<C<0< F5=

//70?><8=05< 2 10@0, =0 :>B>@KE ;8=8O 1K;0 <0:A8<0;L=>9 4;8=K

//2>72@0I05< =><5@ ;52>9 B>G:8 t2 >?>@K 4;O :0A0B5;L=>9 ;8=88

int beardiver_price_line(int b2, int b1)

{

   int rbp, distcur, distmax, t2, t1;

   

   distmax=0;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   rbp=b2;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   t1=0;

   t2=0;

   

   while((rbp>b1)&&(IsStopped()==false))

   {

      //?>;CG05< ?@02K9 10@ F5= 4> B5E ?>@, ?>:0 =5 4>945< 4> 1

      rbp = rightbear_barprice(b2,b1);

      

      distcur = b2-rbp;

      

      if(distcur>distmax)

      {

         distmax = distcur;

         t2=b2;

         t1=rbp;

      }

      

      //5A;8 4>H;8 4> 10@0 1  8;8 =5 ?>;CG8;>AL ?>AB@>8BL ;8=8N

      if((rbp==b2)||(rbp==b1))

      {

         break;

      }

      

      if(High[rbp]>=High[b2])

      {

         b2=rbp;

      }

   }

   

   //5A;8 <>6=> ?@>25AB8 ;8=8N, 2>72@0I05< =><5@ ;52>3> >?>@=>3> 10@0

   if((t2>(t1+DiverLineMinLength))&&(t1>=b1))

   {      

      return(t2);

   }

   

   return(0);

}

//================================================================================

//  ,  &  "  

//?>?KB:0 ?>AB@>8BL ;8=88 <54256L59 4825@35=F88 =0 8=48:0B>@5 

//:@0B:89 0;3>@8B< ?>AB@>5=8O :0A0B5;L=>9 ;8=88 ?> 

//A=0G0;0 8I5< <0:A8<0;L=>5 7=0G5=85  =0 >B@57:5 DiverSearchBars

//70B5< 845< 2;52> 40;LH5 A<>B@8< 345 70:0=G8205BAO CG0AB>:  2KH5 =C;O

//CB>G=O5< B>G:C <0:A8<C<0 A CG5B>< =>2KE A2545=89

//>B MB>9 B>G:8 845< 2?@02> F8:;>< while, =0:;04K205< :0A0B5;L=K5 ;8=88

//4> B5E ?>@, ?>:0 =5 4>945< 4> ?@02>3> :>=F0 >B@57:0

//2A?><8=05<, 345 ;8=8O 8<5;0 =081>;LHCN 4;8=C 8 @8AC5< 55, 5A;8 4;8=0 1>;LH0O

//5A;8 2>7<>6=> ?>4>428305< ;8=8N 1;865 : ?@02><C :@0N >B@57:0

//?@8 CA;>288, GB> 4;8=0 ;8=88 1>;LH5 <8=8<0;L=> 4>?CAB8<>9 MinLineLength

bool DiverBear(int b)

{

   double mac2, mac1, st;

   

   int m3, m2, m1, p2, p1, hi1, dist, kolprb, grnprb;

   

   bool divbear;

   

   divbear = false;

   

   kolprb=0; grnprb=0;

   

   kolprb=prb_niz_kol(b);

   

   grnprb=b+kolprb;

   

   //A@54=55 B5;> A25G8 2 ?C=:B0E

   st = average_body_length();

   st = MathRound(st);

   

   //A=0G0;0 =0E>48< <0:A8<0;L=>5 7=0G5=85   =0 >B@57:5

   m2 = leftmacd_maxbar(DalnPoiskaDiverMAX,b);

   

   m3 = m2;

   

   mac2 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m2);

   

   mac1 = 0;

   

   m1 = 0; 

   

   //2KA>:89 E>;< =0 8=48:0B>@5  4>;65= 1KBL 2KH5 =C;O

   if(mac2>0)

   {

      //=0E>48< 10@ 345 70:0=G8205BAO CG0AB>:  2KH5 =C;O

      m3 = leftbar_peakmacd(m2);   

   

      if(m3>m2)

      {

         //CB>G=8< <0:A8<C<  =0 =>2>< CG0AB:5

         m2 = leftmacd_maxbar((m3-b+1),b);

         

         mac2 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m2); 

      }



      //;>:0;L=K9 <0:A8<C<  2>7;5 B>G:8 

      m1 = leftmacd_maxbar(7,b);

         

      mac1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m1);

   }

   else

   {

      return(false);

   }

   

   //@0AAB>O=85 >B B>G:8 , =0 :>B>@>< 87<5@O5< <8=8<C< F5=K

   dist = MathMax(DalnPoiskaDiverMAX,(m3-b+1));

      

   //<0:A8<C< F5= =0 7040==>< 8=B5@20;5

   hi1 = iHighest(NULL,0,MODE_HIGH,dist,b);   

         

   //5A;8 CA;>28O ?>  4;O , 4825@35=F88 2K?;=5=K

   if((mac2>mac1)&&(mac1>0)&&(m2>(m1+DiverLineMinLength))&&(m1>=b))

   {     

      //<0:A8<C< =0 10@5 !1, 5ABL ?>4B25@640NI89 A83=0; O?>=A:8E A25G59

      //if((hi1==b)&&(m1==b))

      //{

         //if(japs_bear(b)==true)

         //{

            //divbear=true;

         //}

      //}      

      

      //=878=0 <0:A8<C<0 2?5@2K5 ?@>18205BAO B5;>< 10@0  0 =5 B5=O<8

      //MB> :0: ?>:070;0 ?@0:B8:0 >G5=L B>G=K9 A83=0;

      if(((check_high(hi1,b)==true)||(kolprb>1)||(hi1<=grnprb))&&(Close[b]<(Open[b]-st*Point)))

      {

         divbear=true;

         

         Print("?@5420@8B0;L=0O <54256LO 4825@35=F8O");

      } 

   } 

      

   //?>AB@>5=85 ;8=89 4825@35=F88 8 2K40G0 A>>1I5=8O =0 M:@0=

   if(divbear==true)

   {

      //2KG8A;5=85 >?>@=KE B>G5: 4;O :0A0B5;L=>9 ;8=88 A25@EC ?> 

      m2 = beardiver_macd_line(m2,b);

      

      m1 = macdbear_trendbar(m2,b);

      

      //2KG8A;5=85 >?>@=KE B>G5: 4;O :0A0B5;L=>9 ;8=88 F5=

      p2 = beardiver_price_line(m3,b);

      

      p1 = rightbear_barprice(p2,b);

      

      //5A;8 2KG8A;8;8 2A5 4 >?>@=K5 B>G:8, <>6=> ?@>2>48BL 2 ;8=88

      mac2 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m2);

      mac1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m1);

      

      ObjectDelete("price_bear_diver_line");

      ObjectCreate("price_bear_diver_line",OBJ_TREND,0,Time[p2],High[p2],Time[p1],High[p1]);

      

      ObjectDelete("macd_bear_diver_line");

      ObjectCreate("macd_bear_diver_line",OBJ_TREND,1,Time[m2],mac2,Time[m1],mac1);

                  

      

      Print("@020O B>G:0 >?>@K =0E>48BAO =0 10@5 = "+DoubleToStr(m1,0));

   

      //?@020O B>G:0 >?>@K  4>;6=0 1KBL =540;5:> >B <0:A8<C<0 F5=

      if(MathAbs((hi1-m1))>DiverLineMinLength)

      {

         return(false);

      }

            

      if(m2>(m1+DiverLineMinLength)&&(m1>=b))

      {

         //2KG8A;5=85 >?>@=KE B>G5: 4;O :0A0B5;L=>9 ;8=88 F5=

         p2 = beardiver_price_line(m3,b);

         

         p1 = rightbear_barprice(p2,b);

      

         if((p2>(p1+DiverLineMinLength))&&(p1>=b))

         {

            //5A;8 2KG8A;8;8 2A5 4 >?>@=K5 B>G:8, <>6=> ?@>2>48BL 2 ;8=88

            mac2 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m2);

            mac1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m1);

            

            ObjectDelete("price_bear_diver_line");

            ObjectCreate("price_bear_diver_line",OBJ_TREND,0,Time[p2],High[p2],Time[p1],High[p1]);

            

            ObjectDelete("macd_bear_diver_line");

            ObjectCreate("macd_bear_diver_line",OBJ_TREND,1,Time[m2],mac2,Time[m1],mac1);

            

            //5ABL 845O, GB> 4> B5E ?>@, ?>:0  =865 B@5=4>2>9 ;8=88 ?> 

            //B@5=4 >A=>20==K9 =0 4825@35=F88 2A5 5I5 459AB2C5B

            //G5< 2KH5 ?8: &+ B5< A8;L=55 A83=0; 4825@35=F88

            //<>6=> ?@54?>;>68BL, GB> A83=0; 459AB2C5B B5< 4>;LH5

            //G5< 1>;LH5 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=KE ;8=89

            //G0AB> A83=0; >B@010BK205BAO =5 A@07C, 0 ?>765 :>340 ?@> =53> 701K;8

            

            return(true);   

         }   

      }

   }

   

   return(false);

}

//================================================================================

//?>8A: 8 ?@>@8A>2:0 <54256L59 4825@35=F88 =0 3@0D8:5

int diverbear_search()

{

   int i, total;

   

   total=900;

   

   if(total>Bars)

   {

      total=Bars;

   }   

   

   for(i=1; i<total; i++)

   {

      if(DiverBear(i)==true)

      {

         return(i);

      }

   }

   

   return(0);

}

//================================================================================

//?>8A: 8 ?@>@8A>2:0 <54256L59 4825@35=F88 =0 3@0D8:5

bool diverbear_search_chk()

{

   int i, br, total;

   

   bool divbearchk;

   

   total=700;

   

   br=0;

   

   if(total>Bars)

   {

      total=Bars;

   }

   

   for(i=1; i<total; i++)

   {

      divbearchk=false;

      

      divbearchk=DiverBear(i);

      

      if(divbearchk==true)

      {

         br=i;

         

         break;  

      }

   }

   

   if(br>0)

   {

      //25@B8:0;L=0O ;8=8O =0 10@5 br

      ObjectDelete("bar_SELL_MAKKENA_DIVER_line");

      ObjectCreate("bar_SELL_MAKKENA_DIVER_line",OBJ_VLINE,0,Time[br],0);

      ObjectSet("bar_SELL_MAKKENA_DIVER_line",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("bar_SELL_MAKKENA_DIVER_line",OBJPROP_COLOR,clrOrange);

   }   

   

   if((br==1)&&(Period()>PERIOD_M5))

   {

      Alert(",/  &/  "+Symbol());

      

      Print(",/  &/  "+Symbol());

      

      return(true);

   }

   

   return(false);

}

//================================================================================                                                    |

//>B ;52>3> <0:A8<C<0 MACD mpik 845< 2;52> 4> B5E ?>@, ?>:0 MACD 2KH5 =C;O

//F5;L - ?>;CG8BL =><5@ 10@0, 345 70:0=G8205BAO B5:CI89 ?8: MACD

//2>72@0I05B A0<K9 ;52K9 10@ brgr, 345  2A5 5I5 2KH5 =C;O

int leftbar_peakmacd(int mpik)

{

   double maci;

   

   int i, brgr;

   

   brgr=0;

   

   for(i=mpik; i<Bars; i++)

   {

      maci=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      

      if(maci>0)

      {

         brgr=i;   

      }

      else

      {

         break;

      }   

   }

   

   return(brgr);

}

//================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K 4;O "  ;8=88 ?> <8=8<C<0< F5=

//0;3>@8B< ?@82O7K205< ;52K9 :>=5F ?;0=:8 : Low[levbr] 8 A<>B@8< =0 :0:><

//10@5 1C45B 4@C3>9 :>=5F ?;0=:8 pravbr - ?@02K9 >?>@=K9 10@ ;8=88 B@5=40

int BullTrendPravBar(int levbr, int b)

{

   double ki, knmax, yi;

   

   int i, xi, st, pravbr;

   

   ki=0;

   

   //=0G0;L=>5 7=0G5=85 >B25B0, :>B>@K9 @0AAG8BK205B DC=:F8O

   pravbr=levbr;

   

   //:>5DD8F85=B =0:;>=0 B@5=4>2>9 ;8=88 225@E

   knmax=0;

   

   //AB0@B>2K9 10@ ?>8A:0 4;O F8:;0 2?@02> >B levbr

   st=levbr-1;

   

   //8I5< =081>;LH89 :>MDD =0:;>=0 4;O ?@O<>9 ;8=88, =0< =C65= 10@,

   //:>B>@K9 A2>8< 4=>< A8;L=5 2A53> >?CAB8;  + :>=5F ?;0=:8

   for(i=st; i>=1; i--) 

   {

      //=0:;>= 4>;65= 1KBL !#  % A;520 =0?@02>

      if(Low[levbr]<Low[i])

      {

         xi=levbr-i;

         

         yi=Low[i]-Low[levbr];

         yi=yi/Point;

         

         knmax = NormalizeDouble((yi/xi),7);

         

         if(knmax>knmax)

         {

            knmax = knmax;

            

            pravbr = i;            

         }         

      }  

   }

   

   return(pravbr);

}

//================================================================================

//>B 2 845< 2?@02> 4> 10@0 1, 2KG8A;O5< :0A0B5;L=CN ;8=8N ?> <8=8<C<0< F5=

//70?><8=05< 2 10@0, =0 :>B>@KE ;8=8O 1K;0 <0:A8<0;L=>9 4;8=K

//2>72@0I05< =><5@ ;52>3> 10@0 B>G:8 >?>@K 4;O :0A0B5;L=>9 ;8=88

int BullTrendLeftBar(int b2, int b1)

{

   int rbp, distcur, distmax, t2, t1;

   

   distmax=0;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   rbp=b2;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   t1=0;

   t2=0;

   

   while((rbp>b1)&&(IsStopped()==false))

   {

      //?>;CG05< ?@02K9 10@ F5= 4> B5E ?>@, ?>:0 =5 4>945< 4> 1

      //rbp = rightbull_barprice(b2,b1);

      

      distcur = b2-rbp;

      

      if(distcur>distmax)

      {

         distmax = distcur;

         t2=b2;

         t1=rbp;

      }

      

      //5A;8 4>H;8 4> 10@0 1  8;8 =5 ?>;CG8;>AL ?>AB@>8BL ;8=8N

      if((rbp==b2)||(rbp==b1))

      {

         break;

      }

      

      if(Low[rbp]<=Low[b2])

      {

         b2=rbp;

      }

   }

   

   //5A;8 <>6=> ?@>25AB8 ;8=8N, 2>72@0I05< =><5@ ;52>3> >?>@=>3> 10@0

   if((t2>(t1+DiverLineMinLength))&&(t1>=b1))

   {      

      return(t2);

   }

   

   return(0);

}

//================================================================================

//?@>2545=85 2>AE>4OI59 ;8=88 B@5=40 1;8609H59 : 10@C !1, AB0@B >B 3;C1>:>9 =878=K

//=C6=0 4;O ?@>25@:8 <54256L53> A83=0;0 - ?@>1>O B@5=4>2>9 ;8=88 2=87

bool TrendLineBullKasat(int levgrn, int b)

{

   int kolfig, pikver, dalnpik, glavniz, levbar, st;

   

   bool otvet;

   

   otvet=false;

   

   st=b+1;

   

   //?>;=>5 :>;8G5AB2> 10@>2 D83C@K

   kolfig=levgrn-b+1;

   

   //10@ - ?8: 25@H8=K

   pikver=iHighest(NULL,0,MODE_HIGH,kolfig,b);

   

   //40;L=>ABL ?8:0 25@H8=K 2;52>

   dalnpik=SlevaBarovOtVershiny(pikver);

   

   //AB0@B>20O =878=0 4;O ?>AB@>5=85 @0ABCI59 B@5=4>2>9 ;8=88

   glavniz=iLowest(NULL,0,MODE_LOW,dalnpik,pikver);

   

   //;52K9 10@ - =878=0 B>G:0 >?>@K 4;O @0ABCI59 :0A0B5;L=>9 ;8=88

   levbar=BullTrendLeftBar(glavniz,b);

   

   return(otvet);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//CA;>28O 4;O 1KGL59 4825@35=F88 : ACI5AB2C5B >B@57>: 2;52> >B B>G:8 , =0 :>=F5

//:>B>@>3>  =865 G5< 2 B>G:5 , 7=0G8B 5ABL ;8=8O A=87C 225@E ?> 

//>AB0;>AL ?@>25@8BL F5=K - <8=8<C< F5= 4>;65= 1KBL @O4>< A B>G:>9 

//=====================================================================================================================

//! +',  &  "   =0 10@5 

//:@0B:89 0;3>@8B< ?>AB@>5=8O :0A0B5;L=>9 ;8=88 ?> 

//8I5< <8=8<0;L=>5 7=0G5=85  =0 >B@57:5 >B 10@0  4>  + DiverSearchBars

//70B5< 845< 2;52> 40;LH5 A<>B@8< 345 70:0=G8205BAO 2?048=0  ?>;CG05< 3

//CB>G=O5< B>G:C <8=8<C<0 A CG5B>< =>2KE A2545=89

//>B MB>9 B>G:8 845< 2?@02> F8:;>< while, =0:;04K205< :0A0B5;L=K5 ;8=88

//4> B5E ?>@, ?>:0 =5 4>945< 4> ?@02>3> :>=F0 >B@57:0 4> 10@0 

//2A?><8=05<, 345 ;8=8O 8<5;0 =081>;LHCN 4;8=C 8 @8AC5< 55, 5A;8 4;8=0 1>;LH0O

//5A;8 2>7<>6=> ?>4>428305< ;8=8N 1;865 : ?@02><C :@0N >B@57:0

//?@8 CA;>288, GB> 4;8=0 ;8=88 1>;LH5 <8=8<0;L=> 4>?CAB8<>9 MinLineLength

//;8=8O F5= >?8@05BAO =0 10@K p2 8 p1, ;8=8O  >?8@05BAO =0 10@K m2 8 m1

bool DiverBull(int b)

{

   double mac2, mac1, st;

   

   int m3, m2, m1, p2, p1, lw1, dist, kolprb;

   

   bool divbull;

   

   divbull = false;

   

   kolprb=0;

   

   kolprb=prb_ver_kol(b);

   

   //A@54=55 B5;> A25G8 2 ?C=:B0E

   st = average_body_length();

   st = MathRound(st);

   

   mac1 = 0;

   

   m1 = 0;   

   

   //A=0G0;0 =0E>48< <8=8<0;L=>5 7=0G5=85   =0 7040==>< >B@57:5

   m2 = leftmacd_minbar(DalnPoiskaDiverMAX,b);

   

   mac2 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m2);

   

   m3 = m2;

   

   //3;C1>:0O 2?048=0  4>;6=0 1KBL =865 =C;O

   if(mac2<0)

   {

      //=0E>48< 10@ 345 70:0=G8205BAO 2?048=0 

      m3 = leftbar_holemacd(m2);   

   

      if(m3>m2)

      {

         //CB>G=8< <8=8<C<  =0 =>2>< CG0AB:5

         m2 = leftmacd_minbar((m3-b+1),b);

         

         mac2 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m2);

      }



      //;>:0;L=K9 <8=8<C<  2>7;5 B>G:8 

      m1 = leftmacd_minbar(7,b);

         

      mac1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m1);

   }

   else

   {

      return(false);

   }

   

   //@0AAB>O=85 >B B>G:8 , =0 :>B>@>< 87<5@O5< <8=8<C< F5=K

   dist = MathMax(DalnPoiskaDiverMAX,(m3-b+1));

      

   //<8=8<C< F5= =0 7040==>< 8=B5@20;5

   lw1 = iLowest(NULL,0,MODE_LOW,dist,b); 

   

   //5A;8 CA;>28O ?>  4;O +', 4825@35=F88 2K?;=5=K

   if((mac2<mac1)&&(mac1<0)&&(m2>(m1+DiverLineMinLength))&&(m1>=b))

   {

      //<8=8<C< =0 10@5 !1, 5ABL ?>4B25@640NI89 A83=0; O?>=A:8E A25G59

      //if((lw1==b)&&(m1==b))

      //{

         //if(japs_bull(b)==true)

         //{

            //divbull=true;

         //}

      //}      

      

      //25@H8=0 <8=8<C<0 2?5@2K5 ?@>18205BAO B5;>< 10@0  0 =5 B5=O<8

      //MB> :0: ?>:070;0 ?@0:B8:0 >G5=L B>G=K9 A83=0;, ;81> 5ABL =5A:>;L:> ?@>1>52 25@H8=

      if(((check_low(lw1,b)==true)||(kolprb>1))&&(Close[b]>(Open[b]+st*Point)))

      {

         divbull=true;

      }

   }

   

   //5ABL 4825@35=F8O, <>6=> @8A>20BL ;8=88

   if(divbull==true)

   {

      //2KG8A;5=85 >?>@=KE B>G5: 4;O :0A0B5;L=>9 ;8=88 ?> 

      m2 = bulldiver_macd_line(m2,b);

      

      m1 = macdbull_trendbar(m2,b);

      

      //?@020O B>G:0 >?>@K  4>;6=0 1KBL =540;5:> >B <8=8<C<0 F5=

      if(MathAbs((lw1-m1))>DiverLineMinLength)

      {

         return(false);

      }

            

      if(m2>(m1+DiverLineMinLength)&&(m1>=b))

      {

         //2KG8A;5=85 >?>@=KE B>G5: 4;O :0A0B5;L=>9 ;8=88 F5=

         p2 = bulldiver_price_line(m3,b);

         

         p1 = rightbull_barprice(p2,b);

      

         if((p2>(p1+DiverLineMinLength))&&(p1>=b))

         {

            //5A;8 2KG8A;8;8 2A5 4 >?>@=K5 B>G:8, <>6=> ?@>2>48BL 2 ;8=88

            mac2 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m2);

            mac1 = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,m1);

            

            ObjectDelete("price_bull_diver_line");

            ObjectCreate("price_bull_diver_line",OBJ_TREND,0,Time[p2],Low[p2],Time[p1],Low[p1]);

            

            ObjectDelete("macd_bull_diver_line");

            ObjectCreate("macd_bull_diver_line",OBJ_TREND,1,Time[m2],mac2,Time[m1],mac1);

            

            //;8=8O =0 10@5 , ?>A;5 =55 >B:@KB85 A45;:8 4;O B5AB8@>20=8O

            ObjectDelete("diver bull BUY line");

            ObjectCreate("diver bull BUY line",OBJ_VLINE,0,Time[b],0);

            ObjectSet("diver bull BUY line",OBJPROP_COLOR,clrLime);

            ObjectSet("diver bull BUY line",OBJPROP_STYLE,STYLE_DASH);

            

            if((b==1)&&(Period()>PERIOD_M5))

            {

               Alert("+',/  &/   "+Symbol());

               Print("+',/  &/   "+Symbol());

            }

            

            //5ABL 845O, GB> 4> B5E ?>@, ?>:0  2KH5 B@5=4>2>9 ;8=88 ?> 

            //B@5=4 >A=>20==K9 =0 4825@35=F88 2A5 5I5 459AB2C5B

            //G5< 3;C165  &+ B5< A8;L=55 A83=0; 4825@35=F88

            //<>6=> ?@54?>;>68BL, GB> A83=0; 459AB2C5B B5< 4>;LH5

            //G5< 1>;LH5 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=KE ;8=89

            //G0AB> A83=0; >B@010BK205BAO =5 A@07C, 0 ?>765 :>340 ?@> =53> 701K;8

            

            return(true);   

         }   

      }            

   }      

   

   return(false);

}

//================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K bart :0A0B5;L=>9 ;8=88 A=87C ?> <8=8<C<0< 

//=C6=> GB>1K 2 B>G:5 2 8=48:0B>@  1K; A0<K9 =87:89 =0 >B@57:5

//?@82O7K205< ?;0=:C :  2 B>G:5 2 8 ?>4=8<05< 225@E ?@02K9 55 :>=5F

//>?@545;O5< =><5@ 10@0 bart 345 ?;0=:0 C?5@;0AL 2 8=48:0B>@ 

//=0 >B@57:5 A 2  1, MB> 1C45B ?@020O B>G:0 4;O :0A0B5;L=>9 ;8=88

int macdbull_trendbar(int b2, int b1)

{

   double yi, macm, maci, ki, kmin;

   

   int i, xi, bart;



   bart=b2;

   

   //;52K9 =86=89 <8=8<C< MACD =0 10@5 2

   macm = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b2);

   macm = NormalizeDouble(macm,7);



   kmin=MathAbs(macm);

   

   //8I5< 10@, 345 =08<5=LH89 :>MDD =0:;>=0 ki 4;O C@02=5=8O ?@O<>9 ;8=88

   if(macm<0)

   {

      for(i=(b2-1); i>=b1; i--)

      {

         maci = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

         maci = NormalizeDouble(maci,7);

      

         xi = b2-i;

         yi = maci-macm;

         ki = NormalizeDouble((yi/xi),7);

         

         if(ki<kmin)

         {

            kmin=ki;

            bart=i;

         }

      }

   }

   

   return(bart);

}

//================================================================================

//>B ;52>3> <8=8<C<0 MACD 845< 2;52> 4> B5E ?>@, ?>:0 MACD =865 =C;O

//F5;L - ?>;CG8BL =><5@ 10@0, 345 70:0=G8205BAO B5:CI0O 2?048=0 MACD

int leftbar_holemacd(int brmac)

{

   int i, br;

   

   //=081>;LH89 =><5@ 10@0 4;O 2?048=K , 345  2A5 5I5 =865 =C;O

   br=0;

   

   for(i=brmac; i<Bars; i++)

   {

      if(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i)<0)

      {

         br=i;   

      }

      else

      {

         break;

      }   

   }

   

   return(br);

}

//================================================================================

//2KG8A;5=85 :0A0B5;L=>9 ;8=88 A=87C ?> <8=8<C<0< 8=48:0B>@0  =0 >B@57:5

//>B 10@0 2 845< 2?@02> 4> 10@0 1, AB@>8< :0A0B5;L=CN ;8=8N A=87C ?> 

//70?><8=05< 2 10@0, =0 :>B>@KE ;8=8O 1K;0 =081>;LH59 4;8=K

//2>72@0I05< =><5@ 10@0 p2 4;O ;52>9 >?>@=>9 B>G:8

int bulldiver_macd_line(int b2, int b1)

{

   int t1, p2, p1, disti, dimax;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   p2=0;

   p1=0;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   t1=b2;

   

   //=081>;LH55 @0AAB>O=85 <564C 10@0<8 >?>@K :0A0B5;L=>9 ;8=88

   dimax=0;

   

   while((t1>b1)&&(IsStopped()==false))

   {

      //45;05< H03 >B 2 2 AB>@>=C 1 8I5< B>G:C t1 4;O :0A0B5;L=>9 ;8=88

      t1=macdbull_trendbar(b2,b1);

      

      //B5:CI55 @0AAB>O=85 <564C B>G:0<8 >?>@K :0A0B5;L=>9 ;8=88

      disti = b2-t1;

      

      //70?><8=05< 10@K =0 :>B>@KE 4;8=0 ;8=88 <0:A8<0;L=0O

      if(disti>dimax)

      {

         dimax=disti;

         p2=b2;

         p1=t1;

      }

      

      //5A;8 4>H;8 4> 10@0 1  8;8 =5 ?>;CG8;>AL ?>AB@>8BL ;8=8N

      if((t1==b2)||(t1==b1))

      {

         break;

      }

      

      //2 :>=F5 H030 ?5@5AB02;O5< ;52CN >?>@=CN B>G:C =0 <5AB> ?@02>9

      b2=t1;

   }

   

   //5A;8 4;8=0 ;8=88 4>AB0B>G=0O 2>72@0I05< =><5@ ;52>3> 10@0

   if((p2>(p1+DiverLineMinLength))&&(p1>=b1))

   {

      return(p2);

   }

   

   return(0);

}

//================================================================================

//2KG8A;5=85 ?@02>9 B>G:8 >?>@K 4;O :0A0B5;L=>9 ;8=88 ?> <8=8<C<0< F5=

//0;3>@8B< ?@82O7K205< ;52K9 :>=5F ?;0=:8 : Low[b2] 8 A<>B@8< =0 :0:><

//10@5 1C45B 4@C3>9 :>=5F ?;0=:8 brt - 10@ ;8=88 B@5=40

int rightbull_barprice(int b2, int b1)

{

   double ki, kmax, yi;

   

   int i, xi, brt;

   

   brt  = b2;

   

   kmax = 0;

   

   //8I5< =081>;LH89 :>MDD 4;O C@02=5=8O ?@O<>9 ;8=88, =0< =C65= 10@,

   //:>B>@K9 A2>8< 4=>< A8;L=5 2A53> >?CAB8; ;52K9 :>=5F ?;0=:8

   for(i=(b2-1); i>=b1; i--) 

   {

      //=0:;>= 4>;65= 1KBL A25@EC 2=87 A;520 =0?@02>

      if(Low[b2]>Low[i])

      {

         xi = b2-i;

         

         yi = (Low[b2]-Low[i])/Point;

         

         ki = NormalizeDouble((yi/xi),7);

         

         if(ki>kmax)

         {

            kmax = ki;

            

            brt = i;            

         }         

      }  

   }

   

   return(brt);

}

//================================================================================

//>B 2 845< 2?@02> 4> 10@0 1, 2KG8A;O5< :0A0B5;L=CN ;8=8N ?> <8=8<C<0< F5=

//70?><8=05< 2 10@0, =0 :>B>@KE ;8=8O 1K;0 <0:A8<0;L=>9 4;8=K

//2>72@0I05< =><5@ ;52>9 B>G:8 t2 >?>@K 4;O :0A0B5;L=>9 ;8=88

int bulldiver_price_line(int b2, int b1)

{

   int rbp, distcur, distmax, t2, t1;

   

   distmax=0;

   

   //?@02K9 10@ :0A0B5;L=>9 ;8=88 =0 B5:CI5< H035

   rbp=b2;

   

   //8A:><K5 =><5@0 10@>2 4;O :0A0B5;L=>9 ;8=88

   t1=0;

   t2=0;

   

   while((rbp>b1)&&(IsStopped()==false))

   {

      //?>;CG05< ?@02K9 10@ F5= 4> B5E ?>@, ?>:0 =5 4>945< 4> 1

      rbp = rightbull_barprice(b2,b1);

      

      distcur = b2-rbp;

      

      if(distcur>distmax)

      {

         distmax = distcur;

         t2=b2;

         t1=rbp;

      }

      

      //5A;8 4>H;8 4> 10@0 1  8;8 =5 ?>;CG8;>AL ?>AB@>8BL ;8=8N

      if((rbp==b2)||(rbp==b1))

      {

         break;

      }

      

      if(Low[rbp]<=Low[b2])

      {

         b2=rbp;

      }

   }

   

   //5A;8 <>6=> ?@>25AB8 ;8=8N, 2>72@0I05< =><5@ ;52>3> >?>@=>3> 10@0

   if((t2>(t1+DiverLineMinLength))&&(t1>=b1))

   {      

      return(t2);

   }

   

   return(0);

}

//================================================================================

//?>8A: 10@0 =0 7040==>< >B@57:5 345 7=0G5=85 MACD <8=8<0;L=>, 0=0;>3 iLowest

//?@>25@5=0 =0 A:@8?B5 - @01>B05B

int leftmacd_minbar(int count_bars, int b)

{

   double cur_macd, min_macd;

   

   int i, total, bmin;

   

   total = b+count_bars;

   

   if(total>Bars)

   {

      total=Bars;

   }

   

   //8A:><K9 10@

   bmin = b;

   

   min_macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,b);

   min_macd = NormalizeDouble(min_macd,7);

   

   for(i=(b+1); i<total; i++)

   {

      cur_macd = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);

      cur_macd = NormalizeDouble(cur_macd,7);

      

      if(cur_macd < min_macd)

      {

         min_macd = cur_macd;

         

         bmin = i;   

      }   

   }   

   

   return(bmin);

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//!  $ &, !'" +',%   #' " !  ##

//=====================================================================================================================

//=====================================================================================================================

// !" " +"/ !  ## ! +',    - +  " / !" "##!

// )" '!"  +% +',% 

int AnalizPokypkiTynguska(int b)

{

   double SrednRazmTela, SrednRazmBara, KoeffTelaOne, KoeffBaraOne, SpredPunkt;

   

   double LevelVerxneyMA, LevelNizneyMA, RazmaxVeeraMA, KoeffObyema;

   

   double ImpulsStrength, SrednyRazmaxMA, KoeffYzkostMA, EABetterDirect;

   

   int VeerMABallBULL, KolvoProbVershin, KolvoProbitMA, PozitionY;

   

   int KriloProbitVershin, BigTimeFrame, BigTimeBar, LevayaGranNizin;

   

   int NabrBallsBULL, KolvoMaloeTelo, DalnNizaBaraB, DnoNizinBar;

   

   int KolvoProbVerx2X, ProbitVershBAR, DalnDnaNiziny, ZonaProbit;

   

   int KolvoProbMA2X;

   

   bool NaidenSignOpenBULL, NaidenTochnySignal, ZakrNadVeerom, Veer4XMABULL;

   

   bool ImpulseGoodBULL, ProboyGoodBULL, TrendMAGoodBULL, RazvorotGoodBULL;

   

   bool DiverGoodBULL, Svecha2XBULL, Razgon2XBULL, FiboSetkaBULL, Proboy5XLightMA;

   

   bool PodyemBULL3X, Proboy6XLightMA, Proboy7XLightMA, Proboy8XLightMA;

   

   bool VixodIzFletaBULL, ProbNeskLineBULL;

   

   LevelVerxneyMA=0; LevelNizneyMA=0; RazmaxVeeraMA=0; KoeffObyema=0;

   

   VeerMABallBULL=0; KolvoProbVershin=0; PozitionY=0; KolvoProbitMA=0;

   

   KriloProbitVershin=0; ImpulsStrength=0; SrednyRazmaxMA=0;

   

   KoeffYzkostMA=0;

   

   KolvoMaloeTelo=0; DalnNizaBaraB=0; KoeffBaraOne=0; LevayaGranNizin=0;

   

   DnoNizinBar=0; KolvoProbVerx2X=0; ProbitVershBAR=0; DalnDnaNiziny=0;

   

   ZonaProbit=0; KolvoProbMA2X=0; EABetterDirect=0;

   

   ProboyGoodBULL=false; TrendMAGoodBULL=false; RazvorotGoodBULL=false;

   

   ZakrNadVeerom=false; ImpulseGoodBULL=false; Veer4XMABULL=false;

   

   NaidenSignOpenBULL=false; NaidenTochnySignal=false; DiverGoodBULL=false;

   

   Svecha2XBULL=false; Razgon2XBULL=false; FiboSetkaBULL=false;

   

   PodyemBULL3X=false;

   

   Proboy5XLightMA=false; Proboy6XLightMA=false; Proboy7XLightMA=false;

   

   Proboy8XLightMA=false; VixodIzFletaBULL=false; ProbNeskLineBULL=false;

   

   //!'" !#  '!" +',%  / & '!" !

   NabrBallsBULL=0;

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //'!"  $ " !" +% *"   +  !  ##

   ObjectsDeleteAll();

   

   // !'"  "+   " / ! !1

   PozitionY=NachalnySdvigSverxy;   

   

   DrawCentralLABEL("#!",PozitionY,clrYellowGreen,"#!  #");   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " / ! !1

   PozitionY=NachalnySdvigSverxy;   

   

   DrawLeftLABEL("."",PozitionY,clrYellow,"." = "+Symbol());

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " / ! !2

   PozitionY=NachalnySdvigSverxy+ShagNadpisPoVertikal;   

   

   DrawLeftLABEL(""$ ",PozitionY,clrYellow,""$  = "+DoubleToStr(Period(),0));

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  !"(  "$  "!", "#)

   BigTimeFrame=StarshiyTimeFrame();

   

   // !'"  "+   " / ! !2

   PozitionY=NachalnySdvigSverxy+ShagNadpisPoVertikal;   

   

   DrawCentralLABEL("!" ( "$ ",PozitionY,clrYellow,"!" ( "$  = "+DoubleToStr(BigTimeFrame,0));      

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"     /  !" ( "$ 

   BigTimeBar=iBarShift(NULL,BigTimeFrame,Time[b],true);

   

   // !'"  "+   " / ! !3

   PozitionY=NachalnySdvigSverxy+(2*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL("!" (  ",PozitionY,clrOrange,"!" (   = "+DoubleToStr(BigTimeBar,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************   

      

   //@0AG5B :>5DD8F85=B0 >1J5<0 =0 10@5  ?> >B=>H5=8N : A@54=5<C >1J5<C

   KoeffObyema=0;

   KoeffObyema=RaschetKoeffVolumeTyng(b);  

   

   // !'"  "+   " / ! !5

   PozitionY=NachalnySdvigSverxy+(4*ShagNadpisPoVertikal);

   DrawCentralLABEL("-$$&" *",PozitionY,clrAqua,"-$$&" * = "+DoubleToStr(KoeffObyema,2));   

   

   //'!   -$$&" * "#)   / +', !'

   if(KoeffObyema>KoeffObyemaLITTLE){NabrBallsBULL=NabrBallsBULL+DobavkaObyemaLITTLE;}

   if(KoeffObyema>KoeffObyemaMEDIUM){NabrBallsBULL=NabrBallsBULL+DobavkaObyemaMEDIUM;}

   if(KoeffObyema>KoeffObyemaNORMAL){NabrBallsBULL=NabrBallsBULL+DobavkaObyemaNORMAL;}

   if(KoeffObyema>KoeffObyemaGIGANT){NabrBallsBULL=NabrBallsBULL+DobavkaObyemaGIGANT;}

      

   //******************************************************************************************************************

   //******************************************************************************************************************   

   

   //' !   #"%

   SpredPunkt=MarketInfo(Symbol(),MODE_SPREAD);

   SpredPunkt=MathRound(SpredPunkt);   

   

   // !'"  "+   " / ! !3

   PozitionY=NachalnySdvigSverxy+(2*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("! ",PozitionY,clrYellow,"!  = "+DoubleToStr(SpredPunkt,0));      

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'! !     "

   SrednRazmTela=SredniyRazmerTelaPunkts(b);

   

   // !'"  "+   " / ! !4

   PozitionY=NachalnySdvigSverxy+(3*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("!  "",PozitionY,clrYellow,"!     " = "+DoubleToStr(SrednRazmTela,2));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'! !      

   SrednRazmBara=SredniyRazmerBaraPunkts(b);

   

   // !'"  "+   " / ! !5

   PozitionY=NachalnySdvigSverxy+(4*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("!   ",PozitionY,clrYellow,"!       = "+DoubleToStr(SrednRazmBara,2));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   /// +',/ !'

   Svecha2XBULL=false;

   Svecha2XBULL=DvoinayaSvechaBULL(SrednRazmTela,b);

   

   // !'"  "+   " /  ! !11

   PozitionY=NachalnySdvigSverxy+(10*ShagNadpisPoVertikal);   

   

   if(Svecha2XBULL==true)

   {

      DrawLeftLABEL("/ !'",PozitionY,clrLimeGreen,"/ +',/ !'");

   }

   else

   {

      DrawLeftLABEL("/ !'",PozitionY,clrYellow," !' "");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************   

   

   //?>8A: ;52>3> :@0O + F5= - A;>6=K9 20@80=B, GB>1K @072>@>B 1K; 

   LevayaGranNizin=RaschetLevgrNizinyGOOD(SrednRazmTela,b);

   

   //5A;8 ;520O 3@0=8F0 =0945=0 8 5ABL <8=. :>;-2> 2=CB@5==8E 10@>2

   if(LevayaGranNizin>b)

   {

      NabrBallsBULL=NabrBallsBULL+DobavkaBallsGRANICA;

      

      // !'"  "+   " /  ! !12

      PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);      

      

      DrawLeftLABEL("/  &",PozitionY,clrLime," & + ");

      

      // ",/ / ! "   &+ +

      ObjectDelete("LevayaGranNizinLine");

      ObjectCreate("LevayaGranNizinLine",OBJ_VLINE,0,Time[(LevayaGranNizin+1)],0);

      ObjectSet("LevayaGranNizinLine",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("LevayaGranNizinLine",OBJPROP_COLOR,clrYellow);

      

      //?>8A: 10@0 - 4=0 =878=K

      DnoNizinBar=0;

      DnoNizinBar=PoiskBaraDnaNiziny(LevayaGranNizin,b);

      

      //3>@87=>B0;L=0O ;8=8O ?> C@>2=N 4=0 =878=K

      ObjectDelete("DnoNizinyLevelLine");

      ObjectCreate("DnoNizinyLevelLine",OBJ_HLINE,0,Time[DnoNizinBar],Low[DnoNizinBar]);

      ObjectSet("DnoNizinyLevelLine",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("DnoNizinyLevelLine",OBJPROP_COLOR,clrAqua);                        

   }

   else

   {

      // !'"  "+   " /  ! !12

      PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);      

      

      DrawLeftLABEL("/  &",PozitionY,clrYellow,"/  &  ");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //-$$&" " "#)   / +', !'    

   KoeffTelaOne=0;

   KoeffTelaOne=KoeffTelaSvechiBULL(SrednRazmTela,b);

   

   //'!   -$$&" " "#)   / +', !'

   if(KoeffTelaOne>KoeffTelaLITTLE) {NabrBallsBULL=NabrBallsBULL+DobavkaTelaLITTLE;}

   if(KoeffTelaOne>KoeffTelaMEDIUM) {NabrBallsBULL=NabrBallsBULL+DobavkaTelaMEDIUM;}

   if(KoeffTelaOne>KoeffTelaNORMAL) {NabrBallsBULL=NabrBallsBULL+DobavkaTelaNORMAL;}

   if(KoeffTelaOne>KoeffTelaGIGANT) {NabrBallsBULL=NabrBallsBULL+DobavkaTelaGIGANT;}   

   

   //+  -  "!" " ! ' -$$&" " !'

   PozitionY=NachalnySdvigSverxy+(3*ShagNadpisPoVertikal);   

   DrawCentralLABEL("-$$&" "",PozitionY,clrCrimson,"-$$&" " = "+DoubleToStr(KoeffTelaOne,2));



   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" +',%     12 !,/)% ! %

   VeerMABallBULL=0;

   VeerMABallBULL=RaschetBallovVeeraMABULL(b);

   

   //'!    ,+ +'    12 !,/)% ! %

   if(VeerMABallBULL>BallVeerMALittle) {NabrBallsBULL=NabrBallsBULL+3;}

   if(VeerMABallBULL>BallVeerMAMedium) {NabrBallsBULL=NabrBallsBULL+3;}

   if(VeerMABallBULL>BallVeerMALarge)  {NabrBallsBULL=NabrBallsBULL+3;}

   if(VeerMABallBULL>BallVeerMAHuge)   {NabrBallsBULL=NabrBallsBULL+8;}

   if(VeerMABallBULL>BallVeerMASuper)  {NabrBallsBULL=NabrBallsBULL+8;}

   if(VeerMABallBULL>BallVeerMAGigant) {NabrBallsBULL=NabrBallsBULL+DobavkaBallGIGANT;}

   if(VeerMABallBULL>BallVeerMAExcell) {NabrBallsBULL=NabrBallsBULL+DobavkaBallEXCELL;}      

   

   // !'"  "+   " / ! !8

   PozitionY=NachalnySdvigSverxy+(7*ShagNadpisPoVertikal);

         

   //+  -  "!" " ! ' '!"    12 

   if(VeerMABallBULL>BallVeerMAHuge)

   {

      DrawRightLABEL("+   ",15,PozitionY,clrLime,"+',%     = "+DoubleToStr(VeerMABallBULL,0));   

   }

   else

   {

      DrawRightLABEL("+   ",15,PozitionY,clrOrange,"+',%     = "+DoubleToStr(VeerMABallBULL,0));   

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  %    12 !,/)% ! %  #"%

   RazmaxVeeraMA=0;

   RazmaxVeeraMA=RaschetRazmaxaVeera12MA(b);

   

   // !'"  "+   " /  ! !8

   PozitionY=NachalnySdvigSverxy+(7*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL(" %   ",PozitionY,clrYellow," %    #"+ = "+DoubleToStr(RazmaxVeeraMA,0));   

   

   //---------------------------------------------------------------------

      

   // !'" !   %    12 !,/)% ! %  #"%

   SrednyRazmaxMA=0;

   

   if(Period()==PERIOD_M15)

   {

      SrednyRazmaxMA=XranenieRazmaxaVeera15MIN;

   }

   

   if(Period()==PERIOD_M5)

   {

      SrednyRazmaxMA=ZnachSrednRazmaxVeera5MIN;

   }

   

   if(Period()==PERIOD_M1)

   {

      SrednyRazmaxMA=ZnachSrednRazmVeeraOneMIN;

   }  

   

   // !'"  "+   " /  ! !9

   PozitionY=NachalnySdvigSverxy+(8*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("!   %  ",PozitionY,clrYellow,"!   % #"+ = "+DoubleToStr(SrednyRazmaxMA,0));   

   

   //---------------------------------------------------------------------

   

   // !'" -$$&" #!"   12 !,/)% ! %

   KoeffYzkostMA=0;

   

   //=0 =>;L 45;8BL =5;L7O

   if(SrednyRazmaxMA>0)

   {

      KoeffYzkostMA=RazmaxVeeraMA/SrednyRazmaxMA;

      KoeffYzkostMA=NormalizeDouble(KoeffYzkostMA,2);

   }

   else

   {

      KoeffYzkostMA=1.5;

   }   

   

   // !'"  "+   " / ! !9

   PozitionY=NachalnySdvigSverxy+(8*ShagNadpisPoVertikal);

      

   //+  -  "!" " ! ' '!"    12 

   if(KoeffYzkostMA<KoeffYzkostiOPTITMAX)

   {

      //'!   #!", ,    12 !,/)% ! %

      NabrBallsBULL=NabrBallsBULL+DobavkaBallovYzkostVeeraMA;      

      

      DrawRightLABEL("-$$&" #!"  ",15,PozitionY,clrAqua,"-$$. #!"    = "+DoubleToStr(KoeffYzkostMA,2));   

   }

   else

   {

      DrawRightLABEL("-$$&" #!"  ",15,PozitionY,clrYellow,"-$$. #!"    = "+DoubleToStr(KoeffYzkostMA,2));   

   }   

           

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   LevelVerxneyMA=0;

   LevelVerxneyMA=RaschetLevelVerxney12MA(b);



   // !'"  "+   " /  ! !6

   PozitionY=NachalnySdvigSverxy+(5*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("# ,  % ",PozitionY,clrYellow,"# ,  %  = "+DoubleToStr(LevelVerxneyMA,Digits));

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************   

   

   LevelNizneyMA=0;

   LevelNizneyMA=RaschetLevelNizney12MA(b);



   // !'"  "+   " /  ! !7

   PozitionY=NachalnySdvigSverxy+(6*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("# ,  ",PozitionY,clrYellow,"# ,   = "+DoubleToStr(LevelNizneyMA,Digits));   

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //    '/  , +',    %  4% "/+%    

   Veer4XMABULL=false;

   Veer4XMABULL=ProverkaVeer4XMABigBULL(b);  

   

   // !'"  "+   " / ! !11

   PozitionY=NachalnySdvigSverxy+(10*ShagNadpisPoVertikal);

   

   if(Veer4XMABULL==true)

   {

      DrawRightLABEL("   4% "/+% ",15,PozitionY,clrLime,"   % 4% "/+% ");

   }

   else

   {

      DrawRightLABEL("   4% "/+% ",15,PozitionY,clrOrange,"  4% "/+%  "");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  +', A25G59  "#)  $

   KolvoProbitMA=0;

   KolvoProbitMA=RaschetProbitMAOneBULL(b);   

   

   // !'"  "+   " / ! !10

   PozitionY=NachalnySdvigSverxy+(9*ShagNadpisPoVertikal);

   DrawRightLABEL(" " ! % ",15,PozitionY,clrOrange," " ! %  = "+DoubleToStr(KolvoProbitMA,0));

   

   //=0G8A;O5< 10;;K ?@8 =0;8G88 ?@028;L=>3> 255@0 87 4E BO65;KE  A 2KE>4>< 87 255@0

   if((Close[b]>LevelVerxneyMA)||(Veer4XMABULL==true))

   {

      if(KolvoProbitMA>=KolProbMAOneMIN)

      {

         NabrBallsBULL=NabrBallsBULL+DobavkaBallProbOneMA;

         

         DrawRightLABEL(" " ! % ",15,PozitionY,clrLime," " ! %  = "+DoubleToStr(KolvoProbitMA,0));         

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //@0AG5B A8;K 8<?C;LA0

   ImpulsStrength=0;

   ImpulsStrength=RaschetImpulsStrength(KoeffObyema,SrednRazmTela,b);

   

   // !'"  "+   " / ! !6

   PozitionY=NachalnySdvigSverxy+(5*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL("! #,!",PozitionY,clrMagenta,"! #,! = "+DoubleToStr(ImpulsStrength,2));



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" '!" +% !', " + + ! " "#) !'

   KolvoMaloeTelo=0;

   KolvoMaloeTelo=KolvoLittleCandelsLeft(b);

   

   // !'"  "+   " / ! !7

   PozitionY=NachalnySdvigSverxy+(6*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL("'!" +% !'",PozitionY,clrOrange,"+% !' ! = "+DoubleToStr(KolvoMaloeTelo,0));



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" ,!" +   "#)   /   

   DalnNizaBaraB=0;

   DalnNizaBaraB=SlevaBarovOtNiziny(b);

   

   // !'"  "+   " / ! !8

   PozitionY=NachalnySdvigSverxy+(7*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL(",!", "#)  ",PozitionY,clrOrange,",!",    = "+DoubleToStr(DalnNizaBaraB,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //,!",  + &

   DalnDnaNiziny=0;

   

   //! /  & + 

   if((LevayaGranNizin>b)&&(DnoNizinBar>0))

   {

      DalnDnaNiziny=SlevaTeloSvechOtNiziny(DnoNizinBar);

   }

   

   // !'"  "+   " / ! !9

   PozitionY=NachalnySdvigSverxy+(8*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL(",!", $# +   "",PozitionY,clrOrange,",!",  + = "+DoubleToStr(DalnDnaNiziny,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'    %  #% !% !'%

   Razgon2XBULL=false;

   Razgon2XBULL=Razgon2XCheckBULL(b);

   

   // !'"  "+   " / ! !10

   PozitionY=NachalnySdvigSverxy+(9*ShagNadpisPoVertikal);   



   if(Razgon2XBULL==true)

   {

      DrawCentralLABEL("   #% !'%",PozitionY,clrLime,"   %  #% !'%");      

   }

   else

   {

      DrawCentralLABEL("   #% !'%",PozitionY,clrOrange,"   %  ");      

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************   

   

   //*  %  !% " % !'% ! "   !"/ *

   PodyemBULL3X=false;

   PodyemBULL3X=PodyemVerxVolumeBULL3X(b);

   

   // !'"  "+   " / ! !11

   PozitionY=NachalnySdvigSverxy+(10*ShagNadpisPoVertikal);   



   if(PodyemBULL3X==true)

   {

      DrawCentralLABEL("*  %  " % !'%",PozitionY,clrLime,"*  %  " % !'%");      

   }

   else

   {

      DrawCentralLABEL("*  %  " % !'%",PozitionY,clrOrange,"*  %  " %  ");      

   }



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'!  / !  !"#  "" 

   EABetterDirect=0;

   EABetterDirect=DirectBETTER(NastrBetterWarp,NastrBetterDeviat,NastrBetterAmplit,NastrBetterDistor,b);

   EABetterDirect=NormalizeDouble(EABetterDirect,3);

   

   // !'"  "+   " / ! !16

   PozitionY=NachalnySdvigSverxy+(15*ShagNadpisPoVertikal);



   //4>102;O5< 10;;K : ?>78F88 

   if((EABetterDirect>0)&&(MathAbs(EABetterDirect)>BetterNapravABCMin))

   {

      NabrBallsBULL=NabrBallsBULL+DobavkaBallBetter;

      

      DrawCentralLABEL("EA Better Direction",PozitionY,clrAqua,"EA Better Direction = "+DoubleToStr(EABetterDirect,3));      

   }

   

   //>B=8<05< 10;;K >B ?>78F88 

   if((EABetterDirect<0)&&(MathAbs(EABetterDirect)>BetterNapravABCMin))

   {

      NabrBallsBULL=NabrBallsBULL-DobavkaBallBetter;

      

      DrawCentralLABEL("EA Better Direction",PozitionY,clrMagenta,"EA Better Direction = "+DoubleToStr(EABetterDirect,3));      

   }

   

   if(MathAbs(EABetterDirect)<=BetterNapravABCMin)

   {

      DrawCentralLABEL("EA Better Direction",PozitionY,clrOrange,"EA Better Direction = "+DoubleToStr(EABetterDirect,3));      

   }      

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   VixodIzFletaBULL=false;

   VixodIzFletaBULL=ProboyYzkogoFletaBULL(SrednRazmTela,b);

   

   // !'"  "+   " / ! !17

   PozitionY=NachalnySdvigSverxy+(16*ShagNadpisPoVertikal);

   

   if(VixodIzFletaBULL==true)

   {

      NabrBallsBULL=NabrBallsBULL+DobavBallProboyFLETA;

      

      DrawCentralLABEL("  # $"",PozitionY,clrAqua,"   %  &+ $"");

   }

   else

   {

      DrawCentralLABEL("  # $"",PozitionY,clrOrange," /  &+ $"  ");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'   8- %   " #

   Proboy8XLightMA=false;

   Proboy8XLightMA=ProboyEightLightMATrendBULL(b,Svecha2XBULL);



   // !'"  "+   " / ! !15

   PozitionY=NachalnySdvigSverxy+(14*ShagNadpisPoVertikal);   



   if(Proboy8XLightMA==true)

   {

      DrawCentralLABEL("  8- % ",PozitionY,clrLime,"+'   8- % ");      

   }

   else

   {

      DrawCentralLABEL("  8- % ",PozitionY,clrOrange," / 8- %   ");      

   }    

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'   7- %   " #

   Proboy7XLightMA=false;

   Proboy7XLightMA=ProboySevenLightMATrendBULL(b,Svecha2XBULL);



   // !'"  "+   " / ! !14

   PozitionY=NachalnySdvigSverxy+(13*ShagNadpisPoVertikal);   



   if(Proboy7XLightMA==true)

   {

      DrawCentralLABEL("  7- % ",PozitionY,clrLime,"+'   7- % ");      

   }

   else

   {

      DrawCentralLABEL("  7- % ",PozitionY,clrOrange," / 7- %   ");      

   }   



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'   6-" %   " #

   Proboy6XLightMA=false;

   Proboy6XLightMA=ProboySixLightMATrendBULL(b,Svecha2XBULL);



   // !'"  "+   " / ! !13

   PozitionY=NachalnySdvigSverxy+(12*ShagNadpisPoVertikal);   



   if(Proboy6XLightMA==true)

   {

      NabrBallsBULL=NabrBallsBULL+DobavkaBallsProb6XMA;

      DrawCentralLABEL("  6-" % ",PozitionY,clrLime,"+'   6-" % ");      

   }

   else

   {

      DrawCentralLABEL("  6-" % ",PozitionY,clrOrange," / 6-" %   ");      

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'   5-" %   " #

   Proboy5XLightMA=false;

   Proboy5XLightMA=ProboyFiveLightMATrendBULL(b,Svecha2XBULL);



   // !'"  "+   " / ! !12

   PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);   



   if((Proboy6XLightMA==false)&&(Proboy5XLightMA==true))

   {

      NabrBallsBULL=NabrBallsBULL+DobavkaBallsProb5XMA;

      DrawCentralLABEL("  5-" % ",PozitionY,clrLime,"+'   5-" % ");      

   }

   else

   {

      DrawCentralLABEL("  5-" % ",PozitionY,clrOrange," / 5-" %   ");      

   }   



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   

  

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" -$$&"    "#)     ! #  #

   KoeffBaraOne=0;

   KoeffBaraOne=KoeffRazmeraBaraB(SrednRazmBara,b);

   

   // !'"  "+   " /  ! !10

   PozitionY=NachalnySdvigSverxy+(9*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("-$$.     ",PozitionY,clrYellow,"-$$.      = "+DoubleToStr(KoeffBaraOne,2));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'! '!"   +  "+%  (  +', !'    

   KolvoProbVershin=0;

   KolvoProbVershin=RaschetProbitVershinOne(b);

   

   ZonaProbit=b+KolvoProbVershin;

   

   // !'"  "+   " / ! !12

   PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);

   

   DrawRightLABEL(" " ' !'",15,PozitionY,clrOrange,"-  "+%  ( = "+DoubleToStr(KolvoProbVershin,0));

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //'!"  "+%  (  +', !'

   KolvoProbVerx2X=0;

   

   if(Svecha2XBULL==true)

   {

      KolvoProbVerx2X=RaschetProbitVershinTWO(b);

      

      ZonaProbit=b+KolvoProbVerx2X;

   }

      

   // !'"  "+   " /  ! !13

   PozitionY=NachalnySdvigSverxy+(12*ShagNadpisPoVertikal);      

   

   DrawLeftLABEL(" "  !'",PozitionY,clrYellow," "  ( !' 2% = "+DoubleToStr(KolvoProbVerx2X,0));  

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  +', A25G59

   KolvoProbMA2X=0;

   KolvoProbMA2X=KolvoProbMASvecha2XBULL(b);

   

   // !'"  "+   " /  ! !14

   PozitionY=NachalnySdvigSverxy+(13*ShagNadpisPoVertikal);      

   

   DrawLeftLABEL(" " ! % !' 2%",PozitionY,clrYellow," " ! % !' 2% = "+DoubleToStr(KolvoProbMA2X,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " /  ! !16

   PozitionY=NachalnySdvigSverxy+(15*ShagNadpisPoVertikal);      

   

   DrawLeftLABEL("% ) !   % ",PozitionY,clrCrimson,"!% . ! .  %  15 #"+ = "+DoubleToStr(XranenieRazmaxaVeera15MIN,0));   

  

   //******************************************************************************************************************

   //******************************************************************************************************************

   



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // # ", #!  +"/ +( !#  +

   

   //   '/ +',  &    /   

   DiverGoodBULL=false;

   DiverGoodBULL=DiverBullOXOTNIK777(b);

   

   // !'"  "+   " / ! !13

   PozitionY=NachalnySdvigSverxy+(12*ShagNadpisPoVertikal);

   

   if(DiverGoodBULL==true)

   {

      NabrBallsBULL=NabrBallsBULL+DiverLineAddBalls;

      

      DrawRightLABEL(" &/",15,PozitionY,clrLime,"!", +',/  &/");

   }

   else

   {

      DrawRightLABEL(" &/",15,PozitionY,clrOrange,"+',  & "");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //    -   "  (+ !

   ProbitVershBAR=0;

   ProbitVershBAR=PoiskProbitVershin(b);

   

   // !'"  "+   " / ! !14

   PozitionY=NachalnySdvigSverxy+(13*ShagNadpisPoVertikal);

   

   DrawRightLABEL(" "+   !",15,PozitionY,clrOrange,"     "  (+ = "+DoubleToStr(ProbitVershBAR,0));

   

   //H8@8=0 :@K;0 ?@>18B>9 25@H8=K

   KriloProbitVershin=RazmerKrilaPikaKnight(ProbitVershBAR,b);

   

   //=0G8A;5=85 10;;>2 70 ?@>1>9 C@>2=O

   if(KriloProbitVershin>=ShirinKrilProbitLEVEL)

   {

      NabrBallsBULL=NabrBallsBULL+DobavBallsProboyLEVEL;

   }  

   

   // !'"  "+   " / ! !15

   PozitionY=NachalnySdvigSverxy+(14*ShagNadpisPoVertikal);

   

   DrawRightLABEL("(   +  /",15,PozitionY,clrLime,"(   +  "  (+ = "+DoubleToStr(KriloProbitVershin,0));   

            

   if((ProbitVershBAR>b)&&(KriloProbitVershin>1))

   {

      //3>@87>=B0;L=0O ;8=8O ?> C@>2=N 25@H8=K ?@>18B>3> ?8:0

      ObjectCreate("ProbPikLevelLine",OBJ_HLINE,0,Time[ProbitVershBAR],High[ProbitVershBAR]);

      ObjectSet("ProbPikLevelLine",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("ProbPikLevelLine",OBJPROP_COLOR,clrLime);     

   }

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/  !'" #   !"  +', $ !"    

   FiboSetkaBULL=false;

   FiboSetkaBULL=FiboSetkaBullOxotnikCHECK(SrednRazmTela,b);

   

   // !'"  "+   " / ! !16

   PozitionY=NachalnySdvigSverxy+(15*ShagNadpisPoVertikal);   

   

   //'!   '!"#. +',. $ !"#    

   if(FiboSetkaBULL==true)

   {  

      NabrBallsBULL=NabrBallsBULL+DobavkaBallovFIBO;

      

      DrawRightLABEL("$ !"",15,PozitionY,clrLime,"+',/ $ !" !" ");   

   }

   else

   {

      DrawRightLABEL("$ !"",15,PozitionY,clrOrange,"+',/ $ !"  ");   

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   (  +  % +'

   

   ProbNeskLineBULL=false;

   

   //5A;8 =878=0 =0945=0 ?@>25@8< 5ABL ;8 42>9=0O =878=0

   if(LevayaGranNizin>b)

   {

      ProbNeskLineBULL=DvoinayaNizinya(LevayaGranNizin,b);

   }

   

   // !'"  "+   " / ! !17

   PozitionY=NachalnySdvigSverxy+(16*ShagNadpisPoVertikal);   

   

   if(ProbNeskLineBULL==true)

   {

      NabrBallsBULL=NabrBallsBULL+DobavkaBallsVershina2X;

      

      DrawRightLABEL("   (",15,PozitionY,clrLime,"  (  +");   

   }

   else

   {

      DrawRightLABEL("   (",15,PozitionY,clrOlive," / ( +  ");   

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //! " ,(/ !'    " *, '" !",  #+ "+

   

   if((KoeffTelaOne>KoeffTelaRASXVMIN)&&(KoeffObyema<KoeffVolumeLITMAX))

   {

      NabrBallsBULL=NabrBallsBULL+DobavkaBallRASXOBYEM;

   }

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************



   //   '/   "+ ! - % ( #,!  %                              

   

   if((KoeffTelaOne>5.2)&&(KoeffObyema>2.2)&&(KolvoMaloeTelo>140))

   {

      ImpulseGoodBULL=true;

   }   

   

   if((KoeffTelaOne>3.0)&&(KolvoProbitMA>=8))

   {

      ImpulseGoodBULL=true;

   }   

   

   // !'"  "+   " /   ! !4

   PozitionY=NachalnySdvigSverxy+(3*ShagNadpisPoVertikal);

   

   //+  -  "!" " ! ' % ( #,!  %

   if(ImpulseGoodBULL==true)

   {

      DrawRightLABEL("% ( #,!  / "",15,PozitionY,clrLime,"!", % ( #,!  %");

   }

   else

   {

      DrawRightLABEL("% ( #,!  / "",15,PozitionY,clrYellow,"" % ( #,!  %");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/ "  "+ ! -  /   #'   %

   

   if((KolvoProbitMA>=7)&&(Close[b]>LevelVerxneyMA))

   {

      ProboyGoodBULL=true;

   }

   

   if(KolvoProbitMA>=7)

   {

      ProboyGoodBULL=true;

   }                                 

   

   // !'"  "+   " /   ! !5

   PozitionY=NachalnySdvigSverxy+(4*ShagNadpisPoVertikal);

   

   //+  -  "!" " !     #'   %

   if(ProboyGoodBULL==true)

   {

      DrawRightLABEL("  # / " / "",15,PozitionY,clrLime,"!",   # /   %");

   }

   else

   {

      DrawRightLABEL("  # / " / "",15,PozitionY,clrYellow,""  / # /  %");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/ " ", "+ ! - "  !,/)% ! %  %

   

   if((VeerMABallBULL>VeerMABallOPTMIN)&&(KoeffYzkostMA<0.2))

   {

      if(Veer4XMABULL==true)

      {

         TrendMAGoodBULL=true;

      }

   }

   

   if((VeerMABallBULL>110)&&(KoeffYzkostMA<0.25))

   {

      TrendMAGoodBULL=true;

   }   

   

   if((VeerMABallBULL>70)&&(KoeffYzkostMA<0.25)&&(Veer4XMABULL==true))

   {

      TrendMAGoodBULL=true;

   }

   

   if((VeerMABallBULL>90)&&(KoeffYzkostMA<0.32)&&(Veer4XMABULL==true))

   {

      TrendMAGoodBULL=true;

   }                                          

   

   if((VeerMABallBULL>120)&&(KoeffYzkostMA<0.45)&&(Veer4XMABULL==true))

   {

      TrendMAGoodBULL=true;

   }   

   

   // !'"  "+   " /   ! !6

   PozitionY=NachalnySdvigSverxy+(5*ShagNadpisPoVertikal);

   

   //+  -  "!" " ! ' "  !,/)% ! %  %

   if(TrendMAGoodBULL==true)

   {

      DrawRightLABEL(""   " ",/ "",15,PozitionY,clrLime,"!", "  #%   %");

   }

   else

   {

      DrawRightLABEL(""   " ",/ "",15,PozitionY,clrYellow,"" "  #%   %");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"+ "'+% !, " +  , +   $

   NaidenTochnySignal=false;

   

   // !'"  "+   " / ! !3

   PozitionY=NachalnySdvigSverxy+(2*ShagNadpisPoVertikal);

   

   //******************************************************************************************************************

   //******************************************************************************************************************

      

  

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !1

   //   (+ !    , #   

   if((KoeffTelaOne>5.1)&&(KoeffObyema>1.8)&&(KriloProbitVershin>4))

   {

      if((VeerMABallBULL>165)&&(KoeffYzkostMA<0.25)&&(Close[b]>LevelVerxneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !1");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !2

   //   (+ !    , #   

   if((KoeffTelaOne>1.6)&&(KoeffObyema>3.0)&&(KriloProbitVershin>25))

   {

      if((VeerMABallBULL>175)&&(KoeffYzkostMA<0.75)&&(Close[b]>LevelVerxneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !2");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !3

   //   (+ !    , #   

   if((KoeffTelaOne>3.2)&&(KoeffObyema>1.0)&&(KriloProbitVershin>10))

   {

      if((VeerMABallBULL>175)&&(KoeffYzkostMA<0.65)&&(Close[b]>LevelVerxneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !3");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !4

   //)/ ,(/ !' +%"  %  # +

   if((KoeffTelaOne>6.0)&&(KoeffObyema>2.0)&&(KolvoProbitMA>=1))

   {

      if((DalnDnaNiziny>200)&&(DnoNizinBar<(b+2)))

      {

         //NaidenTochnySignal=true;

               

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !4");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !5

   //)/ ,(/ !' " !#  %  +  " #     &

   if((KoeffTelaOne>4.8)&&(KoeffObyema>2.4))

   {

      if((DiverGoodBULL==true)&&(DalnDnaNiziny>250))

      {

         if((Veer4XMABULL==true)&&(KoeffYzkostMA<0.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !5");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !6

   //)/ ,(/ !' " !#  %  +  " #     &

   if((KoeffTelaOne>6.4)&&(KoeffObyema>1.2))

   {

      if((DiverGoodBULL==true)&&(DalnDnaNiziny>150))

      {

         if((Veer4XMABULL==true)&&(KoeffYzkostMA<0.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !6");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !7

   //)/ ,(/ !' " !#  %  +  " #     &

   if((KoeffTelaOne>6.4)&&(KoeffObyema>2.4))

   {

      if((DiverGoodBULL==true)&&(DalnDnaNiziny>250))

      {

         if((Veer4XMABULL==true)&&(KoeffYzkostMA<1.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !7");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !8

   //)/ ,(/ !' " !#  %  +  " #     &

   if((KoeffTelaOne>3.2)&&(KoeffObyema>3.6))

   {

      if((DiverGoodBULL==true)&&(DalnDnaNiziny>250))

      {

         if((Veer4XMABULL==true)&&(KoeffYzkostMA<1.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !8");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !9

   //)/ ,(/ !' " !#  %  +  " #     &

   if((KoeffTelaOne>3.6)&&(KoeffObyema>3.0))

   {

      if((DiverGoodBULL==true)&&(DalnDnaNiziny>50))

      {

         if((Veer4XMABULL==true)&&(KoeffYzkostMA<0.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !8");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !10

   //)/ ,(/ !' " !#  %  +  " #     &

   if((KoeffTelaOne>2.4)&&(KoeffObyema>2.4))

   {

      if((DiverGoodBULL==true)&&(DalnDnaNiziny>150))

      {

         if((Veer4XMABULL==true)&&(KoeffYzkostMA<0.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !10");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !11

   //+%  #   !,/)% ! % !   MA  (+   +

   if((KoeffTelaOne>KoeffTelaOPTMIN)&&(KoeffObyema>4.5)&&(KriloProbitVershin>KrilProbOPTMIN)&&(KolvoProbitMA>4))

   {

      if((VeerMABallBULL>VeerMABallOPTMIN)&&(KoeffYzkostMA<0.2)&&(DalnDnaNiziny>DalnRazvOPTMIN)&&(Close[b]>LevelVerxneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !11");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !12

   //)/ ,(/ !' "  %  # +  "      &

   if((KoeffTelaOne>5.4)&&(KoeffObyema>3.4)&&(KriloProbitVershin>7))

   {

      if((DiverGoodBULL==true)&&(DalnDnaNiziny>2000))

      {

         if((KolvoMaloeTelo>500)&&(DnoNizinBar<(b+7)))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !12");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !13

   /// !'  "   (  !,/)% ! %  # +

   if((KoeffTelaOne>5.9)&&(KoeffObyema>3.2)&&(DalnDnaNiziny>450))

   {

      if((Svecha2XBULL==true)&&(KolvoProbVerx2X>80)&&(Razgon2XBULL==true))

      {

         if((KolvoProbitMA>8)&&(KoeffYzkostMA<0.25))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !13");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !14

   //+%  #   !,/)% ! % !   MA  (+   +

   if((KoeffTelaOne>KoeffTelaOPTMIN)&&(KoeffObyema>4.5)&&(KriloProbitVershin>KrilProbOPTMIN)&&(KolvoProbitMA>5))

   {

      if((VeerMABallBULL>VeerMABallOPTMIN)&&(KoeffYzkostMA<0.3)&&(DalnDnaNiziny>DalnRazvOPTMIN)&&(Close[b]>LevelVerxneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !14");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************    

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //5A;8 =5 A@01>B0; =8 >48= 87 B>G=KE A83=0;>2

   if(NaidenTochnySignal==false)

   {

      DrawRightLABEL(""'+ !",15,PozitionY,clrYellow,""' !  ");

   }

        

   //******************************************************************************************************************

   //******************************************************************************************************************         

   

   //! ! !     

   NaidenSignOpenBULL=false;   

   

   //! ! " %"/ +  "'+ ! " + !#

   if((NaidenTochnySignal==true)&&(Period()>=PERIOD_M15))

   {

      NaidenSignOpenBULL=true;

   }

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " / ! !2

   PozitionY=NachalnySdvigSverxy+ShagNadpisPoVertikal;

   

   DrawRightLABEL("  ",15,PozitionY,clrMagenta,"  +',%  = "+DoubleToStr(NabrBallsBULL,0));   

   

   //!   !""' '!" +',% " + !#  ##

   if((NabrBallsBULL>=TyngusBallOTKRYTM15)&&(Period()>=PERIOD_M15))

   {

      NaidenSignOpenBULL=true;      

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " / ! !1

   PozitionY=NachalnySdvigSverxy;   

   

   //+  -  "  (/   !'"# !  ##

   if(NaidenSignOpenBULL==true)

   {

      DrawRightLABEL(" !",15,PozitionY,clrLime,"% ( !  ##");    

   }

   else

   {

      DrawRightLABEL(" !",15,PozitionY,clrOrange,"!  ## "");

   }      

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   return(NabrBallsBULL);   

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//!  $ &, !'" ,%   #' " !   #

//=====================================================================================================================

//=====================================================================================================================

// !" " +"/ !   # ! ,    - +  " / !" "##!

// )" '!"  +% ,% 

int AnalizProdagiTynguska(int b)

{

   double SrednRazmTela, SrednRazmBara, KoeffTelaOne, KoeffBaraOne, SpredPunkt;

   

   double LevelVerxneyMA, LevelNizneyMA, RazmaxVeeraMA, KoeffObyema;

   

   double ImpulsStrength, SrednyRazmaxMA, KoeffYzkostMA, EABetterDirect;

   

   int VeerMABallBEAR, KolvoProbNizin, KolvoProbitMA, PozitionY;

      

   int KrilProbitNizin, NabrBallsBEAR, BigTimeFrame, BigTimeBar;

   

   int KolvoMaloeTelo, DalnPikaBaraB, LevayaGranVersh, PikVershBar;

   

   int KolvoProbNizov2X, ProbitNizinBAR, DalnPikaVershiny, LevyiProbitBar;

   

   int KolvoProbMA2X, KolvoProbMA3X, JapanPikBar;

   

   bool NaidenSignOpenBEAR, NaidenTochnySignal, ZakrPodVeerom, Veer4XMABEAR;

   

   bool ImpulseGoodBEAR, ProboyGoodBEAR, TrendMAGoodBEAR, RazvorotGoodBULL;

   

   bool DiverGoodBEAR, Svecha2XBEAR, Razgon2XBEAR, FiboSetkaBEAR;

   

   bool SpyskBEAR3X, Proboy5XLightMA, Proboy6XLightMA, Proboy7XLightMA;

   

   bool Proboy8XLightMA, VixodIzFletaBEAR, MolotBEAR;

   

   LevelVerxneyMA=0; LevelNizneyMA=0; RazmaxVeeraMA=0; KoeffObyema=0;

   

   VeerMABallBEAR=0; KolvoProbNizin=0; KolvoProbitMA=0; PozitionY=0;

   

   KrilProbitNizin=0; ImpulsStrength=0; SrednyRazmaxMA=0; KoeffYzkostMA=0;

   

   KolvoMaloeTelo=0; DalnPikaBaraB=0; KoeffBaraOne=0; LevayaGranVersh=0;

   

   PikVershBar=0; KolvoProbNizov2X=0; ProbitNizinBAR=0; DalnPikaVershiny=0;

   

   LevyiProbitBar=0; KolvoProbMA2X=0; KolvoProbMA3X=0; EABetterDirect=0;

   

   JapanPikBar=0;

   

   ProboyGoodBEAR=false; TrendMAGoodBEAR=false; RazvorotGoodBULL=false;

   

   ZakrPodVeerom=false; ImpulseGoodBEAR=false; Veer4XMABEAR=false;

   

   NaidenTochnySignal=false; DiverGoodBEAR=false; FiboSetkaBEAR=false; MolotBEAR=false;

   

   Svecha2XBEAR=false; Razgon2XBEAR=false; SpyskBEAR3X=false; Proboy5XLightMA=false;

   

   Proboy6XLightMA=false; Proboy7XLightMA=false; Proboy8XLightMA=false; VixodIzFletaBEAR=false;

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //!'" !#  '!" ,%  / & '!" !

   NabrBallsBEAR=0;

   

   NaidenTochnySignal=false;

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //'!"  $ " !" +% *"   +  !   #

   ObjectsDeleteAll();

   

   // !'"  "+   " / ! !1

   PozitionY=NachalnySdvigSverxy;   

   

   DrawCentralLABEL("#!",PozitionY,clrYellowGreen,"#!   ");   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " / ! !1

   PozitionY=NachalnySdvigSverxy;   

   

   DrawLeftLABEL("."",PozitionY,clrYellow,"." = "+Symbol());

   

   //******************************************************************************************************************

   //******************************************************************************************************************

      

   // !'"  "+   " / ! !2

   PozitionY=NachalnySdvigSverxy+ShagNadpisPoVertikal;   

   

   DrawLeftLABEL(""$ ",PozitionY,clrYellow,""$  = "+DoubleToStr(Period(),0));

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  !"(  "$  "!", "#)

   BigTimeFrame=StarshiyTimeFrame();

   

   // !'"  "+   " / ! !2

   PozitionY=NachalnySdvigSverxy+ShagNadpisPoVertikal;   

   

   DrawCentralLABEL("!" ( "$ ",PozitionY,clrYellow,"!" ( "$  = "+DoubleToStr(BigTimeFrame,0));      

       

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"     /  !" ( "$ 

   BigTimeBar=iBarShift(NULL,BigTimeFrame,Time[b],true);

   

   // !'"  "+   " / ! !3

   PozitionY=NachalnySdvigSverxy+(2*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL("!" (  ",PozitionY,clrOrange,"!" (   = "+DoubleToStr(BigTimeBar,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

      

   //@0AG5B :>5DD8F85=B0 >1J5<0 =0 10@5  ?> >B=>H5=8N : A@54=5<C >1J5<C

   KoeffObyema=0;

   KoeffObyema=RaschetKoeffVolumeTyng(b);  

   

   // !'"  "+   " / ! !5

   PozitionY=NachalnySdvigSverxy+(4*ShagNadpisPoVertikal);

   DrawCentralLABEL("-$$&" *",PozitionY,clrAqua,"-$$&" * = "+DoubleToStr(KoeffObyema,2));   

   

   //'!   -$$&" * "#)   / , !'

   if(KoeffObyema>KoeffObyemaLITTLE){NabrBallsBEAR=NabrBallsBEAR+DobavkaObyemaLITTLE;}

   if(KoeffObyema>KoeffObyemaMEDIUM){NabrBallsBEAR=NabrBallsBEAR+DobavkaObyemaMEDIUM;}

   if(KoeffObyema>KoeffObyemaNORMAL){NabrBallsBEAR=NabrBallsBEAR+DobavkaObyemaNORMAL;}

   if(KoeffObyema>KoeffObyemaGIGANT){NabrBallsBEAR=NabrBallsBEAR+DobavkaObyemaGIGANT;}

  

   //******************************************************************************************************************

   //******************************************************************************************************************  

   

   //25;8G8=0 A?@540 2 ?C=:B0E

   SpredPunkt=MarketInfo(Symbol(),MODE_SPREAD);

   SpredPunkt=MathRound(SpredPunkt);   

   

   // !'"  "+   " / ! !3

   PozitionY=NachalnySdvigSverxy+(2*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("! ",PozitionY,clrYellow,"!  = "+DoubleToStr(SpredPunkt,0));      

            

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'! !     "

   SrednRazmTela=0;

   SrednRazmTela=SredniyRazmerTelaPunkts(b);

   

   // !'"  "+   " / ! !4

   PozitionY=NachalnySdvigSverxy+(3*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("!  "",PozitionY,clrYellow,"!     " = "+DoubleToStr(SrednRazmTela,2));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

    

   //+'! !      

   SrednRazmBara=SredniyRazmerBaraPunkts(b);

   

   // !'"  "+   " / ! !5

   PozitionY=NachalnySdvigSverxy+(4*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("!   ",PozitionY,clrYellow,"!       = "+DoubleToStr(SrednRazmBara,2));

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************      

   

   /// ,/ !'

   Svecha2XBEAR=false;

   Svecha2XBEAR=DvoinayaSvechaBEAR(SrednRazmTela,b);

   

   // !'"  "+   " /  ! !11

   PozitionY=NachalnySdvigSverxy+(10*ShagNadpisPoVertikal);   

   

   if(Svecha2XBEAR==true)

   {

      DrawLeftLABEL("/ !'",PozitionY,clrLimeGreen,"/ ,/ !'");

   }

   else

   {

      DrawLeftLABEL("/ !'",PozitionY,clrYellow," !' "");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //?>8A: ;52>3> :@0O  (+ F5= - A;>6=K9 20@80=B, GB>1K @072>@>B 1K; 

   LevayaGranVersh=RaschetLevgrVershinGOOD(SrednRazmTela,b);

   

   //5A;8 ;520O 3@0=8F0 =0945=0 8 5ABL <8=. :>;-2> 2=CB@5==8E 10@>2

   if(LevayaGranVersh>b)

   {

      NabrBallsBEAR=NabrBallsBEAR+DobavkaBallsGRANICA;

      

      // !'"  "+   " /  ! !12

      PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);      

      

      DrawLeftLABEL("/  &",PozitionY,clrLime," &  (+ ");

      

      // ",/ / ! "   &+  (+

      ObjectDelete("LevayaGranVershLine");

      ObjectCreate("LevayaGranVershLine",OBJ_VLINE,0,Time[(LevayaGranVersh+1)],0);

      ObjectSet("LevayaGranVershLine",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("LevayaGranVershLine",OBJPROP_COLOR,clrYellow);

      

      //?>8A: 10@0 - ?8:0 25@H8=K

      PikVershBar=0;

      PikVershBar=PoiskBaraPikaVershin(LevayaGranVersh,b);

      

      //3>@87=>B0;L=0O ;8=8O ?> C@>2=N ?8:0 25@H8=K

      ObjectDelete("PikVershinyLevelLine");

      ObjectCreate("PikVershinyLevelLine",OBJ_HLINE,0,Time[PikVershBar],High[PikVershBar]);

      ObjectSet("PikVershinyLevelLine",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("PikVershinyLevelLine",OBJPROP_COLOR,clrCrimson);                              

   }

   else

   {

      // !'"  "+   " /  ! !12

      PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);      

      

      DrawLeftLABEL("/  &",PozitionY,clrYellow,"/  &  ");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //-$$&" " "#)   / , !'    

   KoeffTelaOne=0;

   KoeffTelaOne=KoeffTelaSvechiBEAR(SrednRazmTela,b);

   

   //'!   -$$&" " "#)   / , !'

   if(KoeffTelaOne>KoeffTelaLITTLE) {NabrBallsBEAR=NabrBallsBEAR+DobavkaTelaLITTLE;}

   if(KoeffTelaOne>KoeffTelaMEDIUM) {NabrBallsBEAR=NabrBallsBEAR+DobavkaTelaMEDIUM;}

   if(KoeffTelaOne>KoeffTelaNORMAL) {NabrBallsBEAR=NabrBallsBEAR+DobavkaTelaNORMAL;}

   if(KoeffTelaOne>KoeffTelaGIGANT) {NabrBallsBEAR=NabrBallsBEAR+DobavkaTelaGIGANT;}   

   

   //+  -  "!" " ! ' -$$&" " !'

   PozitionY=NachalnySdvigSverxy+(3*ShagNadpisPoVertikal);   

   DrawCentralLABEL("-$$&" "",PozitionY,clrCrimson,"-$$&" " = "+DoubleToStr(KoeffTelaOne,2));

    

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" ,%     12 !,/)% ! %

   VeerMABallBEAR=0;

   VeerMABallBEAR=RaschetBallovVeeraMABEAR(b);

   

   //'!    ,+     12 !,/)% ! %

   if(VeerMABallBEAR>BallVeerMALittle) {NabrBallsBEAR=NabrBallsBEAR+3;}

   if(VeerMABallBEAR>BallVeerMAMedium) {NabrBallsBEAR=NabrBallsBEAR+3;}

   if(VeerMABallBEAR>BallVeerMALarge)  {NabrBallsBEAR=NabrBallsBEAR+3;}

   if(VeerMABallBEAR>BallVeerMAHuge)   {NabrBallsBEAR=NabrBallsBEAR+8;}

   if(VeerMABallBEAR>BallVeerMASuper)  {NabrBallsBEAR=NabrBallsBEAR+8;}

   if(VeerMABallBEAR>BallVeerMAGigant) {NabrBallsBEAR=NabrBallsBEAR+BallVeerMAGigant;}

   if(VeerMABallBEAR>BallVeerMAExcell) {NabrBallsBEAR=NabrBallsBEAR+DobavkaBallEXCELL;}      

   

   // !'"  "+   " / ! !8

   PozitionY=NachalnySdvigSverxy+(7*ShagNadpisPoVertikal);

         

   //+  -  "!" " ! ' '!"    12 

   if(VeerMABallBEAR>BallVeerMAHuge)

   {

      DrawRightLABEL("+   ",15,PozitionY,clrLime,",%     = "+DoubleToStr(VeerMABallBEAR,0));   

   }

   else

   {

      DrawRightLABEL("+   ",15,PozitionY,clrOrange,",%     = "+DoubleToStr(VeerMABallBEAR,0));   

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

      

   // !'"  %    12 !,/)% ! %  #"%

   RazmaxVeeraMA=0;

   RazmaxVeeraMA=RaschetRazmaxaVeera12MA(b);

   

   // !'"  "+   " /  ! !8

   PozitionY=NachalnySdvigSverxy+(7*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL(" %   ",PozitionY,clrYellow," %    #"+ = "+DoubleToStr(RazmaxVeeraMA,0));   

   

   //---------------------------------------------------------------------

      

   // !'" !   %    12 !,/)% ! %  #"%

   SrednyRazmaxMA=0;

   

   if(Period()==PERIOD_M15)

   {

      SrednyRazmaxMA=XranenieRazmaxaVeera15MIN;

   }

   

   if(Period()==PERIOD_M5)

   {

      SrednyRazmaxMA=ZnachSrednRazmaxVeera5MIN;

   }

   

   if(Period()==PERIOD_M1)

   {

      SrednyRazmaxMA=ZnachSrednRazmVeeraOneMIN;

   }      

   

   // !'"  "+   " /  ! !9

   PozitionY=NachalnySdvigSverxy+(8*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("!   %  ",PozitionY,clrYellow,"!   % #"+ = "+DoubleToStr(SrednyRazmaxMA,0));

   

   //---------------------------------------------------------------------

      

   // !'" -$$&" #!"   12 !,/)% ! %

   KoeffYzkostMA=0;

   

   //=0 =>;L 45;8BL =5;L7O

   if(SrednyRazmaxMA>0)

   {

      KoeffYzkostMA=RazmaxVeeraMA/SrednyRazmaxMA;

      KoeffYzkostMA=NormalizeDouble(KoeffYzkostMA,2);

   }

   else

   {

      KoeffYzkostMA=1.5;

   }

   

   // !'"  "+   " / ! !9

   PozitionY=NachalnySdvigSverxy+(8*ShagNadpisPoVertikal);

      

   //+  -  "!" " ! ' '!"    12 

   if(KoeffYzkostMA<KoeffYzkostiOPTITMAX)

   {

      //'!   #!", ,    12 !,/)% ! %

      NabrBallsBEAR=NabrBallsBEAR+DobavkaBallovYzkostVeeraMA;

      

      DrawRightLABEL("-$$&" #!"  ",15,PozitionY,clrAqua,"-$$. #!"    = "+DoubleToStr(KoeffYzkostMA,2));   

   }

   else

   {

      DrawRightLABEL("-$$&" #!"  ",15,PozitionY,clrYellow,"-$$. #!"    = "+DoubleToStr(KoeffYzkostMA,2));   

   }

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   LevelVerxneyMA=0;

   LevelVerxneyMA=RaschetLevelVerxney12MA(b);



   // !'"  "+   " /  ! !6

   PozitionY=NachalnySdvigSverxy+(5*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("# ,  % ",PozitionY,clrYellow,"# ,  %  = "+DoubleToStr(LevelVerxneyMA,Digits));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   LevelNizneyMA=0;

   LevelNizneyMA=RaschetLevelNizney12MA(b);



   // !'"  "+   " /  ! !7

   PozitionY=NachalnySdvigSverxy+(6*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("# ,  ",PozitionY,clrYellow,"# ,   = "+DoubleToStr(LevelNizneyMA,Digits));

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //    '/  , ,     4% "/+%    

   Veer4XMABEAR=false;

   Veer4XMABEAR=ProverkaVeer4XMABigBEAR(b);  

   

   // !'"  "+   " / ! !11

   PozitionY=NachalnySdvigSverxy+(10*ShagNadpisPoVertikal);

   

   if(Veer4XMABEAR==true)

   {

      DrawRightLABEL("   4% "/+% ",15,PozitionY,clrLime,"   4% "/+% ");

   }

   else

   {

      DrawRightLABEL("   4% "/+% ",15,PozitionY,clrOrange,"  4% "/+%  "");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  , A25G59  "#)  $

   KolvoProbitMA=0;

   KolvoProbitMA=RaschetProbitMAOneBEAR(b);

   

   // !'"  "+   " / ! !10

   PozitionY=NachalnySdvigSverxy+(9*ShagNadpisPoVertikal);

   DrawRightLABEL(" " ! % ",15,PozitionY,clrAquamarine," " ! %  = "+DoubleToStr(KolvoProbitMA,0));   

   

   //=0G8A;O5< 10;;K ?@8 =0;8G88 ?@028;L=>3> 255@0 87 4E BO65;KE  A 2KE>4>< 87 255@0

   if((Close[b]<LevelNizneyMA)&&(Veer4XMABEAR==true))

   {

      if(KolvoProbitMA>=KolProbMAOneMIN)

      {

         NabrBallsBEAR=NabrBallsBEAR+DobavkaBallProbOneMA;

         

         DrawRightLABEL(" " ! % ",15,PozitionY,clrLime," " ! %  = "+DoubleToStr(KolvoProbitMA,0));         

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   

   

   

   // !'"  "+   " / ! !3

   PozitionY=NachalnySdvigSverxy+(2*ShagNadpisPoVertikal);

   

   DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! ! = ");      

       

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //@0AG5B A8;K 8<?C;LA0

   ImpulsStrength=0;

   ImpulsStrength=RaschetImpulsStrength(KoeffObyema,SrednRazmTela,b);

   

   // !'"  "+   " / ! !6

   PozitionY=NachalnySdvigSverxy+(5*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL("! #,!",PozitionY,clrMagenta,"! #,! = "+DoubleToStr(ImpulsStrength,2));

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" '!" +% !', " + + ! " "#) !'

   KolvoMaloeTelo=0;

   KolvoMaloeTelo=KolvoLittleCandelsLeft(b);

   

   // !'"  "+   " / ! !7

   PozitionY=NachalnySdvigSverxy+(6*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL("'!" +% !'",PozitionY,clrOrange,"+% !' ! = "+DoubleToStr(KolvoMaloeTelo,0));

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" ,!"  (+   "#)   /   

   DalnPikaBaraB=0;

   DalnPikaBaraB=SlevaTeloSvechOtVershiny(b);

   

   // !'"  "+   " / ! !8

   PozitionY=NachalnySdvigSverxy+(7*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL(",!", "#)  ",PozitionY,clrOrange,",!",    = "+DoubleToStr(DalnPikaBaraB,0));   

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //,!",   (+ &

   DalnPikaVershiny=0;

   

   //! /  &  (+ 

   if((LevayaGranVersh>b)&&(PikVershBar>0))

   {

      DalnPikaVershiny=SlevaTeloSvechOtVershiny(PikVershBar);

   }   

   

   // !'"  "+   " / ! !9

   PozitionY=NachalnySdvigSverxy+(8*ShagNadpisPoVertikal);   

   

   DrawCentralLABEL(",!", $# +   "",PozitionY,clrOrange,",!",   (+ = "+DoubleToStr(DalnPikaVershiny,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //     #% !% !'%

   Razgon2XBEAR=false;

   Razgon2XBEAR=Razgon2XCheckBEAR(b);

   

   // !'"  "+   " / ! !10

   PozitionY=NachalnySdvigSverxy+(9*ShagNadpisPoVertikal);   



   if(Razgon2XBEAR==true)

   {

      DrawCentralLABEL("   #% !'%",PozitionY,clrLime,"    #% !'%");      

   }

   else

   {

      DrawCentralLABEL("   #% !'%",PozitionY,clrOrange,"    ");      

   }    

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //!#!   !% " % !'% ! "   !"/ *

   SpyskBEAR3X=false;

   SpyskBEAR3X=SpyskVnizVolumeBEAR3X(b);

   

   // !'"  "+   " / ! !11

   PozitionY=NachalnySdvigSverxy+(10*ShagNadpisPoVertikal);   



   if(SpyskBEAR3X==true)

   {

      DrawCentralLABEL("!#!   " % !'%",PozitionY,clrLime,"!#!   " % !'%");      

   }

   else

   {

      DrawCentralLABEL("!#!   " % !'%",PozitionY,clrOrange,"!#!   " %  ");      

   }   



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'!  / !  !"#  "" 

   EABetterDirect=0;

   EABetterDirect=DirectBETTER(NastrBetterWarp,NastrBetterDeviat,NastrBetterAmplit,NastrBetterDistor,b);

   EABetterDirect=NormalizeDouble(EABetterDirect,3);

   

   // !'"  "+   " / ! !16

   PozitionY=NachalnySdvigSverxy+(15*ShagNadpisPoVertikal);



   //4>102;O5< 10;;K : ?>78F88 !

   if((EABetterDirect<0)&&(MathAbs(EABetterDirect)>BetterNapravABCMin))

   {

      NabrBallsBEAR=NabrBallsBEAR+DobavkaBallBetter;

      

      DrawCentralLABEL("EA Better Direction",PozitionY,clrMagenta,"EA Better Direction = "+DoubleToStr(EABetterDirect,3));      

   }

   

   //>B=8<05< 10;;K >B ?>78F88 !

   if((EABetterDirect>0)&&(MathAbs(EABetterDirect)>BetterNapravABCMin))

   {

      NabrBallsBEAR=NabrBallsBEAR-DobavkaBallBetter;

      

      DrawCentralLABEL("EA Better Direction",PozitionY,clrAqua,"EA Better Direction = "+DoubleToStr(EABetterDirect,3));      

   }

   

   if(MathAbs(EABetterDirect)<=BetterNapravABCMin)

   {

      DrawCentralLABEL("EA Better Direction",PozitionY,clrOrange,"EA Better Direction = "+DoubleToStr(EABetterDirect,3));      

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   VixodIzFletaBEAR=false;

   VixodIzFletaBEAR=ProboyYzkogoFletaBEAR(SrednRazmTela,b);

   

   // !'"  "+   " / ! !17

   PozitionY=NachalnySdvigSverxy+(16*ShagNadpisPoVertikal);

   

   if(VixodIzFletaBEAR==true)

   {

      NabrBallsBEAR=NabrBallsBEAR+DobavBallProboyFLETA;

      

      DrawCentralLABEL("  # $"",PozitionY,clrMagenta,"    &+ $"");

   }

   else

   {

      DrawCentralLABEL("  # $"",PozitionY,clrOrange," /  &+ $"  ");

   }      

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   8- %   " #

   Proboy8XLightMA=false;

   Proboy8XLightMA=ProboyEightLightMATrendBEAR(b,Svecha2XBEAR);



   // !'"  "+   " / ! !15

   PozitionY=NachalnySdvigSverxy+(14*ShagNadpisPoVertikal);   



   if(Proboy8XLightMA==true)

   {

      DrawCentralLABEL("  8- % ",PozitionY,clrLime,"   8- % ");      

   }

   else

   {

      DrawCentralLABEL("  8- % ",PozitionY,clrOrange," / 8- %   ");      

   } 

   

   //******************************************************************************************************************

   //******************************************************************************************************************   

   

   //   7- %   " #

   Proboy7XLightMA=false;

   Proboy7XLightMA=ProboySevenLightMATrendBEAR(b,Svecha2XBEAR);



   // !'"  "+   " / ! !14

   PozitionY=NachalnySdvigSverxy+(13*ShagNadpisPoVertikal);   



   if(Proboy7XLightMA==true)

   {

      DrawCentralLABEL("  7- % ",PozitionY,clrLime,"   7- % ");      

   }

   else

   {

      DrawCentralLABEL("  7- % ",PozitionY,clrOrange," / 7- %   ");      

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   6-" %   " #

   Proboy6XLightMA=false;

   Proboy6XLightMA=ProboySixLightMATrendBEAR(b,Svecha2XBEAR);



   // !'"  "+   " / ! !13

   PozitionY=NachalnySdvigSverxy+(12*ShagNadpisPoVertikal);   



   if(Proboy6XLightMA==true)

   {

      NabrBallsBEAR=NabrBallsBEAR+DobavkaBallsProb6XMA;

      DrawCentralLABEL("  6-" % ",PozitionY,clrLime,"   6-" % ");      

   }

   else

   {

      DrawCentralLABEL("  6-" % ",PozitionY,clrOrange," / 6-" %   ");      

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   5-" %   " #

   Proboy5XLightMA=false;

   Proboy5XLightMA=ProboyFiveLightMATrendBEAR(b,Svecha2XBEAR);



   // !'"  "+   " / ! !12

   PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);   



   if((Proboy6XLightMA==false)&&(Proboy5XLightMA==true))

   {

      NabrBallsBEAR=NabrBallsBEAR+DobavkaBallsProb5XMA;

      DrawCentralLABEL("  5-" % ",PozitionY,clrLime,"   5-" % ");      

   }

   else

   {

      DrawCentralLABEL("  5-" % ",PozitionY,clrOrange," / 5-" %   ");      

   }

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   



      

   //******************************************************************************************************************

   //******************************************************************************************************************

   



   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" -$$&"    "#)     ! #  #

   KoeffBaraOne=0;

   KoeffBaraOne=KoeffRazmeraBaraB(SrednRazmBara,b);

   

   // !'"  "+   " /  ! !10

   PozitionY=NachalnySdvigSverxy+(9*ShagNadpisPoVertikal);   

   

   DrawLeftLABEL("-$$.     ",PozitionY,clrYellow,"-$$.      = "+DoubleToStr(KoeffBaraOne,2));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //+'! '!"   +  "+%   , !'    

   KolvoProbNizin=0;

   KolvoProbNizin=RaschetProbitNizinOne(b);

   

   // !'"  "+   " / ! !12

   PozitionY=NachalnySdvigSverxy+(11*ShagNadpisPoVertikal);

   

   DrawRightLABEL(" " ' !'",15,PozitionY,clrOrange,"-  "+%  = "+DoubleToStr(KolvoProbNizin,0));   

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //'!"  "+%   , !'

   KolvoProbNizov2X=0;

   

   if(Svecha2XBEAR==true)

   {

      KolvoProbNizov2X=RaschetProbitNizinTWO(b);

   }

   

   // !'"  "+   " /  ! !13

   PozitionY=NachalnySdvigSverxy+(12*ShagNadpisPoVertikal);      

   

   DrawLeftLABEL(" "  !'",PozitionY,clrYellow," "  !' 2% = "+DoubleToStr(KolvoProbNizov2X,0));  

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E  , A25G59

   KolvoProbMA2X=0;

   KolvoProbMA2X=KolvoProbMASvecha2XBEAR(b);

   

   // !'"  "+   " /  ! !14

   PozitionY=NachalnySdvigSverxy+(13*ShagNadpisPoVertikal);      

   

   DrawLeftLABEL(" " ! % !' 2%",PozitionY,clrYellow," " ! % !' 2% = "+DoubleToStr(KolvoProbMA2X,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //>;8G5AB2> ?@>18BKE A:>;L7OI8E A@54=8E "  , A25G59

   KolvoProbMA3X=0;

   KolvoProbMA3X=KolvoProbitMACandleThreeBEAR(b);

   

   // !'"  "+   " /  ! !15

   PozitionY=NachalnySdvigSverxy+(14*ShagNadpisPoVertikal);      

   

   DrawLeftLABEL(" " ! % !' 3%",PozitionY,clrYellow," " ! % !' 3% = "+DoubleToStr(KolvoProbMA3X,0));   

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " /  ! !16

   PozitionY=NachalnySdvigSverxy+(15*ShagNadpisPoVertikal);      

   

   DrawLeftLABEL("% ) !   % ",PozitionY,clrCrimson,"!% . ! .  %  15 #"+ = "+DoubleToStr(XranenieRazmaxaVeera15MIN,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/ , "   (    / 

   MolotBEAR=false;

   

   // !'"  "+   " /  ! !17

   PozitionY=NachalnySdvigSverxy+(16*ShagNadpisPoVertikal);

   

   //5A;8 5ABL ?@>1>9  >4=>9 , A25G59 =0 10@5 

   if((KolvoProbNizin>0)||(DalnPikaBaraB>DalnostPIKAJapanMIN))

   {

      //A0<K9 ;52K9 10@,  :>B>@>3> ?@>18205BAO B5;>< A25G8 10@0 

      LevyiProbitBar=b+KolvoProbNizin;

      

      //?8: 25@H8=K ?@>1>O - 10@ 345 ?@>25@O5< =0;8G85 O?>=A:>3> "<>;>B0"

      JapanPikBar=iHighest(NULL,0,MODE_HIGH,(KolvoProbNizin+1),b);   

      

      //?@>25@O5< =0;8G85 , <>;>B0 =0 A0<>< +! 10@5

      MolotBEAR=MolotBearNew(SrednRazmBara,JapanPikBar);

      

      //&+ !

      if(MolotBEAR==true)

      {

         NabrBallsBEAR=NabrBallsBEAR+DobavkaBallovMOLOT;                 

         

         DrawLeftLABEL(""    /",PozitionY,clrLime," "    /");   

      }      

   }

   

   if(MolotBEAR==false)

   {

      DrawLeftLABEL(""    /",PozitionY,clrOrange,", "  ");

   }   

      

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" ,%     12 !,/)% ! %

   

   VeerMABallBEAR=0;

   VeerMABallBEAR=RaschetBallovVeeraMABEAR(b);   

   

   // !'"  "+   " / ! !8

   PozitionY=NachalnySdvigSverxy+(7*ShagNadpisPoVertikal);

   

   DrawRightLABEL("+   ",15,PozitionY,clrOrange,",%     = "+DoubleToStr(VeerMABallBEAR,0));   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   



   //******************************************************************************************************************

   //******************************************************************************************************************



   //******************************************************************************************************************

   //******************************************************************************************************************

   

      

   //******************************************************************************************************************

   //******************************************************************************************************************

  

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/ ,  &    /   

   DiverGoodBEAR=false;

   DiverGoodBEAR=DiverBearOXOTNIK777(SrednRazmTela,b);

   

   // !'"  "+   " / ! !13

   PozitionY=NachalnySdvigSverxy+(12*ShagNadpisPoVertikal);

   

   if(DiverGoodBEAR==true)

   {

      NabrBallsBEAR=NabrBallsBEAR+DiverLineAddBalls;

      

      DrawRightLABEL(" &/",15,PozitionY,clrLime,"!", ,/  &/");

   }

   else

   {

      DrawRightLABEL(" &/",15,PozitionY,clrOrange,",  & "");

   }

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //    -   " + !

   ProbitNizinBAR=0;

   ProbitNizinBAR=PoiskProbitNiziny(b);

   

   // !'"  "+   " / ! !14

   PozitionY=NachalnySdvigSverxy+(13*ShagNadpisPoVertikal);

   

   DrawRightLABEL(" "+   !",15,PozitionY,clrOrange,"     " + = "+DoubleToStr(ProbitNizinBAR,0));

   

   //H8@8=0 :@K;0 ?@>18B>9 =878=K

   KrilProbitNizin=RazmerKrilaNizaKnight(ProbitNizinBAR,b);

   

   //=0G8A;5=85 10;;>2 70 ?@>1>9 C@>2=O

   if(KrilProbitNizin>=ShirinKrilProbitLEVEL)

   {

      NabrBallsBEAR=NabrBallsBEAR+DobavBallsProboyLEVEL;

   }

   

   // !'"  "+   " / ! !15

   PozitionY=NachalnySdvigSverxy+(14*ShagNadpisPoVertikal);

   

   DrawRightLABEL("(   +  /",15,PozitionY,clrLime,"(   +  " + = "+DoubleToStr(KrilProbitNizin,0));                     

   

   if((ProbitNizinBAR>b)&&(KrilProbitNizin>1))

   {

      //3>@87>=B0;L=0O ;8=8O ?> C@>2=N <8=8<C<0 ?@>18B>9 =878=K

      ObjectCreate("ProbNizLevelLine",OBJ_HLINE,0,Time[ProbitNizinBAR],Low[ProbitNizinBAR]);

      ObjectSet("ProbNizLevelLine",OBJPROP_STYLE,STYLE_DASH);

      ObjectSet("ProbNizLevelLine",OBJPROP_COLOR,clrLime);

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/  !'" #   !"  , $ !"    

   FiboSetkaBEAR=false;

   FiboSetkaBEAR=FiboSetkaBearOxotnikCHECK(SrednRazmTela,b);

   

   // !'"  "+   " / ! !16

   PozitionY=NachalnySdvigSverxy+(15*ShagNadpisPoVertikal);   

   

   //'!   '!"#. ,. $ !"#    

   if(FiboSetkaBEAR==true)

   {  

      NabrBallsBEAR=NabrBallsBEAR+DobavkaBallovFIBO;

      

      DrawRightLABEL("$ !"",15,PozitionY,clrLime,",/ $ !" !" ");   

   }

   else

   {

      DrawRightLABEL("$ !"",15,PozitionY,clrOrange,",/ $ !"  ");   

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //! " ,(/ !'    " *, '" !",  #+ "+

   

   if((KoeffTelaOne>KoeffTelaRASXVMIN)&&(KoeffObyema<KoeffVolumeLITMAX))

   {

      NabrBallsBEAR=NabrBallsBEAR+DobavkaBallRASXOBYEM;

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/   "+ ! - % ( #,!                            

   

   if((KoeffTelaOne>5.2)&&(KoeffObyema>2.2)&&(KolvoMaloeTelo>140))

   {

      ImpulseGoodBEAR=true;

   }   

   

   if((KoeffTelaOne>3.0)&&(KolvoProbitMA>=8))

   {

      ImpulseGoodBEAR=true;

   }   

   

   // !'"  "+   " /   ! !4

   PozitionY=NachalnySdvigSverxy+(3*ShagNadpisPoVertikal);

   

   //+  -  "!" " ! ' % ( #,! 

   if(ImpulseGoodBEAR==true)

   {

      DrawRightLABEL("% ( #,!  / "",15,PozitionY,clrLime,"!", % ( #,! ");

   }

   else

   {

      DrawRightLABEL("% ( #,!  / "",15,PozitionY,clrYellow,"" % ( #,! ");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/ "  "+ ! -  / +  #'  

   

   if((KolvoProbitMA>=5)&&(Close[b]<LevelNizneyMA))

   {

      ProboyGoodBEAR=true;

   }

   

   if(KolvoProbitMA>=7)

   {

      ProboyGoodBEAR=true;

   }                                 

   

   // !'"  "+   " /   ! !5

   PozitionY=NachalnySdvigSverxy+(4*ShagNadpisPoVertikal);

   

   //+  -  "!" " !   +  #'  

   if(ProboyGoodBEAR==true)

   {

      DrawRightLABEL("  # / " / "",15,PozitionY,clrLime,"!",   # /  ");

   }

   else

   {

      DrawRightLABEL("  # / " / "",15,PozitionY,clrYellow,""  / # / ");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //   '/ " ", "+ ! - "  !,/)% ! % 

   

   if((VeerMABallBEAR>VeerMABallOPTMIN)&&(KoeffYzkostMA<0.2))

   {

      if(Veer4XMABEAR==true)

      {

         TrendMAGoodBEAR=true;

      }

   }

   

   if((VeerMABallBEAR>110)&&(KoeffYzkostMA<0.25))

   {

      TrendMAGoodBEAR=true;

   }   

   

   if((VeerMABallBEAR>70)&&(KoeffYzkostMA<0.25)&&(Veer4XMABEAR==true))

   {

      TrendMAGoodBEAR=true;

   }

   

   if((VeerMABallBEAR>90)&&(KoeffYzkostMA<0.32)&&(Veer4XMABEAR==true))

   {

      TrendMAGoodBEAR=true;

   }

   

   if((VeerMABallBEAR>120)&&(KoeffYzkostMA<0.45)&&(Veer4XMABEAR==true))

   {

      TrendMAGoodBEAR=true;

   }                                             

   

   // !'"  "+   " /   ! !6

   PozitionY=NachalnySdvigSverxy+(5*ShagNadpisPoVertikal);

   

   //+  -  "!" " ! ' "  !,/)% ! % 

   if(TrendMAGoodBEAR==true)

   {

      DrawRightLABEL(""   " ",/ "",15,PozitionY,clrLime,"!", "  #%  ");

   }

   else

   {

      DrawRightLABEL(""   " ",/ "",15,PozitionY,clrYellow,"" "  #%  ");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"+ "'+% !, " +  , +   $

   NaidenTochnySignal=false;

   

   // !'"  "+   " / ! !3

   PozitionY=NachalnySdvigSverxy+(2*ShagNadpisPoVertikal);

   

   //******************************************************************************************************************

   //******************************************************************************************************************

      

  

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !1

   //  + !    , #   

   if((KoeffTelaOne>5.1)&&(KoeffObyema>1.8)&&(KrilProbitNizin>4))

   {

      if((VeerMABallBEAR>165)&&(KoeffYzkostMA<0.25)&&(Close[b]<LevelNizneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !1");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !2

   //  + !    , #   

   if((KoeffTelaOne>1.6)&&(KoeffObyema>3.0)&&(KrilProbitNizin>25))

   {

      if((VeerMABallBEAR>175)&&(KoeffYzkostMA<0.75)&&(Close[b]<LevelNizneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !2");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !3

   //  + !    , #   

   if((KoeffTelaOne>3.2)&&(KoeffObyema>1.0)&&(KrilProbitNizin>10))

   {

      if((VeerMABallBEAR>175)&&(KoeffYzkostMA<0.65)&&(Close[b]<LevelNizneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !3");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !4

   //)/ ,(/ !' +%"  ! #  (+

   if((KoeffTelaOne>6.0)&&(KoeffObyema>2.0)&&(KolvoProbitMA>=1))

   {

      if((DalnPikaVershiny>200)&&(PikVershBar<(b+2)))

      {

         //NaidenTochnySignal=true;

               

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !4");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !5

   //)/ ,(/ !' "  ! +!  (+  " #     &

   if((KoeffTelaOne>4.8)&&(KoeffObyema>2.4))

   {

      if((DiverGoodBEAR==true)&&(DalnPikaVershiny>250))

      {

         if((Veer4XMABEAR==true)&&(KoeffYzkostMA<0.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !5");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !7

   //)/ ,(/ !' "  ! +!  (+  " #     &

   if((KoeffTelaOne>6.4)&&(KoeffObyema>2.4))

   {

      if((DiverGoodBEAR==true)&&(DalnPikaVershiny>250))

      {

         if((Veer4XMABEAR==true)&&(KoeffYzkostMA<1.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !7");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !8

   //)/ ,(/ !' "  ! +!  (+  " #     &

   if((KoeffTelaOne>3.2)&&(KoeffObyema>3.6))

   {

      if((DiverGoodBEAR==true)&&(DalnPikaVershiny>250))

      {

         if((Veer4XMABEAR==true)&&(KoeffYzkostMA<1.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !8");

         }

      }

   }

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !9

   //)/ ,(/ !' "  ! +!  (+  " #     &

   if((KoeffTelaOne>3.6)&&(KoeffObyema>3.0))

   {

      if((DiverGoodBEAR==true)&&(DalnPikaVershiny>50))

      {

         if((Veer4XMABEAR==true)&&(KoeffYzkostMA<0.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !9");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !10

   //)/ ,(/ !' "  ! +!  (+  " #     &

   if((KoeffTelaOne>2.4)&&(KoeffObyema>2.4))

   {

      if((DiverGoodBEAR==true)&&(DalnPikaVershiny>150))

      {

         if((Veer4XMABEAR==true)&&(KoeffYzkostMA<0.5))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !10");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !11

   //+%  #   !,/)% ! % !   MA +  !  (+

   if((KoeffTelaOne>KoeffTelaOPTMIN)&&(KoeffObyema>4.5)&&(KrilProbitNizin>KrilProbOPTMIN)&&(KolvoProbitMA>5))

   {

      if((VeerMABallBEAR>VeerMABallOPTMIN)&&(KoeffYzkostMA<0.2)&&(DalnPikaVershiny>DalnRazvOPTMIN)&&(Close[b]<LevelNizneyMA))

      {

         //NaidenTochnySignal=true;

            

         DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !11");

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !12

   //)/ ,(/ !' "  ! +!  (+  "      &

   if((KoeffTelaOne>5.4)&&(KoeffObyema>3.4)&&(KrilProbitNizin>7))

   {

      if((DiverGoodBEAR==true)&&(DalnPikaVershiny>2000))

      {

         if((KolvoMaloeTelo>500)&&(PikVershBar<(b+7)))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !12");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !13

   /// !'  "    !,/)% ! % ! +!  (+

   if((KoeffTelaOne>5.9)&&(KoeffObyema>3.2)&&(DalnPikaVershiny>450))

   {

      if((Svecha2XBEAR==true)&&(KolvoProbNizov2X>80)&&(Razgon2XBEAR==true))

      {

         if((KolvoProbitMA>8)&&(KoeffYzkostMA<0.25))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !13");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'" "' ! !14

   /// !'  "    !,/)% ! % ! +!  (+

   if((KoeffTelaOne>5.9)&&(KoeffObyema>3.2)&&(DalnPikaVershiny>450))

   {

      if((Svecha2XBEAR==true)&&(KolvoProbNizov2X>80)&&(Razgon2XBEAR==true))

      {

         if((KolvoProbitMA>8)&&(KoeffYzkostMA<0.25))

         {

            //NaidenTochnySignal=true;

                  

            DrawRightLABEL(""'+ !",15,PozitionY,clrLime," "'+ ! !14");

         }

      }

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************    

   

   //******************************************************************************************************************

   //******************************************************************************************************************   

   

   //5A;8 =5 A@01>B0; =8 >48= 87 B>G=KE A83=0;>2

   if(NaidenTochnySignal==false)

   {

      DrawRightLABEL(""'+ !",15,PozitionY,clrYellow,""' !  ");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   //! ! !     

   NaidenSignOpenBEAR=false;   

   

   //! ! " %"/ +  "'+ ! " + !#

   if((NaidenTochnySignal==true)&&(Period()==PERIOD_M1))

   {

      NaidenSignOpenBEAR=true;

   }      

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " / ! !2

   PozitionY=NachalnySdvigSverxy+ShagNadpisPoVertikal;

   

   DrawRightLABEL("  ",15,PozitionY,clrMagenta,"  ,%  = "+DoubleToStr(NabrBallsBEAR,0));   

   

   //!   !""' '!" ,% " + !#   #

   if((NabrBallsBEAR>=TyngusBallOTKRYTM15)&&(Period()>=PERIOD_M15))

   {

      NaidenSignOpenBEAR=true;   

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   // !'"  "+   " / ! !1

   PozitionY=NachalnySdvigSverxy;   

   

   //+  -  "  (/   !'"# !   #

   if(NaidenSignOpenBEAR==true)

   {

      DrawRightLABEL(" !",15,PozitionY,clrLime,"% ( !   #");    

   }

   else

   {

      DrawRightLABEL(" !",15,PozitionY,clrOrange,"!   # "");

   }   

   

   //******************************************************************************************************************

   //******************************************************************************************************************

   

   return(NabrBallsBEAR);   

}

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================

//=====================================================================================================================



















































Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---