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

Market Sessions

market sessions mod (2).mq5
Вы автор или правообладатель?

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

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

О программе

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

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

НастройкаОписание
__ Комментарий-разделитель — Текстовый параметр-разделитель; время сессий указывается в 24-часовом GMT формате, значение -1 отключает соответствующую линию.
auckland Время открытия Окленда — Строка с временем открытия торговой сессии в Окленде в формате ЧЧ:ММ по GMT.
aucklandSessionHour Длительность сессии Окленда — Продолжительность торговой сессии в Окленде в часах (дробное число).
sydney Время открытия Сиднея — Строка с временем открытия торговой сессии в Сиднее в формате ЧЧ:ММ по GMT.
sydneySessionHour Длительность сессии Сиднея — Продолжительность торговой сессии в Сиднее в часах.
tokyo Время открытия Токио — Строка с временем открытия торговой сессии в Токио в формате ЧЧ:ММ по GMT.
tokyoSessionHour Длительность сессии Токио — Продолжительность торговой сессии в Токио в часах.
shanghai Время открытия Шанхая — Строка с временем открытия торговой сессии в Шанхае в формате ЧЧ:ММ по GMT.
shanghaiSessionHour Длительность сессии Шанхая — Продолжительность торговой сессии в Шанхае в часах.
london Время открытия Лондона — Строка с временем открытия торговой сессии в Лондоне в формате ЧЧ:ММ по GMT.
londonSessionHour Длительность сессии Лондона — Продолжительность торговой сессии в Лондоне в часах.
newyork Время открытия Нью-Йорка — Строка с временем открытия торговой сессии в Нью-Йорке в формате ЧЧ:ММ по GMT.
newyorkSessionHour Длительность сессии Нью-Йорка — Продолжительность торговой сессии в Нью-Йорке в часах.
maxTimeframe Максимальный таймфрейм — Наивысший таймфрейм графика, на котором индикатор будет отображаться; на более высоких таймфреймах индикатор очищает экран.
showVerticalLine Показывать вертикальные линии — Включает или отключает отрисовку вертикальных линий, отмечающих момент открытия каждой торговой сессии.
showOpenPrice Показывать цену открытия — Включает или отключает отрисовку горизонтальных линий цены открытия для каждой торговой сессии.
showPreviousRange Показывать предыдущий диапазон — Включает или отключает отрисовку линий высока и низа предыдущей торговой сессии для текущей сессии.
aucklandColour Цвет Окленда — Цвет графических элементов, связанных с торговой сессией в Окленде.
sydneyColour Цвет Сиднея — Цвет графических элементов, связанных с торговой сессией в Сиднее.
tokyoColour Цвет Токио — Цвет графических элементов, связанных с торговой сессией в Токио.
shanghaiColour Цвет Шанхая — Цвет графических элементов, связанных с торговой сессией в Шанхае.
londonColour Цвет Лондона — Цвет графических элементов, связанных с торговой сессией в Лондоне.
newYorkColour Цвет Нью-Йорка — Цвет графических элементов, связанных с торговой сессией в Нью-Йорке.
VerticalLineStyle Стиль вертикальных линий — Стиль отображения вертикальных линий открытия сессий (сплошной, пунктир и т.д.).
VerticalLineWidth Толщина вертикальных линий — Толщина вертикальных линий открытия сессий в пикселях.
OpenPriceStyle Стиль линий цены открытия — Стиль отображения горизонтальных линий цены открытия сессий.
OpenPriceWidth Толщина линий цены открытия — Толщина горизонтальных линий цены открытия сессий в пикселях.
PreviousRangeLow Цвет низа предыдущего диапазона — Цвет линии, обозначающей низ предыдущей торговой сессии.
PreviousRangeHigh Цвет высока предыдущего диапазона — Цвет линии, обозначающей высок предыдущей торговой сессии.
PreviousRangeStyle Стиль линий предыдущего диапазона — Стиль отображения линий высока и низа предыдущей торговой сессии.
PreviousRangeWidth Толщина линий предыдущего диапазона — Толщина линий высока и низа предыдущей торговой сессии в пикселях.
Получить полный код

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

???/*
   ________________________________________________________________________________

   NAME: Market Sessions.mq4

   AUTHOR: Adam Jowett
   VERSION: 1.4.2
   DATE: 04 Aug 2014
   METAQUOTES LANGUAGE VERSION: 4.0
   UPDATES & MORE DETAILED DOCUMENTATION AT: 
   

   Modifications:
   by: v2vboni  (@ ForexFactory)
   URL: 
   Date: 14 December 2015
   Options Added:
   -Market hours for each market location
   -Added Auckland and Shanghai Market
   ________________________________________________________________________________

   The MIT License (MIT)

   Copyright (c) 2014 Adam Jowett

   Permission is hereby granted, free of charge, to any person obtaining a copy
   of this software and associated documentation files (the "Software"), to deal
   in the Software without restriction, including without limitation the rights
   to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
   copies of the Software, and to permit persons to whom the Software is
   furnished to do so, subject to the following conditions:

   The above copyright notice and this permission notice shall be included in all
   copies or substantial portions of the Software.

   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
   SOFTWARE.
*/

#property indicator_chart_window

extern string           __ = "Times in 24hr GMT time. Enter -1 to disable a line";
extern string           auckland = "23:00";
extern double           aucklandSessionHour=6.75;
extern string           sydney = "01:00";
extern double           sydneySessionHour=6.0;
extern string           tokyo = "02:00";
extern double           tokyoSessionHour=6.0;
extern string           shanghai = "02:30";
extern double           shanghaiSessionHour=5.5;
extern string           london = "10:00";
extern double           londonSessionHour=8.5;
extern string           newyork = "16:30";
extern double           newyorkSessionHour=6.5;
extern int              gmtServerOffset = 0;

extern ENUM_TIMEFRAMES  maxTimeframe = PERIOD_H1;
extern bool             showVerticalLine = true;

extern bool             showOpenPrice = true;
extern bool             showPreviousRange = true;
extern bool             colourLabels = true;

extern color            aucklandColour = clrSteelBlue;
extern color            sydneyColour = clrBlue;
extern color            tokyoColour = clrDeepSkyBlue;
extern color            shanghaiColour = clrPeru;
extern color            londonColour = clrMagenta;
extern color            newYorkColour = clrGold;

extern ENUM_LINE_STYLE  VerticalLineStyle = STYLE_DASH;
extern int              VerticalLineWidth = 0;

extern ENUM_LINE_STYLE  OpenPriceStyle = STYLE_DASHDOTDOT;
extern int              OpenPriceWidth = 0;

extern color            PreviousRangeLow = clrLimeGreen;
extern color            PreviousRangeHigh = clrRed;
extern ENUM_LINE_STYLE  PreviousRangeStyle = STYLE_DOT;
extern int              PreviousRangeWidth = 2;

string prefix = "MarSess*"+DoubleToStr(pow(aucklandSessionHour*sydneySessionHour/tokyoSessionHour*shanghaiSessionHour/londonSessionHour*newyorkSessionHour,0.077),3)+"*";   //"market_sessions_";
int lastAucklandSession = -1;
int lastSydneySession = -1;
int lastTokyoSession = -1;
int lastShanghaiSession = -1;
int lastLondonSession = -1;
int lastNewYorkSession = -1;

double aucklandSessionLength,sydneySessionLength,tokyoSessionLength,shanghaiSessionLength,londonSessionLength,newyorkSessionLength;

double gmtOffset = 0;
int oneHour = 3600; // 60 seconds x 60 minutes = 1 hour
int oneDay = 86400; // oneHour * 24;

int aucklandHour;
int sydneyHour;
int tokyoHour;
int shanghaiHour;
int newyorkHour;
int londonHour;
int sydneyMinute;
int aucklandMinute;
int tokyoMinute;
int shanghaiMinute;
int nyMinute;
int londonMinute;                bool Once=false;
long currentChart = ChartID();   string sTFR;

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

int deinit()
{
   clearScreen(prefix, true, NULL);
   return(0);
}

int start()
{
      // код доступен только после оплаты
   }
   if (Bars <= 10) return(0);

   if (_Period > maxTimeframe) {
      clearScreen(prefix, true, NULL);  
      if (!Once) {
        Comment("Market Sessions will only show on " + sTFR + " or lower");
        Alert("Market Sessions will only show on " + sTFR + " or lower");
        Print("Market Sessions will only show on " + sTFR + " or lower");  Once=true; }
      return(0);
   }

   int counted = IndicatorCounted();
   if (counted < 0) return(-1);
   if (counted > 0) counted--;

   int i = Bars - counted;
   int timeRange = 0;
   double rangeHigh = 0;
   double rangeLow = 0;

   int days = 0;
   int sessions = 0;

   while (i > 0)
   {
      int currentTime = Time[i];
      int dayNumber = TimeDayOfWeek(currentTime) + 1;
      string offsetLabel = (gmtServerOffset >= 0) ? "+" + gmtServerOffset : gmtServerOffset;

      string aucklandLabel = "Auckland open [" + auckland + " " + offsetLabel + "]";      
      string sydneyLabel = "Sydney open [" + sydney + " " + offsetLabel + "]";
      string tokyoLabel = "Tokyo open [" + tokyo + " " + offsetLabel + "]";
      string shanghaiLabel = "Shanghai open [" + shanghai + " " + offsetLabel + "]";      
      string londonLabel = "London open [" + london + " " + offsetLabel + "]";
      string newYorkLabel = "New York open [" + newyork + " " + offsetLabel + "]";

      if (TimeHour(currentTime) == aucklandHour && TimeMinute(currentTime) == aucklandMinute)
      {
         ObjectDelete(prefix + "future_line" + lastAucklandSession);
         lastAucklandSession = currentTime;

         drawVerticalLine(prefix + "aucklandTimeOpen"+i, currentTime, VerticalLineWidth, aucklandColour, VerticalLineStyle, true, aucklandLabel);
         if (showOpenPrice) drawTrendLine(prefix +"aucklandopen" + i, currentTime, currentTime + aucklandSessionLength, Open[i], Open[i], OpenPriceWidth, aucklandColour, OpenPriceStyle, true, false, DoubleToStr(Open[i], Digits), true);
         if (showPreviousRange) {
            timeRange = iBarShift(NULL, 0, lastNewYorkSession) - iBarShift(NULL, 0, currentTime) - 1;
            rangeHigh = High[iHighest(NULL, 0, MODE_HIGH, timeRange, i + 1)];
            rangeLow = Low[iLowest(NULL, 0, MODE_LOW, timeRan

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

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

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

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

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

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

Стоимость полного кода
1 381,40₽ ≈ $16.88