Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Скрипт ThinkOrSwim для watchlist

Скрипт ищет базы на фигурах или на уровнях вчерашних экстремумов дня. Тоже уровни очень сильные. Имеет 4 цифры для сигналов.

#Base_Figure_PrevHiLow.Скрипт ищет базы на круглых уровнях 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);

Полная библиотека индикаторов в нашем блоге goo.gl/9JRWUi


Блог им. toshackers |Скрипт #ThinkOrSwim для #watchlist

Скрипт #ThinkOrSwim для #watchlist


Показывает в колонке сигнал, когда две скользящих средних пересекаются. Настраиваются практически все параметры обеих MA на график в виде индикаторов и все получится очень наглядно.

#MA_Crosses.показывает сигнал, когда две МА пересекают друг друга 
#Cнять галочку Include Extended Session 
#Aggregation обязан быть не больше чем переменная Period в 7 строке 
input price = FundamentalType.CLOSE; input Period = AggregationPeriod.FIVE_MIN; #указать период расчета МА, выбрав из списка: TWO_MIN THREE_MIN FOUR_MIN FIVE_MIN EN_MIN FIFTEEN_MIN TWENTY_MIN THIRTY_MIN HOUR TWO_HOURS FOUR_HOURS DAY TWO_DAYS THREE_DAYS FOUR_DAYS WEEK MONTH OPT_EXP input FastLength = 20; #период быстрой МА input SlowLength = 80; #период медленной МА input averageType = AverageType.simple; 


( Читать дальше )

Блог им. toshackers |Скрипт ThinkOrSwim для watchlist

Скрипт ThinkOrSwim для watchlist

Скрипт #ThinkOrSwim для #watchlist

Показывает свечную модель «Шпиль» или, как его еще называют, «Пинбар». Собственных настроек не имеет.

#Pin.Показывает паттерн «Шпиль»
#Cнять галочку Include Extended Session

def low25 = ((high — low) / 100) * 25;
def bSignalDown = open[1] > close[1] and high-open < low25 and high-close <low25;
def bSignalUp = open[1] < close[1] and open-low < low25 and close-low<low25;
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




Блог им. toshackers |Breakout : Скрипт ThinkOrSwim для watchlist

Breakout : Скрипт ThinkOrSwim для watchlist


Показывает ситуации, когда на вчерашних ценовых экстремумах (которые к тому же еще и на круглых уровнях) происходит пробитие. Тут только одна настройка «максимальное отклонение пробития уровня». Т.е. можно указать, на какое расстояние цена может ускакать после пробития, чтобы вас это устраивало.

#BreakoutPrevHiLow_Figure.Подсвечивает, только что пробитые вчерашние Hi\Low, если это на круглом уровне
#Cнять галочку Include Extended Session

def iDiff = 0.03; #Максимальное отклонение пробития уровня
def iHiPrevDay = high(period = «DAY»)[1];
def iLowPrevDay = Low(period = «DAY»)[1];
def bHiBreakout = (iHiPrevDay < close) and (close < iHiPrevDay + iDiff);
def bLowBreakout = (iLowPrevDay > close) and (close > iLowPrevDay — iDiff);
def bFigurePrevLow = iLowPrevDay == (Floor(iLowPrevDay*2))/2;
def bFigurePrevHi = iHiPrevDay == (Ceil(iHiPrevDay*2))/2;



( Читать дальше )

Блог им. toshackers |Индикатор ThinkOrSwim: NewHigh / NewLow

Индикатор ThinkOrSwim: NewHigh / NewLow


Классный индикатор сигналит, когда акция обновила свой максимум или минимум.

Сценарий применения:
Сделать таблицу 4 на 4 и получать сигналы при обновлении
экстремумов у выбраных акций.

input marketOpen = 930;
input marketClose = 1600;
input intraDaySpan = {Default «SameDay», «OverNight»};
def OpenCounter = SecondsFromTime(marketOpen);
def CloseCounter = SecondsTillTime(marketClose);
def MarketHours = if OpenCounter >= 0 and CloseCounter >= 0 then 1 else 0;
def beforeMidnight = OpenCounter >= 0 and CloseCounter <= 0;
def afterMidnight = OpenCounter <= 0 and CloseCounter >= 0;
def Today ;
def hideChartBubbles ;
rec DailyHigh ;
rec DailyLow ;
switch (intraDaySpan) {
case «SameDay»:
Today = if GetDay() != GetDay()[1] then 1 else 0;
DailyHigh = if Today then high else if MarketHours then if high > DailyHigh[1] then high else DailyHigh[1] else high;
DailyLow = if Today then low else if MarketHours then if low < DailyLow[1] then low else DailyLow[1] else low;
hideChartBubbles = MarketHours;
case «OverNight»:
Today = 0;
DailyHigh = if Today then high else if beforeMidnight or afterMidnight then if high > DailyHigh[1] then high else DailyHigh[1] else high;
DailyLow = if Today then low else if beforeMidnight or afterMidnight then if low < DailyLow[1] then low else DailyLow[1] else low;
hideChartBubbles = beforeMidnight or afterMidnight;
};
AddLabel(close > 0, Concat( «Dly High: », DailyHigh), Color.GRAY);
AddLabel(close > 0, Concat( «Dly Low: », DailyLow), Color.GRAY);
plot TodaysHigh = DailyHigh;
plot TodaysLow = DailyLow;
TodaysHigh.SetDefaultColor(Color.GREEN);
TodaysLow.SetDefaultColor(Color.RED);
AddChartBubble(DailyHigh > DailyHigh[1] and hideChartBubbles, DailyHigh, «Hi», color.GREEN, yes);
AddChartBubble(DailyLow < DailyLow[1] and hideChartBubbles, DailyLow, «Lo», color.RED, no);
Alert(DailyHigh > DailyHigh[1] and hideChartBubbles, «New High», Alert.BAR, Sound.RING);
Alert(DailyLow < DailyLow[1] and hideChartBubbles, «New Low», Alert.BAR, Sound.RING);plot Data = close;

Полная библиотека полезных индикаторов для NYSE (Ccылка)


 


Блог им. toshackers |ThinkOrSwim. Набор формул для watchlist

ThinkOrSwim. Набор формул для watchlist



1.
Текущий спред в акции и выделяет цветом.

Def Spread1= (ASK-BID)*100; 
AddLabel(yes, AsText(Spread1, "%1$.0f")); 
AssignBackgroundColor (if (Spread1> 6) then Color.red else Color.black);

2.
Change from open (%).

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);

3.
Volume in Play. Относительный объем в акции. Выделение цветом повышенного значения.

plot 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);

ThinkOrSwim. Набор формул для watchlist


....все тэги
UPDONW
Новый дизайн