На рисунке ниже — Watchlist основных Futures (базовый Watchlist). Можно исполользовать любые списки, в том числе динамически-создаваемые «ловушки»-скринеры, как замена finviz.com. Правая часть таблицы (столбцы) — текущие (момент) уровни инструмента (в данном случае фьючерса) относительно того или иного уровня Camarilla Pivots, рассчитанного относительно предыдущего дня. Остование или опережение уровня показаны в относительных величинах (%) и помимо этого выставлена синяя сигнализация поля при близком нахождении (менее чем столько-то долей %).
Как я с этим работаю — сортирую нужные столбцы (например по столбцу Pivot Point) и дальше уже вывожу инструмент в графическое представление.
На оперативном (внутриневном) графике так же отражены нужные уровни Camarilla (в данном случае — S3,S4,PP,R3,R4) и High,Low,Close предыдущего дня.
Как все это настроить?
Сперва настроим Watchlist просмотр.
Правой кнопкой мышки (или двумя пальцами на тачпаде), Customize.
Дальше выбираем доступные к настройкам Custom-вьюшки:
В списке Custom1-19 выбираем любой двойным нажатием на символе слево от имени и видим вот это:
Стираем содержимое и взамен вставляем код thinkscript для нужного уровня Camarilla и сохраняем этот Custom Colmn Name, задав ему удобное имя.
Коды для Camarilla в синтаксисе thinkscript (каждый блок кода — отдельный Custom Column):
plot S4=round((close-(close[1]-(high[1]-low[1])*1.1/2))/close*100,2); S4.AssignValueColor(if S4 <0 then Color.RED else Color.GREEN); AssignBackgroundColor( if AbsValue(S4)<0.05 then Color.Blue else Color.BLACK);
------------
plot S3=round((close-(close[1]-(high[1]-low[1])*1.1/4))/close*100,2);
S3.AssignValueColor(if S3 <0 then Color.RED else Color.GREEN);
AssignBackgroundColor( if AbsValue(S3)<0.1 then Color.Blue else Color.BLACK);
------------
plot S2=round((close-(close[1]-(high[1]-low[1])*1.1/6))/close*100,2); S2.AssignValueColor(if S2 <0 then Color.RED else Color.GREEN); AssignBackgroundColor( if AbsValue(S2)<0.05 then Color.Blue else Color.BLACK);
------------
plot S1=round((close-(close[1]-(high[1]-low[1])*1.1/12))/close*100,2);
S1.AssignValueColor(if S1 <0 then Color.RED else Color.GREEN);
AssignBackgroundColor( if AbsValue(S1)<0.1 then Color.Blue else Color.BLACK);
------------
plot P=round((close-(close[1]+high[1]+low[1])/3)/close*100,2);
P.AssignValueColor(if P <0 then Color.RED else Color.GREEN);
AssignBackgroundColor( if AbsValue(P)<0.1 then Color.Blue else Color.BLACK);
-------------
plot R1=round((close-(close[1]+(high[1]-low[1])*1.1/12))/close*100,2); R1.AssignValueColor(if R1 <0 then Color.RED else Color.GREEN); AssignBackgroundColor( if AbsValue(R1)<0.05 then Color.Blue else Color.BLACK);
-------------
plot R2=round((close-(close[1]+(high[1]-low[1])*1.1/6))/close*100,2); R2.AssignValueColor(if R2 <0 then Color.RED else Color.GREEN); AssignBackgroundColor( if AbsValue(R2)<0.05 then Color.Blue else Color.BLACK);
-------------
plot R3=round((close-(close[1]+(high[1]-low[1])*1.1/4))/close*100,2); R3.AssignValueColor(if R3 <0 then Color.RED else Color.GREEN); AssignBackgroundColor( if AbsValue(R3)<0.05 then Color.Blue else Color.BLACK);
-------------
plot R4=round((close-(close[1]+(high[1]-low[1])*1.1/2))/close*100,2); R4.AssignValueColor(if R4 <0 then Color.RED else Color.GREEN); AssignBackgroundColor( if AbsValue(R4)<0.05 then Color.Blue else Color.BLACK);
-------------
Теперь вставляем Custom Column в правую часть нашего вида:
Вторая часть — индикаторы на графике.
Создать собственный индикатор Studies-Edit Studies...-New...:
Все что видим стираем:
Вставляем код:
# CAMARILLAPIVOTS
# (c) 2009
www.thinkscripter.com
# thinkscripter@gmail.com
# Last Update 08 Feb 2009
input timeFrame = {default DAY, WEEK, MONTH};
input showOnlyToday = no;
def H = high(period = timeFrame)[1];
def L = low(period = timeFrame)[1];
def C = close(period = timeFrame)[1];
def R = H-L;
def calc_PP = (H + L + C) / 3;
def calc_H1 = C+(R*1.1/12);
def calc_H2 = C+(R*1.1/6);
def calc_H3 = C+(R*1.1/4);
def calc_H4 = C+(R*1.1/2);
def calc_L1 = C-(R*1.1/12);
def calc_L2 = C-(R*1.1/6);
def calc_L3 = C-(R*1.1/4);
def calc_L4 = C-(R*1.1/2);
plot H4;
plot H3;
plot H2;
plot H1;
plot PP;
plot L1;
plot L2;
plot L3;
plot L4;
PP.hide();
H1.hide();
H2.hide();
L1.hide();
L2.hide();
if (showOnlyToday and !IsNaN(close(period = timeFrame)[-1])) or
(getAggregationPeriod() > if timeframe == timeframe.DAY then AggregationPeriod.DAY else if timeframe == timeframe.WEEK then AggregationPeriod.WEEK else AggregationPeriod.MONTH)
then {
H1 = Double.NaN;
H2 = Double.NaN;
H3 = Double.NaN;
H4 = Double.NaN;
PP = Double.NaN;
L1 = Double.NaN;
L2 = Double.NaN;
L3 = Double.NaN;
L4 = double.NaN;
}
else {
H1 = calc_H1;
H2 = calc_H2;
H3 = calc_H3;
H4 = calc_H4;
PP = calc_PP;
L1 = calc_L1;
L2 = calc_L2;
L3 = calc_L3;
L4 = calc_L4;
}
PP.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
H1.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
H2.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
H3.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
H4.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
L1.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
L2.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
L3.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
L4.SetPaintingStrategy(if timeframe == timeframe.DAY then PaintingStrategy.LINE_VS_POINTS else if timeframe == timeframe.WEEK then PaintingStrategy.LINE_VS_TRIANGLES else PaintingStrategy.LINE_VS_SQUARES);
PP.SetDefaultColor(GetColor(0));
H1.SetDefaultColor(GetColor(5));
H2.SetDefaultColor(GetColor(5));
H3.SetDefaultColor(GetColor(5));
H4.SetDefaultColor(GetColor(5));
L1.SetDefaultColor(GetColor(6));
L2.SetDefaultColor(GetColor(6));
L3.SetDefaultColor(GetColor(6));
L4.SetDefaultColor(GetColor(6));
PP.SetStyle(Curve.POINTS);
H1.SetStyle(Curve.POINTS);
H2.SetStyle(Curve.POINTS);
H3.SetStyle(Curve.POINTS);
H4.SetStyle(Curve.POINTS);
L1.SetStyle(Curve.POINTS);
L2.SetStyle(Curve.POINTS);
L3.SetStyle(Curve.POINTS);
L4.SetStyle(Curve.POINTS);
-----
Сохраняем, обзываем, вставляем в список индикатор в график (на рисунке сверху в правой части он изображен):
Как итог видим примерно следующее:
Надеюсь кому-то помог.
Ну а так же Мсье — поведайте что работает, если знаете что НЕ работает :)
И если уж высказались на тему, что ЭТО работает — приведите пример прогноза на ближ 2-3 месяца поведения инструмента, на котором вы прочитаете сейчас «работающий» паттерн — очертите паттерн как установку (мол «три солдата» и тд), сам инструмент и прогноз. Просто хоть от руки нарисуйте стрелочками прогнозируемый тренд. Надеюсь это поможет здесь новичкам, которые кидаются во все стороны (от интуитива до МТС и перехода на зарубежные биржи и производные инструменты).
если к в вам приходит очкастый анал… г или трейдун и дает вам прогноз на ближ 2-3 мес можете смело бить ему в еб… к.
Публика, которая читает комментарии (а такая наверное все-таки есть) впитает знания в более развернутой форме. Опишите это (пусть и отнимет 10 минут ваше драгоценного времени) — поделитесь граалем — Вы же знаете что НЕ работает, а что РАБОТАЕТ. Синергия — всем на пользу.
Предлагаю успокоится и пользоваться тем, что предоставляет инструмент (TOS).
Со своей стороны (собственный интерес) замечу, что TDA анонсировал слияние инструмента StrategyDesk и TOS в единый TOS — т.е. в ближ. время наконец можно будет заниматься полноценным бэктестингом в TOS и даже более того — уникальная «фишка» StrategyDesk (что например ее разительно отличает от TSLAB) — возможность тестировать стратегию на выбранном диапазоне инструментов — создаем watchlist (не забываем что он так же может быть динамическим — ловушка-скринер) и в него пропихиваем стратегию и запускаем расчеты — на выходе получаем статистику — какой инструмент наиболее подходит под написанную стратегию. Вот в чем уникальность всего этого бандла — огромное разнообразие инструментов (NYSE,NASDAQ,CME,OTCBB), приличная ликвидность, скрининг, бэктестинг. И все это скоро в одном TOS. Он же кстати и в iPad :)