среда, 1 августа 2012 г.

Акции-друзья (скрипты для скринера ThinkOrSwim)

Акции-друзья - это те акции на которых вы чаще всего зарабатываете. Лично я добавляю в этот список акции на которых заработал в результате последнего рабочего дня или на которые есть стратегические идеи, а удаляю из списка те акции на которых потерял в результате последнего рабочего дня (таким образом список ежедневно изменяется). Я сделал несколько скриптов для списка с акциями-друзьями.

Повышенный объем:
Первый скрипт находит акции с повышенным объемом за прошлый день, причем этот объем должен быть выше чем днем раньше, т.е. возросшим. Цифровое значение - это текущая стоимость акции. Оранжевым цветом выделяются отобранные акции.
Период Aggregation: D

#by Egor Masalskiy
#last modify 31.07.2012
def VOL = sum(volume[1], 21)/21;
plot R = close;
AssignBackgroundColor( if volume[1] > VOL and volume[1] > volume[2] then Color.ORANGE  else Color.white);

Закрытие под high или low:
Второй и третий скрипты являются одним логическим целым, но ставятся в разные колонки, поэтому опишу их вместе. Эти скрипты ищут стаки кторые находятся на хай (зеленый сигнал) или лоу (красный сигнал) за прошлый день и за текущий день соответственно. Что бы не перепутать: единицей обозначены сигналы прошлого дня, а нулем - текущего.
Итак первый (прошлый день):
Период Aggregation: D

#by Egor Masalskiy
#last modify 31.07.2012
plot Change = 1;
AssignBackgroundColor( if (high[1] - close[1]) < 0.118 * sum(high[1]-low[1], 5) / 5 then Color.GREEN else if (close[1] - low[1]) < 0.118  * sum(high[1]-low[1], 5) / 5 then Color.RED else Color.WHITE);

Второй (текущий день):
Период Aggregation: D

#by Egor Masalskiy
#last modify 31.07.2012
plot Change = 0;
AssignBackgroundColor( if (high - close) < 0.118 * sum(high-low, 5) / 5 then Color.GREEN else if (close - low) < 0.118  * sum(high-low, 5) / 5 then Color.RED else Color.WHITE);

New high или new low за 10 дней:
Еще один скрипт находит на листе акции, которые в течение дня обновили свой 10-дневный хай или лоу. Цифрой обозначена разница между текущей ценой и вчерашним закрытием.
Период Aggregation: D

#by Egor Masalskiy
#last modify 01.08.2012
plot Change = round(close - close[1]);
AssignBackgroundColor( if highest(high[1], 10) < high then Color.GREEN else if lowest(low[1], 10) > low then Color.RED else Color.WHITE);

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

21 комментарий:

  1. добавил в пост еще один скрипт

    ОтветитьУдалить
  2. Как для thinkorswim создать индикатор уровней High - Low последних 25 дней, именно последних дней с учётом текущего High - Low, а не календарного месяца???

    ОтветитьУдалить
  3. Задать параметр исчисления DAY, воспользоваться функциями highest и lowest.

    ОтветитьУдалить
    Ответы
    1. Этот комментарий был удален автором.

      Удалить
    2. В начале кода вставь
      input period = {default HOUR, DAY, WEEK, MONTH, "OPT EXP"};
      после low и high вставь (period = period)

      Удалить
    3. input period = {default DAY, WEEK, MONTH, "OPT EXP"};
      plot A = highest(high(period = period)[1],25);
      plot B = lowest(low(period = period)[1],25);

      попробуй (написал в блокноте, в терминал не вставлял)

      Удалить
  4. Этот комментарий был удален автором.

    ОтветитьУдалить
  5. Этот комментарий был удален автором.

    ОтветитьУдалить
  6. Этот комментарий был удален автором.

    ОтветитьУдалить
  7. Егор Масальский,
    можете подсказать, как вытянуть информацию с 1го бара на 1 минутном тайм фрейме (Open Close low higt) мну нужен только C.lose за 10,00 и сравнить его с Open за 09,30. Как это сделать в ТОСе?

    ОтветитьУдалить
    Ответы
    1. Не знаю. Уверен что такое возможно, но я ничего подобного не делал, поэтому с такой функцией не разбирался...

      Удалить
  8. Вот у меня вопрос.
    Можно ли в тосе, в воч листе сделать так, что бы там отобралажись только те тикреы, что удовлетворяют какому-либо условию?
    Например у меня условно 2000 тикеров и воч личт я разумеется не могу развернуть на миллион экранов.
    В общем, надеюсь, я адекватно описал вопрос:)
    спасибо!

    ОтветитьУдалить
    Ответы
    1. Ну в тосе есть скринер для этих целей. Я его не юзал - так что не подскажу его функции. А вотч листе можно сделать так что бы в начале были тикеры удовлетворяющие критерию а в конце - нет. Но по другому вы их отсортировать сохранив это расположение не сможете.

      Удалить
    2. Ну а если у меня несколько условий. Я ж вот к чему веду)

      Удалить
    3. Придется все условия объединять как-то в одно значение. Например выполнение условия 1 прибавляет к значению +1, выполнение условия 2 прибввляет еще 1 и так далее. Допустим у тебя 5 условий. И если финальное значение равно 5 то соблюдены они все. Если 4 то не соблюдено одно и так далее. Кроме этого ничего предложить не могу. Как вариант сортируй по формуле критерия один и удаляй лишнее, потом оставшееся сортируй по формуле 2 и так далее, но это будет не реалтайм.

      Удалить
  9. Егор зравствуйте,скажите,может вы знаете,где в тосе выбрать(если это конечно не самописный скрипт) полосы объема покупок или продаж ???

    ОтветитьУдалить
    Ответы
    1. Отдельно объемы покупок и продаж не поставляются. В ТоСе этого быть не может. Может просто кто-то что-то просто имитировал и выдал за такие объемы. Сделка всегда проходит между покупателем и продавцом, т.е. всегда кто-то купил и кто-то продал - объем будет равен. Если вы имеете ввиду объем выставленных лимитников на продажу и покупку, то это возможно увидеть в ТоСе без задержки только если у вас реальный счет в америтрейд. За это в окне с графиком отвечает кнопка Active Trader (правая граница графика).

      Удалить