Bollinger Bands (BB) – Полосы БоллинджераПолосы Боллинджера состоят из трёх линий: средней SMA, верхней и нижней границ, которые отклоняются от SMA на определённое количество стандартных отклонений.
Как использовать:
Недостатки:
# indie:lang_version = 5from indie import indicator, param, source, plot, colorfrom indie.algorithms import Bb@indicator('BB', overlay_main_pane=True) # Bollinger Bands@param.int('length', default=20, min=1)@param.source('src', default=source.CLOSE, title='Source')@param.float('mult', default=2.0, min=0.001, max=50.0, title='StdDev')@param.int('offset', default=0, min=-500, max=500)@plot.line('lower', color=color.BLUE, title='Lower')@plot.line(color=color.RED, title='Basis')@plot.line('upper', color=color.BLUE, title='Upper')@plot.fill('lower', 'upper', color=color.AQUA(0.05), title='Background')def Main(self, length, src, mult, offset):(lower, middle, upper) = Bb.new(src, length, mult)return (plot.Line(lower[0], offset=offset),plot.Line(middle[0], offset=offset),plot.Line(upper[0], offset=offset),plot.Fill(),)
VWAP – это средняя цена актива за день, взвешенная по объёму торгов.
Как использовать:
Недостатки:
# indie:lang_version = 5from indie import indicator, param, source, plot, colorfrom indie.algorithms import Vwap@indicator('VWAP', overlay_main_pane=True) # Volume Weighted Average Price@param.source('src', default=source.HLC3, title='Source')# TODO: add Earnings, Dividends, Splits@param.str('anchor', default='Session', options=['Session', 'Week', 'Month', 'Year'], title='Anchor')@param.int('offset', default=0, min=-500, max=500, title='Offset')@plot.line('vwap', title='VWAP', color=color.BLUE)@plot.line('upper', title='Upper band', color=color.GREEN)@plot.line('lower', title='Lower band', color=color.GREEN)@plot.fill('upper', 'lower', color=color.GREEN(0.1), title='Background')def Main(self, src, anchor, offset):std_dev_mult = 1.0main_line, upper, lower = Vwap.new(src, anchor, std_dev_mult)return (plot.Line(main_line[0], offset=offset),plot.Line(upper[0], offset=offset),plot.Line(lower[0], offset=offset),plot.Fill(),)
MACD – это индикатор тренда, состоящий из быстрой и медленной EMA и гистограммы, показывающей разницу между ними.
Применение:
Недостатки:
# indie:lang_version = 5from indie import indicator, param, source, level, color, plot, Colorfrom indie.algorithms import Macd@indicator('MACD') # Moving Average Convergence Divergence@param.int('fast_length', default=12, min=1, title='Fast Length')@param.int('slow_length', default=26, min=1, title='Slow Length')@param.source('src', default=source.CLOSE, title='Source')@param.int('signal_length', default=9, min=1, max=50, title='Signal Smoothing')@param.str('sma_source', default='EMA', title='Oscillator MA Type', options=['SMA', 'EMA'])@param.str('sma_signal', default='EMA', title='Signal Line MA Type', options=['SMA', 'EMA'])@level(0, line_color=color.GRAY(0.5))@plot.columns(title='Histogram')@plot.line(color=color.BLUE, title='MACD')@plot.line(color=color.MAROON, title='Signal')def Main(self, fast_length, slow_length, src, signal_length, sma_source, sma_signal):macd, signal, hist = Macd.new(src, fast_length, slow_length, signal_length, sma_source, sma_signal)hist_color: Colorif hist[0] >= 0:if hist[1] < hist[0]:hist_color = color.GREENelse:hist_color = color.LIMEelse:if hist[1] < hist[0]:hist_color = color.REDelse:hist_color = color.MAROONreturn (plot.Columns(hist[0], color=hist_color),macd[0],signal[0],)
RSI – осциллятор, который показывает, перекуплен ли актив (выше 70) или перепродан (ниже 30).
Как применять:
Минусы:
# indie:lang_version = 5from math import nanfrom indie import indicator, format, param, source, band, color, level, plotfrom indie.algorithms import Rsi, Ma, StdDev@indicator('RSI', format=format.PRICE) # Relative Strength Index@param.int('rsi_length', default=14, title='RSI Length', min=1)@param.source('src', default=source.CLOSE, title='Source')@param.str('ma_type', default='SMA', title='MA Type',options=['SMA', 'Bollinger Bands', 'EMA', 'SMMA (RMA)', 'WMA', 'VWMA'])@param.int('ma_length', default=14, title='MA Length', min=1)@param.float('bb_mult', default=2.0, title='BB StdDev', min=0.001, max=50)@band(30, 70, line_color=color.GRAY, fill_color=color.PURPLE(0.1))@level(50, line_color=color.GRAY(0.5))@plot.line(color=color.YELLOW, title='RSI-based MA')@plot.line(color=color.PURPLE, title='RSI')@plot.line('bb_lower', color=color.GREEN, title='RSI Lower Band')@plot.line('bb_upper', color=color.GREEN, title='RSI Upper Band')@plot.fill('bb_lower', 'bb_upper', color=color.GREEN(0.1), title='Bollinger Bands Background Fill')def Main(self, rsi_length, src, ma_type, ma_length, bb_mult):rsi = Rsi.new(src, rsi_length)is_bb = ma_type == 'Bollinger Bands'ma_algorithm = 'SMA' if is_bb else ma_typersi_ma = Ma.new(rsi, ma_length, ma_algorithm)std_dev = StdDev.new(rsi, ma_length)bb_lower = rsi_ma[0] - std_dev[0] * bb_mult if is_bb else nanbb_upper = rsi_ma[0] + std_dev[0] * bb_mult if is_bb else nanreturn rsi_ma[0], rsi[0], bb_lower, bb_upper, plot.Fill()
SMA – один из базовых индикаторов технического анализа, используемый для сглаживания ценовых колебаний и выявления трендов. Он рассчитывается как среднее арифметическое цен за определённый период. Например, SMA(10) — это средняя цена за последние 10 периодов.
Применение:
Недостатки:
# indie:lang_version = 5from indie import indicator, param, source, plot, colorfrom indie.algorithms import Sma@indicator('SMA', overlay_main_pane=True) # Simple Moving Average@param.int('length', default=9, min=1)@param.source('src', default=source.CLOSE, title='Source')@param.int('offset', default=0, min=-500, max=500, title='Offset')@plot.line(color=color.BLUE)def Main(self, length, src, offset):sma = Sma.new(src, length)return plot.Line(sma[0], offset=offset)# TODO: implement smoothing when display.none is supported
EMA – это усовершенствованный вариант SMA, который придаёт больший вес последним ценам. Благодаря этому EMA быстрее реагирует на изменения рынка.
Преимущества:
Применение:
Недостатки:
# indie:lang_version = 5from indie import indicator, param, source, plot, colorfrom indie.algorithms import Ema@indicator('EMA', overlay_main_pane=True) # Moving Average Exponential@param.int('length', default=9, min=1)@param.source('src', default=source.CLOSE, title='Source')@param.int('offset', default=0, min=-500, max=500, title='Offset')@plot.line(color=color.BLUE)def Main(self, length, src, offset):ema = Ema.new(src, length)return plot.Line(ema[0], offset=offset)# TODO: implement smoothing when display.none is supported


Be the first to comment
Publish your first comment to unleash the wisdom of crowd.