Избранное трейдера Lev
#Thinkorswim studies #FIBO по прошлой неделе #Показывает на графике уровни Фибоначчи по предыдущему недельному бару #Thinkorswim https://RadchenkoVY.com/TOS input price = close; input showOnlyToday = yes; input ShowLabels = no; input period = AggregationPeriod.WEEK; # если нужно чтобы показывало Фибоначчи по бару не предыдущей недели, а вчерашнего дня, то измените здесь просто на AggregationPeriod.DAY; input displace = 1; def prevHigh = if (showOnlyToday and !IsNaN(close(period = period)[-1])) or isnan(close[1]) then double.nan else high(period = period)[displace]; def prevLow = if (showOnlyToday and !IsNaN(close(period = period)[-1])) or isnan(close[1]) then double.nan else low(period = period)[displace]; def shouldplot = yes; plot pivot = if shouldPlot then (prevHigh) else Double.NaN; pivot.SetStyle(Curve.FIRM); pivot.SetDefaultColor(Color.yelLOW); plot h7 = if shouldPlot then pivot + 2 * (prevHigh - prevLow) else Double.NaN; h7.SetStyle(Curve.FIRM); h7.SetDefaultColor(Color.Green); plot h8 = if shouldPlot then pivot + 1.764 * (prevHigh - prevLow) else Double.NaN; h8.SetStyle(Curve.FIRM); h8.SetDefaultColor(Color.gRAY); plot h9 = if shouldPlot then pivot + 1.618 * (prevHigh - prevLow) else Double.NaN; h9.SetStyle(Curve.FIRM); h9.SetDefaultColor(Color.gRAY); plot h10 = if shouldPlot then pivot + 1.5 * (prevHigh - prevLow) else Double.NaN; h10.SetStyle(Curve.FIRM); h10.SetDefaultColor(Color.gRAY); plot h11 = if shouldPlot then pivot + 1.382 * (prevHigh - prevLow) else Double.NaN; h11.SetStyle(Curve.FIRM); h11.SetDefaultColor(Color.gRAY); plot h12 = if shouldPlot then pivot + 1.214 * (prevHigh - prevLow) else Double.NaN; h12.SetStyle(Curve.FIRM); h12.SetDefaultColor(Color.gRAY); plot h1 = if shouldPlot then pivot + 1 * (prevHigh - prevLow) else Double.NaN; h1.SetStyle(Curve.FIRM); h1.SetDefaultColor(Color.GREEN); plot h2 = if shouldPlot then pivot + 0.764 * (prevHigh - prevLow) else Double.NaN; h2.SetStyle(Curve.FIRM); h2.SetDefaultColor(Color.gRAY); plot h3 = if shouldPlot then pivot + 0.618 * (prevHigh - prevLow) else Double.NaN; h3.SetStyle(Curve.FIRM); h3.SetDefaultColor(Color.gRAY); plot h4 = if shouldPlot then pivot + 0.5 * (prevHigh - prevLow) else Double.NaN; h4.SetStyle(Curve.FIRM); h4.SetDefaultColor(Color.gRAY); plot h5 = if shouldPlot then pivot + 0.382 * (prevHigh - prevLow) else Double.NaN; h5.SetStyle(Curve.FIRM); h5.SetDefaultColor(Color.gRAY); plot h6 = if shouldPlot then pivot + 0.214 * (prevHigh - prevLow) else Double.NaN; h6.SetStyle(Curve.FIRM); h6.SetDefaultColor(Color.gRAY); plot l1 = if shouldPlot then pivot - 1 * (prevHigh - prevLow) else Double.NaN; l1.SetStyle(Curve.FIRM); l1.SetDefaultColor(Color.yelLOW); plot l2 = if shouldPlot then pivot - 0.764 * (prevHigh - prevLow) else Double.NaN; l2.SetStyle(Curve.FIRM); l2.SetDefaultColor(Color.gRAY); plot l3 = if shouldPlot then pivot - 0.618 * (prevHigh - prevLow) else Double.NaN; l3.SetStyle(Curve.FIRM); l3.SetDefaultColor(Color.gRAY); plot l4 = if shouldPlot then pivot - 0.5 * (prevHigh - prevLow) else Double.NaN; l4.SetStyle(Curve.FIRM); l4.SetDefaultColor(Color.gRAY); plot l5 = if shouldPlot then pivot - 0.382 * (prevHigh - prevLow) else Double.NaN; l5.SetStyle(Curve.FIRM); l5.SetDefaultColor(Color.gRAY); plot l6 = if shouldPlot then pivot - 0.214 * (prevHigh - prevLow) else Double.NaN; l6.SetStyle(Curve.FIRM); l6.SetDefaultColor(Color.gRAY); plot l7 = if shouldPlot then pivot - 2 * (prevHigh - prevLow) else Double.NaN; l7.SetStyle(Curve.FIRM); l7.SetDefaultColor(Color.RED); plot l8 = if shouldPlot then pivot - 1.764 * (prevHigh - prevLow) else Double.NaN; l8.SetStyle(Curve.FIRM); l8.SetDefaultColor(Color.gRAY); plot l9 = if shouldPlot then pivot - 1.618 * (prevHigh - prevLow) else Double.NaN; l9.SetStyle(Curve.FIRM); l9.SetDefaultColor(Color.gRAY); plot l10 = if shouldPlot then pivot - 1.5 * (prevHigh - prevLow) else Double.NaN; l10.SetStyle(Curve.FIRM); l10.SetDefaultColor(Color.gRAY); plot l11 = if shouldPlot then pivot - 1.382 * (prevHigh - prevLow) else Double.NaN; l11.SetStyle(Curve.FIRM); l11.SetDefaultColor(Color.gRAY); plot l12 = if shouldPlot then pivot - 1.214 * (prevHigh - prevLow) else Double.NaN; l12.SetStyle(Curve.FIRM); l12.SetDefaultColor(Color.gRAY);Полная библиотека индикаторов, фильтров и и сканеров для Thinkorswim в этом блоге http://bit.ly/2vKq4F8
Коллеги доброго дня! В сети масса споров по вопросам непокрытых продаж опционов, степени риска данных стратегий и особенностям их поведения в различные периоды состояния рынка и в моменты резкого обвала рынка (либо критического роста, что значительно реже и безболезненнее).
Хочу показать тестирование данной торговой стратегий на живом примере с реально совершенными сделками. Забегая вперед скажу, что тестирование оказалось максимально жёстким в связи с ситуативной невозможностью доступа к рынку на период обвала 9 апреля этого года, т.е. фактически смоделирован вариант не резкого падения рынка, а критического обвала с планками с открытия торгов, когда нет возможности вмешаться в торговый процесс (аналог обвала 3 марта 14 года).
Озвучу некоторые общие тезисы по непокрытым продажам опционов. Сам термин «непокрытая продажа» означает, что в стратегии имеются ничем не подстрахованные проданные опционы, которые при определенных раскладах могут привести к неограниченным убыткам. С точки зрения рисков непокрытые продажи справедливо считаются самым рискованным видом торговли – в неблагоприятном случае против нас работает направленная плечевая позиция с плечом, которое мы физически не сможем получить работая с фьючерсами – у нас просто не хватит ГО для приобретения такого количества контрактов. Видимые преимущества стратегий непокрытых продаж – понятный заранее размер прибыли, отсутствие необходимости вмешиваться в позицию до определенного момента. Отсюда, непокрытые продажи часто используются в разрезе схем, связанных с ДУ – можно сразу ориентировать клиента на определенный доход, отсутствие постоянной необходимости лезть в позиции дает возможность работать с десятками отдельных счетов на отдельных платформах, можно набирать большой объем в спокойном режиме.
Результаты консервативной количественной инвестиционной модели LQI (lazy quantitative investing), о которой я писал ранее (https://smart-lab.ru/blog/384110.php), за август (результаты за прошлый месяц: smart-lab.ru/blog/485053.php). В августе рынок вопреки всем страхам прекратил предкризисную динамику предыдущих месяцев и показал типичную динамику, характерную для роста. Модель же в прошлом месяце ушла в глухую оборону, и как следствие — снова отстала от SPY и своего основного бенчмарка EQW (равновзвешенный портфель торгуемых тикеров). Вот веса предыдущего месяца и соответствующие ретурны торгуемых тикеров:
weight monthly.ret
XLY 0.138 5.10
XLP 0.155 0.39
XLE 0.097 -3.48
XLF 0.200 1.36
XLV 0.000 4.33
XLI 0.000 0.23
XLB 0.000 -0.77
XLK 0.000 6.60
XLU 0.075 1.29
IYZ 0.000 7.46
VNQ 0.099 2.58
SHY 0.000 0.35
TLT 0.236 1.31
GLD 0.000 -2.14
Корреляция между весами и ретурнами отрицательная — (-0.11), вследствие чего модель отстала от своих бенчмарков: +1.36% LQI vs +3.19% SPY vs. +1.76% EQW. Отставание вызвано тем, что модель не вложилась в «выстрелившие» тикеры XLV & XLK и внезапно очнувшийся от многомесячной спячки телеком (IYZ). Тем не менее, 1.4% за месяц — вполне меня, как total return инвестора, устраивают. Все-таки это захэджированные позы, и держать их гораздо комфортнее чем гольный индекс СнП. В терминах максимальной просадки в течение месяца модель чуть лучше SPY и EQW: 0.9% LQI vs. 1.35% SPY vs. 1.1% EQW.
Ищет базы на круглых уровнях, кратных 10 центам или на вчерашних ценовых экстремумах дня. Имеет 4 сигнала для индикации.
#Base_Level_PrevHiLow.Ищет базу, на уровнях 10-20-30 или на вчерашних HiLow
def iDiff = 0.01; #максимальное отклонение в центах
def iBars = 4; #число баров для просмотра
def iLowest = lowest(low,iBars);
def iHighest = highest(high,iBars);
def iHiPrevDay = high(period = «DAY»)[1];
def iLowPrevDay = Low(period = «DAY»)[1];
def bBaseLow = fold Lbar = 0 to iBars with Lsumm=1 do if ((low[Lbar]-iLowest)<=iDiff) then Lsumm*1 else Lsumm*0;
def bBaseHigh = fold Hbar = 0 to iBars with Hsumm=1 do if ((iHighest-high[Hbar])<=iDiff) then Hsumm*1 else Hsumm*0;
def iLevelLow = fold LLbar = 0 to iBars with LLsumm do if (low[LLbar] == roundDown(low[LLbar],1)) then LLsumm+1 else LLsumm;
def iLevelHigh = fold LHbar = 0 to iBars with LHsumm do if (high[LHbar] == roundUp(High[LHbar],1)) then LHsumm+1 else LHsumm;
def iDayLow = fold DLbar = 0 to iBars with DLsumm do if (Low[DLbar] == iHiPrevDay) then DLsumm+1 else DLsumm;
def iDayHigh = fold DHbar = 0 to iBars with DHsumm do if (High[DHbar] == iLowPrevDay) then DHsumm+1 else DHsumm;
plot bBase = if (bBaseLow and iLevelLow ) then 1 else if (bBaseHigh and iLevelHigh ) then 2 else if (bBaseLow and iDayLow) then 3 else if (bBaseHigh and iDayHigh) then 4 else 100;
AssignBackgroundColor (if (bBase == 1 or bBase == 3) then Color.LIGHT_GREEN else if (bBase == 2 or bBase == 4) then Color.LIGHT_RED else Color.black);
Любовь — это все 4 гормона счастья задействованы
из других гормонов также: тестестерон + эстроген
Еще немного про дофамин
Дофамин — отвечает за стремление к цели.
Дофамин по сути объясняет две из трех частей моей формулы счастья
Дофамин выделяется когда мы стремимся к новому вознаграждению.
Если вознаграждение одно и то же, то дофамин перестает выделяться.
Опыты на животных показали, что если обезьянам давать сок, то Д
Если многократно давать сок, то Д уже не выделяется — удовольствие не то
Но если отменить выдачу сока, то обезьяны приходят в бешенство)) Кортизол?
Дофамин также выделяется в процессе ожидания награды.
Можно сказать, что ожидание приятного события тоже делает нас счастливее.
Кстати компьютерные игры, чтобы юзер играл, как раз постоянно провоцируют синтез дофамина. Они дают новизну и награды. Кстати говоря, когда я терпел убытки на бирже, я часто уходил в компьютерные игры из реальности, видимо потому что мне не хватало этих самых наград.
Трейдинг ломает механизм выработки дофамина. Ломает вообще гормональный аппарат.
Коллеги, доброго дня. Хочу продемонстрировать, как работают опционные стратегии при ловле направленных многодневных среднесрочных движений. Материал скорее для тех, кто начинает изучать мир опционов и еще не понимает, зачем оно вообще надо и с чем его едят.
Изначально озвучу свое мнение по вопросу спекулятивных стратегий в трейдинге – на рынке не существует возможностей более прибыльной торговли, чем ловля хороших направленных движений с большим плечом. Такая стратегия торговли позволяет реально за несколько дней увеличивать счета в разы, но так же и мгновенно сливать в минуса при отсутствии вменяемого риск-менеджмента либо форс-мажорных ситуаций, технических либо вариантов прихода «черных лебедей». Модель направленной плечевой торговли трейдеров на линейном рынке – это попытка входа большим объемом с большой плечевой составляющей с выставлением стоп-лосса. Проблемы такой торговли тоже известны – это постоянные выносы стопов, даже если общее направление движения правильно угадано, с последующим движение рынка в нужную сторону, заходом/выносом и т.д. Я сам несколько лет занимался линейной торговлей (Саше Резвякову большой искренний привет, спасибо за науку!), посему знаком с данной тематикой и сопутствующими проблемами довольно хорошо, особенно на сегодняшних рынках.
<strong>#Ищет базу на любых уровнях.</strong> #Cнять галочку Include Extended Session #Thinkorswim https://RadchenkoVY.com/TOS def iDiff = 0.00; #максимальное отклонение в центах def iBars = 4; #число баров для просмотра def iLowest = lowest(low,iBars); def iHighest = highest(high,iBars); def bBaseLow = fold Lbar = 0 to iBars with Ls=1 do if ((low[Lbar]-iLowest)<=iDiff) then Ls*1 else Ls*0; def bBaseHigh = fold Hbar = 0 to iBars with Hs=1 do if ((iHighest-high[Hbar])<=iDiff) then Hs*1 else Hs*0; plot bBase = if bBaseLow then 1 else if bBaseHigh then 2 else 100; AssignBackgroundColor (if (bBase == 1) then Color.LIGHT_GREEN else if (bBase == 2) then Color.LIGHT_RED else Color.black); bBase.AssignValueColor (if bBase <> 100 then Color.black else Color.CURRENT);
<strong>#Ищет базу на уровнях кратным 50 центам.</strong> #Cнять галочку Include Extended Session #Thinkorswim https://RadchenkoVY.com/TOS def iDiff = 0.00; #максимальное отклонение в центах def iBars = 4; #число баров для просмотра def iLowest = lowest(low,iBars); def iHighest = highest(high,iBars); def bBaseLow = fold Lbar = 0 to iBars with Lsumm=1 do if ((low[Lbar]-iLowest)<=iDiff) then Lsumm*1 else Lsumm*0; def bBaseHigh = fold Hbar = 0 to iBars with Hsumm=1 do if ((iHighest-high[Hbar])<=iDiff) then Hsumm*1 else Hsumm*0; def iFigureLow = fold FLbar = 1 to iBars+1 with FLsumm do if (low[FLbar] == (Floor(low[FLbar]*2))/2) then FLsumm+1 else FLsumm; def iFigureHigh = fold FHbar = 1 to iBars+1 with FHsumm do if (high[FHbar] == (Ceil(high[FHbar]*2))/2) then FHsumm+1 else FHsumm; plot bBase = if (bBaseLow and iFigureLow) then 1 else if (bBaseHigh and iFigureHigh) then 2 else 100; AssignBackgroundColor (if (bBase == 1) then Color.LIGHT_GREEN else if (bBase == 2) then Color.LIGHT_RED else Color.black); bBase.AssignValueColor (if bBase <> 100 then Color.black else Color.CURRENT);
Хорошая книга. Наверное лучшая по теме счастья, из тех, что я читал. Ниже я поделюсь именно впечатлениями, которые после себя оставила книга.
Мы — биологические машины, с одной стороны.
Мы — гораздо больше животные, чем мы себе представляем — с другой.
Мы созданы эволюцией. Все наши эмоции — это аппарат.
Счастье — это аппарат. Это условно говоря 4 кнопки:
Можно рассматривать как таблетки их. Мы что-то делаем, = принимаем таблетку.
Слишком часто принимать таблетки нельзя — возникнет резистентность
Книга родила у меня НОВЫЕ ИДЕИ: