Поиск баз на круглых уровнях для Thinkorswim
Многие мои знакомые трейдеры торгуют отбои от круглых уровней уровней. Фильтр, показывающий акции с такими проторговками досточно давно придуман в Strategy Desk. Но в этом терминале есть существенный недостаток – с некоторой задержкой грузятся графики. И некоторые трейдеры только из-за этого фильтра пользуются SD.
Недавно я решил поискать подобный фильтр для TOS в интернете, и таки наткнулся на форумную ветку с разработкой этой темы (я так понял, что автор изначального кода некий Amadey_MF. Лично с ним, к сожаленью, не знаком, но наверно хороший парень =). Ну вообщем мы легких путей не ищем, и значит я пришел к тому, что разобрался, как устроен язык программирования TOS, разобрал код найденного скрипта, нашел несколько ошибок, сделал несколько существенных исправлений и вуаля – появился очень хороший скрипт (на мой субъективный взгляд).
Теперь в подробностях:
Описание: фильтр анализирует последние 4 свечи, начиная с текущей. В них сначала ищет, где Hi каждой из свечей не отличается от максимального Hi больше чем на величину отклонения (указывается при настройке). Потом тоже самое для Low тех же 4 баров.
Дальше ищет, чтоб найденная база Hi\Low подходила снизу\сверху к ближайшему круглому уровню (50 или 100 центов), т.е. Hi\Low хотя бы одной из свечей базы был прямо на этом уровне цент в цент. Если такие варианты находятся, то ячейка напротив нужной акции подсвечивается зеленым (для лонговых вариантов) или красным (для шортовых вариантов). Соответственно значение в ячейке 1 или 2 для удобной сортировки.
Установка и настройка:
Нам нужно добвить новую колонку в WatchList. Для этого:
1. Щелкаем правой кнопкой мышки по заголовку любой колонки
2. В выпадающем меню выбираем пункт Customize
3. В открывшемся окне Watchlist в левой колонке выбираем любой из пунктов Custom и
4. жмем на Add items (появляется окно Custom Quote Formula)
5. Придумываем название для колонки и вводим в поле Column name
6. В поле Aggregation указываем таймфрейм, на каком хотим искать проторговки.
7. Нужно снять галочку “Include Extended Session”, чтоб при расчетах не учитывались небиржевые котировки (или какие то скрытые, точно не понял как перевести). Тогда расчет будет точнее.
8. Потом переходим на вкладку thinkScript Editor
9. Вставляем в главное поле этот код:
def iDiff = 0.01; # задайте максимальное отклонение в центах/ Amadey_MF def iLowest = lowest(low,4); def iHighest = highest(high,4); def bBaseLow = if ((low[0]-iLowest)<=iDiff) and ((low[1]-iLowest)<=iDiff) and ((low[2]-iLowest)<=iDiff) and ((low[3]-iLowest)<=iDiff) then 1 else 0; def bBaseHigh = if ((iHighest-high[0])<=iDiff) and ((iHighest-high[1])<=iDiff) and ((iHighest-high[2])<=iDiff) and ((iHighest-high[3])<=iDiff) then 1 else 0; def bFigureLow = if (low[1] == (Floor(low[1]*2))/2) or (low[2] == (Floor(low[2]*2))/2) or (low[3] == (Floor(low[3]*2))/2) or (low[4] == (Floor(low[4]*2))/2) then 1 else 0; def bFigureHigh = if (high[1] == (Ceil(high[1]*2))/2) or (high[2] == (Ceil(high[2]*2))/2) or (high[3] == (Ceil(high[3]*2))/2) or (high[4] == (Ceil(high[4]*2))/2) then 1 else 0; plot bBase = if (bBaseLow and bFigureLow) then 1 else if (bBaseHigh and bFigureHigh) then 2 else 0; AssignBackgroundColor (if (bBase == 1) then Color.LIGHT_GREEN else if (bBase == 2) then Color.LIGHT_RED else Color.black); bBase.AssignValueColor (if (bBase > 0) then Color.black else Color.CURRENT); #Шаблон с форума Hamaha.net и переработан Игорем (www.nyser.ru). #Скрипт ищет базы из 4 последних свечей, привязанные к уровням 50 и 100 центов. #Теперь скрипт понимает где может быть ближайший уровень - вверху или внизу (а не ищет всё, что выше цены, как раньше). #Для более наглядной работы при установке скрипта необходимо снять галочку Include Extended Session (рядом с значком таймфрейма). #Иначе будут считаться еще внебиржевые принты.
Через несколько секунд ( у меня 16) подгрузится результат, примерно такой, как на картике ниже.
По поводу этого фильтра в планах хорошенько протестировать в торговле этот фильтр, и в ближайшем будущем доработать его дополнительными примочками по вкусу (добавить фильтр объема, АТР, тренда и т.д., к чему душа ляжет).
Короче если будет это интересно, то следите за новостями, мы с вами не прощаемся =))))).
87 ответов Оставить комментарий
Отлично сделано!!!
Можешь пожалуйста сделать точно так же как и в SD, чтобы было 10 баров (можно использовать для отображения Quote Trend), и если тот или иной бар удовлетворяет требованиям фильтра, то тогда он окрашиваеться или в красный (под фигруой или .50) или зеленым (над фигурой или .50). Тогда можно улучшить фильтрацию и четко видеть, что происходит с бумагой возле того или иного уровня.
Я думаю все трейдерское сообщество было бы тебе очень признательно.
PS Молодец что разобрался с языком и реализовал свою идею на практике! Далеко пойдешь.
Если будут какие-то дополнительные вопросы – пиши в личку
Спасибо.
Посмотрю на досуге, что можно замутить. Хотя так тоже получается неплохо, акции уже с готовыми базами всплывают из списка. Не надо сомневаться, плохая там база или не очень.
А личка – это где?
Спасибо. Фильтр хорош. А можно ли в TOS сделать еще один фильтр-на пробой. Чтобы подсвечивал не при подходе к уровню, а после пробития на 1-3 цента, а потом больше не светил. И чтобы уровень был только целое число и 50центов. У меня никак не получается.
Так то можно. Я даже где-то видел в инете подобное.
Полазил в инете-подобное не нашел. Если знаете где-киньте ссылку пожалуйста.
Вот что получилось. Я попробовал на закрытом рынке. Вроде корректно показывает.
Спасибо.. супер..
Спасибо, но я хотел немного не то. Возможно ли сделать такой фильтр,чтобы подсвечивал не при подходе к хай или лоу сегодняшнего или предыдущего дня, а после пробития этих уровней на 1-3 цента, а потом больше не светил. И чтобы эти уровни были только целое число и 50центов.
Пардон, был не внимателен. Тогда такой вариант.
Большое спасибо. Но, не сочтите назойливостью , я хотел немного не то. Посмотрите пожалуйста акции за 5 сентября. WLL-пробой 47, CTB-пробой вчерашнего хая по 20,5 и пробой по 21. GNC- пробой 40, HOLX-пробой 20, BONT-пробой 12. Возможно ли реализовать такой фильтр, чтобы отрабатывал уровни вчерашнего и сегодняшнего дня на целых числах и 50 центов. И чтобы подсвечивал не при подходе к хай или лоу сегодняшнего или предыдущего дня, а после пробития этих уровней на 1-3 цента, а потом больше не светил.
Короче пиши лучше в скайп. А то мы тут долго так будем общаться.
У тебя же видно, с какого имеила я написал Тут как раз надо смотреть каждую базу. А так получаеться полный список из всех баз за последние 10 свечей (если 5 мин, тогда почти за час), сколько свечей они коснулись или были у фигуры, их легко отфильтровать и мониторить.
Если будет такая возможность написать, мы будем тебе ОЧЕНЬ признательны.
Да мне и самому интересно было бы такую штуку сделать. Буквально вчера пытался понять, как устроить такую штуку, как Quote Trend, но в языке не нашел инструкций на закрашивание квадратиков. Если бы найти хоть один уже написанный индикатор по этой технологии, то думаю, что сразу разобрался бы. Но в мануале TOSа не нашел нифига.. Может видел кто скрипты похожие?
Mне надо помощь.помогите если сможете.надо формула для watchlista,чтоби показывал акции в 15 центах от и в 15 цетах после цены high вчерашнего дня а потом больше не светил если выходит из диапазона..и то самое и для Low вчерашнего дня.
найшов похожое… местонахождение ласта к хаю
plot Diff = round((close-high[1]),2)*100;
Diff.AssignValueColor(if Diff >= 0 then Color.GREEN else Color.ORANGE);
AssignBackgroundColor(if Diff >= (high – high[1] – 0.15)*100 then Color.DARK_GREEN else Color.BLACK);
plot Diff = round((low[1] – close),2)*100;
Diff.AssignValueColor(if Diff >= 0 then Color.RED else Color.ORANGE);
AssignBackgroundColor(if Diff >= (low[1] – low -0.15)*100 then Color.DARK_RED else Color.BLACK);
но ето немного не то..мнеб по проще.чтобы напрыклад хай вчерашнего дня 39.00 то в вочлисте в диапазоне от 38.85-39.15 появилась зеленая единичка и тоже на лоу тикы красная двоичка
помогу, отчего же не помочь. на днях..
Спасибо .буду ждать)
Вот лови. Отклонение от уровней можно задать по желанию.
Помогите написать формулу расхождения yesterday close с Last на пре-маркете, чтоб в watchlist’е видеть гайнеров и лузеров на пре-маркете
Так вроде там стандартный фильтр есть для этого. Зачем писать?
А можно как-нибудь отвязать этот фильтр от 50, 100 уровней, что бы показывал на любой цене эти фигуры?
Конечно, Легко
добрый день, а можно в формулу добавить опцию, чтобы еще подсвечивало базы на хай и лоу дня? спасибо.
вообще для вчерашних хай\лоу у меня есть код, сам им пользуюсь. а для текущих хай\лоу надо будет доработать.
IG, смотри как существенно облегчить работу процу и, при последующих добавлениях в скрипт новых фичей, не упереться в ограничения по сложности.
вот твой кусок кода:
def bBaseLow = if
((low[0]-iLowest)<=iDiff) and
((low[1]-iLowest)<=iDiff) and
((low[2]-iLowest)<=iDiff) and
((low[3]-iLowest)<=iDiff)
then 1 else 0;
теперь то же самое:
def bBaseLow = if sum(low-iLowest,4) == 4 then 1 else 0;
если же текущий бар считать не нужно, то
def bBaseLow = if sum(low[1]-iLowest,3) == 3 then 1 else 0;
о. спасибо, надо попрбовать, это удобно должно быть.
не. так не работает. надо будет подумать, как преобразовать правильно..
Спасибо, что ответил, правда я не высидел и сам разобрался в скрипте)
фига ты нетерпеливый, я ж через 17 минут ответил
поймал себя на мысли, что третий день юзаю и не видел зеленых единичек; не знаешь с чем это может быть связано? вроде все правильно сделал…
сори, переустановил, уже есть
Ищу формулу для thinkorswim, которая подсвечивала бы акции, когда они “бьются” в уровень и не пробивают ни на цент.. Формула баз не совсем подходит, т.к. необязательно это должна быть консолидация, достаточно что бы цена подходила к нужному уровню несколько раз.
буквально сегодня такая была написана. еще пару дней на тест и выложу в библиотеку
Игорь, спасибо за формулу. Юзаю все время-очень помогает,-спасибо за труд. Спросить хотел, ты еще не сделал формулу о которой Роман спрашивал? А то я в загрузках не вижу ее. Спасибо заранее))
забыл совсем. извиняюсь. только что выложил. фильтр №30
Спасибо огромное!
Игорь, ошибки в формуле, не хочет работать,-можешь поправить?
пардон. поправил
скажите пожалуйста а чи можно создать, который бы показывал в ТОС online акции в которых в течение последних 5-30хв.був очень большое движение, скажем акции которая по 20мин. сходила 1%, был бы очень благодарен за помощь или подсказки в направлении.
напишите в скайп, что-то не понял. лучше там обсудить.
скайп свой пожалуста скинь!!
вверху же кнопка около поиска. нажми на значок скайпа и все )
Я хотел уточнить в чем фишка в вашей формуле, точнее:
вы используете low[0] и high[0] как первые бары для базы, а для фигуры вы используете low[1] и high[1] тоесть предыдущий. Это опечатка или логика вычисления? Может я чтото не догоняю в 3 часа ночи?
здравствуйте.
очень помогли на самом деле формулами, за что вам спасибо…
хотел бы спросить нет ли готовой формулы для тоса которая покаызывает крупного покупателя или продавца?
тос не позволяет это искать. уже пробовали.
Спасибо за быстрый ответ.
В Strategy Desk я просто слышал что можно было. =)))
Всем привет Ребята подскажите пожалуйста как правильно вписать в эту формулу значения для максимального отклонения в центах у меня не получается.
Андрей смотри в самом начале кода есть строчка:
def iDiff = 0.01;
это и есть отклонение в центах, если я верно вас понял.
Спасибо, идея отличная. Еще допилил, сейчас показывает центовую часть цены базы. И круглые уровни видно, и четвертаки, и десятки.
Как время будет, еще допишу подсветку круглых нормальную (все мы, к сожалению, деловые, а с приходом биржи в жизнь еще и вечер занят)
Не сочтите за рекламу, ссылка на скрипт на моем блоге
советую посмотреть в раздел “скачать”. там всё, во что развился в итоге этот скрипт
О, класс. Раньше этого не видел. Действительно удачная идея! Спасибо тому человеку, который это придумал ))