вторник, 1 мая 2012 г.

Система сопровождения позиции (окраска баров осциллятором CCI в ThinkOrSwim)

Скрипт баз перерос во что-то комплексное. Добавлена функция (упоминается на странице с описанием стратегии) с помощью которой бары графика раскрашиваются осциллятором CCI. Меня давно просили написать этот код для ThinkOrSwim. Отдельно я его писать не стал, но встроил в скрипт по окраске баз. Теперь это уже тяжело назвать "скриптом по окраске баз".

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

В опциях период CCI указан как "chanel period". Выделение баз цветом (цвет cyan) идет поверх всех цветовых выделений, поэтому порой цвет базы может скрывать конкретные точки где сменился цвет в зависимости от значения CCI. Это критично только для очень тихоходных акций, которые ползут по 10-15 центов в час.
Итак код скрипта:

#by Egor Masalskiy
#last modify 01.05.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;
input chanel_period = 20;
#------------------
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);


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

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

  1. спасибо большое!прописал сегодня все скрипты, которые, как я думаю, мне подходят. хотел еще узнать, можно ли наложить на график акции spy, как в sd?

    ОтветитьУдалить
  2. Можно, но при перелистывании он будет некоторое время подгружаться каждый раз. Бывает что до 10 секунд. Я это не использую - спроси в скайпе у наших. Тебе подкинут формулу.

    ОтветитьУдалить
  3. Скажите Егор а можно прописать этот скрипт в Strategy Desk? Не подскажите как?

    ОтветитьУдалить
  4. Там можно реализовать либо выкраску баз, либо раскраску по CCI. Комбинированное там не сделать. Раскраска CCI описана в разделе РАБОЧАЯ СРЕДА.

    ОтветитьУдалить
  5. Спасибо все получилось и в Strategy Desk и в ThinkOrSwim.Единственное если это Вас неутомит ответьте мне пожалуста в Strategy Desk на графике только два основных цвета зеленый и красный по примеру видно что там и другие переходные цветаю. А в целом супер помощь неоценимая особенно для "чайников".Огромное СПАСИБО!!!!!!

    ОтветитьУдалить
  6. Там же скриншот с окном и описанием как все правильно настроить! Нужно соблюсти всю очередность цветов и параметров в точности как на скриншоте.

    ОтветитьУдалить
  7. http://path-trader.blogspot.com/p/blog-page.html

    ОтветитьУдалить
  8. Все получилось.Зрение подвело но это издержки.
    СПАСИБО!!!!!

    ОтветитьУдалить
  9. еще один вопрос- у вас после прописания скриптов тос не стал медленнее работать?

    ОтветитьУдалить
  10. Конечно! На все просчеты нужна мощность компьютера! У меня медленее не стал работать, но у меня четырехъядерный процессор и под программу отведено много оперативной памяти. Память отводится в опциях окна в котором вводите логин и пароль от ТОСа. Там есть минимальная и максимальная как у файла подкачки винды.

    ОтветитьУдалить
  11. сегодня в чате SDG завязалась интересная дискуссия о контрольной точке, у тебя нет случайно поста по этой теме? хотя бы в двух словах

    ОтветитьУдалить
  12. Я писал про профиль объемов когда в нем сумел разобраться и привнести его в свою торговлю скомбинировав с классическими принципами, но конкретного поста про точку контроля нету. (в той дискусии я участвовал) =)

    ОтветитьУдалить
  13. В разделе МОИ ТРЕЙДЫ есть скрин сделки по MRO (от 04.05.2012), где я делал скриншоты по мере развития сделки. Там видно как развивается профиль объема и точка контроля с течением сделки.

    ОтветитьУдалить
  14. Спасибо большое Егор за информацию и скрипты. А как у тебя получается настроить VolumeProfile, чтобы показывало дневные и часовые объемы одновременно, я для этого держу на экране 2 графика. И не зачти за нескромность: каким индикатором отбиваются внутридневные High/Low.

    ОтветитьУдалить
  15. а что обозначают две желтые линии и окрашенная зона между ними?

    ОтветитьУдалить
  16. Что за желтые линии? Про окрашивание утренней сессии описано в прошлом посте.

    ОтветитьУдалить
  17. ссори, не туда отписался

    ОтветитьУдалить
  18. А как у тебя получается настроить VolumeProfile, чтобы показывало дневные и часовые объемы одновременно, я для этого держу на экране 2 графика. Отвечать не надо до меня дошло как это сделать.

    ОтветитьУдалить
  19. Дневные и часовые? У меня тут один профиль - профиль за один день. Часовых нету и в помине!

    ОтветитьУдалить
  20. Перечень всех скриптов и индикаторов написан в верхней строке на скриншоте. Там же указаны все опции.

    ОтветитьУдалить
  21. Да и какой смысл копировать все как уменя? Возьмите только то что вы поняли и что вам подходит! Зачем вам лишняя информация, которую вы не осознали даже еще? Она будет только мешать! Не нужно делать из своих графиков гирлянды - упустите суть!

    ОтветитьУдалить
  22. Егор..напиши скриптик..который ищет уровни..тоесть череда баров которая упирается в какую нибудь цену..очень будет полезно

    ОтветитьУдалить
  23. Я пишу скрипты ДЛЯ СЕБЯ и делюсь ими с интересующимися. Мне не платят за написание скриптов под заказ и я этим заниматься не буду. Если вам что-то кажется полезным - изучайте ToS Script...

    ОтветитьУдалить
  24. Егор,как поменять окраску баров в системе сопровождения позиции!?

    ОтветитьУдалить
  25. В коде индикатора поменять... Ищи слово color и там правь либо название цвета, либо его код. Опцию изменения цвета в интерфейсе я не делал.

    ОтветитьУдалить