Ищет ситуации, когда базы на круглых уровнях пробиваются. В этом случае сигнал показывается до тех пор, пока цена не уходит слишком далеко от пробития. Указать нужное расстояние ухода цены можно в дополнительной настройке — Максимальное отклонения для пробития.
#BaseBreakout.Ищет только что пробитые базы из N последних свечей, на уровнях 50 и 100 центов.
#Cнять галочку Include Extended Session
def iDiff = 0.01; # максимальное отклонение для базы в центах
def iDiff2 = 0.40; # максимальное отклонение для пробития в центах
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;
Скрипт #ThinkOrSwim для #watchlist
Сигналит при образовании формации «Перекрытие тел». Сигналы разделены на покупку и продажу.
#Body_overlapping.Показывает паттерн «Body overlapping или Перекрытие тел»
#Cнять галочку Include Extended Session
def bSignalUp = open[1]<close[1] and open>close[1] and close<open[1];
def bSignalDown = open[1]>close[1] and open<close[1] and close>open[1];
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
Скрипт #ThinkOrSwim для #watchlist
Поиск формации «Внешний бар» на графике.
#Inside_Bar.Показывает паттерн «Внутренний бар»
#Cнять галочку Include Extended Session
def bSignalDown = open[1]>close[1] and open<close and high<high[1] and low>low[1];
def bSignalUp = open[1]<close[1] and open>close and high<high[1] and low>low[1];
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
Показывает две формации, образованные на графике. «Тройное дно» или «Тройная вершина». Сигналы разделены на покупку и продажу.
#ThreeHighLow. Показывает паттерн «три бара с тройной вершиной\тройным дном»
#Cнять галочку Include Extended Session
def bSignalUp = high[2]==high[1] and high[1]==high;
def bSignalDown = low[2]==low[1] and low[1]==low;
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
Интересная свечная модель «Трехбарный разворот», позволяющая получать новые идеи для торговли.
#ThreeBarReverse.Показывает паттерн «Трехбарный разворот»
def bSignalDown = open[2]<close[2] and low[1]>low[2] and low[1]<high[2] and high[1]>high[2] and high<high[1] and close[1]<low[1];
def bSignalUp = open[2]>close[2] and low[1]<low[2] and low[2]<high[1] and low[1]<low[2] and low>low[1] and low<high[1] and close>high[1];
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
Ищет базы на круглых уровнях, кратных 10 центам или на вчерашних ценовых экстремумах дня. Имеет 4 сигнала для индикации.
#Base_Level_PrevHiLow.Ищет базу, на уровнях 10-20-30 или на вчерашних 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 iLevelLow = fold LLbar = 0 to iBars with LLsumm do if (low[LLbar] == roundDown(low[LLbar],1)) then LLsumm+1 else LLsumm;
def iLevelHigh = fold LHbar = 0 to iBars with LHsumm do if (high[LHbar] == roundUp(High[LHbar],1)) then LHsumm+1 else LHsumm;
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 iLevelLow ) then 1 else if (bBaseHigh and iLevelHigh ) 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);
Находит на графике свечную формацию Реверсивный разворот.
#Revers.Показывает паттерн «Реверсивный разворот»
def bSignalUp = high[1]>high[2] and close[1]>high[2] and open>high[1] and close<close[1];
def bSignalDown = high[1]<high[2] and close[1]<low[2] and open<low[1] and close>close[1];
plot up = if bSignalUp then high else double.NaN;
plot down = if bSignalDown then high else double.NaN;
up.SetPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_down);
down.SetPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_up);
up.setDefaultColor(color.LIGHT_red);
down.setDefaultColor(color.LIGHT_green);
Ищет на графике свечную модель «Внешний бар». Без настроек. Просто установите и пользуйтесь.
#Outside_Bar.Показывает паттерн «Внешний бар»
#Cнять галочку Include Extended Session
def bSignalDown=open[1]<close[1]and high>high[1] and close<low[1] or open[1]>close[1] and high>high[1] and close<low[1];
def bSignalUp = open[1]>close[1] and low<low[1] and close>high[1] or open[1]<close[1] and low<low[1] and close>high[1];
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
Поиск довольно редкой свечной модели «Двойной внешний бар»
#Double_Outside_bar.Показывает паттерн «Двойной внешний бар»
#Cнять галочку Include Extended Session
def bSignalDown = 0;
def bSignalUp = high[2]<high[1] and high[1]<high and low[2]>low[1] and low[1]>low and close>high[1];
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);