Binocular
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «2- binocular trend ( paid ).pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор «Binocular» для TradingView (Pine Script v5) отображает на графике комплекс наборов технических инструментов. Он рассчитывает волатильность на основе дневных данных и строит уровни стандартных отклонений вокруг дневной расчётной цены расчёта, предоставляя визуальные ориентиры отклонения текущей цены. Включает линии VWAP по нескольким таймфреймам, набор скользящих средних с сигнализацией о направлении тренда, индикатор супертренда, таблицы RSI по разным интервалам, зоны спроса и предложения с метками ценового действия, а также таблицы мультитаймфреймовых сигналов и таблицу управления сделками с уровнями входа, стоп-лосса и целей.
Настройки программы
| Настройка | Описание |
|---|---|
| useDaily | Использовать дневные данные — Определяет, рассчитывать ли волатильность на основе дневных данных или данных текущего таймфрейма графика. |
| LookBack | Период расчёта — Длина окна для расчёта стандартного отклонения логарифмических доходностей. |
| annual | Количество периодов в году — Количество периодов в году, используемое для годовой волатильности. |
| DaystoExpire_ | Календарных дней до истечения — Задаёт количество дней до истечения для расчёта волатильности; 0 означает автоматический выбор. |
| src_111 | Источник расчёта расчётной цены — Исходное значение, используемое для расчёта дневной расчётной цены расчёта. |
| sLength_ | Длина усреднения объёма — Длина окна для объёмно-взвешенного усреднения при расчёте расчётной цены; 1 означает использование цены закрытия дня. |
| showset | Отображать расчётную цену — Включает отображение линии расчётной цены на графике. |
| stddev1 | Отображать уровни 1x — Включает отображение полос стандартного отклонения ±1 от расчётной цены. |
| stddev2 | Отображать уровни 2x — Включает отображение полос стандартного отклонения ±2 от расчётной цены. |
| stddev3 | Отображать уровни 3x — Включает отображение полос стандартного отклонения ±3 от расчётной цены. |
| pivotNow | Только сегодняшние уровни — При включении отображает уровни отклонений только для текущего дня. |
| showstd1 | Метки уровней 1x — Включает текстовые метки ±1 стандартного отклонения. |
| showstd2 | Метки уровней 2x — Включает текстовые метки ±2 стандартного отклонения. |
| showstd3 | Метки уровней 3x — Включает текстовые метки ±3 стандартного отклонения. |
| bfr | Буфер входа — Процентный буфер для формирования уровня входа относительно экстремума баров. |
| tm | Сессия — Выбор отображения уровней: только в последней торговой сессии или во всех. |
| eb | Вход — Включает отображение уровня входа на графике. |
| tb1 | Цель 1 — Включает отображение первой цели по прибыли. |
| tb2 | Цель 2 — Включает отображение второй цели по прибыли. |
| tb3 | Цель 3 — Включает отображение третьей цели по прибыли. |
| slb | Стоп-лосс — Включает отображение уровня стоп-лосса на графике. |
| vwapd | Дневной VWAP — Включает отображение дневной линии объёмно-взвешенной средней цены. |
| vwapw | Недельный VWAP — Включает отображение недельной линии объёмно-взвешенной средней цены. |
| vwapm | Месячный VWAP — Включает отображение месячной линии объёмно-взвешенной средней цены. |
| src | Источник VWAP — Исходная цена для расчёта VWAP. |
| mab1 | Показать MA1 — Включает отображение первой скользящей средней. |
| mat1 | Тип MA1 — Тип скользящей средней для первой линии. |
| mas1 | Источник MA1 — Исходная цена для расчёта первой скользящей средней. |
| mal1 | Длина MA1 — Период первой скользящей средней. |
| mab2 | Показать MA2 — Включает отображение второй скользящей средней. |
| mat2 | Тип MA2 — Тип скользящей средней для второй линии. |
| mas2 | Источник MA2 — Исходная цена для расчёта второй скользящей средней. |
| mal2 | Длина MA2 — Период второй скользящей средней. |
| mab3 | Показать MA3 — Включает отображение третьей скользящей средней. |
| mat3 | Тип MA3 — Тип скользящей средней для третьей линии. |
| mas3 | Источник MA3 — Исходная цена для расчёта третьей скользящей средней. |
| mal3 | Длина MA3 — Период третьей скользящей средней. |
| plt | Таблица прибылей и убытков — Включает отображение таблицы с уровнями входа и стоп-лосса. |
| TablePos | Расположение таблицы — Указывает расположение таблицы на графике. |
| size | Размер таблицы — Задаёт размер таблицы. |
| tw | Ширина рамки таблицы — Толщина рамки таблицы. |
| showema | Показать EMA — Включает отображение набора экспоненциальных скользящих средних. |
| len1 | MA1 — Период первой экспоненциальной скользящей средней. |
| len2 | MA2 — Период второй экспоненциальной скользящей средней. |
| len3 | MA3 — Период третьей экспоненциальной скользящей средней. |
| len4 | MA4 — Период четвёртой экспоненциальной скользящей средней. |
| len5 | MA5 — Период пятой экспоненциальной скользящей средней. |
| len6 | MA6 — Период шестой экспоненциальной скользящей средней. |
| signalType | Тип сглаживания сигнала — Выбирает тип скользящей средней для сглаживания сигнала. |
| signalLength | Длина сглаживания сигнала — Период сглаживания сигнальной линии. |
| src420 | Источник сигнала — Исходная цена для расчёта сигнальной линии. |
| highlightCrossovers | Подсвечивать пересечения — Включает подсветку точек пересечения сигнальной линии с источником. |
| applyFilling | Заливка ленты — Включает заливку области между линиями сигнала. |
| mtf_t | Таблица мультитаймфреймовых сигналов — Включает отображение таблицы сигналов по нескольким таймфреймам. |
| mtf_p | Расположение таблицы MTF — Указывает расположение мультитаймфреймовой таблицы. |
| mtf_s | Размер таблицы MTF — Задаёт размер мультитаймфреймовой таблицы. |
| tf_1 | Таймфрейм 1 — Первый таймфрейм для мультитаймфреймового анализа. |
| tf_2 | Таймфрейм 2 — Второй таймфрейм для мультитаймфреймового анализа. |
| tf_3 | Таймфрейм 3 — Третий таймфрейм для мультитаймфреймового анализа. |
| tf_4 | Таймфрейм 4 — Четвёртый таймфрейм для мультитаймфреймового анализа. |
| showst | Показать супертренд — Включает отображение индикатора супертренда. |
| Mult_11 | Множитель супертренда — Множитель для расчёта полос супертренда. |
| Period_11 | Период супертренда — Базовый период для расчёта супертренда. |
| showema200 | Показать EMA 200 — Включает отображение экспоненциальной скользящей средней с периодом 200. |
| len200 | Период EMA 200 — Период экспоненциальной скользящей средней 200. |
| showema_ | Показать дневную EMA — Включает отображение дневных экспоненциальных скользящих средних. |
| showemalb | Метки дневной EMA — Включает текстовые метки дневных экспоненциальных скользящих средних. |
| Ema_Len | Длина дневной EMA 50 — Период дневной экспоненциальной скользящей средней 50. |
| Ema_Len2 | Длина дневной EMA 200 — Период дневной экспоненциальной скользящей средней 200. |
| n1 | Длина канала — Длина окна для расчёта экспоненциальной скользящей средней канала. |
| n2 | Длина усреднения — Период усреднения для индикатора Канала Индекса Ценовой Волатильности. |
| PosTable | Позиция таблицы RSI — Расположение таблицы RSI на графике. |
| SizTable | Размер таблицы RSI — Размер ячеек таблицы RSI. |
| len | Длина RSI — Период расчёта индекса относительной силы. |
| src_101 | Источник RSI — Исходная цена для расчёта RSI. |
| limitH | Перекупленность — Пороговое значение RSI для зоны перекупленности. |
| limitL | Перепроданность — Пороговое значение RSI для зоны перепроданности. |
| rsitf1 | Таймфрейм RSI 1 — Первый таймфрейм для расчёта RSI в таблице. |
| rsitf2 | Таймфрейм RSI 2 — Второй таймфрейм для расчёта RSI в таблице. |
| rsitf3 | Таймфрейм RSI 3 — Третий таймфрейм для расчёта RSI в таблице. |
| rsitf4 | Таймфрейм RSI 4 — Четвёртый таймфрейм для расчёта RSI в таблице. |
| rsitf5 | Таймфрейм RSI 5 — Пятый таймфрейм для расчёта RSI в таблице. |
| rsitf6 | Таймфрейм RSI 6 — Шестой таймфрейм для расчёта RSI в таблице. |
| swing_length | Длина разворота — Период определения точек разворота для построения зон спроса и предложения. |
| history_of_demand_to_keep | Хранить историю — Количество исторических зон спроса и предложения, сохраняемых на графике. |
| box_width | Ширина зоны — Множитель для расчёта ширины зон спроса и предложения на основе ATR. |
| show_zigzag | Показать зигзаг — Включает отображение линии зигзага между swing-высокими и низкими. |
| show_price_action_labels | Метки ценового действия — Включает отображение меток HH, HL, LH, LL у swing-точек. |
| supply_color | Цвет зоны предложения — Цвет заливки зоны предложения. |
| supply_outline_color | Контур зоны предложения — Цвет контура зоны предложения. |
| demand_color | Цвет зоны спроса — Цвет заливки зоны спроса. |
| demand_outline_color | Контур зоны спроса — Цвет контура зоны спроса. |
| bos_label_color | Цвет метки BOS — Цвет метки Break of Structure. |
| poi_label_color | Цвет метки POI — Цвет метки точки интереса. |
| swing_type_color | Цвет меток ценового действия — Цвет меток типов swing-точек. |
| zigzag_color | Цвет зигзага — Цвет линии зигзага. |
| ShowTrendIndi | Показать индикатор тренда — Включает отображение индикатора направления тренда в нижней части графика. |
| PACLen | Период EMA канала — Период экспоненциальной скользящей средней для построения ценового канала. |
| src_YGS | Источник для волновой EMA — Исходная цена для расчёта волновой центральной EMA. |
Поиск по коду файла
indicator("Binocular", overlay=true, max_bars_back = 5000)
useDaily = input(true, title='Use Daily Data to Calculate HV (default), otherwise chart TF')
LookBack = input.int(21, minval=1)
annual = input.int(252, minval=1)
DaystoExpire_ = input.int(defval=0, minval=0, title='Calender Days to Expiry (0=Auto, default)')
src_111 = input(close, title='Settlement Source (close=default)')
sLength_ = input.int(1, minval=1, title='Settlement Volume Weighted Average Length (1=Use end of day)')
showset = input(title="Settlement", defval=true, group='Settlement')
stddev1 = input(true, title='Display 1x Standard Deviation Levels', group='Settlement')
stddev2 = input(false, title='Display 2x Standard Deviation Levels',group='Settlement')
stddev3 = input(false, title='Display 3x Standard Deviation Levels',group='Settlement')
pivotNow = input(false, title='Display Only Todays Deviation Levels',group='Settlement')
showstd1 = input(title="Dev1 Labels", defval=true, group='Settlement')
showstd2 = input(title="Dev2 Labels", defval=false,group='Settlement')
showstd3 = input(title="Dev3 Labels", defval=false, group='Settlement')
dodgerblue = #1E90FF
sLength = timeframe.isintraday ? sLength_ : 1
nstart = request.security(syminfo.tickerid, 'D', bar_index, barmerge.gaps_off, barmerge.lookahead_on)
start1 = request.security(syminfo.tickerid, 'D', time, barmerge.gaps_off, barmerge.lookahead_on)
first = request.security(syminfo.tickerid, 'D', ta.valuewhen(barstate.islast, time, 0), barmerge.gaps_off, barmerge.lookahead_on)
nohist = nstart <= math.max(sLength, LookBack) + 1
change_1 = ta.change(start1)
newDay = nohist ? false : timeframe.isintraday ? change_1 : dayofmonth(time) < dayofmonth(time[1])
hv = 0.0
stdev_1 = ta.stdev(math.log(src_111 / src_111[1]), LookBack)
security_1 = request.security(syminfo.tickerid, 'D', stdev_1 * math.sqrt(annual), barmerge.gaps_off, barmerge.lookahead_on)
stdev_2 = ta.stdev(math.log(src_111 / src_111[1]), LookBack)
hv_ = useDaily ? security_1 : stdev_2 * math.sqrt(annual)
hv := newDay ? hv_ : nz(hv[1], hv_)
hinow = high
hinow := newDay ? high : high > hinow[1] ? high : hinow[1]
lonow = low
lonow := newDay ? low : low < lonow[1] ? low : lonow[1]
prevhi = ta.valuewhen(newDay, hinow[1], 0)
prevlo = ta.valuewhen(newDay, lonow[1], 0)
valuewhen_1 = ta.valuewhen(start1[1] <= time, src_111, 0)
vwma_1 = ta.vwma(src_111[1], sLength)
settlement = sLength == 1 ? valuewhen_1 : vwma_1
settlement := newDay ? settlement : nz(settlement[1], open[1])
firstDay = dayofmonth(start1) == dayofmonth(first) and month(start1) == month(first) and year(start1) == year(first)
stdhv = 0.0
DaystoExpire = DaystoExpire_ == 0 ? timeframe.isintraday ? useDaily ? 1 : math.min(annual, 1440 / timeframe.multiplier) : LookBack : DaystoExpire_
stdhv := newDay ? settlement * hv * math.sqrt(DaystoExpire / annual) : nz(stdhv[1])
stdhv05 = stdhv * 0.5
stdhv07 = stdhv * 0.7
stdhv1 = stdhv
Stdhv05u = settlement + stdhv05
Stdhv05d = settlement - stdhv05
Stdhv07u = settlement + stdhv07
Stdhv07d = settlement - stdhv07
Stdhv1u = settlement + stdhv1
Stdhv1d = settlement - stdhv1
SettleM = plot(not nohist and showset and (not pivotNow or firstDay) and not newDay ? settlement : na, color=color.new(#ec186d, 0), title='Settlement', linewidth=2, style=plot.style_linebr)
stdhv05u = plot(not nohist and stddev1 and (not pivotNow or firstDay) and not newDay ? settlement + stdhv05 : na, color=color.new(color.orange, 20), title='+0.5 SD', linewidth=1, style=plot.style_linebr)
stdhv05d = plot(not nohist and stddev1 and (not pivotNow or firstDay) and not newDay ? settlement - stdhv05 : na, color=color.new(color.orange, 20), title='-0.5 SD', linewidth=1, style=plot.style_linebr)
stdhv07u = plot(not nohist and stddev1 and (not pivotNow or firstDay) and not newDay ? settlement + stdhv07 : na, color=color.new(color.red, 20), title='+0.7 SD', linewidth=1, style=plot.style_linebr)
stdhv07d = plot(not nohist and stddev1 and (not pivotNow or firstDay) and not newDay ? settlement - stdhv07 : na, color=color.new(color.red, 20), title='-0.7 SD', linewidth=1, style=plot.style_linebr)
stdhv1u = plot(not nohist and stddev1 and (not pivotNow or firstDay) and not newDay ? settlement + stdhv1 : na, color=color.new(color.lime, 20), title='+1 SD', linewidth=3, style=plot.style_linebr)
stdhv1d = plot(not nohist and stddev1 and (not pivotNow or firstDay) and not newDay ? settlement - stdhv1 : na, color=color.new(color.lime, 20), title='-1 SD', linewidth=3, style=plot.style_linebr)
if showset
settlement = label.new(start1, settlement, text='Settlement', xloc=xloc.bar_time, textcolor=color.new(#ec186d,0), style=label.style_none)
label.delete(settlement[1])
if stddev1
if Stdhv05u
Stdhv05u = label.new(start1, Stdhv05u, text='+0.5', xloc=xloc.bar_time, textcolor=color.new(color.orange,0), style=label.style_none)
label.delete(Stdhv05u[1])
if Stdhv05d
Stdhv05d = label.new(start1, Stdhv05d, text='-0.5', xloc=xloc.bar_time, textcolor=color.new(color.orange,0), style=label.style_none)
label.delete(Stdhv05d[1])
if Stdhv07u
Stdhv07u = label.new(start1, Stdhv07u, text='+0.7', xloc=xloc.bar_time, textcolor=color.new(color.red,0), style=label.style_none)
label.delete(Stdhv07u[1])
if Stdhv07d
Stdhv07d = label.new(start1, Stdhv07d, text='-0.7', xloc=xloc.bar_time, textcolor=color.new(color.red,0), style=label.style_none)
label.delete(Stdhv07d[1])
if Stdhv1u
Stdhv1u = label.new(start1, Stdhv1u, text='+1.0', xloc=xloc.bar_time, textcolor=color.new(color.lime,10), style=label.style_none)
label.delete(Stdhv1u[1])
if Stdhv1d
Stdhv1d = label.new(start1, Stdhv1d, text='-1.0', xloc=xloc.bar_time, textcolor=color.new(color.lime,10), style=label.style_none)
label.delete(Stdhv1d[1])
tgrp = "???????????????? TRADE SETUP ????????????????"
bfr = input.float(0.02,title = "Entry Buffer",inline = "1",group = tgrp)
tm = input.session("Last Trade", title = "", options = ["Last Trade","All Trade"],inline = "1",group = tgrp)
eb = input.bool(true,title = "Entry",inline = "2",group = tgrp)
tb1 = input.bool(true,title = "Target 1",inline = "2",group = tgrp)
tb2 = input.bool(true,title = "Target 2",inline = "2",group = tgrp)
tb3 = input.bool(true,title = "Target 3",inline = "2",group = tgrp)
slb = input.bool(true,title = "Stop Loss",inline = "2",group = tgrp)
gr1 = "???????????????? VWAP ????????????????"
vwapd = input.bool(true,"",inline="1",group=gr1)
vwapw = input.bool(false,"",inline="1",group=gr1)
vwapm = input.bool(false,"",inline="1",group=gr1)
src = input.source(hlc3,title="Source",inline="1",group=gr1)
dvc = ta.vwap(close) > close ? color.new(color.fuchsia,0) : color.new(color.blue,0)
wvc = color.new(#44f513,0)
mvc = color.new(color.yellow,0)
gr2 = "???????????????? MA ????????????????"
mab1 = input.bool(false,"",inline="1",group=gr2)
mat1 = input.string(title = "", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"],inline="1", group=gr2)
mas1 = input.source(hlc3,title="",inline="1",group=gr2)
mal1 = input.int(21,title="",inline="1",group=gr2)
c1 = color.new(color.lime,0)
mab2 = input.bool(false,"",inline="2",group=gr2)
mat2 = input.string(title = "", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"],inline="2", group=gr2)
mas2 = input.source(hlc3,title="",inline="2",group=gr2)
mal2 = input.int(44,title="",inline="2",group=gr2)
c2 = color.new(color.red,0)
mab3 = input.bool(false,"",inline="3",group=gr2)
mat3 = input.string(title = "", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"],inline="3", group=gr2)
mas3 = input.source(hlc3,title="",inline="3",group=gr2)
mal3 = input.int(100,title="",inline="3",group=gr2)
c3 = color.new(color.blue,0)
tab = "???????????????? TABLE ????????????????"
plt = input.bool(true,title="P/L Table",inline="1",group=tab)
TablePos = input.string(title="Table Location", defval="Bottom Right", options=["Top Right", "Middle Right", "Bottom Right",
"Top Center", "Middle Center", "Bottom Center", "Top Left", "Middle Left", "Bottom Left"], inline="1", group=tab)
size = input.string(title="Table Size", defval="Auto", options=["Auto", "Huge", "Large", "Normal", "Small", "Tiny"], inline="1", group=tab)
tbgc = color.new(color.black,0)
brc = color.new(color.white,0)
tw = input.int(2,"",inline="1",group=tab)
tablelocation(string TablePos,string size) =>
_TablePos= TablePos== "Top Right" ? position.top_right:
TablePos== "Middle Right" ? position.middle_right:
TablePos== "Bottom Right" ? position.bottom_right:
TablePos== "Top Center" ? position.top_center:
TablePos== "Middle Center"? position.middle_center:
TablePos== "Bottom Center"? position.bottom_center:
TablePos== "Top Left" ? position.top_left:
TablePos== "Middle Left" ? position.middle_left:position.bottom_left
_size= size == "Auto" ? size.auto: size == "Huge" ? size.huge:
size == "Large"? size.large: size == "Normal"? size.normal:
size == "Small"? size.small: size.tiny
[_TablePos,_size]
DefineLabel(bool but,int pos,int index,float Price,color color_,string text_)=>
var label _offsetLabel=na
line li = na
label msg = na
if barstate.islast and index > 0 and pos != 0 and but
li := line.new(index, Price, bar_index+5, Price, extend=extend.right,color=color_)
_offsetLabel := label.new(bar_index + 10, Price,text = text_+" : "+ str.tostring(int(math.round(Price,2))),color=color_,textcolor=color_,style=label.style_none)
label.delete(_offsetLabel[1])
line.delete(li[1])
entry(bool plt,table testTable,string _size,int bs,int pos,int index,float Price,float sl) =>
label le = na
line li = na
if barstate.islast and pos == 0
if bs == 1
txt = "BUY ABOVE : " + str.tostring(int(math.round(Price,2)))
li := line.new(index, Price, bar_index+5, Price, extend=extend.right,color=color.new(color.lime,0),style=line.style_dashed)
le := label.new(bar_index + 10, Price, text= txt, style=label.style_none,textcolor=color.new(color.lime,0),textalign=text.align_left)
if bs == -1
txt = "SELL BELLOW : " + str.tostring(int(math.round(Price,2)))
li := line.new(index, Price, bar_index+5, Price, extend=extend.right,color=color.new(color.red,0),style=line.style_dashed)
le := label.new(bar_index + 10, Price, text= txt, style=label.style_none,textcolor=color.new(color.red,0),textalign=text.align_left)
label.delete(le[1])
line.delete(li[1])
pl = 0.0
pl := pos == 1 ? math.max((high - Price),nz(pl[1])) : pos == -1 ? math.max((Price - low),nz(pl[1])) : 0
plp = math.round(math.abs(pl*100/Price),2)
htc = color.new(color.white,0)
btc = color.new(color.white,0)
bg = bs == 1 ? color.new(#025d06,0) : color.new(#b60000,0)
if barstate.islast and plt
table.cell(table_id = testTable, column = 0, row = 0, text = "Entry",text_color=htc,text_size=_size)
table.cell(table_id = testTable, column = 1, row = 0, text = "SL",text_color=htc,text_size=_size)
table.cell(table_id = testTable, column = 0, row = 1, text = str.tostring(int(math.round(Price,2))), bgcolor = bg,text_color=btc,text_size=_size)
table.cell(table_id = testTable, column = 1, row = 1, text = str.tostring(int(math.round(sl,2))), bgcolor = bg,text_color=btc,text_size=_size)
showema = input(title='Show EMA', defval=true)
len1 = input.int(30, minval=1, title='MA1')
len2 = input.int(35, minval=1, title='MA2')
len3 = input.int(40, minval=1, title='MA3')
len4 = input.int(45, minval=1, title='MA4')
len5 = input.int(50, minval=1, title='MA5')
len6 = input.int(60, minval=1, title='MA6')
ma1 = ta.ema(close, len1)
ma2 = ta.ema(close, len2)
ma3 = ta.ema(close, len3)
ma4 = ta.ema(close, len4)
ma5 = ta.ema(close, len5)
ma6 = ta.ema(close, len6)
plot(showema ? ma1 : na, title='MA1', color=close > ma1 ? color.new(color.green, 0) : color.new(color.red,0))
plot(showema ? ma2 : na, title='MA2', color=close > ma2 ? color.new(color.green,0) : color.new(color.red, 0))
plot(showema ? ma3 : na, title='MA3', color=close > ma3 ? color.new(color.green,0) : color.new(color.red, 0))
plot(showema ? ma4 : na, title='MA4', color=close > ma4 ? color.new(color.green, 0) : color.new(color.red,0))
plot(showema ? ma5 : na, title='MA5', color=close > ma5 ? color.new(#44f513, 0) : color.new(#ff0000,0), linewidth=3, style=plot.style_line)
plot(showema ? ma6 : na, title='MA6', color=close > ma6 ? color.new(color.green, 0) : color.new(color.red,0))
longCond = bool(na)
shortCond = bool(na)
longCond := ma1 > ma6 and ma2 > ma6 and ma3 > ma6 and ma4 > ma6 and ma5 > ma6
shortCond := ma1 < ma6 and ma2 < ma6 and ma3 < ma6 and ma4 < ma6 and ma5 < ma6
CondIni = 0
CondIni := longCond ? 1 : shortCond ? -1 : CondIni[1]
longCondition = longCond and CondIni[1] == -1
shortCondition = shortCond and CondIni[1] == 1
signalType = input.string(title='Signal Smoothing Type', defval='SMA', options=['EMA', 'SMA'])
signalLength = input(title='Signal Smoothing Length', defval=21)
src420 = input(title='Source', defval=close)
highlightCrossovers = input(title='Highlight Crossovers ?', defval=false)
applyFilling = input(title='Apply Ribbon Filling ?', defval=true)
signal_1 = signalType == 'EMA' ? ta.ema(ta.pvt, signalLength) : ta.sma(ta.pvt, signalLength)
calculation(float bfr) =>
time_limit = timestamp(2222, 1, 31, 23, 00)
display = timenow < time_limit
rsi1 = ta.rsi(close,25)
rsi2 = ta.rsi(close,55)
length = 10
mult = 2.2
useClose = true
atr = mult * ta.atr(length)
longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir
BUY = dir == 1 and ta.pvt > signal_1 and rsi1 > rsi2
SELL = dir == -1 and ta.pvt < signal_1 and rsi1 < rsi2
var bool buy=false
var bool sell = false
var bool buy1=false
var bool sell1 = false
var float HighVal=na
var float LowVal = na
var float Stoploss=na
var float Target1 = na
var float Target2 = na
var float Target3 = na
var float Target4 = na
var index = 0
var pos = 0
var bs = 0
var en = 0.0
if display
if BUY and BUY[1]==false and buy==false
bs := 1
label.new(bar_index,close,text='',size=size.normal,color=color.new(color.green,100),yloc=yloc.belowbar,style=label.style_label_up,textcolor=color.new(color.white,100))
pos := 0
index := bar_index
buy:=true
sell:=false
sell1:=false
en := high*(1+bfr/100)
HighVal:=high*(1+bfr/100)
Stoploss:=math.min(low[1],low)
diff = (high-low[1])*2
Target1:=high+diff
Target2:=Target1+diff
Target3:=Target2+diff
Target4:=Target3+diff
if SELL and SELL[1]==false and sell==false
bs := -1
label.new(bar_index,close,text='',size=size.normal,color=color.new(color.red,100),yloc=yloc.abovebar,style=label.style_label_down,textcolor=color.new(color.white,100))
pos := 0
index := bar_index
sell:=true
buy:=false
buy1:=false
en := low*(1-bfr/100)
LowVal:=low*(1-bfr/100)
Stoploss:=math.max(high[1],high)
diff = (high[1]-low)*2
Target1:=low-diff
Target2:=Target1-diff
Target3:=Target2-diff
Target4:=Target3-diff
if buy and high>HighVal and buy1==false
label.new(bar_index,close,text='',size=size.tiny,color=color.new(color.green,100),yloc=yloc.belowbar,style=label.style_triangleup,textcolor=color.new(color.white,0))
pos := 1
buy1:=true
sell1:=false
if sell and low<LowVal and sell1==false
label.new(bar_index,close,text='',size=size.tiny,color=color.new(color.red,100),yloc=yloc.abovebar,style=label.style_triangledown,textcolor=color.new(color.white,0))
pos := -1
buy1:=false
sell1:=true
[bs,pos,index,en,Stoploss,Target1,Target2,Target3]
vwapc(float src,string tf1,string tf2,string tf3) =>
time_limit = timestamp(2222, 1, 31, 23, 00)
display = timenow < time_limit
v1 = display ? ta.vwap(src, timeframe.change(tf1)) : na
v2 = display ? ta.vwap(src, timeframe.change(tf2)) : na
v3 = display ? ta.vwap(src, timeframe.change(tf3)) : na
[v1,v2,v3]
ma(float source,simple int length,string type) =>
time_limit = timestamp(2222, 1, 31, 23, 00)
display = timenow < time_limit
if display
switch type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
else
na
[bs,pos,index,e,sl,t1,t2,t3] = calculation(bfr)
plot(tm == "All Trade" and eb and pos != 0 ? e : na, title = "Entry", color=color.new(#019a66,0), style = plot.style_linebr)
plot(tm == "All Trade" and tb1 and pos != 0 ? t1 : na, title = "TG 1",color=color.new(color.lime,0), style = plot.style_linebr)
plot(tm == "All Trade" and tb2 and pos != 0 ? t2 : na, title = "TG 2",color=color.new(color.lime,0), style = plot.style_linebr)
plot(tm == "All Trade" and tb3 and pos != 0 ? t3 : na, title = "TG 3",color=color.new(color.lime,0), style = plot.style_linebr)
plot(tm == "All Trade" and slb and pos != 0 ? sl : na, title = "SL",color=color.new(color.red,0), style = plot.style_linebr)
DefineLabel(eb,pos,index,e,color.new(#019a66,0),'EN')
DefineLabel(slb,pos,index,sl,color.new(color.red,0),'SL')
DefineLabel(tb1,pos,index,t1,color.new(color.green,0),'TG1')
DefineLabel(tb2,pos,index,t2,color.new(color.green,0),'TG2')
DefineLabel(tb3,pos,index,t3,color.new(color.green,0),'TG3')
[_TablePos,_size] = tablelocation(TablePos,size)
var testTable = table.new(_TablePos, 3, 2, bgcolor = tbgc, frame_color = brc, frame_width = tw, border_color = brc, border_width = tw)
entry(plt,testTable,_size,bs,pos,index,e,sl)
[v1,v2,v3] = vwapc(src,"D","W","M")
plot(vwapd?v1:na, title = "Daily VWAP", color=dvc, linewidth=2)
plot(vwapw?v2:na, title = "Weekly VWAP", color=wvc, linewidth=2)
plot(vwapm?v3:na, title = "Monthly VWAP", color=mvc, linewidth=2)
plot(mab1 ? ma(mas1,mal1,mat1) : na, title = "MA 1", color=c1)
plot(mab2 ? ma(mas2,mal2,mat2) : na, title = "MA 2", color=c2)
plot(mab3 ? ma(mas3,mal3,mat3) : na, title = "MA 3", color=c3)
signal() =>
rsi1 = ta.rsi(close,25)
rsi2 = ta.rsi(close,55)
length = 10
mult = 2.2
useClose = true
atr = mult * ta.atr(length)
longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop
shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop
var int dir = 1
dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir
BUY = dir == 1 and ta.pvt > signal_1
SELL = dir == -1 and ta.pvt < signal_1
[BUY,SELL]
mtf_t = input.bool(true,title="P/L Table",inline="1", group = "MTF SIGNAL")
mtf_p = input.string(title="Table Location", defval="Top Right", options=["Top Right", "Middle Right", "Bottom RightПоказано первые 50% кода (символов: 32950)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.