//+------------------------------------------------------------------+
//|                                                     PO BS_SS.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Alim Budianto"

#property link      ""

//munculkan parameter input

#property show_inputs
#include <stderror.mqh>
#include <stdlib.mqh>

//parameternya ini, input-nya ini
extern string Input_Harga = "Masukkan harga";
extern double  hrg        = 0;      
extern double  Step       = 10;// jarak(gap) antara pending order pertama dengan PO selanjutnya
extern double  LOT        = 0.05;
extern double  TP         = 30;
extern double  SL         = 10;
extern string Jarak = "Masukkan Jarak Buy&Sell Stop dari harga input";
extern double  jarak      = 10; //Jarak Buy & Sell stop dari harga yg di input                 
extern string pilih_order = "buy stop or sell stop or keduanya juga boleh ";
extern bool    Buy_Stop   = true;
extern bool    Sell_Stop  = true;
double hrgbuy;
double hrgsell;
int start()
   {
    //----+
  GetDell("label");
  string char[256]; int i;
  for (i = 0; i < 256; i++) char[i] = CharToStr(i);
  string txt =  char[65]+char[108]+char[105]+char[109]+char[32]+char[66]+char[117]+char[100]+char[105]+char[97]+char[110]+char[116]+char[111]+char[32]+char[70]+char[88];Label("label",txt,2,3,15);
//----+
   RefreshRates();
   while( IsTradeContextBusy() ) { Sleep(100); }
//----
   if (Buy_Stop ==false && Sell_Stop==false ){Alert("TERUS SAYA DI SURUH APA?? BEGO lu.. HAHAHAHA");Alert("KALAU BUYSTOP = FALSE  dan SELL STOP = FALSE");return (0);}
   
   { if  (Buy_Stop==true){ hrgbuy = hrg+jarak*Point;
   
   int ticket=OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy,0,hrgbuy-SL*Point,hrgbuy+TP*Point,0,1,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,(hrgbuy+1*(Step*Point)),0,hrgbuy+(Step*Point)-SL*Point,hrgbuy+(Step*Point)+TP*Point,0,2,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+2*(Step*Point),0,hrgbuy+2*(Step*Point)-SL*Point,hrgbuy+2*(Step*Point)+TP*Point,0,3,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+3*(Step*Point),0,hrgbuy+3*(Step*Point)-SL*Point,hrgbuy+3*(Step*Point)+TP*Point,0,4,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+4*(Step*Point),0,hrgbuy+4*(Step*Point)-SL*Point,hrgbuy+4*(Step*Point)+TP*Point,0,5,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+5*(Step*Point),0,hrgbuy+5*(Step*Point)-SL*Point,hrgbuy+5*(Step*Point)+TP*Point,0,6,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+6*(Step*Point),0,hrgbuy+6*(Step*Point)-SL*Point,hrgbuy+6*(Step*Point)+TP*Point,0,7,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+7*(Step*Point),0,hrgbuy+7*(Step*Point)-SL*Point,hrgbuy+7*(Step*Point)+TP*Point,0,8,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+8*(Step*Point),0,hrgbuy+8*(Step*Point)-SL*Point,hrgbuy+8*(Step*Point)+TP*Point,0,9,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+9*(Step*Point),0,hrgbuy+9*(Step*Point)-SL*Point,hrgbuy+9*(Step*Point)+TP*Point,0,10,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+10*(Step*Point),0,hrgbuy+10*(Step*Point)-SL*Point,hrgbuy+10*(Step*Point)+TP*Point,0,11,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+11*(Step*Point),0,hrgbuy+11*(Step*Point)-SL*Point,hrgbuy+11*(Step*Point)+TP*Point,0,12,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+12*(Step*Point),0,hrgbuy+12*(Step*Point)-SL*Point,hrgbuy+12*(Step*Point)+TP*Point,0,13,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+13*(Step*Point),0,hrgbuy+13*(Step*Point)-SL*Point,hrgbuy+13*(Step*Point)+TP*Point,0,14,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+14*(Step*Point),0,hrgbuy+14*(Step*Point)-SL*Point,hrgbuy+14*(Step*Point)+TP*Point,0,15,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+15*(Step*Point),0,hrgbuy+15*(Step*Point)-SL*Point,hrgbuy+15*(Step*Point)+TP*Point,0,16,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+16*(Step*Point),0,hrgbuy+16*(Step*Point)-SL*Point,hrgbuy+16*(Step*Point)+TP*Point,0,17,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+17*(Step*Point),0,hrgbuy+17*(Step*Point)-SL*Point,hrgbuy+17*(Step*Point)+TP*Point,0,18,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+18*(Step*Point),0,hrgbuy+18*(Step*Point)-SL*Point,hrgbuy+18*(Step*Point)+TP*Point,0,19,0,CLR_NONE);
              OrderSend(Symbol(),OP_BUYSTOP,LOT,hrgbuy+19*(Step*Point),0,hrgbuy+19*(Step*Point)-SL*Point,hrgbuy+19*(Step*Point)+TP*Point,0,20,0,CLR_NONE);
              
              Alert("Alhamdulillah Buy Stop wes terpasang...semoga profit selalu...");}}
              
     { if  (Sell_Stop==true){ hrgsell = hrg-jarak*Point;     
     
      ticket= OrderSend(Symbol(),OP_SELLSTOP,LOT,hrgsell,0,hrgsell+TP*Point,hrgsell-TP*Point,0,1,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-1*(Step*Point)),0,(hrgsell-1*(Step*Point))+SL*Point,(hrgsell-(Step*Point)-TP*Point),0,2,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-2*(Step*Point)),0,(hrgsell-2*(Step*Point))+SL*Point,(hrgsell-(2*Step*Point)-TP*Point),0,3,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-3*(Step*Point)),0,(hrgsell-3*(Step*Point))+SL*Point,(hrgsell-(3*Step*Point)-TP*Point),0,4,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-4*(Step*Point)),0,(hrgsell-4*(Step*Point))+SL*Point,(hrgsell-(4*Step*Point)-TP*Point),0,5,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-5*(Step*Point)),0,(hrgsell-5*(Step*Point))+SL*Point,(hrgsell-(5*Step*Point)-TP*Point),0,6,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-6*(Step*Point)),0,(hrgsell-6*(Step*Point))+SL*Point,(hrgsell-(6*Step*Point)-TP*Point),0,7,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-7*(Step*Point)),0,(hrgsell-7*(Step*Point))+SL*Point,(hrgsell-(7*Step*Point)-TP*Point),0,8,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-8*(Step*Point)),0,(hrgsell-8*(Step*Point))+SL*Point,(hrgsell-(8*Step*Point)-TP*Point),0,9,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-9*(Step*Point)),0,(hrgsell-9*(Step*Point))+SL*Point,(hrgsell-(9*Step*Point)-TP*Point),0,10,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-10*(Step*Point)),0,(hrgsell-10*(Step*Point))+SL*Point,(hrgsell-(10*Step*Point)-TP*Point),0,11,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-11*(Step*Point)),0,(hrgsell-11*(Step*Point))+SL*Point,(hrgsell-(11*Step*Point)-TP*Point),0,12,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-12*(Step*Point)),0,(hrgsell-12*(Step*Point))+SL*Point,(hrgsell-(12*Step*Point)-TP*Point),0,13,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-13*(Step*Point)),0,(hrgsell-13*(Step*Point))+SL*Point,(hrgsell-(13*Step*Point)-TP*Point),0,14,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-14*(Step*Point)),0,(hrgsell-14*(Step*Point))+SL*Point,(hrgsell-(14*Step*Point)-TP*Point),0,15,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-15*(Step*Point)),0,(hrgsell-15*(Step*Point))+SL*Point,(hrgsell-(15*Step*Point)-TP*Point),0,16,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-16*(Step*Point)),0,(hrgsell-16*(Step*Point))+SL*Point,(hrgsell-(16*Step*Point)-TP*Point),0,17,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-17*(Step*Point)),0,(hrgsell-17*(Step*Point))+SL*Point,(hrgsell-(17*Step*Point)-TP*Point),0,16,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-18*(Step*Point)),0,(hrgsell-18*(Step*Point))+SL*Point,(hrgsell-(18*Step*Point)-TP*Point),0,19,0,CLR_NONE);
              OrderSend(Symbol(),OP_SELLSTOP,LOT,(hrgsell-19*(Step*Point)),0,(hrgsell-19*(Step*Point))+SL*Point,(hrgsell-(19*Step*Point)-TP*Point),0,20,0,CLR_NONE);
              
              Alert("Alhamdulillah Sell STOP sudah terpasang...semoga profit selalu...");}}
   if(ticket<1)
     {int error=GetLastError();
      Print("Error = ",ErrorDescription(error));
      return;}
//----
   OrderPrint();
   return(0);
  }
//------
void GetDell( string name)
{
  string vName;
 for(int i=ObjectsTotal()-1; i>=0;i--)
   {
   vName = ObjectName(i);
   if (StringFind(vName,name) !=-1) ObjectDelete(vName);
  }
}
//+----------------------------------------------------------------------+
//| ????????: ???????? ????????? ?????                                   | 
//| ?????:    ???? ???????                                               |
//| e-mail:   yuriytokman@gmail.com                                      |
//+----------------------------------------------------------------------+
void Label(string name_label,           //??? ???????.
           string text_label,           //????? ???????. 
         int corner = 2,              //H???? ???? ???????? 
            int x = 3,                   //P????????? X-?????????? ? ???????? 
          int y = 10,                  //P????????? Y-?????????? ? ???????? 
        int font_size = 32,          //?????? ?????? ? ???????.
           string font_name = "ArialBlack",  //???????????? ??????.
          color text_color = LightSlateGray //???? ??????.
          )
{if (ObjectFind(name_label)!=-1) ObjectDelete(name_label);
     ObjectCreate(name_label,OBJ_LABEL,0,0,0,0,0);         
   ObjectSet(name_label,OBJPROP_CORNER,corner);
 ObjectSet(name_label,OBJPROP_XDISTANCE,x);
 ObjectSet(name_label,OBJPROP_YDISTANCE,y);
ObjectSetText(name_label,text_label,font_size,font_name,text_color);
}