thinkorswim

День добрый, подскажите как мне через индикатор (скрипт) нарисовать такие линии. Есть список параметров: - уровень цены - начало даты - конец даты - написать комментарий, выше линии или ниже. Пример на скрине.


Проголосовало: 0

Янв 18 2013, 11:10
Прикреплена картинка:
День добрый, подскажите
2013-01-18_10-07-51.png · 1278x900px, 79KB


Комментарии
growex

В языке отсутствуют функции доступа к графическим объектам (кроме вертикальной линии) но это можно реализовать привязавшись к barnumber() в качестве условия для диапазона где будет нарисована линия и условная функция которая будет проверять номер свечки и при попадании его в диапазон рисовать линию на определенном уровне...., диапазон нужно будет посчитать отдельно. Считать его можно через временные функции....
Здесь чуть ниже есть пример скрипта для рисования уровней фибо, посмотрите там.

Этот скрипт будет поедать выделенные вам ресурсы сервера, поэтому проще руками нарисовать и надпись поставить.

Янв 18 2013, 17:24
drzax

Спасибо за ответ, руками не очень гут - таких уровней нужно нарисовать и минимум порядка 100, а лучше около 200 за год. А по другим валютным парам еще больше...

Янв 18 2013, 18:39
drzax

С линией вроде придумал решение
input price = 1.3333;
input BeginDate = 20130114;
input EndDate = 20130118;

plot line = if DaysFromDate(BeginDate) and DaysFromDate(EndDate) then price else double.NaN;
line.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
line.SetDefaultColor(Color.LIGHT_GREEN);

а как быть с тектом на этой линии? через AsText?

Янв 18 2013, 19:51
drzax

вернее: plot line = if DaysFromDate(BeginDate) >0 and DaysFromDate(EndDate) <0 then price else double.NaN;

Янв 18 2013, 19:54
drzax

Ну и последний вопрос, как AddLabel() присвоить координаты для текста, а то располагает в вверху слева.

Янв 18 2013, 20:06
drzax

все, разобрался, мот кому пригодиться для истории:
input price = 1.3333;
input BeginDate = 20130114;
input EndDate = 20130118;

plot line = if DaysFromDate(BeginDate) > 0 and DaysFromDate(EndDate) < 0 then price else Double.NaN;
line.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
line.SetDefaultColor(Color.LIGHT_GREEN);

AddChartBubble(GetYYYYMMDD() == BeginDate, price, "тут нужный мне текст", Color.LIGHT_GREEN, no);

Янв 18 2013, 20:27
Наш канал