Перейти к публикации
Форум ботоводов

Поиск по сайту

Результаты поиска по тегам 'индикаторы'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Ботоводство
    • Разработка, идеи ботов
    • Граберы/парсеры
    • Готовые боты
    • Боты для Telegram
  • Фуршет
    • Breaking news
    • Работа форума
    • Услуги
    • Курилка

Блоги

  • XBTBot - Бот для торговли на криптовалютной бирже BitMex.
  • 16 seater Tempo Traveller Hire

Искать результаты в...

Искать результаты, содержащие...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


About Me

  1. Добрый день. Попробовал добавить индикатор ATR (Average True Range) и ATRP (проценты от ATR) для ограничения пика цен при входе в торги (тут же на форуме видел, что при превышении 70 процентов волотильности цены, высока вероятность на ее разворот). Именно это и хотел использовать в производном индикаторе ATRP = (atr/close)*100 (пруф - https://www.fidelity.com/learning-center/trading-investing/technical-analysis/technical-indicator-guide/atrp) Но похоже что-то у меня не так (уже на первом шаге). Нашел несколько реализаций ATR: Первая (на мой взгляд самая правильная, но она не работает): def ExpMovingAverage(values, window): weights = np.exp(np.linspace(-1., 0., window)) weights /= weights.sum() a = np.convolve(values, weights, mode='full')[:len(values)] a[:window] = a[window] return a def TR(d,c,h,l,o,yc): x = h-1 y = abs(h-yc) z = abs(l-yc) if y <= x >= z: TR = x elif x <= y >=z: TR = y elif x <= z >=y: TR = z return TR #ATR - average true range def ATR(d,c,h,l,o,yc,atf): x = 1 TrueRanges = [] while x < len(d): TrueRange = TR(d[x],c[x],h[x],l[x],o[x],c[x-1]) <<< - тут ошибка TrueRange = TR(d[x],c[x],h[x],l[x],o[x],c[x-1]) TypeError: 'builtin_function_or_method' object is not subscriptable TrueRanges.append(TrueRange) x += 1 ATR = ExpMovingAverage(TrueRanges,14) return ATR Адаптировал ее и упростил, на основе той, что используется в panda Вариант 2 (рабочий, но выдает какую-то фигню, мало похожую на правду😞 def ExpMovingAverage(values, window): weights = np.exp(np.linspace(-1., 0., window)) weights /= weights.sum() a = np.convolve(values, weights, mode='full')[:len(values)] a[:window] = a[window] return a def ATR1(d,c,h,l,n): i = 0 TR_l = [0] while i < len(d): TR = max(h, c[i-1]) - min(l, c[i-1]) TR_l.append(TR) i = i + 1 #TR_s = pd.Series(TR_l) #ATR = pd.ewm(TR_s, span = n, min_periods = n) << для разных версий панда #ATR = pd.DataFrame.ewm(TR_s, span = n, min_periods = n).mean() << для разных версий панда ATR = ExpMovingAverage(TR_l,n) << если вставить TR_s вместо TR_l результат не изменяется, но так не нужно подгружать панду. #df = df.join(ATR) return ATR Господа, может кто подскажет, в чем косяк в первой реализации? Ну, или у кого-то есть рабочее решение именно под бота с индикаторами Binance? Всем спасибо.
×
×
  • Создать...