Нажми на изображение для увеличения |
Что-то в последнее время мне стало много всего казаться во время торговой сессии, поэтому для улучшения восприятия сделал несколько простых примочек для ToSа (для тех кто не в курсе - это терминал с графиками). Они красят фон графика в соответствии с тенденцией. Методики определения тенденции простые и общеизвестные, ничего нового в них нету. Просто, я считаю, эта раскраска положительно воздействует на подсознание в момент принятия решения. Так же помогает с мониторами на которых куча маленьких графиков отрисовывающих домашку, т.к. видно какие акции идут по рынку, а какие нет.
Итак:
1. Раскрашивает фон чарта в зависимости от цвета тела последней свечи указанной в опции period в настройках этого скрипта. При этом он может делать расчет по дневке, а красить пятиминутный график.
input period = {default HOUR, DAY, WEEK, MONTH, "OPT EXP"};
def POSITION = close(period = period) - open(period = period);
def spread = 0.1 * (high(period = period) - low(period = period));
#AssignBackgroundColor( if POSITION > spread then CreateColor(88,128,88) else if POSITION < -spread then CreateColor(128,88,88) else Color.GRAY);
AssignBackgroundColor( if POSITION > spread then CreateColor(0,88,0) else if POSITION < -spread then CreateColor(88,0,0) else Color.BLACK);
2. Раскрашивает фон чарта в зависимости от того какой экстремум прошлого периода был преодолен текущим. Период указывается в настройках этого скрипта. У меня он висит на дневке и расчет делает из дневного периода.
input period = {default HOUR, DAY, "2 DAYS", "3 DAYS", "4 DAYS", WEEK, MONTH, "OPT EXP"};
def HIGH = if ((high(period = period) - high(period = period)[1]) > 0) then 1 else -1 ;
def LOW = if ((low(period = period) - low(period = period)[1]) < 0) then -1 else 1 ;
#AssignBackgroundColor( if (HIGH + LOW) > 0 then CreateColor(88,128,88) else if (HIGH + LOW) < 0 then CreateColor(128,88,88) else Color.GRAY);
AssignBackgroundColor( if (HIGH + LOW) > 0 then CreateColor(0,88,0) else if (HIGH + LOW) < 0 then CreateColor(88,0,0) else Color.BLACK);
3. Раскрашивает фон чарта в зависимости от положения high, low и close последнего периода. Период указывается в настройках скрипта. У меня он висел на минутном графике, а расчет делал исходя из дневного периода.
input period = {default HOUR, DAY, WEEK, MONTH, "OPT EXP"};
def spread = high(period = period) - low(period = period);
def position1 = if (close(period = period) - low(period = period)) < spread/3 then -1 else 1;
def position2 = if (high(period = period) - close(period = period)) < spread/3 then 1 else -1;
#AssignBackgroundColor( if (position1 + position2) > 1 then CreateColor(88,128,88) else if (position1 + position2) < -1 then CreateColor(128,88,88) else Color.GRAY);
AssignBackgroundColor( if (position1 + position2) > 1 then CreateColor(0,88,0) else if (position1 + position2) < -1 then CreateColor(88,0,0) else Color.BLACK);
input period = {default HOUR, DAY, "2 DAYS", "3 DAYS", "4 DAYS", WEEK, MONTH, "OPT EXP"};
def HIGH = if ((high(period = period) - high(period = period)[1]) > 0) then 1 else -1 ;
def LOW = if ((low(period = period) - low(period = period)[1]) < 0) then -1 else 1 ;
#AssignBackgroundColor( if (HIGH + LOW) > 0 then CreateColor(88,128,88) else if (HIGH + LOW) < 0 then CreateColor(128,88,88) else Color.GRAY);
AssignBackgroundColor( if (HIGH + LOW) > 0 then CreateColor(0,88,0) else if (HIGH + LOW) < 0 then CreateColor(88,0,0) else Color.BLACK);
3. Раскрашивает фон чарта в зависимости от положения high, low и close последнего периода. Период указывается в настройках скрипта. У меня он висел на минутном графике, а расчет делал исходя из дневного периода.
input period = {default HOUR, DAY, WEEK, MONTH, "OPT EXP"};
def spread = high(period = period) - low(period = period);
def position1 = if (close(period = period) - low(period = period)) < spread/3 then -1 else 1;
def position2 = if (high(period = period) - close(period = period)) < spread/3 then 1 else -1;
#AssignBackgroundColor( if (position1 + position2) > 1 then CreateColor(88,128,88) else if (position1 + position2) < -1 then CreateColor(128,88,88) else Color.GRAY);
AssignBackgroundColor( if (position1 + position2) > 1 then CreateColor(0,88,0) else if (position1 + position2) < -1 then CreateColor(88,0,0) else Color.BLACK);
4. Раскрашивает фон чарта на основе триангулярных вычислений. Весь принцип не буду объяснять, скажу только что используется направление триангулярной скользящей и положение цены относительно нее. Использую на минутном графике (период триангулярных вычислений по умолчанию).
input price = close;
input Triangular_length = 89;
input displace = 0;
def effectiveLength = Ceil((Triangular_length + 1) / 2);
def AvgTri = Average(Average(price[-displace], effectiveLength), effectiveLength);
#AssignBackgroundColor( if (AvgTri > AvgTri[1] and close > AvgTri) then CreateColor(88, 128, 88) else if (AvgTri < AvgTri[1] and close < AvgTri) then CreateColor(128, 88, 88) else Color.GRAY);
AssignBackgroundColor( if (AvgTri > AvgTri[1] and close > AvgTri) then CreateColor(0,88,0) else if (AvgTri < AvgTri[1] and close < AvgTri) then CreateColor(88,0,0) else Color.BLACK);
Цвета подобраны под черную и серую гаммы программы (по умолчанию черная). Что бы переключить на серую в коде скрипта нужно раскоментировать (удалить символ #) перед одной строкой начинающейся с AssignBackgroundColor и закоментировать (поставить символ #) перед другой строкой начинающейся с AssignBackgroundColor.
P.S. Как вставить индикатор в ThinkOrSwim описано здесь.
input price = close;
input Triangular_length = 89;
input displace = 0;
def effectiveLength = Ceil((Triangular_length + 1) / 2);
def AvgTri = Average(Average(price[-displace], effectiveLength), effectiveLength);
#AssignBackgroundColor( if (AvgTri > AvgTri[1] and close > AvgTri) then CreateColor(88, 128, 88) else if (AvgTri < AvgTri[1] and close < AvgTri) then CreateColor(128, 88, 88) else Color.GRAY);
AssignBackgroundColor( if (AvgTri > AvgTri[1] and close > AvgTri) then CreateColor(0,88,0) else if (AvgTri < AvgTri[1] and close < AvgTri) then CreateColor(88,0,0) else Color.BLACK);
Цвета подобраны под черную и серую гаммы программы (по умолчанию черная). Что бы переключить на серую в коде скрипта нужно раскоментировать (удалить символ #) перед одной строкой начинающейся с AssignBackgroundColor и закоментировать (поставить символ #) перед другой строкой начинающейся с AssignBackgroundColor.
P.S. Как вставить индикатор в ThinkOrSwim описано здесь.