вторник, 24 апреля 2012 г.

Выделение цветом утренней сессии на графике ThinkOrSwim

Для увеличения нажми на изображение
Этот скрипт выкрашивает бары утренней сессии оранжевым цветом. Скрипт позволяет задать время начала и окончания выделяемой сессии (так что вы можете выделить любой период времени). Зачем это нужно? Некоторые избегают торгов в определенные периоды дня, некоторые используют уровни сформированные в определенные периоды дня. Именно для этих целей и сделан этот скрипт. Т.к. у меня на графике идет раскраска базочек, то я просто дополнил скрипт раскраски базочек новой функцией - функцией окраски утренней сессии в отдельный цвет. Вот код скрипта:


#by Egor Masalskiy
#last modify 24.04.2012
#------------------
input period = {default DAY, WEEK};
input lenght = 3;
input periodRangeFor_base2cent =  0.3;
input periodRangeFor_base3cent = 0.5;
input periodRangeFor_base4cent = 0.8;
input periodRangeFor_base5cent = 1.2;
input Open_Inside_Time = 0930;
input Close_Inside_Time = 1030;
#------------------
def day = getDay();
def lastDay = getLastDay();
def isToday = if(day==lastDay,1,0);
def pastOpen = if((secondsTillTime(Open_Inside_Time) > 0), 0,1);
def pastClose = if((secondsTillTime(Close_Inside_Time) > 0), 0,1);
def Inside_Time = if(pastOpen and !pastClose, 1, 0);
def firstBar =if (day[1] != day, day-1, 0);
def BASE = Highest(high, lenght) - Lowest (low, lenght);
#------------------
AssignPriceColor( if 
(high(period = period)[1] - low(period = period)[1]) > periodRangeFor_base5cent and BASE <= 0.05 then Color.CYAN else if
(high(period = period)[1] - low(period = period)[1]) > periodRangeFor_base4cent and (high(period = period)[1] - low(period = period)[1]) <= periodRangeFor_base5cent and BASE <= 0.04 then Color.CYAN else if
(high(period = period)[1] - low(period = period)[1]) <= periodRangeFor_base4cent and (high(period = period)[1] - low(period = period)[1]) > periodRangeFor_base3cent and BASE <= 0.03 then Color.CYAN else if
(high(period = period)[1] - low(period = period)[1]) <= periodRangeFor_base3cent and (high(period = period)[1] - low(period = period)[1]) > periodRangeFor_base2cent and BASE <= 0.02 then Color.CYAN else if
(high(period = period)[1] - low(period = period)[1]) <= periodRangeFor_base2cent  and BASE <= 0.01 then Color.CYAN
else if (Inside_Time) then color.ORANGE
else Color.white);


P.S. Как вставить индикатор в ThinkOrSwim описано здесь.

Комментариев нет:

Отправить комментарий