İş tamamlandı
Şartname
Техническое задание.
Необходим индикатор для MT5, который наносит ценовые значения (в виде горизонтальных уровней) CLOSE/HIGH/LOW на младший таймфрейм с закрытых свеч старших таймфреймов.
Например -> на ТФ M15 индикатор будет наносить ценовые значения в виде горизонтальных уровней старших таймфреймов: D1,W1,M1 - разными цветами.
Подобный индикатор реализован на сервисе www.tradingview.com - Вы можете пройти по ссылке и посмотреть в реальном времени как работает индикатор.
Рис 1. - Готовый вид индикатора который описывается в задании. Включает в себя: уровни, заливку между уровнями.
В каком виде и для каких ТФ должны наносится уровни?
Индикатор строит уровни для следующих таймфреймов (в разных окнах- например опционально выбирая для какого из ТФ нужно построить):
M15,H1,H4,D1,W1
Рассмотрим на примере пятнадцати минутки что отображает индикатор для этого таймфрейма (и для других по аналогии). В целях последовательного изложения задачи заливка между
уровнями отключена. См. рис 2.
Рис. 2 - Пример на M15 с отключенной заливкой между уровнями.
Как видите из рис.2 все линии это уровни CLOSE, HIGH, LOW - > дневки, недели, месяца. Уровни и заливка в этом индикаторе - это просто представление
информации о OHLC старших таймфремов в разных форматах, а именно:
УРОВНИ, ЗАЛИВКА, СТИЛИ
Горизонтальными уровнями отображаются:
Day(CLOSE) цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
Week(CLOSE) цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
Month(CLOSE)цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
Month(HIGH) цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
Month(LOW) цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
Заливкой отображаются:
Day(HIGH-LOW)* цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
WEEK(HIGH-LOW) цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
MONTH(HIGH-LOW) цвет, тип (пунктир, тире, сплошная), прозрачность (если реализуемо) - опционально
*Примечание - (HIGH-LOW) - это расстояние между хаем и лоем.
Далее, если включить заливку то индикатор будет выглядеть так (См. рис.3):
Что отображается на ТФ(См. рис 1):
Для M15
Уровни: D1,W1,M1(CLOSE); M1(HIGH, LOW);
Заливка D1,W1,M1(HIGH-LOW);
=====================================
Для H1
Уровни: D1,W1,M1(CLOSE); M1(HIGH, LOW);
Заливка D1,W1,M1(HIGH-LOW);
=====================================
Для H4
Уровни: D1,W1,M1(CLOSE); M1(HIGH, LOW);
Заливка: D1,W1,M1(HIGH-LOW);
=====================================
Для D1
Уровни: W1,M1(CLOSE); M1(HIGH, LOW);
Заливка: W1,M1(HIGH-LOW);
=====================================
Для W1
Уровни: M1(CLOSE); M1(HIGH, LOW);
Заливка: M1(HIGH-LOW);
=====================================
Далее я привожу код скрипта на сервисе tradingview который всё это отрисовывает:
study("localMA[160406]") var_sumb = input(defval="XAUUSD", type=string, title="SUMB") //Month's j7 = plot( security(var_sumb, "M", sma(close[1],1)), color=yellow, style=line, linewidth=2, title="M(C)", transp=0) j8 = plot( security(var_sumb, "M", sma( high[1],1)), color=white, style=circles, linewidth=2, title="M(H)", transp=0) j9 = plot( security(var_sumb, "M", sma( low[1],1)), color=#970000, style=circles, linewidth=2, title="M(L)", transp=0) //Month's fill fill(j7, j8, color=yellow, transp=75, title="Fill_Month(H)") fill(j7, j9, color=yellow, transp=75, title="Fill_Month(L)") //Week's j4 = plot( security(var_sumb, "W", sma(close[1],1)), color=black, style=line, linewidth=4, title="W(C)", transp=0) j5 = plot( security(var_sumb, "W", sma( high[1],1)), transp=100, title="W(H)", editable=false) j6 = plot( security(var_sumb, "W", sma( low[1],1)), transp=100, title="W(L)", editable=false) //Week's fill fill(j4, j5, color=#00FFFF, transp=75, title="Fill_Week(H)") fill(j4, j6, color=#FF00FF, transp=75, title="Fill_Week(L)") //Day's j1 = plot( security( var_sumb, "D", sma(close[1],1)), color=blue, style=circles, linewidth=4, title="D(C)", transp=0) j2 = plot( security( var_sumb, "D", sma( high[1],1)), transp=100, title="D(H)", editable=false) j3 = plot( security( var_sumb, "D", sma( low[1],1)), transp=100, title="D(L)", editable=false) //Day's fill fill(j1, j2, color=#0000FF, transp=75, title="Fill_Day(H)") fill(j1, j3, color=#FF0000, transp=75, title="Fill_Day(L)")
Так же привожу код скрипта который отрисовывает уровень старшего таймфрейма для младшего ТФ правда только для MT4(!!!!!!!!)
, любезно предоставленный Bakhytzhan Abzalbekov на форуме.
#property copyright "Copyright 2016, x.ru." #property link "https://www..ru" #property version "1.00" #property strict input int TimeFrame=60; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- double Dmax,Dmin; static datetime ObjT=0; datetime TempT; Dmax=iHigh(Symbol(),TimeFrame,1); Dmin=iLow(Symbol(),TimeFrame,1); TempT=iTime(NULL,0,1); if(ObjT!=TempT && ObjT!=0) {ObjectDelete("LevelUp"); ObjectDelete("LevelDown");} if(ObjT!=TempT) { ObjectCreate("LevelUp", OBJ_HLINE, 0, 0, Dmax); ObjectSet("LevelUp", OBJPROP_PRICE1, Dmax); ObjectSet("LevelUp", OBJPROP_COLOR, clrOrchid); ObjectSet("LevelUp", OBJPROP_STYLE, 2); ObjectSet("LevelUp", OBJPROP_WIDTH, 1); ObjectCreate("LevelDown", OBJ_HLINE, 0, 0, Dmin); ObjectSet("LevelDown", OBJPROP_PRICE1, Dmin); ObjectSet("LevelDown", OBJPROP_COLOR, clrOrchid); ObjectSet("LevelDown", OBJPROP_STYLE, 2); ObjectSet("LevelDown", OBJPROP_WIDTH, 1); WindowRedraw(); ObjT=TempT; } }


