Author: Copyright © 2016 Tor
Orders Execution
Checks for the total of open ordersIt can change open orders parameters, due to possible stepping strategyIt automatically opens orders when conditions are reachedIt Closes Orders by itself
Miscellaneous
It issuies visual alerts to the screenIt writes information to fileIt opens Message Boxes to the userUses files from the file systemIt writes information to fileIt reads information from a file
0 Views
0 Downloads
0 Favorites
News_EA_3
ÿþ//+------------------------------------------------------------------+

//|                                                         news.mq4 |

//|                                             Copyright © 2016 Tor |

//|                                              http://einvestor.ru |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2016 Tor"

#property link      "http://einvestor.ru/"

#property version   "1.0"

#property description "This Expert Advisor loads the News from the site Investing.com without using .dll"

#property strict



input  int AfterNewsStop=5; // Indent after News, minuts BABC? ?>A;5 =>2>AB8, <8=CBK

input  int BeforeNewsStop=5; // Indent before News, minuts  BABC? ?5@54 =>2>ABO<8, <8=CBK

input bool NewsLight= false; // Enable light news

input bool NewsMedium=false; // Enable medium news

input bool NewsHard=true; // Enable hard news

input int  offset=3;     // Your Time Zone, GMT (for news)

input string NewsSymb=""; //Currency to display the news (empty - only the current currencies)  0;NB0 4;O >B>1@065=8O =>2>AB59 (?CAB> - B>;L:> B5:CI85 20;NBK)

input bool  DrawLines=true;       // Draw lines on the chart  0@8AC9B5 ;8=88 =0 3@0D8:5

input bool  Next           = false;      // Draw only the future of news line  0@8AC9B5 B>;L:> 1C4CI55 =>2>AB=>9 ;8=88

input bool  Signal         = false;      // Signals on the upcoming news  !83=0;K > ?@54AB>OI8E =>2>ABOE

input bool flagAlert=false;             // $;03 2KAB02;5=8O ;5@B>2

color highc          = clrRed;     // Colour important news

color mediumc        = clrBlue;    // Colour medium news

color lowc           = clrLime;    // The color of weak news

int   Style          = 2;          // Line style

int   Upd            = 86400;      // Period news updates in seconds



bool  Vhigh          = false;

bool  Vmedium        = false;

bool  Vlow           = false;

int   MinBefore=0;

int   MinAfter=0;



int NomNews=0;

string NewsArr[4][1000];

int Now=0;

datetime LastUpd;

string str1;

sinput string tt = "">@3>2K5 =0AB@>9:8";

extern double Lots=1; //@01>G89 ;>B

extern double Prots=0.07;    // @>F5=B A2>1>4=KE A@54AB2

extern int slippage =10;  //C@>25=L 4>?CAB8<>3> ?@>A:0;L7K20=8O - @5:2>B0 2 ?C=:B0E



extern int TakeProfit=500; //B59: ?@>D8B 2 ?C=:B0E

extern int StopLoss=200; //AB>? ;>AA 2 ?C=:B0E

extern int  Open_Level_St=100; //C@>25=L >B40;5=8O >B F5=K, =0 :>B>@>< AB028< AB>? >@45@0

extern int  Open_Level_Lim=200; //C@>25=L >B40;5=8O >B F5=K, =0 :>B>@>< AB028< ;8<8B=K5 >@45@0

extern int Tral_Stop=200;                        // 8AB. ?@5A;54>20=8O, B@59;8=3AB>?

extern int Tral_Profit=100;                        // 8AB. >B>42830=8O ?@>D8B0, B@59;8=3?@>D8B

extern double Ksl = 0.2; // >MDD8F85=B C<5=LH5=8O StopLoss, ?> <5@5 ?@81;865=8O : TakeProfit

// ?> D>@<C;5 4;O 09 SL = Bid - (Tral - 0.2(Bid - OrderOpenPrice()))

extern datetime Close_Time_EA=D'03.01.2019 13:00:00'; //2@5<O >:>=G0=8O @01>BK A>25B=8:0, 4>;6=> 1KBL 1>;LH5 B5:CI53> 2@5<5=8.

extern datetime Open_Time=D'03.01.2019 13:00:00'; //2@5<O >B:@KB8O >@45@>2, 4>;6=> 1KBL 1>;LH5 B5:CI53> 2@5<5=8.

extern int time_op = 600; // @5<O 687=8 =5>B:@KB>3> >@45@0 2 <8=CB0E, 4>;6=> 1KBL 1>;55 11 <8=CB.



extern int Magic=5345; //<038G5A:>5 G8A;> =0H8E >@45@>2



enum COMING

  {

   linear,

   dynamical,

  };

extern COMING coming=linear;

extern bool Open_Buy=false;  //0/5B @01>BK A buy->@45@0<8

extern bool Open_Sell=false; //0/5B @01>BK A sell->@45@0<8

extern bool Open_Buy_Limit=false;  //0/5B @01>BK A buy limit->@45@0<8

extern bool Open_Sell_Limit=false; //0/5B @01>BK A sell limit->@45@0<8

extern bool Open_Buy_Stop=True;  //0/5B @01>BK A buy stop->@45@0<8

extern bool Open_Sell_Stop=True; //0/5B @01>BK A sell stop->@45@0<8



datetime Close_Time=D'05.01.2019 15:00'; //2@5<O 70:@KB8O =5>B:@KBKE >@45@>2, ?5@5=07=0G05BAO time_op

datetime tx, txMd, txMar,tx1, tcl; //B5E=8G5A:85  ?5@5<5==K5 2@5<5=8



double

Lot,                             // >;8G. ;>B>2 2 2K1@0=.>@45@5

Lts,                             // >;8G. ;>B>2 2 >B:@K2.>@45@5

Min_Lot,                         // 8=8<0;L=>5 :>;8G5AB2> ;>B>2

Step,                            // (03 87<5=5=8O @07<5@0 ;>B0

Free,                            // "5:CI85 A2>1>4=K5 A@54AB20

One_Lot,                         // !B>8<>ABL >4=>3> ;>B0

Price,                           // &5=0 >B:@KB8O 2K1@0==>3> >@45@0

ClosePrice,                      // &5=0 70:@KB8O 2K1@0==>3> >@45@0

SL,                              // SL 2K1@0==>3> >@45@0

TP,                              // TP 2K1@0==>3> >@45@0

ProfB,                           // ?@>D8B 109 ?@8 >B:@KB>< >@45@5 109

ProfS,                           // ?@>D8B A5;; ?@8 >B:@KB>< >@45@5 A5;;

proft,                           // ?@>D8B ?@8 >B:@KB>< >@45@5

MxProfB,  MnProfB,               // 0:A8<0;L=9 ?@>D8B C1KB>: 109 ?@8 >B:@KB>< >@45@5 109

MxProfS,  MnProfS,               // 0:A8<0;L=K9 ?@>D8B 8 C1KB>: A5;; ?@8 >B:@KB>< >@45@5 A5;;

MaxAsk = 0, MinAsk = 1000,       // 0:A8<0;L=0O 8 <8=80;L=0O F5=0 ?@8 >B:@KB>< >@45@5 109

MinBid = 1000, MaxBid = 0,       // 8=8<0;L=0O  8 <0:A8<0;L=0O F5=0 ?@8 >B:@KB>< >@45@5 A5;;

kx = 50,                         // :>MD A@010BK20=8O 70:@KB8O >@45@0

point,                            // 1@0B=0O 25;8G8=0 Point

TSt,                             // !B0B8G5A:>5 7=0G5=85 B@59;8=3AB>?0 G5@57 DC=:F8N <8=8<0;L=KE C@>2=59 >@45@0.

TS,                              // 8=0<8G5A:>5 7=0G5=85 B@59;8=3AB>?0 G5@57 DC=:F8N <8=8<0;L=KE C@>2=59 >@45@0.

TT,                               // "@59;8=3?@>D8B G5@57 DC=:F8N <8=8<0;L=KE C@>2=59 >@45@0.

ChNw=0                              // "5E=8G5A:0O ?5@5<5==0O ?>O2;5=8O/8AG57=>25=8O =>2>AB8.

     ;



string

var1, Maxtm,Mintm,                // 2@5<O 2 B5:AB>2>< 2845, 2@5<O <0:A8<0;L=>3> 8 <8=8<0;L=>3> 10@0 ?> F5=5 70:@KB8O

      Symb;                            // A8<2>; 2K1@0==>3> >@45@0



int

flagNew=0,

sumNew=0,

flagMxn=-1,                         // D;03 ?>A;54=53> ?>2KH5=8O 8;8 ?>=865=8O <0:A, <8= F5=K 1 ?>2KH5=85, 0 ?>=865=85

cnt=0,                           // ><5@ >@45@0

Total=0,                           // >;8G5AB2> @K=>G=KE >@45@>2 2 >:=5

Tip=-1,                          // "8? 2K1@0=. >@45@0 (B=0,S=1 -1 =5B >@45@0)

Ticket=0,                          // "8:5B >@45@0 @K=>G=>3>, >= <>65B 1KBL B>;L:> >48=

Ticket0=0,                          // D;03 "8:5B0 >@45@0 09

Ticket1=0,                          // D;03 "8:5B0 >@45@0 !5;;

Ticket2=0,                          // D;03 "8:5B0 >@45@0 109;8<8B

Ticket3=0,                          // D;03 "8:5B0 >@45@0 A5;;;8<8B

Ticket4=0,                          // D;03 "8:5B0 >@45@0 109AB>?

Ticket5=0,                          // D;03 "8:5B0 >@45@0 A5;;AB>?



Or=-1,                           // !>AB>O=85 -1 =5B =0H8E >@45@>2, 645< A83=0;0 >B:@KB8O 109 8;8 A5;;,

// 0 >B:@KB >@45@ 109, 645< A83=0;0 70:@KB8O >@45@0 109,

// 1 >B:@KB >@45@ A5;;, 645< A83=0;8 70:@KB8O A5;;

OrBuySt=-1,                      // D;03 >B:@KB8O >B;>65==KE >@45@>2 Buy

OrSellSt=-1,                     // D;03 >B:@KB8O >B;>65==KE >@45@>2 !5;;

ClOr=-1,// !83=0; 70:@KB8O >@45@0 -1 =5B, 0 109, 1 A5;;



Handle ;                        // $09;>2K9 >?8A0B5;L

uint

Qnt_Symb;                          // >;8G5AB2> 70?8A0==KE A8<2.

string File_Name="QstrV.csv";        // <O D09;0





bool

Ans  =false,                     // B25B A5@25@0 ?>A;5 70:@KB8O, >B:@KB8O, <>48D8:0F88 >@45@0

Cls_B=false,                     // @8B5@89 4;O 70:@KB8O  Buy

Cls_S=false,                     // @8B5@89 4;O 70:@KB8O  Sell

Opn_B=false,                     // @8B5@89 4;O >B:@KB8O  Buy

Opn_S=false,                     // @8B5@89 4;O >B:@KB8O  Sell

Work=true,                       // @8B5@89 @01>BK, 5A;8 :@8B8G5A:0O >H81:0 8;8 :>;8G5AB2> =0H8E >@45@>2 1>;55 1

End=false,                       // @8B5@89 7025@H5=8O @01>BK, ?>A;5 70:@KB8O @K=>G=>3> >@45@0

OpnOr=false,                     // $;03 2KAB02;5=8O >@45@>2

OpnMarketOrder=false,            // $;03 >1@07>20=8O @K=>G=>3> >@45@0

AlertEnd=false,                  // $;03 ;5@B0 7025@H5=8O @01>BK, ?>A;5 70:@KB8O @K=>G=>3> >@45@0

AlertWork=false;                 // $;03 ;5@B0 :@8B8G5A:>9 >H81:8, GB> 1K =5 ?;>48BL 0;5@BK =0 :064>< B8:5





bool sel=false;                  // B25B OrderSelect

bool Modify=false;

string Text="";



//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  {



   if(StringLen(NewsSymb)>1)

      str1=NewsSymb;

   else

      str1=Symbol();



   Vhigh=NewsHard;

   Vmedium=NewsMedium;

   Vlow=NewsLight;



   MinBefore=BeforeNewsStop;

   MinAfter=AfterNewsStop;







   tx=TimeCurrent();// 7040=85 2@5<5=8 =0G0;0 @01>BK A>25B=8:0



   Countinit();// DC=:F8O ?>4AG5B0 >B:@KBKE, >B;>65==KE >@45@>2 8 ?>8A: A =0H8< <038:, 5A;8 5ABL, =5 @01>B05<



   if(Close_Time_EA != D'03.01.2019 13:00:00' && Close_Time_EA < tx)

     {

      Work = false;

      Alert("@5<O >:>=G0=8O @01>BK M:A?5@B0 <5=LH5 B5:CI53>. -:A?5@B =5 @01>B05B.");

     }



   if(time_op < 11)

     {

      Work = false;

      Alert("@5<O 687=8 >B;>65==KE >@45@>2 4>;6=> 1KBL 1>;55 11 <8=CB. -:A?5@B =5 @01>B05B.");

     }

   if(Open_Sell==True && Open_Buy==True)

     {

      Work = false;

      Alert("4=>2@5<5==>5 >B:@KB85 @K=>G=KE >@45@>2 Sell 8 Buy =5 @07@5H5=>. -:A?5@B =5 @01>B05B.");

     }



   if((Open_Sell==True && (Open_Sell_Limit==True || Open_Sell_Stop==True ||Open_Buy_Limit==True  || Open_Buy_Stop==True))

      || (Open_Buy==True && (Open_Sell_Limit==True || Open_Sell_Stop==True ||Open_Buy_Limit==True  || Open_Buy_Stop==True)))

     {

      Work = false;

      Alert("4=>2@5<5==>5 >B:@KB85 @K=>G=>3> >@45@0 8 >B;>65==>3> 8;8 ;8<8B=>3> =5 @07@5H5=>. -:A?5@B =5 @01>B05B.");

     }



   FileTest();   // DC=:F8O >B:@KB8O D09;0 70?8A8 40==KE

   Symb=Symbol();

   point = 1/Point; // GB>1K =5 45;8BL =0 ?>9=B

   var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);

   Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period()," 0G0;> @01>BK A>25B=8:0"); //0?8AL 2 D09;

   if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     };



   if(MQLInfoInteger(MQL_TESTER) == true)

     {

      Alert("=8=8B 2KAB02;5=85 >@45@0.");



      Close_Time = tx + 60*time_op; // @5<O 70:@KB8O >B;>65==KE, ;8<8B=KE =5>B:@KBKE >@45@>2.



      if(!CheckMoneyForTrade())

         return(INIT_SUCCEEDED);



      OpenOrder();

      OpnOr=true;

      //   Or=-1;

     }



//---

   return(INIT_SUCCEEDED);

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

   ObjectsDeleteAll(0,OBJ_VLINE);



   FileClose(Handle);                  // 0:@K205< D09;

   Alert("$09; ",File_Name," 70:@KB.");// !>>1I5=85



  }

//+------------------------------------------------------------------+

//| Expert tick function                                             |

//+------------------------------------------------------------------+

void OnTick()

  {

//   Alert(">2K9 B8: ",Work);

//---

   if(Work==false) // @8B8G5A:0O >H81:0

     {

      if(AlertWork==false)   // A;8 ;5@B0 5I5 =5 1K;>

        {  Alert("@8B8G5A:0O >H81:0. -:A?5@B =5 @01>B05B."); AlertWork=true; }

      return;

     }                                  // KE>4 87 start()

   if(Close_Time_EA != D'03.01.2019 13:00:00' && TimeCurrent() > Close_Time_EA)

     {

      End=true;



      if(AlertEnd==false)   // A;8 ;5@B0 5I5 =5 1K;>



         Alert("@5<O >:>=G0=8O @01>BK M:A?5@B0 =0ABC?8;>. -:A?5@B =5 @01>B05B.");

     }



   if(End==true) //  01>B0 7025@H5=0

     {

      if(AlertEnd==false)   // A;8 ;5@B0 5I5 =5 1K;>

        {  Alert(" 01>B0 M:A?5@B0 7025@H5=0. @81K;L/C1KB>: = ",OrderProfit()); AlertEnd=true; }

      return; // KE>4 87 start()

     }

   bool flagAlertF = false;

   datetime tm=TimeCurrent();

   if(tx!=tm && tm>=tx+100)

     {tx=tm; flagAlertF = true;}



   var1=TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS);



   if(OpnOr==true && Or>1)

     {



      if(flagAlert == true && flagAlertF == true)

         Alert("@>25@O5< AB>? >@45@0 -  "," OpnOr= ",OpnOr," Or= ",Or," flagNew= ",flagNew," ChNw= ",ChNw) ;





      CountMarketOrder();// DC=:F8O ?>4AG5B0 @K=>G=KE >@45@>2 A =0H8< <038:

      if(flagAlert == true && flagAlertF == true)

         Alert(">A;5 ?@>25@:8 @K=>G=KE >@45@>2"," OpnOr= ",OpnOr," Or= ",Or," flagNew= ",flagNew," ChNw= ",ChNw) ;



     }



   if(Or==0 || Or==1)  // 5A;8 @K=>G=K9 >@45@ 1K; 2KAB02;5= 8 602

     {



      if(flagAlert == true && flagAlertF == true)

         Alert("@>25@O5< 70:@KB85 @K=>G=>3> >@45@0 ", Text," Ticket= ", Ticket,". OrderClosePrice()..",OrderClosePrice());





      if(OrderSelect(Ticket, SELECT_BY_TICKET)==true)

        {

         if(OrderCloseTime()==0)              // A;8 =0H @K=>G=K9 >@45@ =5 70:@KB

           {

            if(flagAlert == true && flagAlertF == true)

               Alert("0H @K=>G=K9 >@45@ 682, >48D8F8@C5< 53> 5A;8 =C6=> ", Text,Ticket,". 4Q< >B25B..");



            ModifyTral(); // >48D8F8@C5< 5A;8 =C6=>

           }

         if(OrderCloseTime()!=0)              // A;8 =0H @K=>G=K9 >@45@ 70:@K;AO

           {

            OpnOr=false;

            Ticket=0;                          // "8:5B >@45@0 @K=>G=>3>, >= <>65B 1KBL B>;L:> >48=

            Ticket0=0;                         // D;03 "8:5B0 >@45@0 09

            Ticket1=0;                          // D;03 "8:5B0 >@45@0 !5;;

            Ticket2=0;                          // D;03 "8:5B0 >@45@0 109;8<8B

            Ticket3=0;                          // D;03 "8:5B0 >@45@0 A5;;;8<8B

            Ticket4=0;                          // D;03 "8:5B0 >@45@0 109AB>?

            Ticket5=0;                          // D;03 "8:5B0 >@45@0 A5;;AB>?

            Or=-1;

            Alert("0H @K=>G=K9 >@45@ 70:@K;AO.  01>B0 !>25B=8:0 ?@>4>;605BAO ","@81K;L/C1KB>: = ",OrderProfit(),

                  " !2>? = ", OrderSwap(), " ><8AA8O = ", OrderCommission());

            Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),

                               "0H @K=>G=K9 >@45@ 70:@K;AO.  01>B0 !>25B=8:0 ?@>4>;605BAO ","@81K;L/C1KB>: = ",OrderProfit(),

                               " !2>? = ", OrderSwap(), " ><8AA8O = ", OrderCommission());//0?8AL 2 D09;

            if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };



            return;

           }

        }

      else

        { Alert("OrderSelect() =0H53> @K=>G=>3> >@45@0 25@=C; >H81:C - ",GetLastError()); return;}

     }







   double CheckNews=0;

   if(AfterNewsStop>0)

     {

      if(TimeCurrent()-LastUpd>=Upd)

        {

         Comment("News Loading...");

         //        Print("News Loading...");

         UpdateNews();

         LastUpd=TimeCurrent();

         Comment("");

        }

      WindowRedraw();

      //---Draw a line on the chart news 0@8AC9B5 ;8=8N =0 3@0D8:5 =>2>AB8--------------------------------------------

      if(DrawLines)

        {

         for(int i=0; i<NomNews; i++)

           {

            string Name=StringSubstr(TimeToStr(TimeNewsFunck(i),TIME_MINUTES)+"_"+NewsArr[1][i]+"_"+NewsArr[3][i],0,63);

            if(NewsArr[3][i]!="")

               if(ObjectFind(Name)==0)

                  continue;

            if(StringFind(str1,NewsArr[1][i])<0)

               continue;

            if(TimeNewsFunck(i)<TimeCurrent() && Next)

               continue;



            color clrf = clrNONE;

            if(Vhigh && StringFind(NewsArr[2][i],"High")>=0)

               clrf=highc;

            if(Vmedium && StringFind(NewsArr[2][i],"Moderate")>=0)

               clrf=mediumc;

            if(Vlow && StringFind(NewsArr[2][i],"Low")>=0)

               clrf=lowc;



            if(clrf==clrNONE)

               continue;



            if(NewsArr[3][i]!="")

              {

               ObjectCreate(Name,0,OBJ_VLINE,TimeNewsFunck(i),0);

               ObjectSet(Name,OBJPROP_COLOR,clrf);

               ObjectSet(Name,OBJPROP_STYLE,Style);

               ObjectSetInteger(0,Name,OBJPROP_BACK,true);

              }

           }

        }

      //---------------event Processing >1@01>B:0 A>1KB89------------------------------------

      int i;

      CheckNews=0;

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

        {

         int power=0;

         if(Vhigh && StringFind(NewsArr[2][i],"High")>=0)

            power=1;

         if(Vmedium && StringFind(NewsArr[2][i],"Moderate")>=0)

            power=2;

         if(Vlow && StringFind(NewsArr[2][i],"Low")>=0)

            power=3;

         if(power==0)

            continue;

         if(TimeCurrent()+MinBefore*60>TimeNewsFunck(i) && TimeCurrent()-MinAfter*60<TimeNewsFunck(i) && StringFind(str1,NewsArr[1][i])>=0)

           {

            CheckNews=1;

            break;

           }

         else

            CheckNews=0;



        }

      if(CheckNews==1 && i!=Now && Signal)

        {

         Alert("In ",(int)(TimeNewsFunck(i)-TimeCurrent())/60," minutes released news ",NewsArr[1][i],"_",NewsArr[3][i]);

         Now=i;

        }

      /***  ***/

     }



   if(CheckNews>0)

     {

      /////  We are doing here if we are in the framework of the news K 45;05< MB> 745AL, 5A;8 =0E>48<AO 2 @0<:0E =>2>AB59

      Comment("News time"," sumNew= ",sumNew," OpnOr= ",OpnOr,"Or= ",Or," CheckNews= ",CheckNews," ChNw= ",ChNw);

      if(OpnOr==false)

        {

         Alert("@5<O 2KAB02;5=8O >@45@>2 -  "," OpnOr= ",OpnOr," Or= ",Or," sumNew= ",sumNew," ChNw= ",ChNw," CheckNews= ",CheckNews) ;

         if(!CheckMoneyForTrade())

            return;

         Close_Time = TimeCurrent() + 60*time_op;

         OpenOrder();

         OpnOr=true;

         sumNew++;

         ChNw = 1;

        }



      if(ChNw==0 && OpnOr==true)

        {



         Alert("1 flagNew -  ",flagNew,"ChNw - ",ChNw," CheckNews= ",CheckNews," sumNew= ",sumNew) ;

         if(Or>1)

           {

            Alert("#40;O5< =5>B:@KBK5 AB>? >@45@0"," OpnOr= ",OpnOr," Or= ",Or," flagNew= ",flagNew," ChNw= ",ChNw) ;

            DeleteOrder();

            OpnOr=false;

           }

         if((Or==0 || Or==1)&& ProfBS(Or)< TakeProfit/4)

           {

            Alert("0:@K205< =5 ?@>D8B=K5 >@45@0 "," OpnOr= ",OpnOr,"Or= ",Or," ProfBS(Or)= ",ProfBS(Or)," TakeProfit= ",TakeProfit) ;

            CloseOr();

            OpnOr=false;

           }

        }



      ChNw = 1;

     }

   else

     {

      // We are out of scope of the news release (No News) K =0E>48<AO 2=5 AD5@K 459AB28O ?@5AA-@5;870 (=5B >2>AB59)

      Comment("No news"," sumNew= ",sumNew," OpnOr= ",OpnOr,"Or= ",Or," flagAlert= ",flagAlert," ChNw= ",ChNw);

      ChNw = 0;

     }





   if(flagAlert == true && flagAlertF == true)

      Alert(" :>=F5 ="8: "," ChNw = ",ChNw," CheckNews= ",CheckNews," sumNew= ",sumNew) ;



  }

//+------------------------------------------------------------------+

//////////////////////////////////////////////////////////////////////////////////

// Download CBOE page source code in a text variable !:0G0BL 8AE>4=K9 :>4 AB@0=8FK CBOE 2 B5:AB>2>9 ?5@5<5==>9

// And returns the result                              2>72@0I05B @57C;LB0B

//////////////////////////////////////////////////////////////////////////////////

string ReadCBOE()

  {



   string cookie=NULL,headers;

   char post[],result[];

   string TXT="";

   int res;

//--- to work with the server, you must add the URL "https://www.google.com/finance"  4;O @01>BK A A5@25@>< =5>1E>48<> 4>1028BL URL-04@5A "https://www.google.com/finance"

//--- the list of allowed URL (Main menu-> Tools-> Settings tab "Advisors"):  A?8A>: @07@5H5==KE URL-04@5A>2 (3;02=>5 <5=N - > !5@28A - > 2:;04:0 =0AB@>5: " A>25B=8:8"):

   string google_url="http://ec.forexprostools.com/?columns=exc_currency,exc_importance&importance=1,2,3&calType=week&timeZone=15&lang=1";

//---

   ResetLastError();

//--- download html-pages // - - - A:0G0BL html-AB@0=8FK

   int timeout=5000; //--- timeout less than 1,000 (1 sec.) is insufficient at a low speed of the Internet B09<-0CB <5=55 1000 (1 A5:.) =54>AB0B>G5= ?@8 =87:>9 A:>@>AB8 8=B5@=5B0

   res=WebRequest("GET",google_url,cookie,NULL,timeout,post,0,result,headers);

//--- error checking //--- ?@>25@:0 >H81>:

   if(res==-1)

     {

      Print("WebRequest error, err.code  =",GetLastError());

      MessageBox("You must add the address ' "+google_url+"' in the list of allowed URL tab 'Advisors' "," Error ",MB_ICONINFORMATION);

      //--- You must add the address ' "+ google url"' in the list of allowed URL tab 'Advisors' "," Error "  You must add the address ' "+ google url"' in the list of allowed URL tab 'Advisors' "," Error "

     }

   else

     {

      //--- successful download //- - - CA?5H=0O 703@C7:0

      //PrintFormat("File successfully downloaded, the file size in bytes  =%d.",ArraySize(result));

      //--- save the data in the file   A>E@0=8B5 40==K5 2 D09;5

      int filehandle=FileOpen("news-log.html",FILE_WRITE|FILE_BIN);

      //--- ?@>25@:0 >H81:8

      if(filehandle!=INVALID_HANDLE)

        {

         //---save the contents of the array result [] in file  A>E@0=8B5 A>45@68<>5 <0AA820 result [] 2 D09;5

         FileWriteArray(filehandle,result,0,ArraySize(result));

         //--- close file

         FileClose(filehandle);



         int filehandle2=FileOpen("news-log.html",FILE_READ|FILE_BIN);

         TXT=FileReadString(filehandle2,ArraySize(result));

         FileClose(filehandle2);

        }

      else

        {

         Print("Error in FileOpen. Error code =",GetLastError());

        }

     }



   return(TXT);

  }

//+------------------------------------------------------------------+

datetime TimeNewsFunck(int nomf)

  {

   string s=NewsArr[0][nomf];

   string time=StringConcatenate(StringSubstr(s,0,4),".",StringSubstr(s,5,2),".",StringSubstr(s,8,2)," ",StringSubstr(s,11,2),":",StringSubstr(s,14,4));

   return((datetime)(StringToTime(time) + offset*3600));

  }

//////////////////////////////////////////////////////////////////////////////////

void UpdateNews()

  {

   string TEXT=ReadCBOE();

   int sh = StringFind(TEXT,"pageStartAt>")+12;

   int sh2= StringFind(TEXT,"</tbody>");

   TEXT=StringSubstr(TEXT,sh,sh2-sh);



   sh=0;

   while(!IsStopped())

     {

      sh = StringFind(TEXT,"event_timestamp",sh)+17;

      sh2= StringFind(TEXT,"onclick",sh)-2;

      if(sh<17 || sh2<0)

         break;

      NewsArr[0][NomNews]=StringSubstr(TEXT,sh,sh2-sh);



      sh = StringFind(TEXT,"flagCur",sh)+10;

      sh2= sh+3;

      if(sh<10 || sh2<3)

         break;

      NewsArr[1][NomNews]=StringSubstr(TEXT,sh,sh2-sh);

      if(StringFind(str1,NewsArr[1][NomNews])<0)

         continue;



      sh = StringFind(TEXT,"title",sh)+7;

      sh2= StringFind(TEXT,"Volatility",sh)-1;

      if(sh<7 || sh2<0)

         break;

      NewsArr[2][NomNews]=StringSubstr(TEXT,sh,sh2-sh);

      if(StringFind(NewsArr[2][NomNews],"High")>=0 && !Vhigh)

         continue;

      if(StringFind(NewsArr[2][NomNews],"Moderate")>=0 && !Vmedium)

         continue;

      if(StringFind(NewsArr[2][NomNews],"Low")>=0 && !Vlow)

         continue;



      sh=StringFind(TEXT,"left event",sh)+12;

      int sh1=StringFind(TEXT,"Speaks",sh);

      sh2=StringFind(TEXT,"<",sh);

      if(sh<12 || sh2<0)

         break;

      if(sh1<0 || sh1>sh2)

         NewsArr[3][NomNews]=StringSubstr(TEXT,sh,sh2-sh);

      else

         NewsArr[3][NomNews]=StringSubstr(TEXT,sh,sh1-sh);



      NomNews++;

      if(NomNews==300)

         break;

     }

  }

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+



//+------------------------------------------------------------------+

int Countinit() // !G5BG8: >@45@>2 ?@8 8=8F80;870F88, >72@0I05B :>;8G5AB2> >@45@>2 A =0H8< <038:

  {



   int Totalin=0;

   for(int cin=0; cin<OrdersTotal(); cin++)

     {

      if(sel=OrderSelect(cin,SELECT_BY_POS,MODE_TRADES))

        {

         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)

            Totalin++;

        }

     }

   if(Totalin>0) // 8 >4=>3> >@45@0 A =0H8< <038: 2 =0G0;5 @01>BK M:A?5@B0

     {

      Alert(">;8G5AB2> >@45@>2 A =0H8< <038: = ",Totalin," ><5=O9B5 <038: 8;8 C40;8B5 >@45@0. -:A?5@B =5 @01>B05B.");

      Comment("I81:0 - :>;8G5AB2> >@45@>2 A =0H8< 038: = ",Totalin);

      Work=false;



      return(Totalin);                             // KE>4 87 Countinit()

     }

   Work=true;

   return(Totalin);

  }

//+------------------------------------------------------------------+

//|>=5F ?>4AG5B0 >@45@>2 ?@8 8=8F80;870F88 M:A?5@B0                 |

//+------------------------------------------------------------------+









//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

bool ModifyTral()                                     // "@59;8=3 >@45@0

  {

   datetime tmMd=TimeCurrent();

   bool flagAlertF = False;

   if(txMd!=tmMd && tmMd>=txMd+100)

     {

      txMd=tmMd;

      flagAlertF = True;

     }



   if(flagAlert == True && flagAlertF == True)

      Alert(">48D8:0F8O  ModifyTral() 0G0;0AL", Text,Ticket,". 4Q< >B25B..");

//------------------------------------------------------ 3 --

   TSt=New_Stop(Tral_Stop) ;                // 5A;8 B@0; AB>?0 <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

   TS=New_Stop(Tral_Stop);                  // 8=0<8G5A:>5 7=0G5=85 B@59;8=3AB>?0

   TT=New_Stop(Tral_Profit) ;                // 5A;8 B@0; ?@>D8B0 <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

   while(true)                            // &8:; <>48D8:0F88

     {



      //--------------------------------------------------- 4 --

      Modify=false;                  // 5 =07=0G5= : <>48D8

      switch(Tip)                         // > B8?C >@45@0

        {

         case 0 :                         // @45@ Buy

            if(coming==linear)

              {

               TS = round((TSt-Ksl*(Bid-Price)*point));

               TS=New_Stop(TS) ;                         // @>25@O5< =0 <8=8<0;L=> 4>?CAB8<K5 7=0G5=8O

              }

            if(coming==dynamical)

              {

               TS = round((TS-Ksl*(Bid-Price)*point));

               TS=New_Stop(TS) ;

              }

            if(NormalizeDouble(SL,Digits)<  // A;8 =865 65;05<.

               NormalizeDouble(Bid-(TS*Point),Digits)) // 5A;8 SL >:065BAO <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

              {

               SL=Bid-(TS*Point);           // B> <>48D8F8@C5< 53>

               if(flagAlert == True && flagAlertF == True)

                  Alert("TS = ",TS," Bid -  Price =",(Bid-Price)*point);

               Text="Buy ";        // "5:AB 4;O Buy

               Modify=true;               // 07=0G5= : <>48D8.

               TP    =OrderTakeProfit();

               if(TP<Bid+TT*Point)

                  TP=Bid+TT*Point;

              }

            break;                        // KE>4 87 switch

         case 1 :                         // @45@ Sell

            if(coming==linear)

              {

               TS = round((TSt-Ksl*(Price-Ask)*point));

               TS=New_Stop(TS) ;

              }

            if(coming==dynamical)

              {

               TS = round((TS-Ksl*(Price-Ask)*point));

               TS=New_Stop(TS) ;

              }

            if(NormalizeDouble(SL,Digits)>  // A;8 2KH5 65;05<.

               NormalizeDouble(Ask+(TS*Point),Digits)

               || NormalizeDouble(SL,Digits)==0)//8;8 @02=> =C;N

              {

               SL=Ask+(TS*Point);           // B> <>48D8F8@C5< 53>

               // 5A;8 SL >:065BAO <5=LH5 4>?CAB8<>3>, C25;8G8< 53>.

               if(flagAlert == True && flagAlertF == True)

                  Alert("TS = ",TS," Price - Ask =",(Price - Ask)*point);

               Text="Sell ";              // "5:AB 4;O Sell

               Modify=true;               // 07=0G5= : <>48D8.

               TP    =OrderTakeProfit();

               if(TP>Ask-TT*Point)

                  TP=Ask-TT*Point;



              }

        }                                 // >=5F switch

      if(Modify==false)                   // A;8 53> =5 <>48D8

        {

         if(flagAlert == True && flagAlertF == True)

            Alert(">48D8:0F8O =5 =C6=0 ", Text,Ticket,". KE>4 1@59:..");

         break;

        }

      // KE>4 87 while

      //--------------------------------------------------- 5 --

      //     TP    =OrderTakeProfit();    // TP 2K1@0==>3> >@4. 70:><<5=B8@>20=0, B.:. C =0A 48=0<8G5A:89 B@59;8=3?@>D8B

      Price =OrderOpenPrice();     // &5=0 2K1@0==. >@4.

      Ticket=OrderTicket();        // ><5@ 2K1@0==. >@4.

      if(flagAlert == True && flagAlertF == True)

         Alert(">48D8:0F8O ", Text,Ticket,". 4Q< >B25B..");

      Ans=OrderModify(Ticket,Price,SL,TP,0);//>48D8 53>!

      //--------------------------------------------------- 6 --

      if(Ans==true)                       // >;CG8;>AL :)

        {

         if(flagAlert == True && flagAlertF == True)

            Alert("@45@ ",Text,Ticket," <>48D8F8@>20=:)");

         break;                           // 7 F8:;0 <>48D8.

        }

      //--------------------------------------------------- 7 --

      if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

         continue;                           // >2B>@=0O ?>?KB:0

      break;                              // 7 F8:;0 <>48D8.

     }                                    // >=5F F8:;0 <>48D8.

//------------------------------------------------------ 8 --



//--------------------------------------------------------------- 9 --

   return(Modify);                                     // KE>4 87 ModifyTral()

  }







//-------------------------------------------------------------- 10 --

int Fun_Error(int Error) // $-8O >1@01>B >H81>:

  {

   switch(Error)

     {

      // @5>4>;8<K5 >H81:8

      case  4:

         Alert("">@3>2K9 A5@25@ 70=OB. @>1C5< 5IQ @07..");

         Sleep(3000);                           // @>AB>5 @5H5=85

         return(1);                             // KE>4 87 DC=:F88

      case 129:

         Alert("5?@028;L=0O F5=0. @>1C5< 5IQ @07..");

         RefreshRates();                     // 1=>28< 40==K5

         return(1);                             // KE>4 87 DC=:F88

      case 130:

         Alert("5?@028;L=K5 AB>?K. @>1C5< 5IQ @07.");

         RefreshRates();               // 1=>28< 40==K5

         return(1);                             // KE>4 87 DC=:F88

      case 135:

         Alert("&5=0 87<5=8;0AL. @>1C5< 5IQ @07..");

         RefreshRates();                        // 1=>28< 40==K5

         return(1);                             // KE>4 87 DC=:F88

      case 136:

         Alert("5B F5=. 4Q< =>2K9 B8:..");

         while(RefreshRates()==false)           // > =>2>3> B8:0

            Sleep(1);                           // 045@6:0 2 F8:;5

         return(1);                             // KE>4 87 DC=:F88

      case 137:

         Alert("@>:5@ 70=OB. @>1C5< 5IQ @07..");

         Sleep(3000);                           // @>AB>5 @5H5=85

         return(1);                             // KE>4 87 DC=:F88

      case 146:

         Alert(">4A8AB5<0 B>@3>2;8 70=OB0. @>1C5< 5IQ..");

         Sleep(500);                            // @>AB>5 @5H5=85

         return(1);                             // KE>4 87 DC=:F88

      // @8B8G5A:85 >H81:8

      case  2:

         Alert("1I0O >H81:0.");

         Work=false;

         return(0);                             // KE>4 87 DC=:F88

      case  3:

         Work=false;

         Alert("5?@028;L=K5 @5:2878BK DC=:F88.", Work);

         return(0);                             // KE>4 87 DC=:F88

      case  5:

         Alert("!B0@0O 25@A8O B5@<8=0;0.");

         Work=false;                            // >;LH5 =5 @01>B0BL

         return(0);                             // KE>4 87 DC=:F88

      case 64:

         Alert("!G5B 701;>:8@>20=.");

         Work=false;                            // >;LH5 =5 @01>B0BL

         return(0);                             // KE>4 87 DC=:F88

      case 133:

         Alert("">@3>2;O 70?@5I5=0.");

         return(0);                             // KE>4 87 DC=:F88

      case 134:

         Alert("54>AB0B>G=> 45=53 4;O A>25@H5=8O >?5@0F88.");

         Work=false;

         return(0);                             // KE>4 87 DC=:F88

      case 139:

         Alert("@45@ 701;>:8@>20= 8 C65 >1@010BK205BAO");

         Work=false;

         return(0);                             // KE>4 87 DC=:F88

      case 4109:

         Alert(" ">@3>2;O =5 @07@5H5=0. 5>1E>48<> 2:;NG8BL >?F8N - 07@5H8BL A>25B=8:C B>@3>20BL- 2 A2>9AB20E M:A?5@B0");

         Work=false;

         return(0);                             // KE>4 87 DC=:F88

      default:

         Alert(">7=8:;0 >H81:0 ",Error); // @C385 20@80=BK

         Work=false;

         return(0);                             // KE>4 87 DC=:F88

     }

  }

//-------------------------------------------------------------- 11 --

//-------------------------------------------------------------- 11 --

double New_Stop(double Parametr) // @>25@:0 AB>?-?@8:.

  {

   double Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// 8=8<. 48AB0=F8O

   if(Parametr<Min_Dist) // A;8 <5=LH5 4>?CAB.

     {

      Parametr=Min_Dist;                        // #AB0=>28< 4>?CAB.

      Alert("#25;8G5=0 48AB0=F8O AB>?-?@8:070 8;8 F5=K >B:@KB8O >B;>65==KE >@45@>2.");

     }

   return(Parametr);                            // >72@0B 7=0G5=8O

  }

//-------------------------------------------------------------- 12 --



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

void OpenOrder() // DC=:F8O >B:@KB8O >@45@>2

  {

   Alert("0G8=05< >B:@K20BL @45@0 "," "ime ",var1," Ticket = ",Ticket, "Or = ",Or,"SL = ",SL,"TP = ",TP,"Lts = ",Lts);

// CheckMoneyForTrade();



   if(Open_Buy)

     {

      while(true) // &8:; >B:@KB8O >@45@0 109.

        {

         if(Ticket0==0) // B:@KBKE >@4. =5B +

           {

            RefreshRates();                        // 1=>2;5=85 40==KE

            SL=Bid - New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@.

            TP=Bid + New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@.

            Alert(">?KB:0 >B:@KBL Buy 6840=85 >B25B0..","SL = ",SL,"TP = ",TP,"Lts = ",Lts);

            Ticket0=OrderSend(Symb,OP_BUY,Lts,Ask,slippage,SL,TP,"QstrBuy",Magic,0,Blue);//B:@KB85 Buy

            if(Ticket0>0) // >;CG8;>AL :)

              {

               Alert(Symbol()," "ime ",var1,"B:@KB >@45@ Buy ?> F5=5 ",Ask,"Ticket0 = ",Ticket0);

               Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period()," B:@KB >@45@ Buy ?> F5=5 "

                                  ,Price,"Ticket0 = ",Ticket0);//0?8AL 2 D09;

               if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

                 {

                  Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

                 };

               Or=0;

               break;

              }

            if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

               continue;                           // >2B>@=0O ?>?KB:0

           }

         break;                                    // KE>4 87 while

        }



     }



   if(Open_Sell)

     {

      while(true) // &8:; >B:@KB8O >@45@0 Sell.

        {

         if(Ticket1==0) // B:@KBKE >@4. =5B +

           {

            // :@8B5@89 >B:@. Buy

            RefreshRates();                        // 1=>2;5=85 40==KE

            SL=Ask + New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@.

            TP=Ask - New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@.

            Alert(">?KB:0 >B:@KBL Sell 6840=85 >B25B0..","SL = ",SL,"TP = ",TP,"Lts = ",Lts);

            Ticket1=OrderSend(Symb,OP_SELL,Lts,Bid,slippage,SL,TP,"QstrSell",Magic,0,Blue);//B:@KB85 Sell

            if(Ticket1>0) // >;CG8;>AL :)

              {

               Alert(Symbol()," "ime ",var1,"B:@KB >@45@ Sell ?> F5=5 ",Bid,"Ticket1 = ",Ticket1);

               Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period()," B:@KB >@45@ Sell ?> F5=5 "

                                  ,Price,"Ticket1 = ",Ticket1);//0?8AL 2 D09;

               if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

                 {

                  Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

                 };

               Or=1;

               break;

              }

            if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

               continue;                           // >2B>@=0O ?>?KB:0

           }

         break;                                    // KE>4 87 while

        }





     }



   if(Open_Buy_Limit)

     {



      while(true) // &8:; >B:@KB8O >@45@0 BuyLimit

        {

         if(Ticket2==0) // B:@KBKE >@4. =5B

           {

            RefreshRates();                        // 1=>2;5=85 40==KE

            SL=Bid-New_Stop(Open_Level_Lim)*Point - New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@.

            TP=Bid-New_Stop(Open_Level_Lim)*Point+ New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@.

            Price=Ask-New_Stop(Open_Level_Lim)*Point;

            Alert(">?KB:0 >B:@KBL BuyLimit 6840=85 >B25B0..");

            Ticket2=OrderSend(Symb, OP_BUYLIMIT,Lts,Price,slippage,SL,TP,"QstrBuyLimit",Magic,Close_Time,Blue);//B:@KB85 BuyLimit

            if(Ticket2>0) // >;CG8;>AL :)

              {

               Alert(Symbol()," "ime ",var1,"B:@KB >@45@ BuyLimit ?> F5=5 ",Price,"Ticket2 = ",Ticket2);

               Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period()," B:@KB >@45@ BuyStop ?> F5=5 "

                                  ,Price,"Ticket2 = ",Ticket2);//0?8AL 2 D09;

               if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

                 {

                  Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

                 };

               Or=2;

               break;

              }

            if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

               continue;                           // >2B>@=0O ?>?KB:0

           }

         break;                                    // KE>4 87 while

        }





     }



   if(Open_Sell_Limit)

     {









      while(true) // &8:; >B:@KB8O >@45@0 SellLimit.

        {

         if(Ticket3==0) // B:@KBKE >@4. =5B +

           {

            RefreshRates();                        // 1=>2;5=85 40==KE



            SL=Ask+New_Stop(Open_Level_Lim)*Point + New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@.

            TP=Ask+New_Stop(Open_Level_Lim)*Point- New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@

            Price=Bid+New_Stop(Open_Level_Lim)*Point;

            Alert(">?KB:0 >B:@KBL SellLimit 6840=85 >B25B0..");

            Ticket3=OrderSend(Symb, OP_SELLLIMIT,Lts,Price,slippage,SL,TP,"QstrSellLimit",Magic,Close_Time,Blue);//B:@KB85 SellLimit.

            if(Ticket3>0) // >;CG8;>AL :)

              {

               Alert(Symbol()," "ime ",var1,"B:@KB >@45@ SellLimit ?> F5=5 ",Price,"Ticket3 = ",Ticket3);

               Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period()," B:@KB >@45@ SellLimit ?> F5=5 "

                                  ,Price,"Ticket3 = ",Ticket3);//0?8AL 2 D09;

               if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

                 {

                  Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

                 };

               Or=3;

               break;

              }

            if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

               continue;                           // >2B>@=0O ?>?KB:0

           }

         break;                                    // KE>4 87 while

        }



     }



   if(Open_Buy_Stop)

     {



      while(true) // &8:; >B:@KB8O >@45@0 BuyStop.

        {

         if(Ticket4==0) // B:@KBKE >@4. =5B +

           {

            RefreshRates();                        // 1=>2;5=85 40==KE

            SL=Bid+New_Stop(Open_Level_St)*Point - New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@.

            TP=Bid+New_Stop(Open_Level_St)*Point+ New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@

            Price=Ask+New_Stop(Open_Level_St)*Point;



            Alert(">?KB:0 >B:@KBL BuyStop. 6840=85 >B25B0..","SL = ",SL,"TP = ",TP,"Lts = ",Lts);

            Ticket4=OrderSend(Symb, OP_BUYSTOP,Lts,Price,slippage,SL,TP,"QstrBuyStop",Magic,Close_Time,Blue);//B:@KB85 BuyStop.

            if(Ticket4>0) // >;CG8;>AL :)

              {

               Alert(Symbol()," "ime ",var1,"B:@KB >@45@ BuyStop ?> F5=5 ",Price,"Ticket4 = ",Ticket4);

               Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period()," B:@KB >@45@ BuyStop ?> F5=5 "

                                  ,Price,"Ticket4 = ",Ticket4);//0?8AL 2 D09;

               if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

                 {

                  Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

                 };

               Or=4;

               break;

              }

            if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

               continue;                           // >2B>@=0O ?>?KB:0

           }

         break;                                    // KE>4 87 while

        }





     }

   if(Open_Sell_Stop)

     {



      while(true) // &8:; >B:@KB8O >@45@0 SellStop.

        {

         if(Ticket5==0) // B:@KBKE >@4. =5B +

           {

            RefreshRates();                        // 1=>2;5=85 40==KE

            SL=Ask-New_Stop(Open_Level_St)*Point + New_Stop(StopLoss)*Point;     // KG8A;5=85 SL >B:@

            TP=Ask-New_Stop(Open_Level_St)*Point - New_Stop(TakeProfit)*Point;   // KG8A;5=85 TP >B:@

            Price=Bid-New_Stop(Open_Level_St)*Point;



            Alert(">?KB:0 >B:@KBL SellStop. 6840=85 >B25B0..","SL = ",SL,"TP = ",TP,"Lts = ",Lts);

            Ticket5=OrderSend(Symb, OP_SELLSTOP,Lts,Price,slippage,SL,TP,"QstrSellStop",Magic,Close_Time,Blue);//B:@KB85 SellStop

            if(Ticket5>0) // >;CG8;>AL :)

              {

               Alert(Symbol()," "ime ",var1," B:@KB >@45@ SellStop ?> F5=5 ",Price,"Ticket5 = ",Ticket5);

               Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period()," B:@KB >@45@ SellStop ?> F5=5 "

                                  ,Price,"Ticket5 = ",Ticket5);//0?8AL 2 D09;

               if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

                 {

                  Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

                 };

               Or=5;

               break;

              }

            if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

               continue;                           // >2B>@=0O ?>?KB:0

           }

         break;                                    // KE>4 87 while

        }





     }





   return;

  }

//+------------------------------------------------------------------+



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

void DeleteOrder()

  {

   if(Ticket==0)

     {

      Alert("#40;5=85 >B;>65==KE >@45@>2 157 >1@07>20=8O @K=>G=>3> >@45@0 ",var1," Ticket ",Ticket);

     }





   if(Ticket!=Ticket2 && Ticket2!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

         //---------------------------------------------------------  --

         Alert(">?KB:0 C40;8BL >@45@ BuyLimin ",Ticket2,". 6840=85 >B25B0..",var1);

         Ans=OrderDelete(Ticket2);             // #40;5=85 >@45@0

         //---------------------------------------------------------  --

         if(Ans==true)                             // >;CG8;>AL :)

           {

            Alert("#40;Q= >@45@ BuyLimin ",Ticket2);

            Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"#40;Q= >@45@ BuyLimit ",Ticket2);//0?8AL 2 D09;

            if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            Ticket2 = 0;

            break;                                 // KE>4 87 F8:;0 70:@

           }

         //---------------------------------------------------------  --

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;                           // >2B>@=0O ?>?KB:0

         break;                                 // KE>4 87 while

        }

     }                                // KE>4 87 F8:;0 70:@



   if(Ticket!=Ticket3 && Ticket3!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

         //---------------------------------------------------------  --

         Alert(">?KB:0 C40;8BL >@45@ SellLimit ",Ticket3,". 6840=85 >B25B0..",var1);

         Ans=OrderDelete(Ticket3);             // #40;5=85 >@45@0

         //---------------------------------------------------------  --

         if(Ans==true)                             // >;CG8;>AL :)

           {

            Alert("#40;Q= >@45@ SellLimit ",Ticket3);

            Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"#40;Q= >@45@ SellLimit ",Ticket3);//0?8AL 2 D09;

            if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            Ticket3 = 0;

            break;                                 // KE>4 87 F8:;0 70:@

           }

         //---------------------------------------------------------  --

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;                           // >2B>@=0O ?>?KB:0

         break;                                 // KE>4 87 while

        }

     }                                // KE>4 87 F8:;0 70:@



   if(Ticket!=Ticket4 && Ticket4!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

         //---------------------------------------------------------  --

         Alert(">?KB:0 C40;8BL >@45@ BuyStop ",Ticket4,". 6840=85 >B25B0..",var1);

         Ans=OrderDelete(Ticket4);             // #40;5=85 >@45@0

         //---------------------------------------------------------  --

         if(Ans==true)                             // >;CG8;>AL :)

           {

            Alert("#40;Q= >@45@ BuyStop ",Ticket4);



            Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"#40;Q= >@45@ BuyStop ",Ticket4);//0?8AL 2 D09;

            if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            Ticket4 = 0;

            break;                                 // KE>4 87 F8:;0 70:@

           }

         //---------------------------------------------------------  --

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;                           // >2B>@=0O ?>?KB:0

         break;                                 // KE>4 87 while

        }



     }                                // KE>4 87 F8:;0 70:@



   if(Ticket!=Ticket5 && Ticket5!=0)

     {

      while(true)                                 // &8:; C40;5=8O =5>B:@KB>3> >@4.

        {

         //---------------------------------------------------------  --

         Alert(">?KB:0 C40;8BL >@45@ SellStop ",Ticket5,". 6840=85 >B25B0..",var1);

         Ans=OrderDelete(Ticket5);             // #40;5=85 >@45@0

         //---------------------------------------------------------  --

         if(Ans==true)                             // >;CG8;>AL :)

           {

            Alert("#40;Q= >@45@ SellStop ",Ticket5);



            Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"#40;Q= >@45@ SellStop ",Ticket5);//0?8AL 2 D09;

            if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };

            Ticket5 = 0;

            break;                                 // KE>4 87 F8:;0 70:@

           }

         //---------------------------------------------------------  --

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;                           // >2B>@=0O ?>?KB:0

         break;                                 // KE>4 87 while

        }



     }                              // KE>4 87 F8:;0 70:@

  }



//+------------------------------------------------------------------+



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

int CountMarketOrder()

  {





   bool flagAlertF = False;

   datetime tmMar=TimeCurrent();

   if(txMar!=tmMar && tmMar>=txMar+100)

     {

      txMar=tmMar;

      flagAlertF = True;

     }

   if(flagAlert == True && flagAlertF == True)

      Alert("45< @K=>G=>5 8A?>;=5=85 Tickets ",Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);



   if(Ticket0>0)

     {

      Ticket=Ticket0;

      SelectOrder(Ticket);

      DeleteOrder();

      return(Ticket);

     }

   if(Ticket1>0)

     {

      Ticket=Ticket1;

      SelectOrder(Ticket);

      DeleteOrder();

      return(Ticket);

     }

   if(Ticket2>0)

     {

      sel=OrderSelect(Ticket2, SELECT_BY_TICKET);

      if(OrderType()==0)

        {

         Ticket=Ticket2;

         SelectOrder(Ticket);

         DeleteOrder();

         Ticket2=0;

         return(Ticket);

        }

      if(OrderCloseTime()!=0)

        {

         Ticket2=0;

         OpnOr=false;

         Alert("@45@ 098<8B C40;8;AO ?> 2@5<5=8 ",var1," ",Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);



        }

     }

   if(Ticket3>0)

     {

      sel=OrderSelect(Ticket3, SELECT_BY_TICKET);

      if(OrderType()==1)

        {

         Ticket=Ticket3;

         SelectOrder(Ticket);

         DeleteOrder();

         Ticket3=0;

         return(Ticket);

        }

      if(OrderCloseTime()!=0)

        {

         Ticket3=0;

         OpnOr=false;

         Alert("@45@ !5;;8<8B C40;8;AO ?> 2@5<5=8 ",var1," ",Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);

        }

     }

   if(Ticket4>0)

     {

      sel=OrderSelect(Ticket4, SELECT_BY_TICKET);

      if(flagAlert == True && flagAlertF == True)

         Alert("45< @K=>G=>5 8A?>;=5=85 BuyStop Tickets ","OrderType() ",OrderType()," ",Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);

      if(OrderType()==0)

        {

         Ticket=Ticket4;

         SelectOrder(Ticket);

         DeleteOrder();

         Ticket4=0;

         return(Ticket);

        }

      if(OrderCloseTime()!=0)

        {

         Ticket4=0;

         OpnOr=false;

         Alert("@45@ 09!B>? C40;8;AO ?> 2@5<5=8 ",var1," ",Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);

         Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"@45@ 09!B>? C40;8;AO ?> 2@5<5=8 ",var1," "

                            ,Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);//0?8AL 2 D09;

         if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

           {

            Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

           };



        }

     }

   if(Ticket5>0)

     {

      sel=OrderSelect(Ticket5, SELECT_BY_TICKET);

      if(flagAlert == True && flagAlertF == True)

         Alert("45< @K=>G=>5 8A?>;=5=85 SellStop Tickets ","OrderType() ",OrderType()," ",Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);

      if(OrderType()==1)

        {

         Ticket=Ticket5;

         SelectOrder(Ticket);

         DeleteOrder();

         Ticket5=0;

         return(Ticket);

        }

      if(OrderCloseTime()!=0)

        {

         Ticket5=0;

         OpnOr=false;

         Alert("@45@ !5;;!B>? C40;8;AO ?> 2@5<5=8 ",var1," ",Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);

         Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"@45@ !5;;!B>? C40;8;AO ?> 2@5<5=8 ",var1," "

                            ,Ticket," ",Ticket0," ",Ticket1," ",Ticket4," ",Ticket5);//0?8AL 2 D09;

         if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

           {

            Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

           };





        }

     }

   return(Ticket);

  }





//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

int SelectOrder(int Tickets)

  {

   sel=OrderSelect(Tickets, SELECT_BY_TICKET);

   Tip   =OrderType();                    // "8? 2K1@0==>3> >@4.

   Symb= Symbol();                        //=AB@C<5=B 2K1@0==>3> >@45@0;

   Price =OrderOpenPrice();               // &5=0 >B:@KB8O 2K1@0==. >@4.

//   ClosePrice = OrderClosePrice();

   SL    =OrderStopLoss();                // SL 2K1@0==>3> >@4.

   TP    =OrderTakeProfit();              // TP 2K1@0==>3> >@4.

   Lot   =OrderLots();                    // >;8G5AB2> ;>B>2

   Alert("0H @45@ "8:5B = ", Ticket,""8? = ", Tip,OrderType(),"Ask",Ask,"&5=0 >B:@KB8O",OrderOpenPrice());

   Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"0H @45@ "8:5B = ", Ticket,""8? = ",

                      Tip,OrderType(),"Ask",Ask,"&5=0 >B:@KB8O",OrderOpenPrice());//0?8AL 2 D09;

   if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

     {

      Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

     };





   if(Tip==OP_BUY)

      Or=0;



   if(Tip==OP_SELL)

      Or=1;



   if(Ticket == Ticket2)

     {  Alert(" K=>G=K< @45@>< AB0; >@45@ BuyLimit, "@0;8< 53>");}

   if(Ticket == Ticket3)

     { Alert(" K=>G=K< @45@>< AB0; >@45@ SellLimit, "@0;8< 53>");}

   if(Ticket == Ticket4)

     { Alert(" K=>G=K< @45@>< AB0; >@45@ BuyStop, "@0;8< 53>");}

   if(Ticket == Ticket5)

     { Alert(" K=>G=K< @45@>< AB0; >@45@ SellStop, "@0;8< 53>");}



//  Work=true;

   return(Or);                             // KE>4 87 DC=:F88()



  }





//+------------------------------------------------------------------+

bool CheckMoneyForTrade()

  {

   Alert(" !<>B@8< ;>B <8=8<0;L=K9 - "," Lts = ", Lts," lots = ", Lots);

   RefreshRates();                              // 1=>2;5=85 40==KE

   Min_Lot=MarketInfo(Symb,MODE_MINLOT);        // 8=8<. :>;8G. ;>B>2

   Free   =AccountFreeMargin();                 // !2>1>4= A@54AB20

   One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// !B>8<>ABL 1 ;>B0

   Step   =MarketInfo(Symb,MODE_LOTSTEP);       // (03 87<5=5= @07<5@0



   if(Lots > 0)                                 // A;8 7040=K ;>BK,B>

      Lts =Lots;                                // A =8<8 8 @01>B05<

   else                                         // % A2>1>4=KE A@54AB2

      Lts=MathFloor(Free*Prots/One_Lot/Step)*Step;// ;O >B:@KB8O



   if(Lts < Min_Lot)

     {

      Lts=Min_Lot;               // 5 <5=LH5 <8=8<0;L=

      Alert(" #25;8G8= >1J5< ;>B0 4> <8=8<0;L=>3> - ", Lts," lots");

     }

   if(Lts*One_Lot > Free)                       // >B 4>@>65 A2>1>4=.

     {

      Alert(" Not enough money for ", Lts," lots"," Free = ",Free);

      Work=false;

      return(false) ;                                   // KE>4 87 start()

     }

   Alert(" 0:>=G8;8 A<>B@5BL ;>B <8=8<0;L=K9 - "," Lts = ", Lts," lots = ", Lots," Free = ",Free);

   return(true);

  }

//+------------------------------------------------------------------+



//-------------------------------------------------------------- 12 --

int CloseOr()

  {



// 0:@KB85 >@45@>2

   while(true) // &8:; 70:@KB8O >@4.

     {

      if(Or==0)  // B:@KB >@45@ Buy..

        {

         //8 5ABL :@8B5@89 70:@

         Alert(">?KB:0 70:@KBL Buy ",Ticket,". 6840=85 >B25B0..");

         RefreshRates();                        // 1=>2;5=85 40==KE

         Ans=OrderClose(Ticket,Lts,Bid,2);      // 0:@KB85 Buy

         if(Ans==true) // >;CG8;>AL :)

           {

            Alert(Symbol()," @5<O ",var1," 0:@KB >@45@ Buy ?> F5=5 = ",Bid," Ticket = ",Ticket,

                  "  01>B0 !>25B=8:0 ?@>4>;605BAO ","@81K;L/C1KB>: = ",OrderProfit(),

                  " !2>? = ", OrderSwap(), " ><8AA8O = ", OrderCommission());

            Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"0:@KB >@45@ Buy ?> F5=5 ",Bid,

                               "Ticket = ",Ticket," ProfB=",ProfB, " @81K;L/C1KB>: = ",OrderProfit(),

                               " !2>? = ", OrderSwap(), " ><8AA8O = ", OrderCommission());//0?8AL 2 D09;

            if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };





            Or=-1;

            ClOr=-1;

            break;                              // KE>4 87 F8:;0 70:@

           }

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;// >2B>@=0O ?>?KB:0

         Qnt_Symb=FileWrite(Handle,Symbol()," Fun_Error ",GetLastError(),"0:@KB85 >@45@0 Buy >H81:0 ",Bid,

                            "Ticket = ",Ticket," ProfB=",ProfB);//0?8AL 2 D09;

         if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

           {

            Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

           };



         Ticket=0;                          // "8:5B >@45@0 @K=>G=>3>, >= <>65B 1KBL B>;L:> >48=

         Ticket0=0;                         // D;03 "8:5B0 >@45@0 09

         Ticket1=0;                          // D;03 "8:5B0 >@45@0 !5;;

         Ticket2=0;                          // D;03 "8:5B0 >@45@0 109;8<8B

         Ticket3=0;                          // D;03 "8:5B0 >@45@0 A5;;;8<8B

         Ticket4=0;                          // D;03 "8:5B0 >@45@0 109AB>?

         Ticket5=0;                          // D;03 "8:5B0 >@45@0 A5;;AB>?

         return(Or);                                // KE>4 87 start()

        }



      if(Or==1)  // B:@KB >@45@ Sell..

        {

         // 8 5ABL :@8B5@89 70:@

         Alert(">?KB:0 70:@KBL Sell ",Ticket,". 6840=85 >B25B0..",var1);

         RefreshRates();                        // 1=>2;5=85 40==KE

         Ans=OrderClose(Ticket,Lts,Ask,2);      // 0:@KB85 Sell

         if(Ans==true) // >;CG8;>AL :)

           {

            Alert(Symbol()," @5<O ",var1," 0:@KB >@45@ Sell ?> F5=5 ",Ask," Ticket = ",Ticket,

                  "  01>B0 !>25B=8:0 ?@>4>;605BAO ","@81K;L/C1KB>: = ",OrderProfit(),

                  " !2>? = ", OrderSwap(), " ><8AA8O = ", OrderCommission());

            Qnt_Symb=FileWrite(Handle,var1," ",Symbol()," "$ ",Period(),"0:@KB >@45@ Sell ?> F5=5 ",Ask,

                               "Ticket = ",Ticket," ProfS=",ProfS," @81K;L/C1KB>: = ",OrderProfit(),

                               " !2>? = ", OrderSwap(), " ><8AA8O = ", OrderCommission());//0?8AL 2 D09;

            if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

              {

               Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

              };



            Or=-1;

            ClOr=-1;

            break;                              // KE>4 87 F8:;0 70:@

           }

         if(Fun_Error(GetLastError())==1) // 1@01>B:0 >H81>:

            continue;                           // >2B>@=0O ?>?KB:0

         Qnt_Symb=FileWrite(Handle,Symbol()," Fun_Error ",GetLastError(),"0:@KB85 >@45@0 Sell H81:0 ",Ask,

                            "Ticket = ",Ticket," ProfS=",ProfS);//0?8AL 2 D09;

         if(Qnt_Symb<=0) // A;8 =5 ?>;CG8;>AL

           {

            Alert("H81:0 70?8A8 2 D09; ",GetLastError());// !>>1I5=85

           };







         return(Or);                                // KE>4 87 start()

        }

      break;                                    // KE>4 87 while

     }

   Ticket=0;                          // "8:5B >@45@0 @K=>G=>3>, >= <>65B 1KBL B>;L:> >48=

   Ticket0=0;                         // D;03 "8:5B0 >@45@0 09

   Ticket1=0;                          // D;03 "8:5B0 >@45@0 !5;;

   Ticket2=0;                          // D;03 "8:5B0 >@45@0 109;8<8B

   Ticket3=0;                          // D;03 "8:5B0 >@45@0 A5;;;8<8B

   Ticket4=0;                          // D;03 "8:5B0 >@45@0 109AB>?

   Ticket5=0;                          // D;03 "8:5B0 >@45@0 A5;;AB>?

   return(Or);

  }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

int FileTest()

  {

   Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//B:@KB85 D09;0

   if(Handle==-1) // 5C40G0 ?@8 >B:@KB88 D09;0

     {

      Alert("H81:0 ?@8 >B:@KB88 D09;0. ",// !>>1I5=85 >1 >H81:5

            ">7<>6=>, D09; 70=OB 4@C38< ?@8;>65=85<");



     }



   return(Handle);

  }

//+-----------------------------------------------------------------+





//+------------------------------------------------------------------+

// DC=:F8O 4;O 70<5@0 B5:CI53> ?@>D8B0



//+------------------------------------------------------------------+

//|                                                                  |

//+------------------------------------------------------------------+

double ProfBS(int Orr)

  {

   if(Orr==0)

     {

      ProfB = round((Ask-Price)*point);

      proft = ProfB;

     }



   if(Orr==1)

     {

      ProfS = round((Price - Bid) *point);

      proft = ProfS;

     }

   return (proft) ;

  }

//+------------------------------------------------------------------+

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 ---