вторник, 4 декабря 2012 г.

Лейбл для комплексного скрипта по раскраске баров.

Нажми на изображение для увеличения



Ну и наконец к комплексному скрипту по окраске баров я добавил лейбл, который сигналит о размере базочек. Остальное описание этого срипта читайте в предыдущих постах. Функции к нему я добавлял постепенно.

Теперь о боке лейблов. Вобщем не трудно догадаться, что если полоса не содержит черного и зеленого цветов - это к шорту, а если нету черного и красного - это к лонгу! =) Голубой цвет сигналит о моменте входа с минимальным риском. Собственно для этого и затевалась вся работа с лейблами... Идеальная ситуация: первый лейбл ярко желтый, второй и третий голубые, а оставшиеся три либо красные для шорта либо зеленые для лонга).

#by Egor Masalskiy
#last modify 03.12.2012
#------------------
input period = {default DAY, WEEK};
input lenght = 3;
input chanel_period = 20;
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);
def CCI = CCI(chanel_period);
#------------------
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 if
CCI < -25 then CreateColor(255,190,190)
else if
CCI < -50 then CreateColor(255,130,130)
else if
CCI > 25 then CreateColor(190,255,190)
else if
CCI > 50 then CreateColor(130,255,130)
else Color.white);

#-----------------------------Label---------------------------------------------------
AddLabel(yes, Concat("Base ", Round(Base, 2)), (if Base <= 0.05 then color.CYAN else Color.BLACK));

P.S. О том как и куда вставлять эти скрипты в терминале ThinkOrSwim написано здесь.

13 комментариев:

  1. Привет,Егор! Все отлично, а что на лейбле значит РоС? Извините за дремучесть...)))

    ОтветитьУдалить
    Ответы
    1. Point of Control - точка контроля. Т.е. та цена по которой проторговано больше всего контрактов за выбранный промежуток времени.

      Удалить
  2. Спасибо! Понял!

    ОтветитьУдалить
  3. Привет, Eгор! Может сможешь помочь. Ставлю твои скрипты для графиков, все отлично устанавливается и работает, но... если выйти из TOS и зайти обратно, то все чисто, как будто я ничего не устанавливал. Со скриптами для Watchlist все нормально, все сохраняется. У меня Win7 64bit.

    ОтветитьУдалить
    Ответы
    1. У моего друга была такая же проблема. В чем дело так и не разобрались. Выкрутились тем, что сохранили воркспейс и после загрузку загружали его. Это длеается в меню окна сверху-справа.

      Удалить
  4. Спасибо за подсказку! Действительно, у меня так тоже получилось.

    ОтветитьУдалить
  5. Егор привет.
    У меня такой вот вопрос.
    Если знаешь, подскажи как в TOS сделать фильтр-study, который ищет наличие двух растущих 5-минутных баров со следующей комбинацией условий:
    1. High 2-го бара > High 1-го
    2. Low 2-го бара > Low 1-го
    3. High 2-го бара есть high дня на тот момент
    То есть несмотря на текущую ситуацию, при наличии данной комбинации баров (это могут быть только первые 2 бара дня)фильтр должен выдавать эти акции.
    Я думаю сделать список акций и при наличии соответствия фильтр будет выдавать значения 1 или 0.

    ОтветитьУдалить
    Ответы
    1. Это не сложно - попробуйте сделать сами. У меня нету времени в последнее время что бы заниматься кодом.

      Удалить
    2. Да я уже думал и, честно признаться, никак не получается (не один месяц бьюсь). Поэтому и прошу собственно помочь разбирающихся.

      Удалить
  6. Здравствуйте!После обновления не все скрипты работают корректно.Например, не отображается желтый лейбл запас хода,и не все линии отображаются с других скриптов,может не стыковка по цветам???Как это все исправить???Помогите, плиз, так как в программировании совсем не силен!!!

    ОтветитьУдалить
    Ответы
    1. Ничем не могу помочь. ToS уже давно не использую. И Америку не торгую.

      Удалить
    2. Здравствуйте, Егор. Если не секрет, почему перестали торговать Америку?

      Удалить