#property copyright "By Enfinitum" //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { double tre=MarketInfo(Symbol(),MODE_TICKSIZE); double max_z; double min_z=100000000000.0000; double max; // double min=1000000000.0000; // double risk; double stoim; double razmer_tika; double min_lot; double st_min_lot; double stop_in_punkt; int stop_in_tik; double max_stoim_tika; int x; double lot; double loss; double punkt; double profit; static bool flag=true; static bool flag1=true; static double k; static double j; string broker="Alpari NZ Limited"; string broker1="Alpari Limited"; //-------------------------------------------------------------------+ //-------------------------------------------------------------------+ //---------------------------------------------------------------------+ //---------------------------------------------------------------------+ if((Bid>=High[1])&&(Bid<=High[1]+0.0005)&&(Open[0]<=High[1])&&(flag==true)&&((TerminalCompany()==broker)||(TerminalCompany()==broker1))) //--------+ { risk=AccountBalance()*0.025; //риск=5% stoim=MarketInfo(Symbol(),MODE_TICKVALUE); //стоимость тика для 1 лота razmer_tika=MarketInfo(Symbol(),MODE_TICKSIZE); min_lot=MarketInfo(Symbol(),MODE_MINLOT); //размер минимального лота(0,01) st_min_lot=stoim*min_lot; //стоимость тика для минимального лота stop_in_punkt=NormalizeDouble((High[1]-Low[1])/5,Digits); //кол-во пунктов для стопа stop_in_tik=stop_in_punkt/razmer_tika; //нахожу размер стопа в тиках max_stoim_tika=risk/stop_in_tik; //максимально допустимая стоимость тика x=max_stoim_tika/st_min_lot; //нахожу доступную стоимость тика lot=min_lot*x; //лот сделки punkt=MarketInfo(Symbol(),MODE_POINT); loss=NormalizeDouble(High[1]-(High[1]-Low[1])/5,Digits); profit=NormalizeDouble(High[1]+(High[1]-Low[1])/2,Digits); RefreshRates(); OrderSend(Symbol(),OP_BUY,lot,Ask,300,loss,profit); if(GetLastError()==0) { flag=false; } k=NormalizeDouble(High[1],Digits); } //---------------------------------------------------------------------+ //-----------------------------------------------------------------------+ //-----------------------------------------------------------------------+ if((Bid<=Low[1])&&(Bid>=Low[1]-0.0005)&&(Open[0]>=Low[1])&&(flag1==true)&&((TerminalCompany()==broker)||(TerminalCompany()==broker1))) //--------+ { risk=AccountBalance()*0.025; //риск=5% stoim=MarketInfo(Symbol(),MODE_TICKVALUE); //стоимость тика для 1 лота razmer_tika=MarketInfo(Symbol(),MODE_TICKSIZE); min_lot=MarketInfo(Symbol(),MODE_MINLOT); //размер минимального лота(0,01) st_min_lot=stoim*min_lot; //стоимость тика для минимального лота stop_in_punkt=NormalizeDouble((High[1]-Low[1])/5,Digits); //кол-во пунктов для стопа stop_in_tik=stop_in_punkt/razmer_tika; //нахожу размер стопа в тиках max_stoim_tika=risk/stop_in_tik; //максимально допустимая стоимость тика x=max_stoim_tika/st_min_lot; //нахожу доступную стоимость тика lot=min_lot*x; //лот сделки punkt=MarketInfo(Symbol(),MODE_POINT); loss=NormalizeDouble(Low[1]+(High[1]-Low[1])/5,Digits)+(Ask-Bid); profit=NormalizeDouble(Low[1]-(High[1]-Low[1])/2,Digits)+(Ask-Bid); RefreshRates(); OrderSend(Symbol(),OP_SELL,lot,Bid,300,loss,profit); if(GetLastError()==0) { flag1=false; } j=NormalizeDouble(Low[1],Digits); } //-----------------------------------------------------------------------+ if(k!=NormalizeDouble(High[1],Digits)) flag=true; if(j!=NormalizeDouble(Low[1],Digits)) flag1=true; //----------------------------------------------------------------------+ //----------------------------------------------------------------------+ return(0); } //+---------------------------------------------------------------------+