Скрипт ищет базы на фигурах или на уровнях вчерашних экстремумов дня. Тоже уровни очень сильные. Имеет 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
Скрипт #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
Скрипт ищет базы на круглых уровнях цен, кратных 10 центам. Получаются более частые сигналы, но их нужно лучше фильтровать глазами, потому что надежность их не всегда хорошая.
#Base_Level.Ищет базу, на уровнях 10-20-30 и так далее
Переходите в наш блог!!! Там полная библиотека индикаторов goo.gl/9JRWUidef iDiff = 0.01; #максимальное отклонение в центах
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 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;
plot bBase = if (bBaseLow and iLevelLow ) then 1 else if (bBaseHigh and iLevelHigh ) then 2 else 100;
AssignBackgroundColor (if (bBase == 1) then Color.LIGHT_GREEN else if (bBase == 2) then Color.LIGHT_RED else Color.black);
Показывает ситуации, когда на вчерашних ценовых экстремумах (которые к тому же еще и на круглых уровнях) происходит пробитие. Тут только одна настройка «максимальное отклонение пробития уровня». Т.е. можно указать, на какое расстояние цена может ускакать после пробития, чтобы вас это устраивало.
#BreakoutPrevHiLow_Figure.Подсвечивает, только что пробитые вчерашние Hi\Low, если это на круглом уровне
#Cнять галочку Include Extended Sessiondef 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;