EzAlgo V11
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «ezalgo_v11_cleaned@shepherdfxtradingtools_5978650362146462418.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
EzAlgo V11 — это многофункциональный индикатор для TradingView, отображающий на графике сигналы тренда, уровни поддержки и сопротивления, а также различные технические элементы анализа. Индикатор работает поверх цены (overlay=true) и предоставляет визуальные маркеры покупок и продаж, цветовую индикацию баров, трендовое облако на основе скользящих средних, линии трендов с детекцией их пробоя и разворотные полосы.
Индикатор поддерживает многофункциональный анализ с возможностью отображения уровней поддержки и сопротивления с других таймфреймов, настройкой количества уровней и их визуальным оформлением. Встроены модули разворотных полос на основе каналов, настраиваемых экспоненциальных скользящих средних и детекции дивергенций на основе осциллятора.
Пользователь может настраивать отображение каждого модуля индивидуально, включая цвета, размеры меток, толщину линий и чувствительность сигналов. Индикатор предоставляет множество условий для оповещений TradingView, срабатывающих при появлении различных сигналов и событий на графике.
Настройки программы
| Настройка | Описание |
|---|---|
| barcoloronof | Цвет баров тренда — Включает или отключает цветовую индикацию баров в зависимости от текущего направления тренда. |
| showBuySell | Отображение меток покупок и продаж — Включает или отключает отображение графических маркеров сигналов покупки и продажи на графике. |
| reversalbuysell | [AI] Разворотные сигналы — Включает или отключает отображение разворотных сигналов на основе бычьих и медвежьих свечей с фильтром RSI. |
| reversalsignaltype | Тип разворотных сигналов — Тип отображаемых разворотных сигналов: все, только бычьи или только медвежьи. |
| reversalmode | Режим разворотных сигналов — Режим разворотных сигналов: скальпинг, свинг или накопление, определяющий пороги RSI для сигналов. |
| AiBuySell | [AI] Продолжение тренда — Включает или отключает отображение сигналов продолжения тренда на основе осциллятора и фильтра скользящих средних. |
| aisensitivitysetter | Сила AI-сигналов — Уровень чувствительности сигналов продолжения тренда: умеренный, сильный или максимально сильный. |
| showSR | Отображение уровней S/R — Включает или отключает отображение уровней поддержки и сопротивления с многофункционального таймфрейма. |
| timef | Таймфрейм для уровней — Таймфрейм, с которого берутся данные для расчёта уровней поддержки и сопротивления. |
| levels | Количество уровней — Максимальное количество отображаемых уровней поддержки и сопротивления. |
| linewidth | Толщина линий уровней — Толщина линий уровней поддержки и сопротивления. |
| supportcolor | Цвет уровней поддержки — Цвет линий уровней поддержки. |
| resistancecolor | Цвет уровней сопротивления — Цвет линий уровней сопротивления. |
| labelon | Отображение меток уровней — Включает или отключает отображение текстовых меток на уровнях поддержки и сопротивления. |
| labelsize | Размер меток уровней — Размер текстовых меток на уровнях поддержки и сопротивления: малый, стандартный или большой. |
| labelcol | Цвет меток уровней — Цвет текста меток на уровнях поддержки и сопротивления. |
| labelloc | Смещение меток уровней — Смещение меток уровней поддержки и сопротивления по горизонтали от линии цены. |
| showtimef | Отображение таймфрейма на метках — Включает или отключает отображение названия таймфрейма на метках уровней поддержки и сопротивления. |
| showtprice | Отображение цены на метках — Включает или отключает отображение цены на метках уровней поддержки и сопротивления. |
| showRibbon | Отображение трендового облака — Включает или отключает отображение трендового облака между двумя долгосрочными скользящими средними. |
| showEmas | Отображение EMA — Включает или отключает отображение экспоненциальных скользящих средних на графике. |
| lenEma1 | Период EMA 1 — Период первой экспоненциальной скользящей средней. |
| lenEma2 | Период EMA 2 — Период второй экспоненциальной скользящей средней. |
| lenEma3 | Период EMA 3 — Период третьей экспоненциальной скользящей средней. |
| showRevBands | Отображение разворотных полос — Включает или отключает отображение разворотных полос на графике. |
| lenRevBands | Длина разворотных полос — Длина расчёта разворотных полос на основе канального индикатора. |
| show_trendlines | Отображение линий тренда — Включает или отключает отображение линий тренда на графике. |
| upper_trendline_color | Цвет верхней линии тренда — Цвет верхней линии тренда. |
| lower_trendline_color | Цвет нижней линии тренда — Цвет нижней линии тренда. |
| extendLine | Продление линий тренда — Продлевает линии тренда вправо до текущего бара. |
| linestyle_curr_inp | Стиль линий тренда — Стиль отображения линий тренда: сплошной, пунктирный или точечный. |
| line_width_curr | Толщина линий тренда — Толщина линий тренда. |
| pivLen_L | Длина отложенного периода пивота — Длина отложенного периода для определения точек пивота при построении линий тренда. |
| broken_color_up | Цвет сломанной линии вверх — Цвет линий тренда, пробитых вверх, при отображении сломанных линий. |
| broken_color_down | Цвет сломанной линии вниз — Цвет линий тренда, пробитых вниз, при отображении сломанных линий. |
| extendLine_B | Продление сломанных линий — Продлевает сломанные линии тренда вправо. |
| show_signals | Отображение сигналов пробоя — Включает или отключает отображение маркеров сигналов при пробое линий тренда. |
| broken_color_up_signal | Цвет сигнала пробоя вверх — Цвет маркера сигнала при пробое линии тренда вверх. |
| broken_color_down_signal | Цвет сигнала пробоя вниз — Цвет маркера сигнала при пробое линии тренда вниз. |
| maxLines | Максимум сломанных линий — Максимальное количество отображаемых сломанных линий тренда. |
| Source_tl | Источник для линий тренда — Источник данных для построения и проверки пробоя линий тренда: цена закрытия или диапазон максимум/минимум. |
| linestyle_broken_inp | Стиль сломанных линий — Стиль отображения сломанных линий тренда: сплошной, пунктирный или точечный. |
| line_width_broken | Толщина сломанных линий — Толщина сломанных линий тренда. |
Поиск по коду файла
indicator("EzAlgo V11", shorttitle="EzAlgo V11", overlay=true, max_labels_count=500)
barcoloronof = input(true, "Trend bar Color", group = "BUY & SELL SIGNALS", inline = 'ABABA')
showBuySell = input(true, "Labels", group="BUY & SELL SIGNALS", inline = 'ABABA')
sensitivitysetter = "Smooth"
sensitivity = (sensitivitysetter == "Fast" ? 1.7 : sensitivitysetter == "Smooth" ? 3.3 : sensitivitysetter == "Swing" ? 4.8 : na)
offsetSignal = 2
reversalbuysell = input(true, "[AI] Reversals", group="BUY & SELL SIGNALS")
reversalsignaltype = input.string("All", "Signal Type", ["All", "Bullish", "Bearish"], group="BUY & SELL SIGNALS")
reversalmode = input.string("Swing", "Mode", ["Scalp", "Swing", "Accumulation"], group="BUY & SELL SIGNALS")
AiBuySell = input(true, "[AI] Trend Contiunation", group="BUY & SELL SIGNALS")
aisensitivitysetter = input.string("Moderate", "Strength", ["Moderate", "Strong", "Strongest"], group="BUY & SELL SIGNALS")
showSR = input.bool(false, title = "", inline = "01", group="MULTI-TIMEFRAME S/R")
timef = input.timeframe("", "", inline = "01", group="MULTI-TIMEFRAME S/R")
levels = input.int(5 , "Levels", inline = "01", group = "MULTI-TIMEFRAME S/R")
linewidth = input.int(1, "Width", inline = "02", group = "MULTI-TIMEFRAME S/R") * 20
supportcolor = input.color(color.new(#00DBFF, 75), "", inline = "02", group = "MULTI-TIMEFRAME S/R")
resistancecolor = input.color(color.new(#b2b5be, 75), "", inline = "02", group = "MULTI-TIMEFRAME S/R")
labelon = input.string("On", "Label", ["On", "Off"], inline = "03", group = "MULTI-TIMEFRAME S/R")
labelsize = input.string("Default", "Size", ["Small", "Default", "Large"], inline = "03", group = "MULTI-TIMEFRAME S/R")
labelcol = input.color(#5d606b, "", inline = "03", group = "MULTI-TIMEFRAME S/R")
labelloc = input.int(10, "Offset", inline = "04", group = "MULTI-TIMEFRAME S/R") + 30
showtimef = input.bool(true, "Show Timeframe", inline = "04", group = "MULTI-TIMEFRAME S/R")
showtprice = input.bool(true, "Show Price", inline = "04", group = "MULTI-TIMEFRAME S/R")
showRibbon = input(title='Show Trend Cloud',inline = 'TrendOption', defval=true, group= "TREND SETTINGS")
trendcloudbull = showRibbon == true ? input(#00dbff, "",inline = 'TrendOption', group="TREND SETTINGS") : na
trendcloudbear = showRibbon == true ? input(#b2b5be, "",inline = 'TrendOption', group="TREND SETTINGS") : na
showEmas = input(false, "Show EMAs", group="TREND SETTINGS")
srcEma1 = close
lenEma1 = input.int(8, "EMA 1", 1,group="TREND SETTINGS")
srcEma2 = close
lenEma2 = input.int(13, "EMA 2", 1,group="TREND SETTINGS")
srcEma3 = close
lenEma3 = input.int(144, "EMA 3", 1,group="TREND SETTINGS")
showRevBands = input.bool(false, "Show Reversal Bands", group="REVERSAL BANDS")
lenRevBands = input.int(30, "Length", group="REVERSAL BANDS")
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x[1]), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt[1]) ? x - r < nz(rngfilt[1]) ? nz(rngfilt[1]) : x - r : x + r > nz(rngfilt[1]) ? nz(rngfilt[1]) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
[hh, lh, hl, ll]
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, sensitivity) =>
basis = ta.sma(src, len)
span = ta.atr(len)
[basis + span * sensitivity, basis - span * sensitivity]
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
[wt1, wt2]
f_top_fractal(src) => src[4] < src[2] and src[3] < src[2] and src[2] > src[1] and src[2] > src[0]
f_bot_fractal(src) => src[4] > src[2] and src[3] > src[2] and src[2] < src[1] and src[2] < src[0]
f_fractalize (src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src[2] >= topLimit ? src[2] : na
fractalBot = f_fractalize(src) < 0 and src[2] <= botLimit ? src[2] : na
highPrev = ta.valuewhen(fractalTop, src[2], 0)[2]
highPrice = ta.valuewhen(fractalTop, high[2], 0)[2]
lowPrev = ta.valuewhen(fractalBot, src[2], 0)[2]
lowPrice = ta.valuewhen(fractalBot, low[2], 0)[2]
bearSignal = fractalTop and high[2] > highPrice and src[2] < highPrev
bullSignal = fractalBot and low[2] < lowPrice and src[2] > lowPrev
[bearSignal, bullSignal]
source = close
smrng1 = smoothrng(source, 27, 1.5)
smrng2 = smoothrng(source, 55, sensitivity)
smrng = (smrng1 + smrng2) / 2
filt = rngfilt(source, smrng)
up = 0.0, up := filt > filt[1] ? nz(up[1]) + 1 : filt < filt[1] ? 0 : nz(up[1])
dn = 0.0, dn := filt < filt[1] ? nz(dn[1]) + 1 : filt > filt[1] ? 0 : nz(dn[1])
bullCond = bool(na), bullCond := source > filt and source > source[1] and up > 0 or source > filt and source < source[1] and up > 0
bearCond = bool(na), bearCond := source < filt and source < source[1] and dn > 0 or source < filt and source > source[1] and dn > 0
lastCond = 0, lastCond := bullCond ? 1 : bearCond ? -1 : lastCond[1]
bull = bullCond and lastCond[1] == -1
bear = bearCond and lastCond[1] == 1
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
rsi = ta.rsi(close, 21)
rsiOb = rsi > 70 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 30 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high [1])
dLow = securityNoRep(syminfo.tickerid, "D", low [1])
dClose = securityNoRep(syminfo.tickerid, "D", close[1])
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
TF1Bull = securityNoRep1(syminfo.tickerid, "1" , emaBull)
TF3Bull = securityNoRep1(syminfo.tickerid, "3" , emaBull)
TF5Bull = securityNoRep1(syminfo.tickerid, "5" , emaBull)
TF15Bull = securityNoRep1(syminfo.tickerid, "15" , emaBull)
TF30Bull = securityNoRep1(syminfo.tickerid, "30" , emaBull)
TF60Bull = securityNoRep1(syminfo.tickerid, "60" , emaBull)
TF120Bull = securityNoRep1(syminfo.tickerid, "120" , emaBull)
TF240Bull = securityNoRep1(syminfo.tickerid, "240" , emaBull)
TF480Bull = securityNoRep1(syminfo.tickerid, "480" , emaBull)
TFDBull = securityNoRep1(syminfo.tickerid, "1440", emaBull)
[upperKC1, lowerKC1] = f_kc(close, lenRevBands, 3)
[upperKC2, lowerKC2] = f_kc(close, lenRevBands, 4)
[upperKC3, lowerKC3] = f_kc(close, lenRevBands, 5)
[upperKC4, lowerKC4] = f_kc(close, lenRevBands, 6)
[wt1, wt2] = wavetrend(hlc3, 9, 12)
[wtDivBear1, wtDivBull1] = f_findDivs(wt2, 15, -40)
[wtDivBear2, wtDivBull2] = f_findDivs(wt2, 45, -65)
wtDivBull = wtDivBull1 or wtDivBull2
wtDivBear = wtDivBear1 or wtDivBear2
symInfoCheck = false
symInfo = syminfo.ticker + ' | ' + timeframe.period + (timeframe.isminutes ? 'M' : na)
date = str.tostring(dayofmonth(time_close)) + '/' + str.tostring(month(time_close)) + '/' + str.tostring(year(time_close))
cyan = #00DBFF, cyan30 = color.new(cyan, 70)
pink = #b2b5be, pink30 = color.new(pink, 70)
red = #b2b5be, red30 = color.new(red , 70)
barupcolor = barcoloronof == true ? #00DBFF : na
bardowncolor = barcoloronof == true ? #b2b5be : na
off = percWidth(300, offsetSignal)
plotshape(showBuySell and bull ? low - off : na, "Buy Signal" , shape.circle , location.absolute, cyan, 0, "" , color.white, size=size.tiny, editable = false)
plotshape(showBuySell and bear ? high + off : na, "Sell Signal", shape.circle, location.absolute, pink, 0, "", color.white, size=size.tiny, editable = false)
barcolor(up > dn ? barupcolor : bardowncolor)
plot(showRevBands ? upperKC1 : na, "Rev.Zone Upper 1", red30)
plot(showRevBands ? upperKC2 : na, "Rev.Zone Upper 2", red30)
plot(showRevBands ? upperKC3 : na, "Rev.Zone Upper 3", red30)
plot(showRevBands ? upperKC4 : na, "Rev.Zone Upper 4", red30)
plot(showRevBands ? lowerKC4 : na, "Rev.Zone Lower 4", cyan30)
plot(showRevBands ? lowerKC3 : na, "Rev.Zone Lower 3", cyan30)
plot(showRevBands ? lowerKC2 : na, "Rev.Zone Lower 2", cyan30)
plot(showRevBands ? lowerKC1 : na, "Rev.Zone Lower 1", cyan30)
alert02 = bull
alert03 = wtDivBull
alert04 = wtDivBear
alert05 = bull or bear
alert06 = ta.crossover(wt1, wt2) and wt2 <= -53
alert07 = ta.crossunder(wt1, wt2) and wt2 >= 53
alert09 = rsiOb or rsiOs
alert10 = bear
alerts(sym) =>
if alert02 or alert03 or alert04 or alert06 or alert07 or alert10
alert_text = alert02 ? "Buy Signal PunkAlgo" : alert03 ? "Strong Buy Signal PunkAlgo" : alert04 ? "Strong Sell Signal PunkAlgo" : alert06 ? "Mild Buy Signal PunkAlgo" : alert07 ? "Mild Sell Signal PunkAlgo" : "Sell Signal PunkAlgo"
alert(alert_text, alert.freq_once_per_bar_close)
alerts(syminfo.tickerid)
alertcondition(alert02, "Buy Signal", "Buy Signal EzAlgo")
alertcondition(alert03, "Divergence Buy Alert", "Strong Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert04, "Divergence Sell Alert", "Strong Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert05, "Either Buy or Sell Signal", "EzAlgo Signal")
alertcondition(alert06, "Mild Buy Alert", "Mild Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert07, "Mild Sell Alert", "Mild Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert09, "Reversal Signal", "Reversal Signal")
alertcondition(alert10, "Sell Signal", "Sell Signal EzAlgo")
show_trendlines = input.bool(true, 'Show Trendlines', inline = 'tl_1',group='Trendlines')
upper_trendline_color = input.color(#9598a1, '', inline = 'tl_1',group='Trendlines')
lower_trendline_color = input.color(#9598a1, '', inline = 'tl_1',group='Trendlines')
extendLine = input.bool(true, 'Extend', inline = 'tl_1',group='Trendlines')
linestyle_curr_inp = input.string(defval = 'Solid', title = "Style", options = ['Solid', 'Dotted', 'Dashed'],inline = "tl_3",group='Trendlines')
line_width_curr = input.int(1, 'Width', step = 1, minval = 1,maxval = 4,inline = "tl_3",group='Trendlines')
pivLen_L = input.int(20, 'Lookback', step = 1, minval = 1, inline ='tl_5',group='Trendlines')
pivLen_R = pivLen_L//input.int(20, '/', step = 1, minval = 1, inline ='tl_5',group='Trendlines')
hideCrossed = not(input.bool(false, 'Show Broken', inline = 'tl_2',group='Trendlines'))
broken_color_up = input.color(#9598a1, '', inline = 'tl_2',group='Trendlines')
broken_color_down = input.color(#9598a1, '', inline = 'tl_2',group='Trendlines')
extendLine_B = input.bool(true, 'Extend', inline = 'tl_2',group='Trendlines')
show_signals = input.bool(false, 'Show Signals', inline = 'tl_s',group='Trendlines')
broken_color_up_signal = input.color(color.yellow, '', inline = 'tl_s',group='Trendlines')
broken_color_down_signal = input.color(color.yellow, '', inline = 'tl_s',group='Trendlines')
maxLines = input.int(3, 'Max Broken', step = 1, minval = 1, maxval = 50, inline = 'tl_2_B',group='Trendlines')
Source_tl = input.string('Close', 'Mitigation', options = ['Close', 'High/Low'], inline ='tl_2_B',group='Trendlines')
linestyle_broken_inp = input.string(defval = 'Dashed', title = "Style (Broken)", options = ['Solid', 'Dotted', 'Dashed'],inline = "tl_2-1",group='Trendlines')
line_width_broken = input.int(1, 'Width', step = 1, minval = 1,maxval = 4,inline = "tl_2-1",group='Trendlines')
lineStyle_curr= linestyle_curr_inp == 'Solid' ? line.style_solid : linestyle_curr_inp == 'Dotted' ? line.style_dotted : line.style_dashed
lineStyle_broken= linestyle_broken_inp == 'Solid' ? line.style_solid : linestyle_broken_inp == 'Dotted' ? line.style_dotted : line.style_dashed
s_close = request.security(ticker.standard(syminfo.tickerid), timeframe.period, close)
s_open = request.security(ticker.standard(syminfo.tickerid), timeframe.period, open)
s_high = request.security(ticker.standard(syminfo.tickerid), timeframe.period, high)
s_low = request.security(ticker.standard(syminfo.tickerid), timeframe.period, low)
var line[] pivot_high_array = array.new_line(),var line[] pivot_low_array = array.new_line()
ph2_M = ta.pivothigh(s_high, pivLen_L, pivLen_R)
pl2_M = ta.pivotlow(s_low, pivLen_L, pivLen_R)
ph2 = ta.pivothigh(s_high, pivLen_L, pivLen_R)
pl2 = ta.pivotlow(s_low, pivLen_L, pivLen_R)
var float prev_close_H = na, var float curr_close_H = na
var float prev_close_L = na, var float curr_close_L = na
var int X_prev_low = na, var float Y_prev_low = na, var int X_curr_low = na, var float Y_curr_low = na
var int X_curr_high = na, var float Y_curr_high = na, var int X_prev_high = na, var float Y_prev_high = na
maxLines := hideCrossed ? 0 : maxLines
tl_array_size_up = maxLines/2
tl_array_size_dn = maxLines%2==0? maxLines/2 : (maxLines/2)+1
newTrendLine(ptype, x1, y1, x2, y2)=>
new_trendline = line.new(x1, y1, x2, y2, extend = extendLine ? extend.right : extend.none, color = ptype == 'ph2' ? upper_trendline_color : lower_trendline_color, width = line_width_curr,style = lineStyle_curr,xloc = xloc.bar_index)
if ptype == 'ph2'
pivot_high_array.unshift(new_trendline)
eПоказано первые 50% кода (символов: 24564)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.