Все чітко і як планували.
Комунікація і реалізація була на висоті.
Рекомендую як порядного фрілансера.
Будемо звертатися ще для реалізації нових ідей
Залишайте заявку тільки якщо у вас є досвід розробки індикаторів і ви готові обговорити проєкт в зум
Необхідно розробити індикатор
Ось приблизний приклад того що ми хочемо отримати в результаті
https://docs.google.com/document/d/1aJPD7W-6p5LP3NGwZsJcTr3AlZGPTYyvSbhhfEWzsLc/edit?tab=t.0
Більш детальне ТЗ і правки надам виконацю
Бюджет: 4000 UAH Термін: 2 дні
Я системний архітектор і мені цікаво реалізувати цей проект з вами. Моє пропозиція: я роблю все строго за вашим ТЗ, але додатково впроваджую свій алгоритм фільтрації. Для вас це не буде коштувати ні копійки зверху, але на виході система буде працювати в 2-3 рази ефективніше будь-якого стандартного рішення. По суті, ви отримуєте те, що замовляли, плюс "подушку безпеки", яка відсікає хибні входи і зберігає депозит. Вигоду відчуєте одразу на дистанції.
Бюджет: 3235 UAH Термін: 1 день
Добрий день. Готовий реалізувати індикатор.
Великий досвід написання індикаторів як для TV, так і кастомных на Python.
Саме зараз займаюсь ідентичними задачами - можу показати в особистих повідомленнях чи при демонстрації екрану при зізвоні
Бюджет: 20000 UAH Термін: 30 днів
Добрый день! Пишу індикатори, торгові експерти на різних мовах. Звертайтесь, обговоримо деталі.
Здравствуйте. С v5 дел имел не мало. Потому вопрос, а криптой вы сможете оплатить? У вас в коде кстати не рассмотрен вариант когда нет ни одной выбранной биржи
Пин ниже. Могу ускорить интеграцию в 3–5 раз, + устойчивость системы до х2 за счёт стандартизированного API и контроля режима.
//@version=6
indicator("AIF-ilter — Guard Controller PRO v6", overlay=false, max_labels_count=500)
// ======================================================
// Add-on: AUTO profile (switches Conservative/Balanced/Aggressive by volatility)
// - Volatility proxy: ATR% + |Z|
// - Auto picks profile each bar (and shows it in banner/table)
// ======================================================
// ===================== INPUTS ======================
grpMode = "Mode"
grpCore = "Core"
grpCtrl = "Controller"
grpGuard = "Guard / Kill-switch"
grpAuto = "Auto Profile"
grpViz = "Visual"
mode = input.string("Guard", "Mode", options=["Basic","Pro","Guard"], group=grpMode)
profileSel = input.string("Auto", "Profile", options=["Auto","Conservative","Balanced","Aggressive"], group=grpMode,
tooltip="Auto: профиль выбирается по волатильности (ATR% + |Z|)")
src = input.source(close, "Source", group=grpCore)
lenMA = input.int(55, "Trend MA", minval=1, group=grpCore)
lenMom = input.int(10, "Momentum (ROC)", minval=1, group=grpCtrl)
lenZ = input.int(80, "Stability window", minval=20, group=grpCtrl)
lenATR = input.int(14, "ATR length", minval=1, group=grpCtrl)
baseThr = input.float(65.0, "Base threshold", minval=1, maxval=99, step=0.5, group=grpCtrl)
adaptive = input.bool(true, "Adaptive threshold", group=grpCtrl)
biasLong = input.float(0.0, "Long bias", step=0.5, group=grpCtrl)
biasShort= input.float(0.0, "Short bias", step=0.5, group=grpCtrl)
// Auto profile cutoffs (loose by default)
atrLow = input.float(0.8, "ATR% low", step=0.1, group=grpAuto, tooltip="Ниже — можно Aggressive")
atrHigh = input.float(1.8, "ATR% high", step=0.1, group=grpAuto, tooltip="Выше — Conservative")
zHigh = input.float(2.5, "|Z| high", step=0.1, group=grpAuto, tooltip="Если |Z| выше — Conservative")
useGuard = input.bool(true, "Enable guard", group=grpGuard)
gapPctIn = input.float(1.2, "Gap block (%)", step=0.1, group=grpGuard)
spikeZIn = input.float(4.0, "Spike block (Z)", step=0.5, group=grpGuard)
freezeIn = input.int(3, "Freeze bars after guard", minval=0, group=grpGuard)
showBands = input.bool(true, "Show thresholds", group=grpViz)
showMarks = input.bool(true, "Show marks", group=grpViz)
showTable = input.bool(true, "Show table", group=grpViz)
showBanner = input.bool(true, "Show status banner", group=grpViz)
heatmap = input.bool(true, "Heatmap background", group=grpViz)
heatStr = input.int(85, "Heat intensity (0..100)", minval=0, maxval=100, group=grpViz)
// ===================== HELPERS ======================
clamp(x, lo, hi) => math.max(lo, math.min(hi, x))
pct(x) => str.tostring(x, "#.00") + "%"
// ===================== MODE FLAGS ======================
isBasic = mode == "Basic"
isGuard = mode == "Guard"
guardEnabled = (isGuard and useGuard)
// ===================== CORE =========================
c = src
ma = ta.ema(c, lenMA)
trendUp = c > ma
trendDn = c < ma
// ===================== VOL METRICS (for AUTO) =========
atr = ta.atr(lenATR)
atrPct = c != 0 ? (atr / c) * 100.0 : 0.0
// Z-score of 1-bar returns (stability)
ret1 = nz(c[1]) != 0 ? (c - c[1]) / c[1] * 100.0 : 0.0
mu = ta.sma(ret1, lenZ)
sd = ta.stdev(ret1, lenZ)
z = sd != 0 ? (ret1 - mu) / sd : 0.0
absZ = math.abs(z)
// ===================== PICK PROFILE ===================
// Auto logic:
// - If very stable (ATR% low AND |Z| low): Aggressive
// - If very unstable (ATR% high OR |Z| high): Conservative
// - Else: Balanced
string prof =
profileSel != "Auto" ? profileSel :
(atrPct <= atrLow and absZ <= (zHigh * 0.6)) ? "Aggressive" :
(atrPct >= atrHigh or absZ >= zHigh) ? "Conservative" :
"Balanced"
// ===================== PROFILE PARAMS =================
// Threshold, gains, guard sensitivity
thrAdj =
prof == "Conservative" ? 8.0 :
prof == "Aggressive" ? -6.0 : 0.0
momGain =
prof == "Conservative" ? 5.0 :
prof == "Aggressive" ? 7.5 : 6.0
stabPenalty =
prof == "Conservative" ? 14.0 :
prof == "Aggressive" ? 9.0 : 12.0
gapPct =
prof == "Conservative" ? gapPctIn * 0.85 :
prof == "Aggressive" ? gapPctIn * 1.25 : gapPctIn
spikeZ =
prof == "Conservative" ? spikeZIn * 0.85 :
prof == "Aggressive" ? spikeZIn * 1.25 : spikeZIn
freezeN =
prof == "Conservative" ? freezeIn + 2 :
prof == "Aggressive" ? math.max(freezeIn - 1, 0) : freezeIn
// ===================== CONTROLLER ======================
// Momentum
mom = ta.roc(c, lenMom)
scoreMom = clamp(50.0 + mom * momGain, 0.0, 100.0)
// Stability score
scoreStab = clamp(100.0 - absZ * stabPenalty, 0.0, 100.0)
// Trend score
scoreTrend = trendUp ? 100.0 : trendDn ? 0.0 : 50.0
// Confidence fusion
confBase = 0.45*scoreTrend + 0.35*scoreMom + 0.20*scoreStab
confLong = clamp(confBase + biasLong, 0.0, 100.0)
confShort = clamp((100.0 - confBase) + biasShort, 0.0, 100.0)
// Threshold (optional adaptive by |Z|)
thrBase = clamp(baseThr + thrAdj, 50.0, 95.0)
thr = adaptive ? clamp(thrBase + absZ * 3.0, 50.0, 95.0) : thrBase
upper = thr
lower = 100.0 - thr
// ===================== GUARD / KILL SWITCH ==========
gap = nz(c[1]) != 0 ? math.abs((open - c[1]) / c[1]) * 100.0 : 0.0
gapBad = gap > gapPct
spikeBad = absZ > spikeZ
naBad = na(c) or na(open)
guardHit = guardEnabled and (gapBad or spikeBad or naBad)
var int freeze = 0
if barstate.isnew
freeze := math.max(freeze - 1, 0)
if guardHit
freeze := freezeN
guardOK = (not guardEnabled) or (freeze == 0 and not guardHit)
guardReason =
not guardEnabled ? "OFF" :
naBad ? "NA" :
gapBad ? "GAP" :
spikeBad ? "SPIKE" :
guardHit ? "BLOCK" :
(freeze > 0 ? "FREEZE" : "OK")
// ===================== SIGNALS =======================
longOk = (not isBasic) and guardOK and trendUp and confLong >= upper
shortOk = (not isBasic) and guardOK and trendDn and confShort >= upper
longEdge = longOk and not longOk[1]
shortEdge = shortOk and not shortOk[1]
// ===================== HEATMAP =======================
heatAlpha = clamp(100 - heatStr, 0, 100)
isHotLong = confLong >= upper and trendUp
isHotShort = confShort >= upper and trendDn
bg =
not heatmap ? na :
not guardOK ? color.new(color.orange, 85) :
isHotLong ? color.new(color.lime, heatAlpha) :
isHotShort ? color.new(color.red, heatAlpha) :
color.new(color.gray, 95)
bgcolor(bg)
// ===================== PLOTS =========================
hline(50, "Mid", color=color.new(color.gray, 70))
plot(confBase, "Confidence", linewidth=2)
plot(showBands ? upper : na, "Thr (Long)", color=color.new(color.lime, 0))
plot(showBands ? lower : na, "Thr (Short)", color=color.new(color.red, 0))
plotshape(showMarks and (not isBasic) and longEdge, title="LONG", style=shape.triangleup, location=location.bottom, text="L", color=color.new(color.lime, 0), size=size.tiny)
plotshape(showMarks and (not isBasic) and shortEdge, title="SHORT", style=shape.triangledown, location=location.top, text="S", color=color.new(color.red, 0), size=size.tiny)
plotshape(showMarks and guardEnabled and guardHit, title="GUARD", style=shape.circle, location=location.top, text="G", color=color.new(color.orange, 0), size=size.tiny)
// Alerts
alertcondition(longEdge, title="AIF-ilter LONG", message="AIF-ilter LONG on {{ticker}} (profile=" + prof + ")")
alertcondition(shortEdge, title="AIF-ilter SHORT", message="AIF-ilter SHORT on {{ticker}} (profile=" + prof + ")")
alertcondition(guardHit, title="AIF-ilter GUARD", message="AIF-ilter GUARD (reason=" + guardReason + ", profile=" + prof + ") on {{ticker}}")
// ===================== STATUS BANNER ==================
var label banner = na
if showBanner and barstate.islast
label.delete(banner)
status =
guardEnabled and not guardOK ? "GUARD: " + guardReason :
longOk ? "READY: LONG" :
shortOk ? "READY: SHORT" :
"STANDBY"
statusColor =
guardEnabled and not guardOK ? color.new(color.orange, 0) :
longOk ? color.new(color.lime, 0) :
shortOk ? color.new(color.red, 0) :
color.new(color.silver, 0)
banner := label.new(bar_index, confBase,
"AIF-ilter PRO • " + mode + " • " + prof + " • " + status,
style=label.style_label_left,
textcolor=color.black,
color=statusColor)
// ===================== INFO TABLE ======================
var table t = table.new(position.top_right, 2, 12, frame_width=2, border_width=1,
bgcolor=color.new(color.black, 88))
if showTable and barstate.islast
table.cell(t, 0, 0, "Metric", text_color=color.white, bgcolor=color.new(color.blue, 70))
table.cell(t, 1, 0, "Value", text_color=color.white, bgcolor=color.new(color.blue, 70))
table.cell(t, 0, 1, "Mode")
table.cell(t, 1, 1, mode)
table.cell(t, 0, 2, "Profile")
table.cell(t, 1, 2, prof, text_color = prof == "Conservative" ? color.orange : prof == "Aggressive" ? color.lime : color.white)
table.cell(t, 0, 3, "Confidence")
table.cell(t, 1, 3, str.tostring(confBase, "#.0"))
table.cell(t, 0, 4, "Threshold")
table.cell(t, 1, 4, str.tostring(upper, "#.0") + (adaptive ? " (A)" : ""))
table.cell(t, 0, 5, "Trend")
tr = trendUp ? "UP" : trendDn ? "DOWN" : "FLAT"
table.cell(t, 1, 5, tr, text_color = trendUp ? color.lime : trendDn ? color.red : color.silver)
table.cell(t, 0, 6, "ATR%")
table.cell(t, 1, 6, pct(atrPct), text_color = atrPct >= atrHigh ? color.orange : atrPct <= atrLow ? color.lime : color.white)
table.cell(t, 0, 7, "ROC(" + str.tostring(lenMom) + ")")
table.cell(t, 1, 7, pct(mom), text_color = mom >= 0 ? color.lime : color.red)
table.cell(t, 0, 8, "|Z|")
table.cell(t, 1, 8, str.tostring(absZ, "#.00"), text_color = absZ >= zHigh ? color.orange : color.white)
table.cell(t, 0, 9, "Gap %")
table.cell(t, 1, 9, pct(gap), text_color = gapBad ? color.orange : color.white)
table.cell(t, 0, 10, "Guard")
table.cell(t, 1, 10, guardReason,
text_color = not guardEnabled ? color.gray : guardReason == "OK" ? color.lime : color.orange)
sig = longEdge ? "LONG" : shortEdge ? "SHORT" : "NONE"
table.cell(t, 0, 11, "Signal")
table.cell(t, 1, 11, sig, text_color = longEdge ? color.lime : shortEdge ? color.red : color.gray)
Уже готово:
Отдельный сервис с API вместо встраивания в код, корректную работу с временем (dt) при лагах и джиттере, правильное хранение истории данных без искажений, фильтрацию шума на входе, устойчивое управление выходом и явные метрики состояния системы — сложность, управляющий сигнал, стабильность и ошибку. Теперь это можно подключать к любому источнику данных и использовать в продакшене без переписывания логики.
Могу доп: (патентная разработка)
Авторизацию и лимиты, алерты и мониторинг, автонастройку параметров под режим, дополнительные метрики сложности, масштабирование и деплой под Docker/Kubernetes.
#1 Додатково що помітили з попереднього обсягу змін: Є кілька клієнтів, які забронювали «Discovery Calls», але не отримали посилання-запрошення від Calendly, як і ми. Крім того, подія не відобразилася в нашому календарі MS Outlook. Так було налаштовано спочатку. Чи можете ви це виправити? Останні два рази ми самі надсилали електронні листи, щоб надати клієнтам посилання на зустріч. Підключіть календарі MS Outlook за адресами sebastian leap-key.com та mj leap-key.com до Calendly. А підтвердження про заброньовані зустрічі надсилайте на ці дві ж адреси електронної пошти. #2 Ще одна подібна тема стосується рахунків-фактур від WIX. Я бачу на WIX, що останній рахунок-фактура має номер 5, але має бути ще два: № 6 та № 7. WIX було налаштовано так, щоб створювати рахунок-фактуру та надсилати її на електронну адресу клієнта та на нашу електронну адресу (sebastian leap-key.com), але цього не відбувається. Важливо, щоб клієнти та ми отримували рахунки-фактури безпосередньо. Винятки становитимуть ті продукти з індивідуальними цінами, для яких ми використовуватимемо WIX для формування рахунків-фактур. - Ціни на товари № 4 встановлюються індивідуально, тому я маю виписати на них рахунки-фактури. Товари № 1, 2, 3 мають фіксовані ціни, і рахунки-фактури на них можна генерувати автоматично. - Я спробував пройти весь процес, забронювавши зустріч щодо товарів № 1, 2, 3 зі своєї особистої електронної адреси svuinovich gmail.com, але рахунку-фактури не отримав. Здається, я отримав електронний лист із підтвердженням заброньованої зустрічі. Зараз уже не пам’ятаю. - Підтвердження та рахунок-фактуру слід надсилати клієнту, а також на адреси sebastian leap-key.com та mj leap-key.com. Рахунки-фактури не були надіслані ні Sebastian, ні MJ з Leap Key, а також мені як клієнту на мою особисту електронну адресу.
потрібно онлайн казино, сайт bkb телеграм додаток без різниці у кого які варіанти є пропонуйте, працюю тільки через сайт і без передоплат ціни до 1000$
Нижче приклад детального технічного завдання для розробки мобільного додатку. Складання текстів Технічне завдання Проект Мобільний додаток для випадкового спілкування (рулетка) Платформи: Android iOS 1. Призначення проекту Створити сучасний мобільний додаток для знайомств, спілкування та пошуку співрозмовників за принципом випадкового вибору (Chat Roulette), з можливістю фільтрації користувачів за заданими критеріями. Додаток має підтримувати: текстовий чат; голосовий чат; відеочат; миттєве переключення на наступного співрозмовника; пошук за інтересами; пошук за країною; пошук за мовою; пошук за статтю; пошук за віком; розширені фільтри; систему модерації; адміністративну панель. 2. Типи спілкування Письмовий чат Можливості: обмін повідомленнями; відправка Emoji; GIF; стікери; фотографії; відео; документи; голосові повідомлення; видалення повідомлень; редагування повідомлень; відповідь на повідомлення; пересилання повідомлень; закріплення повідомлень. Голосовий чат Можливості: дзвінок одному користувачу; випадковий голосовий співрозмовник; переключення Next; вимкнення мікрофона; регулювання гучності; запис розмови (якщо дозволено); шумоподавлення; HD Voice. Відеочат Можливості: Full HD 2K 4K (при підтримці пристрою) Функції: переключення камер; розмиття фону; віртуальний фон; вимкнення відео; демонстрація екрану; запис; скріншот; режим картинка-в-картинці; миттєве переключення Next. 3. Принцип рулетки Користувач натискає кнопку Старт Після чого система автоматично підбирає випадкового співрозмовника. Є кнопки Наступний Пауза Стоп При відсутності збігів відображається повідомлення "Пошук співрозмовника..." 4. Фільтри пошуку Вік 18–25 25–35 35–45 45+ Стать чоловік жінка будь-який Країна Будь-яка країна світу Місто На бажання Мова Усі основні мови Інтереси музика кіно подорожі спорт програмування автомобілі ігри тварини медицина бізнес політика освіта будь-які власні теги Онлайн зараз онлайн недавно онлайн Тип спілкування текст голос відео 5. Реєстрація Способи реєстрації Email Google Apple ID Facebook Telegram номер телефону анонімний режим Підтвердження Email SMS CAPTCHA 6. Профіль користувача Фото Відео Ім'я Нікнейм Вік Стать Країна Місто Інтереси Мови Опис Статус Дата реєстрації Останній онлайн Верифікація Рейтинг 7. Особистий кабінет Історія спілкування Улюблені користувачі Чорний список Налаштування Сповіщення Підписка Premium Покупки Історія платежів 8. Premium Без реклами Пріоритетний пошук Вибір регіону Розширені фільтри Необмежені лайки Необмежені переключення HD-відео VIP-значок Невидимий режим 9. Монетизація Підписка Разові покупки VIP Подарунки Монети Реклама 10. Адміністративна панель Управління користувачами Блокування Видалення Модерація фотографій Модерація відео Модерація повідомлень Перегляд скарг Статистика Онлайн Доходи Платежі Push-сповіщення Новини Банери Налаштування додатку Логи Резервне копіювання 11. Система скарг Поскаржитися Причини: спам шахрайство образи порнографія насильство несовершеннолетні реклама інше 12. Безпека SSL HTTPS Шифрування повідомлень Двофакторна аутентифікація CAPTCHA Антиспам Антибот Визначення VPN/Proxy Автоматична модерація AI-модерація 13. Push-сповіщення Нове повідомлення Пропущений дзвінок Новий співрозмовник Відповідь на скаргу Новини Оновлення 14. Технології Frontend Flutter або React Native Backend Node.js NestJS База даних PostgreSQL Redis Сховище файлів Amazon S3 Відео та голос WebRTC Push Firebase Cloud Messaging Apple Push Notification Service Адмін-панель React Vue.js 15. Продуктивність Час пошуку співрозмовника до 3 секунд. Підтримка не менше 1 000 000 зареєстрованих користувачів. До 100 000 користувачів онлайн одночасно. 16. Додаткові функції Переклад повідомлень в реальному часі Голосовий переклад ІІ-помічник Автоматичне розпізнавання мови Автоматичні субтитри Маски доповненої реальності (AR) Розмиття фону Віртуальні кімнати Групові відеочати Стрімінг Створення власних кімнат Запрошення друзів QR-код профілю Темна та світла теми Багатомовний інтерфейс Вбудована система аналітики 17. Відповідність вимогам Додаток має відповідати вимогам Google Play та Apple App Store, а також забезпечувати захист персональних даних (GDPR) та підтримку користувацької згоди на обробку даних. Це ТЗ підходить як основа для комерційної розробки. За необхідності його можна розширити до повноцінного документа на 100–150 сторінок з UX/UI-прототипами, архітектурою бази даних, API, схемами екранів, ролями користувачів, системою модерації, монетизацією, AI-підбором співрозмовників та детальним описом кожного розділу.
Лендінг на 3 мовах - англійська, німецька та чеська. Бізнес - виготовлення та монтаж вентиляційних систем. Основні блокі - є бачення дизайну та змісту, є макет. Версія - десктоп та мобільна. налаштування СЕО - потрібно, домовимось після узгодження дизайну.
Потрібно розробити окрему CRM-систему для централізованої обробки всіх роздрібних замовлень з різних каналів продажу (Prom, Rozetka, власні сайти та ручні замовлення). Основні вимоги: Єдиний реєстр замовлень з усіх джерел із збереженням інформації про джерело та його статус. Окремий внутрішній статус CRM, який працює незалежно від статусу на маркетплейсі чи сайті, із двосторонньою синхронізацією статусів там, де це підтримується. Гнучка інтеграція з 1С: для кожного джерела адміністратор може окремо ввімкнути або вимкнути автоматичне вивантаження замовлень. Інтеграція з перевізниками для автоматичного створення ТТН, збереження її номера в CRM та передавання номера ТТН на Prom і Rozetka. Інтеграція з Checkbox для створення проєктів чеків, використовуючи налаштовувану відповідність способів оплати, з подальшим контролем фіскалізації. Підтримка ручного створення замовлень (телефон, Viber, Telegram, Direct тощо) з повним подальшим циклом обробки через CRM. Усі API-ключі та налаштування інтеграцій повинні керуватися адміністратором через інтерфейс CRM без участі програміста. Повний журнал дій і логування інтеграцій для контролю роботи системи. Основна мета Менеджер повинен мати можливість повністю обробити замовлення в одному інтерфейсі CRM — від отримання замовлення до створення документа в 1С, ТТН, проєкту чека та завершення замовлення, без необхідності заходити в кабінети Prom, Rozetka, сайтів, перевізників або Checkbox.