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

Разница максимумов:
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);

  • thinkorswim
  • ameritrade
  • формулы
  • ТОС
X

Похожие публикации

Комментарии (18)

Чтобы оставить комментарий, вам необходимо войти или зарегистрироваться
  • всё это хорошо но без лайв режима, во многом теряет смысл(

  • Shnurevich, "Мопед не мой, я просто дал объявление" ag.gif

    kombojiec в этом посте http://utmagazine.ru/posts/7161-formuly-dlya-tosa попросил формулы - вот они a_d.gif

  • amatar83, да не, ситуация разрешилась, оказывается вотчлист сам по себе, скрипт сам по себе в лайф режиме, так что пригодится!)

  • Shnurevich, а что тебе в вотчлисте не так ?

  • keekkenen, данные отстают, хотя сам по себе, работающий по скрипту вотчлист, будет верным судя по всему, немного неудобно просто

  • Shnurevich, ты имеешь в виду, что bid/ask/volume отстают ?

  • keekkenen, да

  • Shnurevich, ну, дык это поправимо..

    например, берем и создаем кастом с формулой ask для минуток и добавляем его в вотч лист и почувствуй разницу между стандартным аск и созданным ag.gif

  • keekkenen, к сожалению я недавно начал тосом пользоваться и не понял, что за кастом создать с формулой аск, и например 5-минутки нужны)

  • Shnurevich, в вотчлисте на "строке", где подписи к колонкам (Symbol и т.д.) правой кнопкой мыши (для правшей ab.gif) в выпадающем меню выбираем Customize.., в появившемся диалоге в поисковом поле (при открытии в нем написано Lookup a column) слева сверху пишем custom, ниже в списковом поле появятся элементы Custom 1, Custom 2 и т.д. выбираем (дабл кликом или перетаскиванием в поле справа) любое из них, при этом появится диалоговое окно Custom Quote Formula..



    далее в поле Column name пишем название/имя новой колонки, в поле Aggregation выбираем 1м, далее ниже переходим на закладку thinkScript Editor в ней собственно и пишутся всякие формулы/сигнализаторы для отбора акций..



    удаляем что там написано.. и пишем свою формулу..



    например, хотим видеть актуальную цену аск, то пишем ask, бид - bid, last - close.. если хотим видеть объем - volume( только Aggregation нужно выставить D)..



    написав формулу, жмем Ок и новая колонка появляется в правом окне Current Set, также она сохраняется и будет доступна для добавления в последствии, соответственно искать ее по имени, которое ей дали..



    далее жмем Ок, и новая колонка появляется в вотчлисте..

  • keekkenen, спасибо, то что нужно было))!

  • ++

    кое чего у меня не было, спасибо

  • Друзья, помогите пожалуйста, кто на "Ты" с ТОСом: Имеются 2 фомулы, хотелось бы из них сделать одну? Файл здесь http://my-files.ru/q1yigw или выкладываю прямо сюда:





    #цена в 5-ти центах от хая текущего дня, при условии, что хай текущего дня выше или равен хаю прошлого дня



    def iDiff = 0.05; #максимальное расстояние до уровня Хай в центах



    def iHighDay = high(period = "DAY")[0];

    plot bBase = if ((iHighDay >= high(period = "DAY")[1]) and (iHighDay - close <= iDiff)) then 1 else 0;

    AssignBackgroundColor (if bBase == 1 then Color.LIGHT_GREEN else Color.black);





















    #цена в 5-ти центах от Low текущего дня, при условии, что Low текущего дня ниже или равен хаю прошлого дня



    def iDiff = 0.05; #максимальное расстояние до уровня Low в центах



    def iLowDay = low(period = "DAY")[0];

    plot bBase = if ((iLowDay <= Low(period = "DAY")[1]) and (close - iLowDay <= iDiff)) then 1 else 0;

    AssignBackgroundColor (if bBase == 1 then Color.LIGHT_GREEN else Color.black);

  • В формуле СПРЕД ошибка

  • не дает сделать фильтры по этим формулам. Кто-нибудь может помочь разобраться с тосом? Никогда просто не пользовался


  • на каком языке пишутся формулы?

UP