Exp_TimesDirection

Author: Copyright © 2016, Nikolay Kositsin
Price Data Components
0 Views
0 Downloads
0 Favorites
Exp_TimesDirection
ÿþ//+------------------------------------------------------------------+

//|                                           Exp_TimesDirection.mq5 |

//|                               Copyright © 2016, Nikolay Kositsin | 

//|                              Khabarovsk,   farria@mail.redcom.ru | 

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

#property copyright "Copyright © 2016, Nikolay Kositsin"

#property link      "farria@mail.redcom.ru"

#property version   "1.00"

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

//  ">@3>2K5 0;3>@8B<K                              | 

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

#include <TradeAlgorithms.mqh>

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

//|  5@5G8A;5=85 4;O 20@80=B>2 @0AGQB0 ;>B0        |

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

/*enum MarginMode  - ?5@5G8A;5=85 >1JO2;5=> 2 D09;5 TradeAlgorithms.mqh

  {

   FREEMARGIN=0,     //MM >B A2>1>4=KE A@54AB2 =0 AGQB5

   BALANCE,          //MM >B 10;0=A0 A@54AB2 =0 AGQB5

   LOSSFREEMARGIN,   //MM ?> C1KB:0< >B A2>1>4=KE A@54AB2 =0 AGQB5

   LOSSBALANCE,      //MM ?> C1KB:0< >B 10;0=A0 A@54AB2 =0 AGQB5

   LOT               //>B 157 87<5=5=8O

  }; */

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

//|  5@5G8A;5=85 4;O 20@80=B>2 B>@3>2;8            |

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

enum TradeMode

  {

   ENUM_SELL,     //">;L:> ?>:C?:8

   ENUM_BUY       //">;L:> ?@>4068

  };

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

//| E>4=K5 ?0@0<5B@K 8=48:0B>@0 M:A?5@B0           |

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

input double MM=0.1;              //>;O D8=0=A>2KE @5AC@A>2 >B 45?>78B0 2 A45;:5

input MarginMode MMMode=LOT;      //A?>A>1 >?@545;5=8O @07<5@0 ;>B0

input int    StopLoss_=1000;      //AB>?;>AA 2 ?C=:B0E

input int    TakeProfit_=2000;    //B59:?@>D8B 2 ?C=:B0E

input int    Deviation_=10;       //<0:A. >B:;>=5=85 F5=K 2 ?C=:B0E

input TradeMode Trade=ENUM_SELL;  //0?@02;5=85 B>@3>2;8

input datetime  OpenTime=D'1970.01.01 00:00';      //@5<O >B:@K20=8O ?>78F88

input datetime  CloseTime=D'3000.01.01 00:00';     //@5<O 70:@K20=8O ?>78F88

input uint TradeInterval =60;                      //">@3>2K9 8=B5@20; 2 A5:C=40E

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

//---- 1JO2;5=85 F5;KE ?5@5<5==KE 4;O E5=4;>2 8=48:0B>@>2

int InpInd_Handle;

//---- >1JO2;5=85 F5;KE ?5@5<5==KE =0G0;0 >BAG5B0 40==KE

int min_rates_total;

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

//| Expert initialization function                                   |

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

int OnInit()

  {

//---- =8F80;870F8O ?5@5<5==KE =0G0;0 >BAGQB0 40==KE

   min_rates_total=1;

//--- 7025@H5=85 8=8F80;870F88

   return(INIT_SUCCEEDED);

  }

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

//| Expert deinitialization function                                 |

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

void OnDeinit(const int reason)

  {

//----

   GlobalVariableDel_(Symbol());

//----

  }

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

//| Expert tick function                                             |

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

void OnTick()

  {

//---- ?@>25@:0 :>;8G5AB20 10@>2 =0 4>AB0B>G=>ABL 4;O @0AGQB0

   if(Bars(Symbol(),PERIOD_CURRENT)<min_rates_total) return;



//---- 1JO2;5=85 ;>:0;L=KE ?5@5<5==KE

   datetime SignalTime=NULL;

   bool CloseSignal,OpenSignal;



//---- >;CG5=85 B>@3>2KE A83=0;>2   

   if(TimeCurrent()>=OpenTime && TimeCurrent()<OpenTime+TradeInterval  && !PositionSelect(Symbol()))

     {

      OpenSignal=true;

      if(Trade==ENUM_BUY) Print(__FUNCTION__,": ", "!@01>B0; A83=0; =0 ?>:C?:C 4;O >B:@K20=8O ?>78F88!");

      else Print(__FUNCTION__,": ", "!@01>B0; A83=0; =0 ?@>406C 4;O >B:@K20=8O ?>78F88!");

      Print(__FUNCTION__,": ", "@5<O >B:@K20=8O ?>78F88: ",TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS));

     }

   else OpenSignal=false;

   if(TimeCurrent()>=CloseTime && TimeCurrent()<CloseTime+TradeInterval && PositionSelect(Symbol()))

     {

      CloseSignal=true;

      if(Trade==ENUM_BUY) Print(__FUNCTION__,": ", "!@01>B0; A83=0; =0 ?@>406C 4;O 70:@K20=8O ?>78F88!");

      else Print(__FUNCTION__,": ", "!@01>B0; A83=0; =0 ?>:C?:C 4;O 70:@K20=8O ?>78F88!");

      Print(__FUNCTION__,": ", "@5<O 70:@K20=8O ?>78F88: ",TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS));

     }

   else CloseSignal=false;



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

//| !>25@H5=85 A45;>:                               |

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

   if(Trade==ENUM_BUY)

     {

      //---- 0:@K205< ;>=3

      BuyPositionClose(CloseSignal,Symbol(),Deviation_);

      //---- B:@K205< ;>=3

      BuyPositionOpen(OpenSignal,Symbol(),SignalTime,MM,MMMode,Deviation_,StopLoss_,TakeProfit_);

     }

   else

     {

      //---- 0:@K205< H>@B   

      SellPositionClose(CloseSignal,Symbol(),Deviation_);

      //---- B:@K205< H>@B

      SellPositionOpen(OpenSignal,Symbol(),SignalTime,MM,MMMode,Deviation_,StopLoss_,TakeProfit_);

     }

//----

  }

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

Comments