Включает оба предыдущих фильтра. Сигналит, когда акция находится близко к экстремумам как на долгосрочном периоде, так и внутри дня. Настроить можно процент отклонения от экстремумов и число свечей для подсчета позиции в долгосрочном периоде по дневке.
#POS.Показывает когда акция находится на хай/лоу по дневке + внутри дня.
#Aggregation — Day
def PrecentDiff = 2; #процент отклонения от экстремума
def iPeriod = 180; #число свечей для подсчета позиции по дневке
def iPositionS = (close-low)/(high-low)*100;
def iPositionD = round((close-lowest(low,iPeriod))/(highest(high,iPeriod)-lowest(low,iPeriod))*100,0);
def PosLong = iPositionS >=100-PrecentDiff and iPositionD >=100-PrecentDiff;
def PosShort = iPositionS <=PrecentDiff and iPositionD <=PrecentDiff;
AddLabel (PosLong,»Up», color.Green);
AddLabel (PosShort,»Down», color.Red);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi
Скрипт #ThinkOrSwim для #watchlist
Фильтр считает число зеленых и красных свечей на графике. Мы указываем число последних свечей, среди которых нужно искать, минимальное число свечей для сигнала и ждем. Какого цвета больше, тот сигнал и нарисуется в колонке.
#CountBullBearBars.Показывает 1, когда число зеленых свечей в течении последних X свечей достигает указанного, и 2 для красных свечей.
#Cнять галочку Include Extended Session
def iMinBars = 5; #минимальное число на счетчике одноцветных свечей
def iNumberBars = 65; #число свечей, среди которых искать
def iSummUpBar = fold SUbar = 0 to iNumberBars with SUsumm do if (close[SUbar]>open[SUbar]) then SUsumm+1 else SUsumm;
def iSummDownBar = fold SDbar = 0 to iNumberBars with SDsumm do if (open[SDbar]>close[SDbar]) then SDsumm+1 else SDsumm;
def bUpBars = (iSummUpBar>=iMinBars) and (iSummUpBar>=iSummDownBar);
def bDownBars = (iSummDownBar>=iMinBars) and (iSummUpBar<=iSummDownBar);
plot out = (if bUpBars then 1 else if bDownBars then 2 else 100);
AssignBackgroundColor (if (out == 1 ) then Color.LIGHT_GREEN else if (out == 2) then Color.LIGHT_RED else Color.black);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi
Колонка для ThinkOrSwim Watchlist.
Текущий объем в акции относительно 65 дневного среднего объема.
И конечно подсвечивает цветом.
#Colume:Spread
#by thetrader.proplot VolPlay = Round(Volume/Average(Volume, 65)[1],2);
AssignBackgroundColor(if(VolPlay < 0.2)then Color.BLACK else if(VolPlay > 0.2 and VolPlay<0.5 ) then Color.BLUE else Color.DARK_GREEN);
Изменение цены от открытия в %.
И конечно подсвечивает цветом.
#Colume:ChFO
#by thetrader.pro
plot Change = Round((close-open)/open*100,1);
AssignBackgroundColor(if(Change < 1 and Change > -1)then Color.BLACK else if(Change>0) then Color.DARK_GREEN else Color.DARK_RED);
Колонка для ThinkOrSwim Watchlist.
Показывает разницу между ask / bid и конечно подсвечивает цветом.
#Colume:Spread
#by thetrader.pro
Def Spread1= (ASK-BID)*100;
AddLabel(yes, AsText(Spread1, «%1$.0f»));
AssignBackgroundColor (if (Spread1> 6) then Color.red else Color.black);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRW
Скрипт #ThinkOrSwim для #watchlist .
Поиск проторговок на любом ценовом уровне. Имеет две настройки: 1.Максимальное отклонение от уровня базы. Показывает качество проторговки и удержания уровня. 2 Число баров для просмотра. Показывает, сколько баров база должна простоять минимально, чтоб нарисовался сигнал.
#Base.Скрипт ищет базы из N последних свечей, на любых уровнях
def iDiff = 0.01; #максимальное отклонение в центах
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);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi
Показывает IQ акции.
Чем больше показатель IQ у акции, тем больше денег она позволяет в себя распихать))!
Кто торгует большие объемы — тому может пригодиться.
Полная библиотека индикаторов, фильтров и и сканеров для Thinkorswim в этом блоге http://bit.ly/2vKq4F8
#Thinkorswim filter for Watchlist #Показывает IQ акции #Thinkorswim https://RadchenkoVY.com/TOS def length = 14; # сколько дней учитывать при расчетах показателей input AvgVolume = {default "1", "0"}; input ATR = {default "1", "0"}; def iATR = Round((Average(high(period = "DAY"), length ) - Average(low(period = "DAY"), length )), 2); def iAvgVolume = Round(Average (volume(period = "DAY")[1], length), 1); plot IQ = round ((iAvgVolume/390*iATR/1000),0);
Скрипт #ThinkOrSwim для #watchlist
Ищет базы на фигурах, т.е ценах, кратных 50 и 100 центам. Настройки такие же, как и в первом фильтре баз. Такие уровни более значимые, поэтому сигналы будут наиболее надежные.
#Base50100.Скрипт ищет базы из N последних свечей, привязанные к уровням 50 и 100 центов.
def iDiff = 0.01; #максимальное отклонение в центах
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);
Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi