Устанавливаете как индикатор на чарт ....на 15мин работает лучше всего. В скрипте полностью отключен фильтр сигналов...это место где #and close > ma и #and close < ma ....чтобы его включить нужно просто удалить символ # в обоих местах. Если у вас есть идея как это можно отфильтровать более качественно, например каким то вашим индикатором, то напишите здесь. Вдруг найдете что то интересное...
input TrendAverageType = AverageType.WILDERS;
input price = hl2;
input length = 13;
input displace = 8;
def ma = MovingAverage(TrendAverageType, price, length)[displace];
def Upcond1 = (low[1] - low)/low[1] >= 0.0009;
def Upcond2 = low < low[1] and low < low[2] and low < low[3];
def Upcond3 = ((close - low)/(high-low))<= 0.33;
def Upcond4 = low[1] < low[2];
def Upcond5 = close[1] < close[2];
def Upcond6 = high[1]<=high[2];
plot Upsignal = if Upcond1 and Upcond2 and Upcond3 and Upcond4 and Upcond5 and Upcond6 #and close > ma
then 1 else double.nan;
def Dncond1 = (high - high[1])/high[1] >= 0.0009;
def Dncond2 = high > high[1] and high > high[2] and high > high[3];
def Dncond3 = ((high - close)/(high-low))<= 0.33;
def Dncond4 = high[1] > high[2];
def Dncond5 = close[1] > close[2];
def Dncond6 = low[1]>=low[2];
plot Dnsignal = if Dncond1 and Dncond2 and Dncond3 and Dncond4 and Dncond5 and Dncond6 #and close < ma
then 1 else double.nan;
Upsignal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
Dnsignal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
Ребят подскажите, можноли создать в thinkorswim гравиг с Волиум Профель на каждый бар , как в вольфиксе Кластер Профиль. Или нужно писать скрипт , индикатор или что то подобное. Если да, то кто может это сделать. И сколько это будет стоить???
Продолжая тему фильтра уровней... http://hamaha.net/view/post:211467/maximilian..._base.html Есть решение проблемы погрешности, благодаря помощи коллег с других форумов и знакомых программистов, за что им огромное спасибо. def otkl = 0.01; # задайте отклонение в центах/ Amadey_MF def base = if (((-lowest(low,4)+low[0])<otkl) and ((-lowest(low,4)+low[1])<otkl) and ((-lowest(low,4)+low[2])<otkl) and ((-lowest(low,4)+low[3])<otkl))then 1 else if(((highest(high,4)-high[0])<otkl) and ((highest(high,4)-high[1])<otkl) and ((highest(high,4)-high[2])<otkl)and ((highest(high,4)-high[3])<otkl)) then 2 else 0; def base1 = (if(base > 0 ) and (((low[1] == (Ceil(low[1]2))/2)or(high[1] == (Ceil(high[1]2))/2))) then 0 else 1); def base2 = (if(base > 0 ) and (((low[2] == (Ceil(low[2]2))/2)or(high[2] == (Ceil(high[2]2))/2))) then 0 else 1); def base3 = (if(base > 0 ) and (((low[3] == (Ceil(low[3]2))/2)or(high[3] == (Ceil(high[3]2))/2))) then 0 else 1); def base4 = (if(base > 0 ) and (((low[4] == (Ceil(low[4]2))/2)or(high[4] == (Ceil(high[4]2))/2))) then 0 else 1); plot baseall = if(base1 == 0 or base2 == 0 or base3 == 0 or base4 == 0 ) then 0 else 1; AssignBackgroundColor (if (baseall == 0) then Color.red else Color.black); Этот скрипт находит уровни с погрешностью, которую можно указывать самому. Он показывает только 50 и 100-центовые уровни (если надо скрипт который показывает ВСЕ уровни, напишите в приват). Единственный нюанс который хотелось бы улучшить в нем это количество свечей которые надо проверять. Он смотрит только последние 4-е свечки, и если совпадают условия, то эти акции подсвечиваются. А хотелось бы что бы он смотрел к примеру последние 10 свечек, и если хотя бы 3 из них подходили к уровню, то эта акция должна выделятся.. Я уверен что это написать можно.. и думаю это будет тот фильтр который всем нам нужен..
Всем привет. Тоже торгую по похожей формуле на Strategy Desk. Как раз задумался о ней на Thinkorswim.
В коде разобрался за исключением момента расчета круглых уровней. Точнее расчет расшифровал, но ведь получается, что уровни ищутся всегда выше цены. т.е. если цена 23.02, то поиск идет по 23.50, а не по 23.00. А если цена 48.53, то поиск идет уровня 49, а не 48.50.
Хотя проверил и такая тактика тоже работает неплохо, и случайно захватывает и нижние уровни иногда..
Короче я участвую в разработке ))) На досуге подумаю, как получше сформулировать код..
Вопрос по поводу фильтра уровней Plot base = (if (((low[0] == low[1]) and (low[2] == low[1]) and (low[2] == low[3]))or((high[0] == high[1]) and (high[2] == high[1]) and (high[2] == high[3]))) then 0 else 1); AssignBackgroundColor(if (base == 0) and ((low[1] == Ceil(low[1]))or(high[1] == Ceil(high[1]))) then Color.green else Color.black); который написал YANC http://hamaha.net/view/post:172253/YANC-%D0%9...D0%B5.html Можно ли в нем сделать какую то погрешность, что бы уровни хай и лоу не прям цент в цент были, а к примеру допускалась погрешность в цент-два.. А то много акций пропускается из-за такого жесткого соответствия
в поддержке Thinkscript сказали что можно использовать вот такую функцию, что бы была погрешность в 2 цента. просьба к программистам, как правильно вставить ее в этот скрипт?
def lo = low;
Если используете в своем трейдинге статистические параметры, такие как скошенность распределения и куртосис, то в первом комменте лежит такой скрипт...Period - количество значений выборки, здесь чем больше тем лучше. Observation Period - вводите свое значение для интересующего периода. Работает в нижнем окне, чтобы посмотреть по отдельности нужно будет что то одно отключить.....
что это? можно скачать посмотреть?
Авг 21 2012, 18:54Устанавливаете как индикатор на чарт ....на 15мин работает лучше всего. В скрипте полностью отключен фильтр сигналов...это место где #and close > ma и #and close < ma ....чтобы его включить нужно просто удалить символ # в обоих местах. Если у вас есть идея как это можно отфильтровать более качественно, например каким то вашим индикатором, то напишите здесь. Вдруг найдете что то интересное...
Авг 21 2012, 19:55input TrendAverageType = AverageType.WILDERS;
input price = hl2;
input length = 13;
input displace = 8;
def ma = MovingAverage(TrendAverageType, price, length)[displace];
def Upcond1 = (low[1] - low)/low[1] >= 0.0009;
def Upcond2 = low < low[1] and low < low[2] and low < low[3];
def Upcond3 = ((close - low)/(high-low))<= 0.33;
def Upcond4 = low[1] < low[2];
def Upcond5 = close[1] < close[2];
def Upcond6 = high[1]<=high[2];
plot Upsignal = if Upcond1 and Upcond2 and Upcond3 and Upcond4 and Upcond5 and Upcond6 #and close > ma
then 1 else double.nan;
def Dncond1 = (high - high[1])/high[1] >= 0.0009;
def Dncond2 = high > high[1] and high > high[2] and high > high[3];
def Dncond3 = ((high - close)/(high-low))<= 0.33;
def Dncond4 = high[1] > high[2];
def Dncond5 = close[1] > close[2];
def Dncond6 = low[1]>=low[2];
plot Dnsignal = if Dncond1 and Dncond2 and Dncond3 and Dncond4 and Dncond5 and Dncond6 #and close < ma
then 1 else double.nan;
Upsignal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
Dnsignal.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);