Формулы и индикаторы для Thinkorswim (TOS).

Формулы для Thinkorswim (TOS). Фильтры thinkorswim. Индикаторы для thinkorswim (TOS). Thinkorswim (TOS) скачать. Thinkorswim (TOS) регистрация, настройки. 
Скрипт ищет базы на круглых уровнях 50,100 центов и на вчерашних 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 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;
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 iFigureLow ) then 1
else if (bBaseHigh and iFigureHigh ) 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);

Скрипт ищет базы из 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);

Формула для определения полноты акции (Чем больше коэффициент, тем полнее акция)
VolumeAvg(14).VolAvg/(AtRWilder(14)*780000)

Акция в % от High/Low за 12 месяцев
(Highest (high, 12)-close)/(Highest (high, 12)- Lowest (low, 12))

Изменение цены за 10 дней по отношению к изменению цены за год
((close() [0] — open ()[10])/(Highest (high, 250)- Lowest (low, 250)))*100

MA10 > MA20 > MA50 or MA10 < MA20 < MA50
plot H = reference MovAvgExponential(close, 8) — reference SimpleMovingAvg(close, 20) > 0 and reference SimpleMovingAvg(close, 20) — reference SimpleMovingAvg(close, 50) > 0 and reference MovAvgExponential(close, 8) — reference SimpleMovingAvg(close, 20) < 0 and reference SimpleMovingAvg(close, 20) — reference SimpleMovingAvg(close, 50) < 0;
AssignBackgroundColor (if (reference MovAvgExponential(close, 8) — reference SimpleMovingAvg(close, 20) > 0 and reference SimpleMovingAvg(close, 20) — reference SimpleMovingAvg(close, 50) > 0) then color.GREEN else if (reference MovAvgExponential(close, 8) — reference SimpleMovingAvg(close, 20) < 0 and reference SimpleMovingAvg(close, 20) — reference SimpleMovingAvg(close, 50) < 0) then color.RED else color.BLACK);

Акция в 100 центах от HIGH за 150 дней
plot h = Highest (high, 150) — close;
assignBackgroundColor (if highest (high,150) — close <1.0 then color.DARK_GREEN else color.BLACK);

Акция в 100 центах от LOW за 150 дней
plot h = close — Lowest (low, 150);
assignBackgroundColor (if Close — Lowest (low, 150) <1.0 then color.DARK_rED else color.BLACK);

Акция находится в 50 центах от МА 50
def iPeriod = 50; #период скользящей средней
def iDiff = 0.50; #расстояние до ЕМА в долларах
def iDiffEMA = absValue(reference SimpleMovingAvg(close, iPeriod, 0)-close);
plot out = iDiffEMA <= iDiff;

Разница максимумов:
plot Diff = round((high-high[1]),2)*100;
Diff.AssignValueColor(if Diff >= 0 then Color.GREEN else Color.ORANGE);
AssignBackgroundColor(if open — high[1] > 0.1 then Color.DARK_GRAY else Color.BLACK);

Разница минимумов:
plot Diff = round((low[1] — low),2)*100;
Diff.AssignValueColor(if Diff >= 0 then Color.RED else Color.ORANGE);
AssignBackgroundColor(if low[1] — open > 0.1 then Color.DARK_GRAY else Color.BLACK);

Местонахождение последнего значения цены к максимуму
(подсвечивает при приближении к максимуму на 15 центов):
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);

Местонахождение последнего значения цены к минимуму
(подсвечивает при приближении к минимуму на 15 центов):
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);

Максимум:
plot Diff = high;
AssignBackgroundColor(if Diff > close then Color.BLACK else Color.GREEN);

Минимум:
plot Diff = low;
AssignBackgroundColor(if Diff < close then Color.Black else Color.RED);
Расстояние до минимума, за последние 150 свечей
(Подсвечивает, если оно меньше 10 центов):
plot h = Lowest (low, 150)-close; assignBackgroundColor (if Lowest (low, 150)-close then color.DARK_rED else color.BLACK);

Расстояние до максимума, за последние 150 свечей
(Подсвечивает, если оно меньше 10 центов):
plot h = Highest (high, 150) — high; assignBackgroundColor (if highest (high,150) — close <0.1 then color.DARK_GREEN else color.BLACK);

База
цифра 5 обозначает количество свечей взятых в базу, ее можно менять (Agrigation 1m):
Plot base = Highest(high, 5) — lowest (low, 5);

База на максимуме или минимуме:
(Agrigation D):
High-low — plot Diff = (close-high[1])*100>= (high — high[1] — 0.08)*100 or (low[1] — close)*100 >= (low[1] — low -0.08)*100 or close >= high or close >= high; AssignBackgroundColor( if close >= high then Color.Green else if close <= low then Color.RED else Color.BLACK);

Уровни на подобии фигур технического анализа таких как «треугольник» и «чашкас ручкой»:
plot hi = (highest(high,120)[5]+0.01)- close <=0.05 and (highest(high,120)[5]+0.01) >=highest (high, 6) or close — (lowest(low, 120)[5]-0.01) <=0.05 and (lowest(low, 120)[5]-0.01) <=lowest (low,6); AssignBackgroundColor (if (highest(high,120)[5]+0.01)- close <=0.02 and (highest(high,120)[5]+0.01) >=highest (high, 6) then color.GREEN else if close — (lowest(low, 120)[5]-0.01) <=0.02 and (lowest(low, 120)[5]-0.01) <=lowest (low,6) then color.RED else color.BLACK);

Спред:
plot Diff = round((Ask — Bid), 2) * 100;
Diff.AssignValueColor(if Diff <= 5 then Color.PINK else Color.BLUE);

Определение плавности акции:
(Если последние 11 свечек акции имеют размер менее 10 центов каждая, то показывает «1». Подсвечивает если максимум/минимум последних 5 свечей больше или равен максимуму/минимуму за последние 200 свечей. Ставится на М1 или М5 для определения плавности акции, в которой уже была высокая активность):
plot bu = high-low < 0.1 and high[1]-low[1] < 0.1 and high[2]-low[2] < 0.1 and high[3]-low[3] < 0.1 and high[4]-low[4] < 0.1 and high[5]-low[5] < 0.1 and high[6]-low[6] < 0.1 and high[7]-low[7] < 0.1 and high[8]-low[8] < 0.1 and high[9]-low[9] < 0.1 and high[10]-low[10] < 0.1 and high[11]-low[11] < 0.1 and high[12]-low[12] < 0.1; bu.assignValueColor (if high-low < 0.1 and high[1]-low[1] < 0.1 and high[2]-low[2] < 0.1 and high[3]-low[3] < 0.1 and high[4]-low[4] < 0.1 and high[5]-low[5] < 0.1 and high[6]-low[6] < 0.1 and high[7]-low[7] < 0.1 and high[8]-low[8] < 0.1 and high[9]-low[9] < 0.1 and high[10]-low[10] < 0.1 and high[11]-low[11] < 0.1 and high[12]-low[12] < 0.1 then color.WHITE else color.BLACK); assignBackgroundColor (if highest(high, 5) >= highest (high,200) then color.DARK_GREEN else if lowest (low,5) <= lowest (low,200) then color.DARK_RED else color.BLACK);

Изменение объема:
plot Diff = (if volume > 10000 then round ((((high — low)/(AverageTrueRange(ATRLength = 10) ) 100 ))-100, 2) else 0);

Разница объемов в thinkorswim
(Подсвечивает если цена акции обновила максимум/минимум за 30 свечек на повышенномобъеме): 
plot Diff=round((volume-volume[1])/1000); Diff.AssignValueColor(if volume-volume[1] >= 0 then Color.white else Color.gray); AssignBackgroundColor (if volume > volume[1] and high-low>=0.1 and high == highest (high, 30) or volume > volume[1] and high-low>=0.1 and low ==lowest (low, 30) then color.VIOLET else Color.black);

Разница между текущим объемом и прошлым 
(Подсвечивает всплески объема с движением):
plot Diff=round((volume-volume[1])/1000); Diff.AssignValueColor(if volume-volume[1] >= 0 then Color.white else Color.gray); AssignBackgroundColor (if volume > volume[1] and high-low>=0.1 then color.VIOLET else Color.black);

Сортировка по максимумам/минимумам
(Подсвечивает обновление максимума/минимума. Aggregation: D):
plot Diff = (close-high[1])100>= (high — high[1] — 0.08)100 or (low[1] — close)100 >= (low[1] — low -0.08)100 or close >= high or close >= high; AssignBackgroundColor( if close >= high then Color.Green else if close <= low then Color.RED else Color.BLACK);

Цена возле максимума/минимума за последние 50 свечек 
(В пределах 10 центов при условии что текущая цена не выше хай/лоу последних 10 свечек + текущий объем более 30000 и текущий хай/лоу еще не обновил хай/лоу за 50 свечек. +подсвечивает сигналы соответствующим цветом. Aggregation: D):
plot Diff = Highest(high, 50)[1]-close <=0.1 and close < Highest(high, 10)[1]+0.06 and high < Highest(high, 50)[1] and volume > 30000 or close- lowest(low, 50)[1] <=0.1 and close > lowest(low, 50)[1]-0.06 and low > lowest(low, 50)[1]-0.06 and volume > 30000; AssignBackgroundColor (if Highest(high, 10)[1]-close <=0.1 and close < Highest(high, 10)[1]+0.06 and high < Highest(high, 10)[1] then color.DARK_green else if close- lowest(low, 10)[1] <=0.1 and close > lowest(low, 10)[1]-0.06 and low > lowest(low, 10)[1]-0.06 then color.DARK_RED else color.BLACK);

Разница движения за 10 свечей и текущей свечки 
(Подсвечивает приближение цены к максимуму или минимуму. Aggregation: D):
plot Diff = round ((AverageTrueRange(ATRLength = 10) — (high — low)), 2) * 100; AssignBackgroundColor(if (close-high[1])100>= (high — high[1] — 0.08)100 then Color.DARK_GREEN else if (low[1] — close)100 >= (low[1] — low -0.08)100 then Color.DARK_RED else Color.BLACK);

1233

 Формулы для Thinkorswim (TOS). Фильтры thinkorswim. Индикаторы для thinkorswim (TOS). Thinkorswim (TOS) скачать. Thinkorswim (TOS) регистрация, настройки. 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *