понедельник, 17 октября 2011 г.

Гистограмма VIX под графиком в ThinkOrSwim

Для увеличения нажми на изображение
VIX это индекс настроения рынка. VIX основан на волатильности опциона на индекс S&P 500. Кому интересны методы его расчета - гуглите. Вот формула которая помогает расположить индекс в виде гистограммы под графиком в ThinkOrSwim:

plot VIX = high ("VIX");
VIX.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
plot line1 = 20;
plot line2 = 30;
plot line3 = 40;

Нормальным считается значение от 20 до 30 - рынок спокойный. Значение от 30 до 40 является признаком агрессивного рынка (как правило выражается в частом сносе стопов). Значение выше 40 сигналит о своеобразной неадекватности рынка (плохо держатся уровни). Значение ниже 20 говорит о слабости рынка, в это время обычно увеличиваются спреды.

В большинстве случаев достаточно просто знать текущее значение VIX. Поэтому написал следующий скрипт, который отображает под заголовком графика лейбл со значением VIX.

def VIX = close ("VIX");
AddChartLabel(yes, concat(round(VIX, 2), ” VIX”), (if VIX > 40 then color.red else if VIX < 20 then color.CYAN else color.green));

Если VIX выше 40 - лейбл красный, если VIX между 20 и 40 - лейбл зеленый, если ниже 20 - лейбл голубой.

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

четверг, 8 сентября 2011 г.

Блок фильтров для StrategyDesk

Мой блок фильтров для StrategyDesk. Воркспейс с блоком фильтров можно скачать кликнув по ссылке.
Первая колонка - сигналит потенциал движения акции исходя из среднего движения за день, чем ярче цвет - тем больше потенциала.
Вторая колонка - тикер акции.
Третья колонка - светит ярко-зеленым, если в течение дня акция преодолела вчерашний хай, или темно-зеленым, если акция подошла к вчерашнему хаю.
Четвертая колонка - светит ярко-красным, если в течение дня акция преодолела вчерашний лоу, или темно-красным, если акция подошла к вчерашнему лоу.
Пятая колонка - сигналит базы за промежуток в 8 минут в историю. Чем тоньше база - тем ярче цвет. (подробно описано в прошлом посте).
Шестая колонка - сигналит всплеск объема за промежуток в 8 минут в историю.

Серый - цвет фона. Если появляются белые поля как на изображении справа, то это говорит о том что данные на StrategyDesk поступают с перебоями или просто в течение минуты не было сделок в акции (отрисовка восстанавливается в течение 8 минут, если не было новых сбоев в поставке квот)

Формула для поиска баз через скринер StrategyDesk

Формула для скринера StrategyDesk, которая сигналит базы.
PriceRangeChannels[Upper,4,0,1] - PriceRangeChannels[Lower,4,0,1]
Цифра 4 - здесь цифрой отмечается минимальное кол-во баров для базы.
Цифра 1 - здесь цифрой отмечается тайм фрейм (1-минутка, 5-пятишка).
Раскрашивать и опции выставлять как указано на изображении снизу, там цифровое значение - это кол-во центов толщины базы.


Отрисовка уровней HIGH, LOW и CLOSE прошлого дня в ThinkOrSwim

Скрипт отрисовывает на текущем дне уровни прошлого  дня, недели и т.п. в зависимости от опций. Ценность линии CLOSE я не понимаю, а вот HIGH и LOW могут быть весьма полезны при пробойной стратегии торговли.

input offset = 1;
input offset2 = 1;
input offset3 = 1;
input period = {default DAY, "2 DAYS", "3 DAYS", "4 DAYS", WEEK, MONTH, "OPT EXP"};
input period2 = {default DAY, "2 DAYS", "3 DAYS", "4 DAYS", WEEK, MONTH, "OPT EXP"};
input period3 = {default DAY, "2 DAYS", "3 DAYS", "4 DAYS", WEEK, MONTH, "OPT EXP"};
plot Data = high(period = period)[offset];
Data.SetPaintingStrategy(PaintingStrategy.DASHES);
Data.SetDefaultColor(GetColor(1));
plot Data2 = low(period = period)[offset2];
Data2.SetPaintingStrategy(PaintingStrategy.DASHES);
Data2.SetDefaultColor(GetColor(5));
plot Data3 = close(period = period)[offset3];
Data3.SetPaintingStrategy(PaintingStrategy.DASHES);
Data3.SetDefaultColor(GetColor(4));


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

понедельник, 5 сентября 2011 г.

Автоматическая окраска баз на графике ThinkOrSwim

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

Написал скрипт, который выкрашивает на графике бары базы в зеленый цвет. Мне он помогает делать домашку, т.к. позволяет быстро определять дает ли акция моменты для входа с маленьким риском. Базы более 5 центов скрипт не ищет. Вот код:



#by Egor Masalskiy
#last modify 08.09.2011
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;
def BASE = Highest(high, lenght) - Lowest (low, lenght);
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 Color.white);


Описание опций скрипта:
     period - выбор интервала для определения диапазона изменения цен в акци (день или неделя)
     lenght - выбор длины базы (кол-во баров), уменьшение параметра увеличивает чувствительность, увеличение параметра повышает качество определения баз
     periodRangeFor_base2cent - выбор размера диапазона изменения цен для окрашивания базы размером в 2 цента
     periodRangeFor_base3cent - выбор размера диапазона изменения цен для окрашивания базы размером в 3 цента
     periodRangeFor_base4cent - выбор размера диапазона изменения цен для окрашивания базы размером в 4 цента
     periodRangeFor_base5cent - выбор размера диапазона изменения цен для окрашивания базы размером в 5 центов
Последние четыре опции нужны для того что бы скрипт красил более узкие бары на акциях, которые ходят меньше, и красил более широкие базы на акциях, которые ходят больше. Если вам не важно соотношение размера базы и размера дневного движения акции, то просто поставьте значение periodRangeFor_base5cent минимальным.

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

вторник, 23 августа 2011 г.

Отбор акций для торгов по профилю объемов

     Существуют профили 4х основных типов, описанные мной ранее. Для отбора нам понадобятся профили баланс и дисбаланс. Профиль баланса отдаленно напоминает латинскую букву "D", профиль дисбаланса в пользу продавцов похож на латинскую букву "b", а профиль дисбаланса в пользу покупателей на латинскую букуву "p". Эти обозначения нужны для простоты запоминания логики отбора акций по графику из двух последних дней. Итак если день имеет код "b" то, объемы внутри него сосредоточены возле нижней границы дня, если день имеет код "p" то объемы в нем сосредоточены возле верхней границы, а если день имеет код "D" то основные объемы расположены посередине дня. (см. изображение справа)

Отбор акций для торгов по профилю объемов происходит следующим образом:
     Для торговли в лонг отбираяются акции с кодом двух дней pp и Dp, где максимальный объем последнего дня выше максимального объема предыдущего дня или же близок к этому. (данные формулы являются примером отрицательного развития, см. оригинальную теорию Стидлмайера). Желательно, что бы последний профиль был меньше предыдущего. Так же нужно помнить, что чем меньше расстояние между максимальными объемами дней - тем больше потенциальное движение. Пример pp дня можно увидеть на изображении в посте от 3 июля на этом блоге.
     Для торговли в шорт отбираются акции с кодом двух последних дней bb и Db, где максимальный объем последнего дня ниже максимального объема предыдущего дня или же близок к этому. (эти формулы так же являются примером отрицательного развития, см. оригинальную теорию Стидлмайера). Желательно, что бы последний профиль был меньше предыдущего. Не стоит забывать, что чем меньше расстояние между максимальными объемами дней - тем больше потенциальное движение.
     Разворотные формации профиля - это связки двух дней с кодами bp (на лонг) и pb (на шорт). Но для таких формаций важно их положение относительно уровней поддержки и сопротивления, а так же направления и динамики рынка в целом на день торгов. Торговать их опасно.
     Так же стоит помнить, что позиции в лонг стоит открывать выше вчерашнего максимального объема, а позиции в шорт - ниже вчерашнего максимального объема. Однако варианты возможны, например открытие нового дня с большим гэпом в обратную сторону. Такой день будет торговаться к максимальному объему предыдущего дня на пробой своего утреннего профиля. Или при явном перевесе продавцов рынок может помочь покупателям - в итоге движение, если и состоится, будет в противоположную сторону.

     Наличие потенциала для движения так же обязательно, т.е. не должно быть на пути движения сильных уровней, скользящих средних 200 и 50. Плавность хода должна быть подходящей для вашего стиля торговли. Профиль просто показывает расстановку сил.

вторник, 9 августа 2011 г.

Фазы рынка по SnP 500

SnP дневной график
Рынок имеет фазу аккумуляции и фазу движения (рост или падение). Фаза аккумуляции происходит на уровне или между двумя уровнями (мувинги как вариант уровней). Фаза движения идет от уровня аккумуляции до нового уровня паритета цен, где снова начинается аккумуляция. На зону нового паритета цен могут влиять фундаментальные данные и технические уровни. Фаза движения начинается из середины фазы аккумуляции, но идентифицировать ее в этот момент практически не реально.

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

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

На фазе аккумуляции и во время неподтвержденных дней фазы движения выставлять безубыток при достижении профита в 10 центов, что бы ограничить кол-во убыточных сделок. Откаты не пересиживать более чем на 20% от имеющегося профита.

Во время фазы движения высиживать откаты по раскраске баров осциллятором CCI (см. описание стратегии торговли). Безубыток выставлять при достижении профита в 20 центов. Стаки идущие в противофазе с рынокм торговать как при неподтвержденной фазе движения.

воскресенье, 3 июля 2011 г.

Упрощенный профиль объемов (Volume Profile)

Поизучал теорию профиля рынка (Market Profile). И как следствие этой теории заинтересовался профилем объемов (Volume Profile). Около месяца примерял полученные знания к своей торговле, после чего назрел материал для написания небольшой статьи.
Итак! Основы теории можно изучить погуглив в интернете на тему "Профиль рынка Питера Стидлмайера" (Peter Steidlmayer). Статей куча, как подробных, так и общих. Есть книга, см. главу 5. Я не буду останавливаться на этом. Расскажу как эту теорию можно частично применить к принципам моей текущей торговли (возможно кто-то так же решит применить эти знания в своей торговле). Профиль рынка на конкретном стаке очень похож на профиль объемов того же стака, что в принципе подтверждает сильную корреляцию тиковых и реальных объемов. Поэтому большинство положений профиля рынка применимы к профилю объемов.

Я оперирую такими понятиями как форма профиля объемов, размер (т.е. высота профиля) и мода профиля.
Профиль принимает всевозможные формы в зависимости от кол-ва проторгованных объемов по той или иной цене внутри заданного промежутка времени.
Выделяют несколько важных формаций:
   - баланс
   - дисбаланс
   - отклонение
   - тренд
Размер профиля - это его высота по ценовой шкале графика. Определяется сравнением с профилями предыдущих торговых дней. Размер профиля я для себя поделил на три условные группы:
   - маленький
   - средний
   - большой
Под модой я принимаю не математическое ее определение, а зону цен где было проторговано 70% объемов в заданном промежутке времени. Если сегодняшняя мода формируется выше вчерашней, то стак идет в лонг. Если сегодняшняя мода формируется ниже вчерашней, то стак идет в шорт. Границы моды часто являются уровнями поддержки и сопротивления.

Нажми на изображение для увеличения
Для себя на графике я установил профиль объемов на всеь день (темныйм цветом), и профиль на каждый час (зеленым цветом). Красным выделяется уровень с максимальным проторгованным объемом. Зона моды выделяется голубым фоном, ограниченным горизонтальными зелеными линиями. Голубые линии на графике - это хай и лоу сегодняшнего дня. Светлозеленая линия - это хай вчерашнего дня. Светлорозовая - лоу вчерашнего дня.

Во время ресерча (домашней работы) я смотрю помимо всех описанных в моей стратегии положений еще и форму дневного профиля. Он должен быть маленьким или средним относительно других дневных профилей. И должен иметь однородную форму. Для маленького профиля должен быть патерн баланс или дисбаланс, для среднего - дисбаланс.

В первые полчаса торговой сессии я торгую те стаки, мода которых вчера находилась на хай или лоу дня и которые закрылись близко к своим экстремумам дня. По истечении первого получаса к торгам подключаю акции с узким профилем первого получаса и ищу точку входа на пробой утреннего профиля в направлении дневной тенденции. Узкий профиль предвещает сильное движение в течение дня. Так же по истечении первого получаса подключаю к торгам акции со средним профилем. Вход ищу так же на пробой утреннего профиля, но с потенциалом равным размеру самого профиля. Существует закономерность, что средний утренний профиль удваивается в течение торгового дня. Большие профили торгуются от своих границ к центру профиля (к уровню максимального объема), я их в работе не использую - слишком маленький потенциал и рискованные точки входа. Точками входа для меня являются база и разбор продавца или покупателя. Желательно продавать в шорт ниже вчерашнего максимального объема, а покупать выше вчерашнего максимального объема.

P.S. Когда будет время - подкорректирую страницу с описанием моей стратегии торговли.

суббота, 2 июля 2011 г.

Зачем ставить стоп-лосс алертом?


Нажми на изображение для увеличения
[14:22:30] Егор: Стак WNR 13:52 (01.07.2011) - фитиль которым сходили за стопами. От этого помогают стопы выставленные алертом по цене аск в данном случае (лонг).
[14:24:42] Антон: а размер стопа в этом случае какой?
[14:25:08] Егор: 18,28 цена алерта.
[14:25:16] Егор: К этой цене при срабатывании добавится спред (точнее вычтется из цены алерта)
[14:25:32] Егор: можно поставить 18,27

[14:26:47] Александр: Егор, а ты через какой терминал торгуешь?
[14:26:53] Егор: BlackWood
[14:27:11] Александр: я тоже, но что-то алерты не срабатывают. Может, что не так делаю...
[14:27:32] Антон: всё же я что то недогоняю про алерты...
[14:27:46] Егор: у меня все нормально срабатывает. Алерт скорее всего срабатывает не по той ECN на которой куплен стак у тебя. Или возможно у тебя подтормаживает Market Maker.
[14:28:31] Егор: Антон, давно торгуешь?
[14:28:54] Егор: Просто если мало, то пока нету смысла заморачиваться еще и алертами.
[14:28:57] Антон: 3 месяца
[14:29:23] Егор: Интрадей?
[14:29:33] Антон: оф кос
[14:30:40] Егор: Суть в том что... Во первых стопы видят, но это не так важно, что ты его поставишь алертом - куча народу поставит именно стоп-маркет ордером.
[14:30:59] Егор: Самое главное что алерт можно поставить так что он сработает не по цене ласт, а по цене аск или бид
[14:31:24] Александр: если окно Price Alerts закрыто, алерт сработает? Чего-то мой алерт EZCH сегодня профукал (пробитие 37).
[14:31:51] Егор: за стопами не всегда идут сдвигая аск и бид. Чаще просто делают фитиль (быстро и резко увеличивают спред). Алерт помогает не попасться на эту ловушку.
[14:32:01] Егор: Если окно закрыто - алерт не сработает
[14:32:50] Антон: так если в лонг то ставим алерт на аск в шорт на бид?
[14:32:55] Егор: да
[14:33:13] Егор: при этом алерт не обязательно ставить на цент ниже как ордер
[14:33:38] Егор: как меня учили - говорили на цент ниже. но лично я заметил что разницы нету.
[14:33:55] Егор: это касаемо алертов а не ордеров
[14:34:54] Антон: на примере расскажи плз. например лонг 18.40 то вместо стопа 18.35 алерт на аск 18.35?
[14:35:41] Егор: это абстрактный пример или пример с конкретного графика?
[14:36:07] Антон: АБСТРАКТНЫЙ
[14:36:35] Егор: Стоп-ордер обычно ставят на цент-два ниже уровня где он будет защищен. Алерт можно ставить прям на уровень.
[14:36:51] Егор: но алерт ставится по цене аск для лонга
[14:37:15] Егор: и сработает если уже продавцы встанут на цену уровня.
[14:37:37] Егор: Бид к тому моменту будет уже ниже. Или будет нулевой спред и лента будет бешенно принтовать.
[14:38:31] Антон: тоесть мы придлагаемя выкупить я так понял?
[14:38:44] Егор: нет к алерту крепится маркет ордер
[14:39:25] Антон: но маркет пройдёт то по биду
[14:39:40] Егор: весь смысл - спастись от фитилей, типа тех что я показал
[14:40:04] Егор: я знаю что по биду. потому и говорю, что к размеру стопа дорисуется спред
[14:40:30] Антон: всё я понял
[14:40:39] Егор: стоп-ордер тоже может проскальзывать
[14:40:57] Егор: если будет резкий скачок цены.
[14:41:09] Егор: Так что бояться позднего срабатывания особо не стоит
[14:41:37] Егор: да - алерт медленнее из-за скорости интернета чем ордер на сервере. Но ты получаешь преимущество ставить его не по цене ласт.

четверг, 19 мая 2011 г.

На что похож трейдинг?

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

понедельник, 16 мая 2011 г.

Что нужно для дейтрейдинга?

Для дейтрейдинга нужно:
- свободное время на период всей торговой сессии и на два часа до или после нее (лучше больше)
- нужна личная способность высидеть ничего не делая перед компьютером около 7 часов (поверьте - большинство людей не способны на это и путь в трейдинг им заказан)
- нужна личная способность концентрировать внимание на трейдинге в течение всей торговой сессии
- нужно понимание как проходят продажи и покупки крупных игроков и умение их видеть на графике и МаркетМейкере (стакан)
- нужны деньги для стартового депозита (от 1000$, за меньшие деньги вы точно не станете клиентом нормальной компании)
- нужен скоростной и безлимитный интернет работающий без перебоев
- для более-менее комфортной работы нужны как минимум 2 монитора к компьютеру, лучше больше (3-4)

К читателю

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