Очень полезный индикатор для ThinkORSwim для тестирования стратегий и проверки гипотез.
При помощи него можно проверить гипотезу, как работает паттерн в акциях с разным значением относительного объема .
Примеру: К примеру мой паттер в 10:30 и он классно отрабатывает только когда относительный объем больше 30%.
#Study:VolPlay
#by thetrader.prodeclare on_volume;
declare once_per_bar;input length = 65;
def AvgVolume = Average(Volume (Period = aggregationPeriod.DAY)[1], length);def yyyyMmDd = GetYYYYMMDD();
def Vol = if yyyyMmDd > yyyyMmDd[1] then volume else volume + Vol[1];plot VolPlay = Round (Vol/AvgVolume,2);
VolPlay.SetDefaultColor(color = Color.GRAY);
Рисует линии вчерашних Hi, Low, Close, Open и сегодняшнего Open на графике
Очень удобно, наглядно показывает важные уровни вчерашнего дня.
#Thinkorswim studies #Рисует линии вчерашних Hi, Low, Close, Open и сегодняшнего Open на графике. #Thinkorswim https://radchenkovy.com/thinkorswim-live input sPeroid = {default DAY, WEEK, MONTH}; input iHigh = {default "yes", "no"}; input iLow = {default "yes", "no"}; input iClose = {default "yes", "no"}; input iOpen = {default "yes", "no"}; input iTodayOpen = {default "yes", "no"}; plot pHigh = if !iHigh then high(period = sPeroid)[1] else Double.NaN; plot pLow = if !iLow then low(period = sPeroid)[1] else Double.NaN; plot pClose = if !iClose then close(period = sPeroid)[1] else Double.NaN; plot pOpen = if !iOpen then open(period = sPeroid)[1] else Double.NaN; plot pTodayOpen = if !iTodayOpen then open(period = sPeroid)[0] else Double.NaN; pHigh.SetDefaultColor (Color.GREEN); pHigh.SetPaintingStrategy(PaintingStrategy.DASHES); pLow.SetDefaultColor(Color.RED); pLow.SetPaintingStrategy(PaintingStrategy.DASHES); pClose.SetDefaultColor (Color.GRAY); pClose.SetPaintingStrategy(PaintingStrategy.DASHES); pOpen.SetDefaultColor (Color.WHITE); pOpen.SetPaintingStrategy(PaintingStrategy.DASHES); pTodayOpen.SetDefaultColor (Color.WHITE); pTodayOpen.SetPaintingStrategy(PaintingStrategy.DASHES);;
Полная библиотека индикаторов, фильтров и сканеров для Thinkorswim в этом блоге bit.ly/2vKq4F8
Ищет ситуации, когда базы на круглых уровнях пробиваются. В этом случае сигнал показывается до тех пор, пока цена не уходит слишком далеко от пробития. Указать нужное расстояние ухода цены можно в дополнительной настройке — Максимальное отклонения для пробития.
#BaseBreakout.Ищет только что пробитые базы из N последних свечей, на уровнях 50 и 100 центов.
#Cнять галочку Include Extended Session
def iDiff = 0.01; # максимальное отклонение для базы в центах
def iDiff2 = 0.40; # максимальное отклонение для пробития в центах
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;
Скрипт #ThinkOrSwim для #watchlist
Сигналит при образовании формации «Перекрытие тел». Сигналы разделены на покупку и продажу.
#Body_overlapping.Показывает паттерн «Body overlapping или Перекрытие тел»
#Cнять галочку Include Extended Session
def bSignalUp = open[1]<close[1] and open>close[1] and close<open[1];
def bSignalDown = open[1]>close[1] and open<close[1] and close>open[1];
plot out = if bSignalUp then 1 else if bSignalDown then 2 else 100;
AssignBackgroundColor (if (out == 1) then Color.LIGHT_GREEN else if (out == 2) then Color.LIGHT_RED else Color.black);
out.AssignValueColor (if out <> 100 then Color.black else Color.CURRENT);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi
Устанавливает фоном график любого символа
В данном примере поверх открытого графика наложен график SPY серым цветом.
#Thinkorswim studies #Устанавливает фоном график любого символа #В данном примере поверх открытого графика наложен график SPY серым цветом #Thinkorswim https://RadchenkoVY.com /TOS declare lower; input symbol = "spy"; #ввести нужный символ plot Line = close (symbol); Line.SetDefaultColor (Color.GRAY);
Полная библиотека индикаторов, фильтрови и сканеров для Thinkorswim в этом блоге http://bit.ly/2vKq4F8
Скрипт #ThinkOrSwim для #watchlist
Поиск формации «Внешний бар» на графике.
#Inside_Bar.Показывает паттерн «Внутренний бар»
#Cнять галочку Include Extended Session
def bSignalDown = open[1]>close[1] and open<close and high<high[1] and low>low[1];
def bSignalUp = open[1]<close[1] and open>close and high<high[1] and low>low[1];
plot out = if bSignalUp then 1 else if bSignalDown then 2 else 100;
AssignBackgroundColor (if (out == 1) then Color.LIGHT_GREEN else if (out == 2) then Color.LIGHT_RED else Color.black);
out.AssignValueColor (if out <> 100 then Color.black else Color.CURRENT);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi
Показывает две формации, образованные на графике. «Тройное дно» или «Тройная вершина». Сигналы разделены на покупку и продажу.
#ThreeHighLow. Показывает паттерн «три бара с тройной вершиной\тройным дном»
#Cнять галочку Include Extended Session
def bSignalUp = high[2]==high[1] and high[1]==high;
def bSignalDown = low[2]==low[1] and low[1]==low;
plot out = if bSignalUp then 1 else if bSignalDown then 2 else 100;
AssignBackgroundColor (if (out == 1) then Color.LIGHT_GREEN else if (out == 2) then Color.LIGHT_RED else Color.black);
out.AssignValueColor (if out <> 100 then Color.black else Color.CURRENT);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi
Интересная свечная модель «Трехбарный разворот», позволяющая получать новые идеи для торговли.
#ThreeBarReverse.Показывает паттерн «Трехбарный разворот»
def bSignalDown = open[2]<close[2] and low[1]>low[2] and low[1]<high[2] and high[1]>high[2] and high<high[1] and close[1]<low[1];
def bSignalUp = open[2]>close[2] and low[1]<low[2] and low[2]<high[1] and low[1]<low[2] and low>low[1] and low<high[1] and close>high[1];
plot out = if bSignalUp then 1 else if bSignalDown then 2 else 100;
AssignBackgroundColor (if (out == 1) then Color.LIGHT_GREEN else if (out == 2) then Color.LIGHT_RED else Color.black);
out.AssignValueColor (if out <> 100 then Color.black else Color.CURRENT);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi
#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