← К каталогу
Исходный код · ID 4624

breakoutboxesv2.06 (1).mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

BreakOutBoxes — это пользовательский индикатор для MetaTrader 4, отображающий торговые боксы трёх основных сессий: Токио, Лондона и Нью-Йорка. Индикатор строит на графике прямоугольные зоны, определяет верхние и нижние границы каждой сессии на основе максимумов и минимумов за заданное число дней.

Индикатор рассчитывает среднедневной диапазон (ADR) за 30 дней и текущий спред брокера, отображая их в виде подписей на графике. Внутри каждого бокса прорисовываются уровни покупки и продажи с тремя целевыми ценовыми зонами (TP1–TP3) и уровнями стоп-лосса.

Индикатор поддерживает систему уведомлений: всплывающие окна и звуковые сигналы при достижении ценой ключевых уровней в активной торговой зоне. Доступна настройка цвета фона, цветов боксов и отображения вспомогательных линий.

Настройки программы

НастройкаОписание
SimpleForexTeam__ Текстовый параметр с информацией о бесплатных инструментах и ссылкой на канал.
GlobalPer1 Текстовый разделитель-группировка для визуального выделения блока параметров в окне настроек.
Margin Величина отступа цены от верхней и нижней границы бокса для расчёта уровней входа и стоп-лосса (в пунктах).
TP1 Первый уровень тейк-профита в пунктах, отображаемый как целевая цена покупки/продажи.
TP2 Второй уровень тейк-профита в пунктах, отображаемый как целевая цена покупки/продажи.
TP3 Третий уровень тейк-профита в пунктах, отображаемый как целевая цена покупки/продажи.
SL Значение стоп-лосса в пунктах, используемое при ручном выборе (когда Auto_SL выключен).
Auto_SL При включении стоп-лосс автоматически выбирается в зависимости от торгового инструмента из соответствующих параметров SL_GU, SL_EU и т.д.
IIIIIIIIIII Текстовый параметр-подсказка, указывающий номера сессий: 1 — Азиатская, 2 — Лондон, 3 — Нью-Йорк.
iSession Номер активной торговой сессии: 1 — Азиатская (Токио), 2 — Лондон, 3 — Нью-Йорк. Определяет время и ширину отображаемого бокса.
GMT_Offset Часовое смещение относительно GMT для корректного расчёта времени начала и окончания торговой сессии.
UK_DST Переключатель перехода на летнее время в Великобритании, влияющий на расчёт времени лондонской сессии.
US_DST Переключатель перехода на летнее время в США, влияющий на расчёт времени нью-йоркской сессии.
NumberOfDays Количество дней назад, за которые отрисовываются торговые боксы на графике. Не может превышать iMaxNoOfDays.
iMaxNoOfDays Максимально допустимое количество дней для отрисовки боксов. Если NumberOfDays превышает это значение, оно автоматически ограничивается.
SL_GU Значение стоп-лосса в пунктах для инструмента GBPUSD при включённом Auto_SL.
SL_GJ Значение стоп-лосса в пунктах для инструмента GBPJPY при включённом Auto_SL.
SL_EU Значение стоп-лосса в пунктах для инструмента EURUSD при включённом Auto_SL.
SL_EJ Значение стоп-лосса в пунктах для инструмента EURJPY при включённом Auto_SL.
SL_GBPCHF Значение стоп-лосса в пунктах для инструмента GBPCHF при включённом Auto_SL.
SL_USDCHF Значение стоп-лосса в пунктах для инструмента USDCHF при включённом Auto_SL.
ChartHasBlkBgd Переключатель стиля отображения подписов и элементов: при включении используются цвета для тёмного фона графика, при выключении — для светлого.
BoxColor Цвет основного торгового бокса, отображаемого на графике.
TradingBoxColor Цвет дополнительного торгового бокса, отображаемого рядом с основным (в отдельном окне).
Pop_Up_Box Переключатель отображения всплывающих окон при срабатывании алертов. При выключении используются только звуковые сигналы.
Alert_Time_Out Пауза в секундах между повторными уведомлениями, предотвращающая спам алертами при удержании цены на уровне.
IIIIIIII Текстовый параметр-подсказка, поясняющий условие работы алертов при отключённом TP1.
Alert_On_TP1 При включении срабатывает уведомление при достижении ценой уровней TP1 (включая звуковые сигналы и всплывающие окна).
Alert_on Общий переключатель включения и выключения всех уведомлений (звуковых и всплывающих).
Получить полный код

Поиск по коду файла

#property indicator_separate_window

input string SimpleForexTeam__ = "free tools for forex! Join our channel for more free eas";
input string The_our_telegram = "";
input string The_our_telegram1 = "";
input string VIP_group = "";
extern string GlobalPer1 = "===================="; // ===== Parameters =====
extern int    Margin        = 8;
extern int    TP1           = 25;
extern int    TP2           = 50;
extern int    TP3           = 80;
extern int    SL            = 30;
extern bool   Auto_SL       = true;

extern string IIIIIIIIIII = "1=Asia 2=LON 3=NY";  
extern int  iSession      = 2;
extern int  GMT_Offset    = 0;
extern bool UK_DST        = true;      
extern bool US_DST        = true;      
extern int  NumberOfDays  = 10;         
extern int  iMaxNoOfDays  = 14; 

extern int SL_GU = 45;    
extern int SL_GJ = 50;    
extern int SL_EU = 35;    
extern int SL_EJ = 35;    
extern int SL_GBPCHF = 30;    
extern int SL_USDCHF = 30;    

extern bool   ChartHasBlkBgd   = true;
extern color  BoxColor         = LightGoldenrod;      
extern color  TradingBoxColor  = DarkSalmon; 

extern bool       Pop_Up_Box = true;
extern double  Alert_Time_Out = 16;
extern string        IIIIIIII = "..if TP1 false, alert @ Buy/Sell levels.";
extern bool      Alert_On_TP1 = false;
extern bool         Alert_on = false;

string   editor="Grath 2.06";
double   top, bottom;
string   sLeft, sBoxEnd, sBoxEndNew, temp, WindowName;
string   sFridayClose = "22:00", sTimeLondonOpen;
datetime dtRight, dtLeft, dtTempTime, dtTradingBoxEnd, dtFridayClose;
int      BoxLength, TradingBoxWidth, iSpread ;
bool     IsAllowed = true;
bool     twiddle = false;
bool     twiddle2 = false;

double bep, btp1, btp2, btp3, btp4, bsl;
double sep, stp1, stp2, stp3, stp4, ssl;
double drange, dLinePrice, dHeight, dSpread;
double AVG = 0;
string average;            // for ADR

double timecur=-1; //this is the time current for the pauses between movements
double timeloc=-1;
double timeloc2= -1;//this is a smaller lock out just for displaying the breach message

void init()
   {
      // код доступен только после оплаты
   }  // init()

void deinit() 
{
  DeleteObjects();
}   

void DeleteObjects() 
{
   datetime dtTradeDate=TimeCurrent();

   for (int i=0; i<iMaxNoOfDays; i++) 
   {
      if ( TimeDayOfWeek(dtTradeDate) == 5 && dtTradingBoxEnd > dtFridayClose ) dtTradeDate = decrementTradeDate(dtTradeDate);     // Tokyo on Fridays!

      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBAT");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBATL");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBTP1");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBTP1L");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBTP2");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBTP2L");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBTP3");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineBTP3L");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSAT");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSATL");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSTP1");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSTP1L");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSTP2");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSTP2L");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSTP3");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " LineSTP3L");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " TheBox");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " TheBox2");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " TimevlActiveRight");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " TimevlLeft");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " TimevlRight");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " TimevlLondonOpen");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneBuyTP1");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneBuyTP2");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneBuyTP3");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneBuyZone");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneSellTP1");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneSellTP2");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneSellTP3");   // 
      ObjectDelete(TimeToStr(dtTradeDate,TIME_DATE) + " ZoneSellZone");   // 

      dtTradeDate=decrementTradeDate(dtTradeDate);
      while (TimeDayOfWeek(dtTradeDate) > 5 || TimeDayOfWeek(dtTradeDate) < 1 ) dtTradeDate = decrementTradeDate(dtTradeDate);     // Removed Sundays from plots
   }
   ObjectsDeleteAll(0,OBJ_TEXT);
   ObjectDelete("B1");
   ObjectDelete("B11");
   ObjectDelete("B12");
   ObjectDelete("B13");
   ObjectDelete("B14");
   ObjectDelete("B15");
   ObjectDelete("B16");
   ObjectDelete("B17");
   ObjectDelete("B18");
   ObjectDelete("B19");
   ObjectDelete("B2");
   ObjectDelete("B20");
   ObjectDelete("B210");
   ObjectDelete("B3");
   ObjectDelete("B4");
   ObjectDelete("B5");
   ObjectDelete("B6");
   ObjectDelete("B7");
   ObjectDelete("B8");
   ObjectDelete("ADR");
   ObjectDelete("SPREAD");
   ObjectDelete("Ydb");
   ObjectDelete("sBoxRange");
   ObjectDelete("sPricelabel");
   ObjectDelete("sPrice");
   ObjectDelete("WHICHBOX");
   ObjectDelete("ALERT_ONOFF");
   ObjectDelete("SHOW_MARGIN");

}  // DeleteObjects()

void getADR(bool ChartHasBlkBgd)
{

      AVG = (iHigh(NULL,PERIOD_D1,30)-iLow(NULL,PERIOD_D1,30));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,29)-iLow(NULL,PERIOD_D1,29));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,28)-iLow(NULL,PERIOD_D1,28));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,27)-iLow(NULL,PERIOD_D1,27));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,26)-iLow(NULL,PERIOD_D1,26));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,25)-iLow(NULL,PERIOD_D1,25));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,24)-iLow(NULL,PERIOD_D1,24));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,23)-iLow(NULL,PERIOD_D1,23));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,22)-iLow(NULL,PERIOD_D1,22));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,21)-iLow(NULL,PERIOD_D1,21));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,20)-iLow(NULL,PERIOD_D1,20));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,19)-iLow(NULL,PERIOD_D1,19));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,18)-iLow(NULL,PERIOD_D1,18));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,17)-iLow(NULL,PERIOD_D1,17));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,16)-iLow(NULL,PERIOD_D1,16));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,15)-iLow(NULL,PERIOD_D1,15));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,14)-iLow(NULL,PERIOD_D1,14));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,13)-iLow(NULL,PERIOD_D1,13));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,12)-iLow(NULL,PERIOD_D1,12));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,11)-iLow(NULL,PERIOD_D1,11));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,10)-iLow(NULL,PERIOD_D1,10));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,9)-iLow(NULL,PERIOD_D1,9));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,8)-iLow(NULL,PERIOD_D1,8));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,7)-iLow(NULL,PERIOD_D1,7));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,6)-iLow(NULL,PERIOD_D1,6));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,5)-iLow(NULL,PERIOD_D1,5));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,4)-iLow(NULL,PERIOD_D1,4));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,3)-iLow(NULL,PERIOD_D1,3));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,2)-iLow(NULL,PERIOD_D1,2));
      AVG = AVG + (iHigh(NULL,PERIOD_D1,1)-iLow(NULL,PERIOD_D1,1));
      AVG = AVG/30;
      switch(Digits)
      {
         case 5: AVG = AVG*10000;  break;   // Deal with the extra one
         case 4: AVG = AVG*10000;  break;
         case 3: AVG = AVG*100;  break;    // Deal with the extra one
         case 2: AVG = AVG*100;  break;
      }
      ObjectCreate ("ADR",OBJ_LABEL, 0,0,0);
      if (ChartHasBlkBgd)
      {
         ObjectSetText("ADR", "ADR: "+ DoubleToStr(AVG,0) + " pips.", 9,"Georgia", Yellow);
      }
      else 
      {
         ObjectSetText("ADR", "ADR: "+ DoubleToStr(AVG,0) + " pips.", 9,"Georgia", Blue);
      }
      ObjectSet("ADR", OBJPROP_CORNER, 1);
      ObjectSet("ADR", OBJPROP_XDISTANCE, 5);
      ObjectSet("ADR", OBJPROP_YDISTANCE, 40);
}      

int getSpread(bool ChartHasBlkBgd)
{

      iSpread=MarketInfo(Symbol(),MODE_SPREAD);
      if (Digits==5 || Digits==3)
      {
         iSpread = iSpread/10;
      }

      ObjectCreate ("SPREAD",OBJ_LABEL, 0,0,0);
      if (ChartHasBlkBgd)
      {
         ObjectSetText("SPREAD", "Spread: "+ iSpread + " pips.", 9,"Georgia", Yellow);
      }
      else 
      {
         ObjectSetText("SPREAD", "Spread: "+ iSpread + " pips.", 9,"Georgia", Blue);
      }
      ObjectSet("SPREAD", OBJPROP_CORNER, 1);
      ObjectSet("SPREAD", OBJPROP_XDISTANCE, 5);
      ObjectSet("SPREAD", OBJPROP_YDISTANCE, 60);

      return(iSpread);
}

void start()
{
      // код доступен только после оплаты
   }    //start()

void DrawObjects(datetime dtTradeDate, string sObjName, string sTimeBegin, string sTimeEnd, string sTimeTradeEnd, bool BlkBgd, color cObjColor1, color cObjColor2, int iMargin, int Session, int iGMT_Offset, int iSpread, bool DateFix, bool DateFix2, int iCtr, bool Alert_on, bool Pop_Up_Box, double Time_Out, int iForm) 
{ 
   datetime dtTimeBegin, dtTimeEnd, dtTimeObjEnd, dtLineEnd, dtTimeLondonOpen;
   double   dPriceHigh,  dPriceLow, dPriceOpen, dPriceClose, dPriceMid;
   int      iBarBegin,   iBarEnd;
   string   sObjDesc;

   dtTimeBegin = StrToTime(TimeToStr(dtTradeDate, TIME_DATE) + " " + sTimeBegin);
   dtTimeEnd = StrToTime(TimeToStr(dtTradeDate, TIME_DATE) + " " + sTimeEnd);
   if (DateFix) dtTimeBegin = dtTimeBegin - 86400;
   dtTimeObjEnd = StrToTime(TimeToStr(dtTradeDate, TIME_DATE) + " " + sTimeTradeEnd);
   if (DateFix2) dtTimeObjEnd = dtTimeObjEnd + 86400;

   dtLineEnd = StrToTime(TimeToStr ( dtTimeEnd + D'1970.01.01 1'* 3 ));   // for the price trendlines
   dtTimeLondonOpen = StrToTime(TimeToStr(dtTradeDate, TIME_DATE) + " " + sTimeLondonOpen);

      iBarBegin = iBarShift(NULL, 0, dtTimeBegin) + 1;  
      iBarEnd = iBarShift(NULL, 0, dtTimeEnd) + 1;  

      dPriceHigh  = High[Highest(NULL, 0, MODE_HIGH, (iBarBegin)-iBarEnd, iBarEnd)];
      dPriceLow   = Low [Lowest (NULL, 0, MODE_LOW , (iBarBegin)-iBarEnd, iBarEnd)];

      top    = dPriceHigh;
      bottom = dPriceLow;

      bep  = top+(iMargin * Point);
      btp1 = bep+(TP1*Point);
      btp2 = bep+(TP2*Point); 
      btp3 = bep+(TP3*Point);
      if (Digits==5 || Digits==3)
      {
         btp4 = btp3+(200*Point);
      }
      else
      {
         btp4 = btp3+(20*Point);
      }
      bsl  = bep-(SL*Point); 

      sep  = bottom-(iMargin*Point);
      stp1 = sep-(TP1*Point);
      stp2 = sep-(TP2*Point); 
      stp3 = sep-(TP3*Point);
      if (Digits==5 || Digits==3)
      {
         stp4 = stp3-(200*Point);
      }
      else
      {
         stp4 = stp3-(20*Point);
      }
      ssl  = sep+(SL*Point); 

   if (iCtr == 0)
   {
      drange = (top-bottom)/Point;
      switch (Digits)
      {
       case 5: drange = drange/10; dSpread = iSpread*Point*10; break; 
       case 4: drange = drange;    dSpread = iSpread*Point; break;
       case 3: drange = drange/10; dSpread = iSpread*Point*10; break;
       case 2: drange = drange;    dSpread = iSpread*Point; break;
      }
   }

   if (Alert_On_TP1)
   {
   if (Close[0] >= btp1  &&  TimeCurrent() > timeloc  && Alert_on == true  && iCtr == 0 && TimeCurrent() >= dtTimeEnd &&  TimeCurrent() <= dtTimeObjEnd)
     {
      timeloc2=TimeCurrent()+4.5; //this is a smaller lock out just for displaying the breech message           
      timeloc= TimeCurrent();  //done just for a slight pause
      if (Pop_Up_Box==False)
        {
         PlaySound("Alert2.wav");
         for(double asdfff =1;asdfff <1900.0239 ;) asdfff+=.91231; //a little pause
         while(TimeCurrent()<=timeloc) asdfff=0; //another little pause
         PlaySound("Alert.wav");
        }
      else {Alert("Breakout North ", Symbol()," ",DoubleToStr(bep, Digits));}
      timeloc=TimeCurrent()+Time_Out;   //how many seconds do we lock out the Alert
     }
   if (Close[0] <= stp1  &&  TimeCurrent() > timeloc  && Alert_on ==true && iCtr == 0 && TimeCurrent() >= dtTimeEnd &&  TimeCurrent() <= dtTimeObjEnd)
     {
      timeloc2=TimeCurrent()+4.5;//this is a smaller lock out just for displaying the breech message
      timeloc =TimeCurrent();   //just for a slight, unofficial pause
      if (Pop_Up_Box==False)
        {
         PlaySound("Alert.wav");
         for(double asdf =1;asdf <1200.0239 ;) asdf+=.91231; //a little pause
         while(TimeCurrent()<=timeloc) asdf=0; //another little pause
         PlaySound("Alert2.wav");
        }
      else {Alert("Breakout South ",Symbol()," ",DoubleToStr(sep, Digits));}
      timeloc=TimeCurrent()+Time_Out;   //how many seconds do we lock out the Alert
     }
   }
   else
   {
   if (Close[0] >= bep  &&  TimeCurrent() > timeloc  && Alert_on == true  && iCtr == 0 && TimeCurrent() >= dtTimeEnd &&  TimeCurrent() <= dtTimeObjEnd)
     {
      timeloc2=TimeCurrent()+4.5; //this is a smaller lock out just for displaying the breech message           
      timeloc= TimeCurrent();  //done just for a slight pause
      if (Pop_Up_Box==False)
        {
         PlaySound("Alert2.wav");
         for(double lasdfff =1;lasdfff <1900.0239 ;) lasdfff+=.91231; //a little pause
         while(TimeCurrent()<=timeloc) lasdfff=0; //another little pause
         PlaySound("Alert.wav");
        }
      else {Alert("Breakout North ", Symbol()," ",DoubleToStr(bep, Digits));}
      timeloc=TimeCurrent()+Time_Out;   //how many seconds do we lock out the Alert
     }
   if (Close[0] <= bep  &&  TimeCurrent()  > timeloc  && Alert_on ==true && iCtr == 0 && TimeCurrent() >= dtTimeEnd &&  TimeCurrent() <= dtTimeObjEnd)
     {
      timeloc2=TimeCurrent()+4.5;//this is a smaller lock out just for displaying the breech message
      timeloc =TimeCurrent();   //just for a slight, unofficial pause
      if (Pop_Up_Box==False)
        {
         PlaySound("Alert.wav");
         for(double lasdf =1;lasdf <1200.0239 ;) lasdf+=.91231; //a little pause
         while(TimeCurrent()<=timeloc) lasdf=0; //another little pause
         PlaySound("Alert2.wav");
        }
      else {Alert("Breakout South ",Symbol()," ",DoubleToStr(sep, Digits));}
      timeloc=TimeCurrent()+Time_Out;   //how many seconds do we lock out the Alert
     }
   }

   if(iForm==1)
   {

      ObjectCreate(sObjName, OBJ_RECTANGLE, 0, 0, 0, 0);
      ObjectSet(sObjName, OBJPROP_TIME1 , dtTimeBegin);
      ObjectSet(sObjName, OBJPROP_TIME2 , dtTimeEnd);
      ObjectSet(sObjName, OBJPROP_PRICE1, dPriceHigh);
      ObjectSet(sObjName, OBJPROP_PRICE2, dPriceLow);
      ObjectSet(sObjName, OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet(sObjName, OBJPROP_COLOR, cObjColor1);
      ObjectSet(sObjName, OBJPROP_WIDTH, 1);

      ObjectCreate(sObjName+"2", OBJ_RECTANGLE, 0, 0, 0, 0);
      ObjectSet(sObjName+"2", OBJPROP_TIME1 , dtTimeEnd);
      ObjectSet(sObjName+"2", OBJPROP_TIME2 , dtTimeObjEnd);  //dtTimeObjEnd
      ObjectSet(sObjName+"2", OBJPROP_PRICE1, dPriceHigh);  
      ObjectSet(sObjName+"2", OBJPROP_PRICE2, dPriceLow);
      ObjectSet(sObjName+"2", OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet(sObjName+"2", OBJPROP_COLOR, cObjColor2);
      ObjectSet(sObjName+"2", OBJPROP_BACK, 1);

      if(ObjectFind("sBoxRange") == -1) 
      {
         ObjectCreate ("sBoxRange",OBJ_LABEL, 0, 0, 0);
      }
      if (BlkBgd)
      {
         ObjectSetText("sBoxRange", "Box Range: "+ DoubleToStr(drange,Point) + " pips.", 10,"Georgia", Yellow);
      }
      else 
      {
         ObjectSetText("sBoxRange", "Box Range: "+ DoubleToStr(drange,Point) + " pips.", 10,"Georgia", Blue);
      }
      ObjectSet("sBoxRange", OBJPROP_CORNER, 1);
      ObjectSet("sBoxRange", OBJPROP_XDISTANCE, 5);
      ObjectSet("sBoxRange", OBJPROP_YDISTANCE, 20);

      if(ObjectFind("sPriceLabel") == -1)
      { 
         ObjectCreate ("sPriceLabel",OBJ_LABEL, 0, 0, 0);
         if (BlkBgd)
         {
            ObjectSetText("sPriceLabel", "PRICE", 10,"Arial Bold", Silver);
         }
         else 
         {
            ObjectSetText("sPriceLabel", "PRICE", 10,"Arial Bold", SlateGray);
         }
         ObjectSet("sPriceLa

Показано первые 50% кода (символов: 36719)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
3 671,90₽ ≈ $45.66