Модуль y f модуль x: Функция y = |x| — урок. Алгебра, 8 класс.

Содержание

Графики уравнений, содержащих знак модуля

Цель:

  • закрепить методы построения графика линейной функции,
  • закрепить умение учащихся задавать уравнением функцию, заданную при помощи графика,
  • познакомить учащихся с тем, каким образом влияет знак модуля на отображение графика линейной функции

Оборудование: презентация (приложение 1)

Ход урока №1

При решении многих математических задач необходимо быстро и точно строить графики любых функций, изучаемых в школьном курсе алгебры. Т.к. на уроке предстоит много построений, начинаем, вспоминая, как строить график линейной функции y = kx + b на основе анализа углового коэффициента и коэффициента смещения (слайд 2)

Сопоставляем уравнения и графики (слайд 3):

 

Построим в тетрадях в одной системе координат графики функций (y = —x; y = —x -4; y = -1/3 x – 2; y = 2x + 5; y = x + 1), проверяя себя при помощи слайда 4

Вспомним определение модуля числа x (слайд 5)

Рассматриваем, как можно построить график функции y = |x| на основании определения модуля, отбрасывая части прямых, не лежащих в полуплоскостях x < 0 и x> 0 (слайд 6)

Аналогично рассматриваем способ построения графика функции y = |x + 1| (слайд 7)

Сравнивая графики и уравнения функций (слайд 8-9),

делаем вывод о том, как можно построить график функции y = |x + a| — b смещением графика функции y = |x| (слайд 10-11)

Строим в тетрадях графики функций y = |x-3| + 3, y = |x – 3| — 2, y = |x+2| — 5, y = |x + 3| + 2 и проверяем себя при помощи слайда 12

Далее учащиеся должны на основе рисунка, представленного на слайде 13, задать функцию уравнением:

При построении графиков очень важно научить ребят анализировать область определения и множество значений функции и “переносить” указанные множества на координатную плоскость.

Заполняем таблицу (слайд 12):

  D(y) E (y)
y = |x|    
y = |x – 3|    
y = |x – 3| +2    
y = — |x|    
y = |x + 2| -5    
y = — |x +2| -5    

И рассматриваем, как множества значений можно определить на основе графиков (слайд 15)

Учащимся предлагается определить D (y) и E(y) по рисунку (слайд 16):

 

Ученики самостоятельно придумывают уравнение функции по заданным D(y) и E(y) (слайд 17):

Анализируя графики и уравнения (слайд 18), ученики делают вывод о том, как влияет знак минуса перед модульными скобками на график. И самостоятельно задают уравнение по графикам, представленным на слайде 19.

Ход урока № 2

Устно проговариваем уравнения функций по графикам (слайд 20):

 

Аналогично схеме предыдущего урока (слайд 21-27) ученики знакомятся с тем, каким образом влияет коэффициент перед аргументом функции на график. В результате они должны научиться описывать уравнением следующие графики:

 

Для закрепления полученных знаний, в тетрадях в одной системе координат ребята строят следующие графики:

y = |0,5x| при -3 < x< 3;

y = 3 при -1 < x< 1;

y = -|x + 3| + 6 при -4 < x < -2;

y = -|x — 3| + 6 при 2 < x < 4;

y = |x + 3| + 4 при -4 < x < -2;

y = |x — 3| + 4 при 2 < x ? 4;

y = -|0,5x – 1,5| + 7 при -5 < x < -1;

y = -|0,5x + 1,5| + 7 при 1 < x < 5.

Проверяют себя по слайду 29:

Домашнее задание: придумать картину, состоящую из отрезков прямых, и описать ее при помощи уравнений функций.

Ход урока № 3

Построим графики функций y = |3x| — 3 и y = |3x – 3|. Как в каждом случае связаны y(x) и y(-x)?

Наличие условия y(x) = y(-x) означает симметрию относительно …?

Приведите примеры уравнений функции, графики которых будут симметричны относительно оси ординат

Если в модульные скобки заключается переменная y, то мы получаем условие |y| = |-y|. Какую симметрию задает это условие?

На слайде 34 последовательно рассматриваем цепочку построения графиков:

y = 3x – 3, |y| = 3x – 3, |y| = |3x| — 3, |y| = |3x – 3| путем преобразований симметрии.

Выводим и запоминаем три правила:

 

Распределите, к какому типу из трех (y = f(|x|, |y| = f(x), y = |f(x)|), можно отнести каждое уравнение:

|y| = 2 – x, y = |3x — 4|, |x| + |y| = 2, |y| = 3x – 4, y = |3|x| — 4|, y = |3x| — 4, |y| = |3|x| — 4|, |y| = |3x – 4|.

Проверяем себя (слайд 35)

Строим последовательную цепочку графиков (тонкими линиями в тетрадях):

1) y = 3x – 4, y = |3x – 4|, y = |3|x| - 4|, |y| = |3|x| — 4|

2) y = 3x – 4, y = 3|x| — 4, y = |3|x| — 4|

Рассматриваем способ построения графика соответствия |x| + |y| = 2.

Самостоятельно строим график |x| — |y| = 2 и проверяем себя по слайду 39.

Домашнее задание: придумать пять уравнений соответствий с модулем, в которых встречаются все случаи, рассмотренные на уроке, и построить графики.

Постройте график функции y=-4/модуль х

Алгебра, 2020-04-23 02:33:47, lololololololololool

Ответ

Ответ разместил: killmepleaseeee

формулы нет? если есть то вложи сюда.

Ответ

Ответ разместил: katyunyagolubmailru

x    |    y

-7        1

-1         7

1          7

7          1

       


Ответ

Ответ разместил: RinataShayahmurzina

Вот там свойства и как строится 

Ответ

Ответ разместил: Nr2006

Первое уравнение — просто убираешь знак модуля и составляешь таблицу со значениями.

Второе уравнение — перед модулем ставишь минус, а потом меняешь знаки внутри модуля. Далее убираешь модуль и сторожишь таблицу, а там уже и график.

Видимо, Х здесь можешь взять за любые числа

Ответ

Ответ разместил: Tedzs

Простите, что не очень аккуратно, но должно быть так

Ответ

Ответ разместил: pandokokos22jopar

Решали на уроке, на 99% уверена, что правильно.

Ответ

Ответ разместил: Vlad29rus228999

Решение Вашего задания во вложении

Ответ

Ответ разместил: TS1311

Сначала строим обычную параболу . Для этого найдем координаты вершины параболы. 
    

          

(4;-15) — вершина параболы.

Затем построенный график  отобразить симметрично относительно оси ординаты и получаем график функции 

Графиком функции у = m является прямой, которая параллельная оси абсцисс. И очевидно, что при m=1 графики будут пересекаться в трёх точках.

ОТВЕТ: m = 1.

Другие вопросы по: Алгебра

Из 30 высаженных семян взошли 23,какая часть высаженных семян взошла…

Опубликовано: 26.02.2019 18:00

Ответов: 1

.(Вреакцию нейтрализации 100 г 10% naoh со 100 г hcl практ. выход соли составил 70% от теоретически возможного. определить массу соли)….

Опубликовано: 28. 02.2019 22:20

Ответов: 2

Уразорившегося предпринимателя спросили, сколько у него осталось денег. он сказал, что если к оставшемуся капиталу прибавить 1 млн гривен, то получится столько, сколько ему нужно,…

Опубликовано: 01.03.2019 03:30

Ответов: 3

Составить окислительно-восстановительное уравнение nai+naio3+h3so4=i2+na2so4+…

Опубликовано: 02.03.2019 19:40

Ответов: 3

Почему труд является основополагающим фактором антропогенеза?…

Опубликовано: 03.03.2019 06:00

Ответов: 2

Решите цепочку: р-> р2о5-> н3ро4-> к3ро4-> ag3ро4 с-> co2-> caco3-> co2-> ca(hco3)2…

Опубликовано: 03.03.2019 20:10

Ответов: 1

Популярные вопросы

Сумма двух чисел равна 63,а их разность равна 12. найдите эти !…

Опубликовано: 28. 02.2019 01:20

Ответов: 2

Сберегательный счет был открыт 15 февраля, и на него была положена сумма в 10000 тенге. в следующем квартале 10 апреля на счет поступили 6000 тенге. затем 20 мая со счета были снят…

Опубликовано: 28.02.2019 11:20

Ответов: 3

А)багаж массой 836 кг грузчики положили на 3 тележки. масса багажа на второй тележки в 2 раза больше, чем на первой. какова масса багажа на третьей тележке, если масса багажа на пе…

Опубликовано: 01.03.2019 08:30

Ответов: 2

Волином дворе девочек на 24 человека меньше, чем мальчиков. сколько живет в ее дворе, если девочек в три раза меньше, чем мальчиков?…

Опубликовано: 02.03.2019 10:10

Ответов: 1

Какова разность потенциалов двух точек электростатического поля , если для перемещения заряда 2мккл между этими точками совершена работа 8*(10*-4)?…

Опубликовано: 02. 03.2019 16:20

Ответов: 1

Сколько среди слов горячий, обожженый, красный, сгоревший таких, которые сочетаются со словом огонь?…

Опубликовано: 02.03.2019 18:00

Ответов: 1

1) могут ли углы треугольника относиться как числа 1,2,3? 2) найдите cos и tg, если sinα= 3в корне/2 люди надеюсь есть такие на белом свете?…

Опубликовано: 03.03.2019 13:30

Ответов: 2

Преобразуйте данную схему в уравнение реакции, расставте коэффициенты методом электронного : p+h3o2+> nah3po4…

Опубликовано: 03.03.2019 15:10

Ответов:

1

Раннеспелость томата «причуда» доминирует над позднеспелым томатом «великан». скрестили растения раннеспелого сорта с позднеспелым. какие по генотипу и фенотипу гибриды будут получ…

Опубликовано: 03.03.2019 15:50

Ответов: 2

Самый толстостенный кровеносный сосуд. ..

Опубликовано: 03.03.2019 19:40

Ответов: 3

Больше вопросов по предмету: Алгебра Случайные вопросы

Модуль Y делить на Y равно модуль X умножить на X… -reshimne.ru

Новые вопросы

Ответы

 Модуль обозначается двумя вертикальными чертами.
lyl : y = lxl · x = 1
или 
lyl : y = lxl · x = -1

|у|:у=|х|•х=1
Или вот так
|у|:у=|х|•х=1

Похожие вопросы


Для приготовления 1 кг крахмала берут 6 кг картофеля. Сколько крахмала получат из 30 кг картофеля?

Диагонали ромба 22см и 120см.Найти периметр ромб…

Найдите корень уравнения 2.3-х=6. У меня не получается вычесть….

10 т қант қызылшасынан 1,85 т қант алынады . 100 т қант қызылшасынан неше тонна қант алынады ?…

A)x2-3/x+1=2x-3/x+1
б)2-x2/5-x=3+8/x-5
в)x2-x+1/x-1+x2+x+1/x+1=2x
ОЧЕНЬ СРОЧНО НАДО , ПОМОГИТЕ ПОЖАЛУЙСТА…

Математика

Литература

Алгебра

Русский язык

Геометрия

Английский язык

Химия

Физика

Биология

Другие предметы

История

Обществознание

Окружающий мир

География

Українська мова

Українська література

Қазақ тiлi

Беларуская мова

Информатика

Экономика

Музыка

Право

Французский язык

Немецкий язык

МХК

ОБЖ

Психология

Практическое руководство по использованию YFinance API В Python

YFinance пришел в качестве поддержки для тех, кто стал беспомощным после закрытия API исторических данных Yahoo Finance, так как многие программы, которые полагались на него, перестали работать. YFinance был создан, чтобы помочь программам и пользователям, которые полагались на Yahoo Finance API. Он решает проблему, позволяя пользователям загружать данные с помощью Python, а также имеет несколько замечательных функций, которые делают его удобным для использования для анализа данных о запасах.

YFinance не только загружает данные о ценах на акции, но также позволяет нам загружать все финансовые данные компании с момента ее листинга на фондовом рынке. Он прост в использовании и невероятно быстр. Эта библиотека довольно известна благодаря анализу финансовых данных.

В этой статье мы рассмотрим YFinance и узнаем, что мы можем сделать. Акции, над которыми мы будем работать, — это Pfizer, фармацевтическая компания, котирующаяся на NASDAQ. YFinance настоятельно рекомендуется для финансовой отчетности, поскольку она предоставляет вам все необходимые сведения о компании и ее акциях. В этой статье мы рассмотрим следующие моменты: —

  • Загрузка и анализ биржевых данных с помощью YFinance
  • Поиск различной информации о загруженных данных
  • Визуализация данных о запасах

 Для использования YFinance нам сначала нужно установить его, мы можем установить его с помощью pip install Finance.

Мы начнем с импорта необходимой библиотеки, например yfinance .

 импортировать финансирование как yf 

Выбор акции по ее символу

Используя функцию тикера, мы передаем символ акции, для которого нам нужно загрузить данные. Здесь мы работаем с Pfizer, и тикер для нее — «PFE». Давайте вызовем функцию тикера, чтобы инициализировать акции, с которыми мы будем работать.

 yf.Ticker('PFE') 

Отображение информации о выбранных акциях

После инициализации функции тикера давайте теперь отобразим все финансовые данные, относящиеся к компании, используя «info». На нем будет отображаться вся информация о компании, включая сектор, количество сотрудников, сводку бизнеса и т. д.

 pfizer.info
 

Загрузка биржевых данных

Теперь давайте загрузим биржевые данные, используя функцию «история». Мы можем передать аргумент, например start и end, чтобы установить конкретный период времени, иначе мы можем установить максимальный период, который будет загружать все данные об акциях с момента их листинга на рынке.

 старый  pfizer.history(начало = "2010-01-01", конец = ”2020-07-21”) старый.голова()

Отображение соответствующей информации

Аналитик финансовых данных требует подробностей о дивидендах и дроблениях, которые компания предоставила своим акционерам. С помощью функции «действия» YFinance мы можем скачать это.

 pfizer.actions
 

Помимо функции «действия», мы можем использовать функции «дивиденды» и «разделения» по отдельности, чтобы просматривать их по отдельности.

 pfizer.дивиденды
pfizer.splits 

Чтобы узнать устойчивость акций, существует предопределенная функция под названием «устойчивость», которую можно использовать для отображения данных об устойчивости компании.

 pfizer.устойчивое развитие
 

Рекомендации по покупке или продаже акций компании предоставляются различными финансовыми фирмами. Чтобы проанализировать цену акций, мы должны знать, что рекомендуют эти фирмы.

Для анализа рекомендаций мы можем использовать функцию «рекомендации».

 pfizer.рекомендации
 

Функцию «календарь» можно использовать, чтобы узнать о доходах и доходах компании.

 pfizer.календарь
 

Для каждой компании, зарегистрированной на фондовом рынке, существует уникальный номер ISIN (международный идентификационный номер ценных бумаг). мы можем получить этот номер, используя функцию YFinance «isin»

 pfizer.isin
'US7170811035' 

Во время торговли опционами мы должны знать дату истечения срока действия опциона, используя функцию «options», мы можем получить дату истечения срока действия опциона для этой конкретной акции.

 pfizer.options
 

Это основные функции YFinance, которые можно использовать для анализа биржевых данных. Точно так же мы можем использовать эти функции для анализа данных более чем нескольких акций.

Визуализация данных о запасах

Мы можем построить данные о запасах с помощью Plotly, библиотеки Python, используемой для визуализации, которая также позволяет нам загружать визуализацию в виде изображения. Наиболее часто используемые диаграммы для анализа биржевых данных — это свечная диаграмма, линейная диаграмма и диаграмма OHLC.

 Перед визуализацией биржевых данных нам нужно сбросить индекс фрейма данных, в котором хранятся наши данные, и нам нужно преобразовать столбцы в тип с плавающей запятой.

 старый = старый.reset_index()
для i в ['Открыть', 'Высокий', 'Закрыть', 'Низкий']:
 old[i]  =  old[i].astype('float64') 

Свечные графики

Давайте построим свечной график с ползунком диапазона, используя plotly. Графики свечей используются для технического анализа и могут помочь определить стратегию покупки, продажи или удержания.

 импортировать plotly.graph_objects как есть
fig = go.Figure(data=[go.Candlestick(x=old['Date'],
 открыть=старый['Открыть'],
высокий=старый['Высокий'],
низкий=старый['Низкий'],
закрыть=старый['Закрыть'])])
 рис.шоу()
 

Линейные графики

Линейные графики являются обычными и наиболее часто используемыми. Они используются большинством фундаментальных и технических аналитиков для определения стратегий.

 импортировать plotly.express как px
 fig = px.line(old, x="Date", y="Open", title='Цены акций PFizer')
 рис.шоу()
 

Графики OHLC

Графики OHLC (открытие, максимум, минимум и закрытие) похожи на свечные графики и важны, поскольку они работают с ценой закрытия.

 fig = go.Figure(data=go.Ohlc(x=old['Date'],
 открыть=старый['Открыть'],
 высокий=старый['Высокий'],
 низкий=старый['Низкий'],
 закрыть=старый['Закрыть']))
 рис.шоу()
 

Заключение

YFinance — это библиотека, которая настоятельно рекомендуется аналитикам финансовых данных, поскольку не нужно вести запись локально. Его можно использовать для создания подробного финансового отчета различных компаний. Точно так же мы можем визуализировать данные с помощью Plotly и создавать интерактивные и визуально привлекательные диаграммы/графики для дальнейшего анализа биржевых данных.

python — TypeError: объект «модуль» не вызывается

Спросил

Изменено 13 дней назад

Просмотрено 1,8 млн раз

 Файл "C:\Users\Administrator\Documents\Mibot\oops\blinkserv.py", строка 82, в __init__
    self.serv = сокет (AF_INET, SOCK_STREAM)
TypeError: объект «модуль» не вызывается
 

Почему я получаю эту ошибку? Я смущен.

Что вам нужно знать, чтобы ответить на мой вопрос?

  • питон
  • розетки

2

сокет представляет собой модуль, содержащий сокет класса .

Вам нужно сделать socket.socket(...) или из сокета импорта сокета :

 >>> импорт сокета
>>> розетка
<модуль 'сокет' из 'C:\Python27\lib\socket.pyc'>
>>> сокет. сокет
<класс 'socket._socketobject'>
>>>
>>> из сокета импорта сокета
>>> розетка
<класс 'socket._socketobject'>
 

Вот что означает сообщение об ошибке:
В нем говорится, что объект модуля не вызывается , потому что ваш код вызывает объект модуля . Объект модуля — это то, что вы получаете при импорте модуля. То, что вы пытались сделать, это вызвать объект класса класса в объекте модуля, который имеет то же имя, что и модуль, который его содержит.

Вот способ логически разбить такого рода ошибки:

  • " объект модуля не вызывается . Python говорит мне, что мой код пытается вызвать что-то, что нельзя вызвать. Что мой код пытается вызвать?"
  • "Код пытается вызвать сокет . Это должно быть вызываемо! Является ли переменная сокет тем, что я думаю?"`
  • Я должен распечатать, что такое сокет и проверить print(socket)

13

Предположим, что содержимое YourClass. py :

 class YourClass:
    # ......
 

Если вы используете:

 from YourClassParentDir import YourClass # означает YourClass.py
 

Таким образом, вы получите TypeError: объект 'module' не вызывается , если вы попытаетесь вызвать YourClass() .

Но, если вы используете:

 from YourClassParentDir.YourClass import YourClass # означает Class YourClass
 

или используйте YourClass.YourClass() , это работает.

3

Добавить к основному __init__.py в YourClassParentDir, например:

 из .YourClass import YourClass
 

Затем у вас будет готовый экземпляр вашего класса, когда вы импортируете его в другой скрипт:

 from YourClassParentDir import YourClass
 

1

Краткий ответ: Вы вызываете файл/каталог как функцию, а не реальную функцию

Читайте дальше:

Такая ошибка возникает, когда вы импортируете модуль, считая его функцией, и вызываете его. Итак, в модуле Python есть файл .py. Пакеты (каталоги) также можно рассматривать как модули. Допустим, у меня есть файл create.py . В этом файле у меня есть такая функция:

 #inside create.py
деф создать():
  проходить
 

Теперь в другом файле кода, если я сделаю так:

 #внутри файла main.py
импортировать создать
create() #здесь create относится к create.py , поэтому create.create() будет работать здесь
 

Выдает эту ошибку, поскольку я вызываю файл create.py как функцию. поэтому я должен сделать это:

 из создать импорт создать
create() #теперь это работает.
 

Вот еще одна ошибка, которую мне потребовалось некоторое время, чтобы увидеть даже после прочтения этих сообщений. Я настраивал скрипт для вызова моих скриптов bin python. Я тоже получал модуль, который нельзя было вызвать.

Мой зиг заключался в том, что я делал следующее:

 из mypackage.bin import myscript
...
мой скрипт(...)
 

, когда моему загу нужно было сделать следующее:

 из mypackage. bin.myscript import myscript
...
мой скрипт(...)
 

Таким образом, дважды проверьте вложенность вашего пакета и модуля.

То, что я пытаюсь сделать, это иметь каталог сценариев, который не имеет расширения *.py, и при этом иметь модули «bin», которые должны находиться в mypackage/bin, и они имеют мое расширение *.py. Я новичок в упаковке и стараюсь следовать стандартам, как я их интерпретирую. Итак, у меня в корне установки:

 setup.py
скрипты/
      сценарий1
мой пакет/
   мусорное ведро /
      script1.py
   подпакет1/
   subpackage_etc/
 

Если это не соответствует стандарту, сообщите мне об этом.

Похоже, вы импортировали модуль socket как import socket . Поэтому сокет является модулем. Вам либо нужно изменить эту строку на self.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM) , а также любое другое использование модуль сокета или измените оператор импорта на из сокета импорта сокета .

Или у вас есть импортный сокет после вашего из импорта сокета * :

 >>> из импорта сокета *
>>> серв = сокет(AF_INET,SOCK_STREAM)
>>> импортировать сокет
>>> серв = сокет(AF_INET,SOCK_STREAM)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
TypeError: объект «модуль» не вызывается
 

3

Я знаю, что этой теме уже год, но настоящая проблема в вашем рабочем каталоге.

Я считаю, что рабочий каталог C:\Users\Administrator\Documents\Mibot\oops\ . Проверьте наличие файла с именем socket.py в этом каталоге. Как только вы найдете его, переименуйте или переместите его. Когда вы импортируете сокет, socket.py из текущего каталога используется вместо socket.py из каталога Python. Надеюсь, это помогло. 🙂

Примечание: Никогда не используйте имена файлов из каталога Python для сохранения имени файла вашей программы; это будет конфликтовать с вашей программой(ами).

1

При настройке точки входа console_scripts в setup.py я обнаружил, что эта проблема существует, когда конечной точкой является модуль или пакет, а не функция внутри модуля.

 Трассировка (последний последний вызов):
   Файл "/Users/ubuntu/.virtualenvs/virtualenv/bin/mycli", строка 11, в 
load_entry_point('мой-пакет', 'console_scripts', 'mycli')()
TypeError: объект «модуль» не вызывается
 

Например,

 из настройки импорта setuptools
настраивать (
# ...
    вход_точки = {
        'console_scripts': [mycli=package.module.submodule]
    },
# ...
)
 

Должно было быть

 из настройки импорта setuptools
настраивать (
# ...
    вход_точки = {
        'console_scripts': [mycli=package.module.submodule:main]
    },
# ...
)
 

Чтобы он относился к вызываемой функции, а не к самому модулю. Кажется, нет никакой разницы, если модуль имеет , если __name__ == '__main__': блок . Это не сделает модуль вызываемым.

1

Столкнулся с такой же проблемой. затем я попытался не использовать из YourClass import YourClass

Я просто скопировал весь код YourClass.py и запустил его в основном коде (или текущем коде). Это решило ошибку

Думаю, вы переопределили встроенную функцию/переменную или что-то еще "модуль", установив глобальную переменную "модуль". просто распечатайте модуль, посмотрите, что в нем.

Вот возможный дополнительный пограничный случай, на который я наткнулся и какое-то время был озадачен, надеюсь, это кому-нибудь поможет:

В some_module/a.py :

 def a():
   проходить
 

В some_module/b.py :

 из . импортировать
защита б():
   а()
 

В some_module/__init__.py :

 из .b импортировать b
из .a импортировать
 

main.py :

 из импорта some_module b
б()
 

Затем, потому что когда main. py загружает b, он проходит через __init__.py , который пытается загрузить b.py до a.py . Это означает, что когда b.py пытается загрузить a , он получает модуль, а не функцию, то есть вы получите сообщение об ошибке объект модуля не вызывается

Решение здесь состоит в том, чтобы поменять порядок в some_module/__init__.py :

 из .a импортировать
из .b импортировать b
 

Или, если это создаст циклическую зависимость, измените имена файлов, чтобы они не соответствовали функциям, и загрузите напрямую из файлов, а не полагайтесь на __init__.py

Простой способ решить эту проблему — экспортировать переменную среды PYTHONPATH . Например, для Python 2.6 в Debian/GNU Linux:

 export PYTHONPATH=/usr/lib/python2.6`
 

В других операционных системах сначала нужно найти расположение этого модуля или файла socket. py .

проверьте операторы импорта, так как модуль не вызывается. В Python все (включая функции, методы, модули, классы и т. д.) является объектом.

yahoofinancials · PyPI

Модуль Python, который возвращает финансовые данные об акциях, криптовалютах, форексе, взаимных фондах, товарных фьючерсах, ETF и Казначействе США от Yahoo Finance.

Текущая версия: v1.6

Версия выпущена: 18.10.2020

Сообщите о любых ошибках, открыв вопрос здесь: https://github.com/JECSand/yahoofinancials/issues

Обзор

Мощный модуль финансовых данных, используемый для извлечения фундаментальных и технических данных из Yahoo Finance.

  • Начиная с версии 0.10, Yahoo Financials теперь возвращает исторические данные о ценах на товарные фьючерсы, криптовалюты, ETF, взаимные фонды, казначейские обязательства США, валюты, индексы и акции.

Установка

  • yahoofinancials работает на Python 2.7, 3. 3, 3.4, 3.5, 3.6 и 3.7.

  • Работа пакета зависит от BeautifulSoup4 и Pytz.

  1. Установка с помощью pip:

  • Linux/Mac:

 $ pip установить yahoofinancials 
 > python -m pip установить yahoofinancials 
  1. Установка с помощью github (Mac/Linux):

 $ клон git https://github.com/JECSand/yahoofinancials.git
$ cd yahoofinancials
$ установка python setup.py 
  1. Демонстрация с использованием прилагаемого демонстрационного сценария:

 $ компакт-диск yahoofinancials
$ Python demo.py -h
$ Python demo.py
$ Python demo.py WFC C BAC 
  1. Проверка с использованием включенного сценария модульного тестирования:

 $ компакт-диск yahoofinancials
$ тест Python/test_yahoofinancials.py 

Методы модуля

  • Финансовые данные всех методов возвращаются в формате JSON.

  • Вы можете запускать несколько символов одновременно, используя введенный массив, или запускать отдельный символ, используя введенную строку.

  • YahooFinancials работает с Python 2.7, 3.3, 3.4, 3.5, 3.6 и 3.7 и работает во всех операционных системах. (Виндовс, Мак, Линукс).

Рекомендуемые методы

  1. get_financial_stmts (частота, statement_type, переформатировать = True)

    • периодичность может быть «ежегодной» или «ежеквартальной».

    • statement_type может быть «доход», «баланс», «наличные» или список из нескольких.

    • переформатировать необязательное значение по умолчанию true. Введите False для необработанных необработанных данных из Yahoo Finance.

  2. get_stock_price_data(reformat=True)

  3. get_stock_earnings_data(reformat=True)

  4. get_summary_data(reformat=True)

    • Возвращает сводные финансовые данные по криптовалютам, акциям, валютам, ETF, взаимным фондам, казначейским обязательствам США, товарным фьючерсам и индексам.

    • переформатировать необязательное значение по умолчанию true. Введите False для необработанных необработанных данных из Yahoo Finance.

  5. get_stock_quote_type_data()

  6. get_historical_price_data(start_date, end_date, time_interval)

    • Этот метод извлекает исторические данные о ценах на акции, валюты, ETF, взаимные фонды, казначейские обязательства США, криптовалюты, товары и индексы.

    • start_date следует вводить в формате «ГГГГ-ММ-ДД». Это первый день, за который будут извлекаться данные.

    • end_date следует вводить в формате «ГГГГ-ММ-ДД». Это последний день, за который будут извлекаться данные.

    • time_interval может быть «ежедневно», «еженедельно» или «ежемесячно». Эта переменная определяет временной интервал для вашего запроса.

    • Ответ данных включает соответствующие данные ценовых событий, такие как дивиденды и дробление акций.

  7. get_num_shares_outstanding(price_type='current')

Методы, добавленные в версии 1.5

Методы дополнительных модулей

  • get_interest_expense()

  • get_operating_income()

  • get_total_operating_expense()

  • get_total_revenue()

  • get_cost_of_revenue()

  • get_income_before_tax()

  • get_income_tax_expense()

  • get_gross_profit()

  • get_net_income_from_continuing_ops()

  • get_research_and_development()

  • get_current_price()

  • get_current_change()

  • get_current_percent_change()

  • get_current_volume()

  • get_prev_close_price()

  • get_open_price()

  • get_ten_day_avg_daily_volume()

  • get_three_month_avg_daily_volume()

  • get_stock_exchange()

  • get_market_cap()

  • get_daily_low()

  • get_daily_high()

  • get_currency()

  • get_yearly_high()

  • get_yearly_low()

  • get_dividend_yield()

  • get_annual_avg_div_yield()

  • get_five_yr_avg_div_yield()

  • get_dividend_rate()

  • get_annual_avg_div_rate()

  • get_50day_moving_avg()

  • get_200day_moving_avg()

  • get_beta()

  • get_payout_ratio()

  • get_pe_ratio()

  • get_price_to_sales()

  • get_exdividend_date()

  • get_book_value()

  • get_ebit()

  • get_net_income()

  • get_earnings_per_share()

  • get_key_statistics_data()

Примеры использования

  • Конструктор класса может принимать либо один тикер, либо список тикеров в качестве параметра.

  • Это позволяет легко инициировать несколько классов для различных групп финансовых активов.

  • Квартальные данные отчета возвращают данные за последние 4 периода, а годовые — за последние 3.

Пример одного тикера

 из yahoofinancials импорт YahooFinancials
тикер = 'AAPL'
yahoo_financials = YahooFinancials (тикер)
balance_sheet_data_qt = yahoo_financials.get_financial_stmts('ежеквартально', 'баланс')
yield_statement_data_qt = yahoo_financials.get_financial_stmts('ежеквартально', 'доход')
all_statement_data_qt = yahoo_financials.get_financial_stmts('ежеквартально', ['доход', 'наличные деньги', 'баланс'])
apple_earnings_data = yahoo_financials.get_stock_earnings_data()
apple_net_income = yahoo_financials.get_net_income()
history_stock_prices = yahoo_financials.get_historical_price_data('2008-09TYX']
yahoo_financials_tech = YahooFinancials(tech_stocks)
yahoo_financials_banks = YahooFinancials(bank_stocks)
yahoo_financials_commodities = YahooFinancials(commodity_futures)
yahoo_financials_cryptocurrencies = YahooFinancials (криптовалюты)
yahoo_financials_currencies = YahooFinancials(валюты)
yahoo_financials_mutualfunds = YahooFinancials(паевые_фонды)
yahoo_financials_treasuries = YahooFinancials(us_treasuries)
tech_cash_flow_data_an = yahoo_financials_tech. get_financial_stmts («годовой», «наличные»)
bank_cash_flow_data_an = yahoo_financials_banks.get_financial_stmts («годовой», «наличные»)
banks_net_ebit = yahoo_financials_banks.get_ebit()
tech_stock_price_data = yahoo_financials_tech.get_stock_price_data()
daily_bank_stock_prices = yahoo_financials_banks.get_historical_price_data('2008-09-15", "2018-09-15", "ежедневно")
daily_commodity_prices = yahoo_financials_commodities.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно')
daily_crypto_prices = yahoo_financials_cryptocurrencies.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно')
daily_currency_prices = yahoo_financials_currencies.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно')
daily_mutualfund_prices = yahoo_financials_mutualfunds.get_historical_price_data('2008-09-15', '2018-09-15', 'ежедневно')
daily_treasury_prices = yahoo_financials_treasuries.get_historical_price_data('2008-09-15", "2018-09-15", "ежедневно") 

Примеры возвращаемых данных JSON

  1. Данные годового отчета о прибылях и убытках для Apple:

 yahoo_financials = YahooFinancials('AAPL')
print(yahoo_financials. get_financial_stmts('годовой', 'доход')) 
 {
    "incomeStatementHistory": {
        "ААПЛ": [
            {
                "2016-09-24": {
                    "minorityInterest": ноль,
                    «другие операционные расходы»: ноль,
                    "netIncomeFromContinuingOps": 45687000000,
                    "общий доход": 21563

00, "totalOtherIncomeExpenseNet": 1348000000, «прекращенные операции»: ноль, «Расход по подоходному налогу»: 15685000000, «экстраординарные предметы»: ноль, "валовая прибыль": 84263000000, "чистый доход": 45687000000, "ПродажаГенеральныйАдминистративный": 14194000000, "interestExpense": ноль, "costOfRevenue": 131376000000, "ИсследованияРазвития": 10045000000, "netIncomeApplicableToCommonShares": 45687000000, "effectOfAccountingCharges": ноль, "incomeBeforeTax": 61372000000, "другие элементы": ноль, "операционный доход": 60024000000, "ebit": 61372000000, "неповторяющийся": ноль, "общие операционные расходы": 0 } } ] } }

  1. Данные годового баланса Apple:

 yahoo_financials = YahooFinancials('AAPL')
print(yahoo_financials. get_financial_stmts('годовой', 'баланс')) 
 {
    "История баланса": {
        "ААПЛ": [
            {
                "2016-09-24": {
                    "otherCurrentLiab": 8080000000,
                    "другие текущие активы": 8283000000,
                    "гудвилл": 5414000000,
                    «короткие инвестиции»: 46671000000,
                    "longTermInvestments": 170430000000,
                    "наличные": 20484000000,
                    «неттоматериальные активы»: 11962

00, "общие активы": 321686000000, "другоеЛяб": 36074000000, "общий акционерный капитал": 12824

00, "инвентарь": 2132000000, "retainedEarnings": 96364000000, «нематериальные активы»: 3206000000, "totalCurrentAssets": 10686

00, "otherStockholderEquity": 634000000, "shortLongTermDebt": 11605000000, "propertyPlantEquipment": 27010000000, "отложенныйLongTermLiab": 2930000000, "чистая дебиторская задолженность": 2929

00, "другие активы": 8757000000, "longTermDebt": 75427000000, "totalLiab": 193437000000, "общий запас": 31251000000, "Кредиторская задолженность": 59321000000, "totalCurrentLiabilities": 700000 } } ] } }

  1. Данные квартального отчета о движении денежных средств для Citigroup:

 yahoo_financials = YahooFinancials('C')
print(yahoo_financials. get_financial_stmts('ежеквартально', 'наличные')) 
 {
    "CashflowStatementHistoryQuarterly": {
        "С": [
            {
                "2017-06-30": {
                    "totalCashFromOperatingActivities": -18505000000,
                    "effectOfExchangeRate": -117000000,
                    "totalCashFromFinancingActivities": 39798000000,
                    "чистый доход": 3872000000,
                    "выплачено дивидендов": -760000000,
                    "ПродажаПокупкаСклада": -1781000000,
                    "капитальные расходы": -861000000,
                    "changeToLiabilities": -7626000000,
                    «другие денежные потоки от инвестиционной деятельности»: 82000000,
                    "totalCashflowsFromInvestingActivities": -22508000000,
                    "netBorrowings": 33586000000,
                    "амортизация": 0000,
                    "changeInCash": -1332000000,
                    "changeToNetincome": 1444000000,
                    "otherCashflowsFromFinancingActivities": 8753000000,
                    "changeToOperatingActivities": -17096000000,
                    "инвестиции": -23224000000
                }
            }
        ]
    }
} 
  1. Ежемесячные исторические данные о ценах на акции Wells Fargo:

 yahoo_financials = YahooFinancials('WFC')
print(yahoo_financials. get_historical_price_data("2018-07-10", "2018-08-10", "ежемесячно")) 
 {
    "ВФК": {
        "валюта": "доллар США",
        "данные событий": {
            "дивиденды": {
                "2018-08-01": {
                    "количество": 0,43,
                    "дата": 1533821400,
                    "formatted_date": "2018-08-09"
                }
            }
        },
        "firstTradeDate": {
            "дата": 76233600,
            "formatted_date": "1972-06-01"
        },
        "instrumentType": "АКЦИЯ",
        "Цены": [
            {
                "adjclose": 57,1
72924805, "близко": 57.61000061035156, "дата": 1533096000, "formatted_date": "2018-08-01", «высокий»: 59,5, "низкий": 57.08000183105469, «открыто»: 57.9599972656, "объем": 1380 } ], "часовой пояс": { "гмтофсет": -14400 } } }
  1. Ежемесячные исторические ценовые данные для EURUSD:

 yahoo_financials = YahooFinancials('EURUSD=X')
print(yahoo_financials. get_historical_price_data("2018-07-10", "2018-08-10", "ежемесячно")) 
 {
    "EURUSD=X": {
        "валюта": "доллар США",
        "данные событий": {},
        "firstTradeDate": {
            "дата": 1070236800,
            "formatted_date": "2003-12-01"
        },
        "instrumentType": "ВАЛЮТА",
        "Цены": [
            {
                "adjclose": 1.1394712924957275,
                "закрыть": 1.1394712924957275,
                "дата": 1533078000,
                "formatted_date": "2018-07-31",
                "высокий": 1.169864296
  • 7, «низкий»: 1,1365960836410522, "открыто": 1.168961763381958, "объем": 0 } ], "часовой пояс": { "гмтофсет": 3600 } } }
    1. Ежемесячные исторические ценовые данные для BTC-USD:

     yahoo_financials = YahooFinancials('BTC-USD')
    print(yahoo_financials.get_historical_price_data("2018-07-10", "2018-08-10", "ежемесячно")) 
     {
        «БТД-Доллар США»: {
            "валюта": "доллар США",
            "данные событий": {},
            "firstTradeDate": {
                "дата": 1279 г. 321200,
                "formatted_date": "2010-07-16"
            },
            "instrumentType": "КРИПТОВАЛЮТА",
            "Цены": [
                {
                    "adjclose": 6285.02001953125,
                    "близко": 6285.02001953125,
                    "дата": 1533078000,
                    "formatted_date": "2018-07-31",
                    «высокий»: 7760.740234375,
                    "низкий": 6133.02978515625,
                    «открыто»: 7736,25,
                    "том": 4334347882
                }
            ],
            "часовой пояс": {
                "гмтофсет": 3600
            }
        }
    } 
    1. Еженедельные исторические данные о ценах на фьючерсы на сырую нефть:

     yahoo_financials = YahooFinancials('CL=F')
    print(yahoo_financials.get_historical_price_data("2018-08-01", "2018-08-10", "еженедельно")) 
     {
        "КЛ=Ф": {
            "валюта": "доллар США",
            "данные событий": {},
            "firstTradeDate": {
                "дата": 1522555200,
                "formatted_date": "2018-04-01"
            },
            "instrumentType": "БУДУЩЕЕ",
            "Цены": [
                {
                    "adjclose": 68,58999633789062,
                    "близко": 68. 58999633789062,
                    "дата": 15320,
                    "formatted_date": "30.07.2018",
                    «высокий»: 69.3499984741211,
                    "низкий": 66.816894531,
                    «открыто»: 68.37000274658203,
                    "том": 683048039
                },
                {
                    "adjclose": 67,75,
                    «близко»: 67,75,
                    "дата": 1533528000,
                    "formatted_date": "2018-08-06",
                    "высокий": 69.816894531,
                    "низкий": 66.13999938964844,
                    «открыто»: 68.76000213623047,
                    "том": 1102357981
                }
            ],
            "часовой пояс": {
                "гмтофсет": -14400
            }
        }
    } 
    1. Котировки акций Apple:

     yahoo_financials = YahooFinancials('AAPL')
    печать (yahoo_financials.get_stock_quote_type_data()) 
     {
        "ААПЛ": {
            "базовыйExchangeSymbol": ноль,
            "exchangeTimezoneName": "Америка/Нью-Йорк",
            "базовый символ": ноль,
            "headSymbol": ноль,
            "shortName": "Apple Inc. ",
            "символ": "AAPL",
            "uuid": "8b10e4ae-9ТЫКС": 3,062
    } 
    1. BTC-USD Сводные данные:

     yahoo_financials = YahooFinancials('BTC-USD')
    печать (yahoo_financials.get_summary_data()) 
     {
        «БТД-Доллар США»: {
            "алгоритм": "SHA256",
            "спросить": ноль,
            "аскСизе": ноль,
            "среднедневной объем10День": 545573809,
            "средний объем": 496761640,
            "averageVolume10days": 545573809,
            "бета": ноль,
            "ставка": ноль,
            "Размер ставки": ноль,
            "циркуляционный запас": 17209812,
            "валюта": "доллар США",
            "дневной максимум": 6266,5,
            «дневной минимум»: 5891,87,
            "дивидендрейт": ноль,
            "дивидендный доход": ноль,
            "exDividendDate": "-",
            "годен до": "-",
            "50DayAverage": 6989.074,
            "fiftyTwoWeekHigh": 19870,62,
            "fiftyTwoWeekLow": 2979,88,
            "fiveYearAvgDividendYield": ноль,
            «впередPE»: ноль,
            "fromCurrency": "БТД",
            "lastMarket": "CCCAGG",
            "маркеткап": 106325663744,
            "maxAge": 1,
            "maxSupply": 21000000,
            "navPrice": ноль,
            «открыто»: 6263,2,
            "openInterest": ноль,
            "payoutRatio": ноль,
            "предыдущийЗакрыть": 6263. 2,
            "ЦенаПодсказка": 2,
            «priceToSalesTrailing12Months»: ноль,
            "regularMarketDayHigh": 6266,5,
            "regularMarketDayLow": 5891,87,
            "regularMarketOpen": 6263,2,
            "regularMarketPreviousClose": 6263,2,
            "regularMarketVolume": 755834368,
            "дата начала": "03 января 2009 г.",
            "strikePrice": ноль,
            "totalAssets": ноль,
            "торгуемый": ложь,
            "trailingAnnualDividendRate": ноль,
            "trailingAnnualDividendYield": ноль,
            "двухсотдневный средний": 8165,154,
            "объем": 755834368,
            "объем24ч": 750196480,
            "volumeAllCurrencies": 2673437184,
            "выход": ноль,
            "ytdReturn": ноль
        }
    } 
    1. Ключевые статистические данные Apple:

     yahoo_financials = YahooFinancials('AAPL')
    печать (yahoo_financials.get_key_statistics_data()) 
     {
        "ААПЛ": {
            "annualHoldingsTurnover": ноль,
            "EnterpriseToRevenue": 2,973,
            "beta3Year": ноль,
            "маржи прибыли": 0,22413999,
            "enterpriseToEbitda": 9. 652,
            "52WeekChange": -0,12707871,
            "morningStarRiskRating": ноль,
            "форвардЭпс": 13.49,
            "revenueQuarterlyGrowth": ноль,
            «акции в обращении»: 4729800192,
            "fundInceptionDate": "-",
            "annualReportExpenseRatio": ноль,
            "totalAssets": ноль,
            «книжная стоимость»: 22,534,
            "sharesShort": 44
  • 5, "акцииPercentSharesOut": 0,0095, "FundFamily": ноль, "lastFiscalYearEnd": 1538179200, «holdPercentInstitutions»: 0,61208, "netIncomeToCommon": 59531001856, "TrailingEps": 11,91, "lastDividendValue": ноль, "SandP52WeekChange": -0,06475246, "priceToBook": 6.7582316, "holdPercentInsiders": 0,00072999997, "nextFiscalYearEnd": 1601337600, "выход": ноль, «самый последний квартал»: 1538179200, "короткое отношение": 1, "sharesShortPreviousMonthDate": "2018-10-31", "плавающие шары": 4489763410, "бета": 1. 127094, "EnterpriseValue": 789555511296, "ЦенаПодсказка": 2, "threeYearAverageReturn": ноль, "lastSplitDate": "2014-06-09", "lastSplitFactor": "1/7", "legalType": ноль, "morningStarOverallRating": ноль, «Ежеквартальный рост прибыли»: 0,318, «priceToSalesTrailing12Months»: ноль, "датаШортИнтерест": 1543536000, «Коэффициент привязки»: 0,98, "ytdReturn": ноль, "форвардПЭ": 11.289103, "maxAge": 1, "lastCapGain": ноль, "shortPercentOfFloat": 0,0088, "акцииShortPriorMonth": 36469092, "категория": ноль, «fiveYearAverageReturn»: ноль } }
    1. Данные о ежедневных дивидендах Apple и Wells Fargo:

     start_date = '1987-09-15'
    end_date = '1988-09-15'
    yahoo_financials = YahooFinancials(['AAPL', 'WFC'])
    print(yahoo_financials.get_daily_dividend_data(start_date, end_date)) 
     {
        "ААПЛ": [
            {
                "дата": 564157800,
                "formatted_date": "1987-11-17",
                "количество": 0,08
            },
            {
                "дата": 571674600,
                "formatted_date": "12 февраля 1988 г. ",
                "количество": 0,08
            },
            {
                "дата": 579792600,
                "formatted_date": "16 мая 1988 г.",
                "количество": 0,08
            },
            {
                "дата": 587655000,
                "formatted_date": "15 августа 1988 г.",
                "количество": 0,08
            }
        ],
        "ВФК": [
            {
                "дата": 562861800,
                "formatted_date": "1987-11-02",
                "сумма": 0,3008
            },
            {
                "дата": 570724200,
                "formatted_date": "1988-02-01",
                "сумма": 0,3008
            },
            {
                "дата": 578583000,
                "formatted_date": "1988-05-02",
                "количество": 0,3344
            },
            {
                "дата": 586445400,
                "formatted_date": "1988-08-01",
                "количество": 0,3344
            }
        ]
    } 
    Библиотека

    yfinance — полное руководство

    Последнее обновление: 3 ноября 2020 г.

    Содержание
    • Что такое yfinance?
    • Библиотека yfinance бесплатна?
    • Зачем мне использовать библиотеку yfinance?
    • Почему мне не следует использовать библиотеку yfinance?
    • Какие есть альтернативы библиотеке yfinance?
      • RapidAPI
      • yahoo_fin
    • Как начать работу с библиотекой yfinance?
      • Установка
      • Схема библиотеки
    • Как загрузить исторические данные с помощью библиотеки yfinance?
      • Демо с одним тикером
      • Демо с несколькими тикерами
    • Как загрузить фундаментальные данные с помощью библиотеки yfinance?
      • Отношение цены к прибыли
      • Дивиденды
      • Основные данные с несколькими тикерами одновременно
        • Сравнение по определенному атрибуту
    • Как загрузить торговые данные с помощью библиотеки yfinance?
      • Рыночная капитализация
      • Объем
      • Максимумы и минимумы
    • Как загрузить данные об опционах с помощью библиотеки yfinance?
      • Как узнать даты истечения срока действия?
      • Как получить данные о звонках?
      • Как получить данные о путах?
    • Распространенные ошибки
    • Заключительные мысли
    • Ссылка для загрузки используемого кода

    Что такое yfinance?

    yfinance — популярная библиотека с открытым исходным кодом, разработанная Раном Арусси как средство доступа к финансовым данным, доступным на Yahoo Finance.

    Yahoo Finance предлагает отличный набор рыночных данных по акциям, облигациям, валютам и криптовалютам. Он также предлагает новости рынка, отчеты и анализ, а также дополнительные параметры и основные данные, что отличает его от некоторых конкурентов.

    У Yahoo Finance раньше был собственный официальный API, но он был выведен из эксплуатации 15 мая 2017 года из-за широко распространенного неправомерного использования данных.

    В настоящее время существует ряд неофициальных API и библиотек для доступа к одним и тем же данным, включая, конечно же, yfinance.

    Обратите внимание, что вы могли знать о yfinance под старым названием — fix-yahoo-finance , поскольку оно было переименовано 26 мая 2019 года в то же время, когда он подвергся капитальному ремонту, чтобы исправить некоторые проблемы с удобством использования.

    Чтобы обеспечить обратную совместимость, fix-yahoo-finance теперь в любом случае импортирует и использует yfinance, но Ран Арусси по-прежнему рекомендует устанавливать и использовать yfinance напрямую.

    В этой статье мы сосредоточимся в основном на библиотеке yfinance, но более подробно обсудим общий набор вариантов и других альтернативных поставщиков в нашей родительской статье Yahoo Finance API — полное руководство.

    Является ли библиотека yfinance бесплатной?

    Да, yfinance полностью бесплатный и с открытым исходным кодом. Вы можете найти документацию здесь.

    Зачем мне использовать библиотеку yfinance?

    • Бесплатно
    • Быстрая и простая настройка
    • Простой
    • Высокая степень детализации данных (данные 1 мин/2 мин/5 мин)
    • Возвращает данные непосредственно в кадры/серии данных pandas

    Как мы только что упомянули yfinance с открытым исходным кодом и бесплатно. Существуют и другие способы доступа к данным Yahoo Finance, как бесплатные, так и платные, и есть определенные преимущества для некоторых опций, которые требуют оплаты, например, гарантированное обслуживание решения, но всем нравится бесплатность!

    Установка не может быть проще и быстрее . У yfinance всего 4 зависимости, все они в любом случае поставляются с Anaconda и полностью устанавливаются в одну строку кода. Не требуется создание учетной записи или регистрация и использование ключей API!

    Это просто . Дизайн yfinance очень питонический и невероятно оптимизирован. Это так же просто, как создать объект тикера для определенного тикера/списка тикеров, а затем просто вызвать все методы этого объекта. Вот так:

     импортировать yfinance как yf
    яблоко = yf.Ticker ("aapl")
    # показать действия (дивиденды, сплиты)
    apple.actions
    # показать дивиденды
    яблоко.дивиденды
    # показать сплиты
    яблоко.разбивается
    # + другие методы и т. д. 

    Не волнуйтесь, мы немного разберем этот код!

    Кроме того, документация умещается на одной странице, а имена методов говорят сами за себя.

    Высокая степень детализации данных . Одна интересная особенность yfinance заключается в том, что вы можете получать очень точные данные, вплоть до 5-минутных, 3-минутных и даже 1-минутных данных! Полный диапазон доступных интервалов:

     1 м, 2 м, 5 м, 15 м, 30 м, 60 м, 90 м, 1 ч, 1 д, 5 д, 1 нед, 1 мес, 3 мес 

    Однако важно отметить, что данные 1m можно получить только за последние 7 дней, а внутридневные (интервал <1d) — только за последние 60 дней.

    yfinance также удобно возвращает данные непосредственно в фреймах данных padas или сериях . Это отличается от некоторых других вариантов доступа к данным Yahoo Finance, где вы получите длинные JSON, которые вам нужно проанализировать для получения конкретной информации, которую вы хотите, и вам придется вручную конвертировать в кадры данных самостоятельно.


    Почему мне не следует использовать библиотеку yfinance?

    • Не имеет специализированных функций
    • Некоторые методы ненадежны
    • Неофициальные/не обязательно поддерживаемые
    • Можно попасть в черный список/с ограниченной скоростью

    Не хватает специальных функций . Несмотря на то, что вы можете использовать его для получения большого количества основных данных, включая данные об опционах и фундаментальные данные, yfinance не предоставляет метода очистки каких-либо новостных отчетов/анализов, доступных на Yahoo Finance.

    Это, очевидно, не идеально, если вы хотите построить модель, частично основанную на анализе настроений, поэтому, если вам нужны данные такого рода, вы можете проверить RapidAPI (о котором будет рассказано позже), который предлагает такие данные. .

    Кроме того, другие альтернативные рыночные данные часто содержат интересные дополнения. Например, Alpha Vantage предоставляет модули, которые рассчитывают для вас различные индикаторы технического анализа — очевидно, вы сэкономите огромные усилия, если захотите построить алгоритм, использующий любой из них! yfinance предоставляет только основы.

    Некоторые методы ненадежны . yfinance в основном делает вызовы API к Yahoo Finance для сбора своих данных, но иногда использует парсинг HTML и парсинг таблиц pandas для неофициального сбора информации с веб-сайта Yahoo Finance для некоторых своих методов. Таким образом, функциональность некоторых из его методов находится во власти Yahoo, которая не меняет макет или дизайн некоторых своих страниц. На самом деле, широко известно, что у yfinance уже есть несколько проблем.

    Вкратце: парсинг данных работает путем простой загрузки HTML-кода веб-страницы и поиска по всем тегам HTML, чтобы найти нужные элементы страницы.

    Например, ниже приведена страница исторических данных Yahoo Finance Apple («AAPL»):

    Если метод для извлечения исторических данных HTML, он будет искать различные теги div , class и tr и т. д. для различных идентификаторов, чтобы выбрать данные, которые должны быть возвращены.

    Например, идентификатор класса «Py(10px) Pstart(10px)» относится к историческим ценам, заполняющим таблицу. Если бы в этом случае Yahoo Finance изменила идентификатор класса, указывающий на это значение, метод мог бы вернуть совершенно неверные данные или вообще ничего. Опять же, подобная уязвимость распространяется не на все методы yfinance — большинство из них на самом деле делают прямые вызовы API, — но на некоторые из них она влияет.

    Это неофициальное решение . Опять же, поскольку yfinance является просто результатом тяжелой работы одного человека и никоим образом не связана с Yahoo Finance, нет никакой гарантии, что в случае поломки он будет поддерживаться.

    Как мы уже упоминали, у него было большое обновление для устранения проблем 26 мая 2019 года, в тот же день, когда он был переименован, но это не гарантирует, что проблемы будут исправлены в будущем. Вы уверены, что хотите построить торговый алгоритм на основе данных, которые однажды могут внезапно и без предупреждения оказаться неверными? Уже есть несколько известных проблем с yfinance, о которых мы расскажем позже в этой статье.

    Вы можете попасть в черный список/с ограничением скорости. Опять же, поскольку yfinance собирает данные для нескольких своих функций, вы иногда рискуете получить ограничение по скорости или попасть в черный список из-за слишком большого количества попыток очистки.

    Это риск, который всегда присутствует при попытке парсить веб-сайты, но когда вы создаете приложения, торгующие реальными деньгами поверх инфраструктуры, которая может делать много запросов данных, соотношение риска и вознаграждения меняется.

    Заключение

    В целом yfinance невероятно удобен для начинающих. Вы сможете сразу погрузиться в работу и протестировать идеи, не тратя время на изучение сложной документации, и в то же время имея доступ к большому количеству данных!

    Тем не менее, риск получить неверные данные или быть заблокированным от получения каких-либо данных при использовании алгоритмов, торгующих реальными деньгами, абсолютно неприемлем.

    Мы думаем, что yfinance отлично подходит для прототипирования, или если вы новичок, или просто хотите загрузить кучу исторических данных.

    Но если вам нужна полная уверенность в том, что серьезная торговая система будет работать с абсолютной надежностью, мы настоятельно рекомендуем обратиться к официальному и альтернативному поставщику рыночных данных — желательно к тому, который утверждает, что предоставляет данные с низкой задержкой непосредственно с бирж.

    Polygon и IEX могут сделать хорошие ставки.

    Какие есть альтернативы библиотеке yfinance?

    РапидAPI

    Из двух альтернатив yfinance, которые мы рассмотрим, RapidAPI является наиболее отличной.

    Во-первых, хотя у него все еще есть бесплатный уровень ограниченного использования, вам придется платить за все, что превышает 500 запросов в месяц:

    Во-вторых, начать работу с yfinance не так просто, как с yfinance. Вам нужно будет зарегистрировать учетную запись, чтобы получить собственные API-ключи доступа.

    Тем не менее, большим плюсом RapidAPI является то, что вы можете использовать его с 15 различными языками, если по какой-то причине Python вам не подходит:

    Он также предлагает более широкий спектр данных, чем другие наши варианты, в частности, возможность загрузки рыночных новостей и аналитики, которая фантастически полезна, если вы хотите добавить степень анализа настроений в свою модель!

    Принятие мгновенных торговых решений на основе машинного сканирования новостей намного быстрее, чем это когда-либо делал человек, может быть одним из способов (хотя и немного неуверенным) получить торговое преимущество.

    Тем не менее, у RapidAPI есть несколько недостатков.

    Как вы можете видеть, запросы имеют среднюю задержку 1660 мс, что не так уж и страшно, но альтернативные поставщики данных, такие как polygon.io, предлагают задержки от 200 мс до 1 мс — большая разница.

    Больше беспокоит тот факт, что запросы имеют только 98% успешности . Сбой 1 из 50 запросов данных может иметь большое значение, если у вас есть система, торгующая реальными деньгами, особенно если вы совершаете более низкие запросы. Определенно что-то рассмотреть.

    Возвращаемые результаты также могут быть в довольно длинных и вложенных JSON-файлах, что делает данные более сложными для подготовки к использованию, чем при использовании yfinance:

    Тем не менее, еще одним плюсом RapidAPI является то, что он предлагает огромный набор API для других целей, поэтому ознакомление с тем, как использовать их API для данных Yahoo Finance, может быть легко перенесено на использование другого их API для другого проекта в будущее.

    Таким образом, RapidAPI предлагает очень ограниченный уровень бесплатного пользования, но, возможно, при использовании решения, где некоторые люди платят, более вероятно, что любые проблемы со скрейпингом из-за изменений структуры Yahoo Finance будут решены быстрее.

    Его также сложнее использовать и с ним сложнее начать работу, но он предоставляет больший диапазон данных, чем наши два других варианта.

    yahoo_fin

    yahoo_fin — бесплатная библиотека с открытым исходным кодом, похожая на yfinance.

    Вы можете найти документацию здесь.

    Он предлагает тот же набор данных, что и yfinance, но, в частности, имеет несколько функций, которые генерируют для вас все тикеры для определенных рынков:

    • tickers_dow()
    • tickers_nasaq()
    • tickers_other()
    • tickers_sp500()

    полезная функция, которой не хватает yfinance.

    На самом деле мы сосредоточимся на библиотеке yahoo_fin в разделах с примерами нашей родительской статьи Yahoo Finance API — полное руководство, поэтому мы не будем больше говорить об этом здесь.

    Как начать работу с библиотекой yfinance?

    Установка

    Начать работу с библиотекой yfinance очень просто.

    Имеет следующие зависимости:

    • pandas >= 0. 24
    • numpy >= 1.15
    • запросы >= 2.21
    • многозадачность >= 0.0.7

    Все они входят в стандартную комплектацию при установке Anaconda, но для некоторых их действительно легко установить вручную почему у вас их нет.

    После этого все просто:

     $ pip install yfinance --upgrade --no-cache-dir 

    или

     $ conda install -c ranaroussi yfinance 

    для установки yfinance.

    Макет библиотеки

    Сам макет тоже очень простой, всего три модуля:

    • yf.Tickers
    • yf.download
    • yf.pandas_datareader
    • 8 9 00198

    Практически все методы находятся в модуле Тикеры .

    Модуль загрузки предназначен для быстрой загрузки исторических данных нескольких тикеров одновременно.

    и pandas_datareader предназначены для обратной совместимости с устаревшим кодом, который мы проигнорируем как не относящийся к делу, поскольку, если вы читаете это, вы, вероятно, новый пользователь библиотеки!

    Как загрузить исторические данные с помощью библиотеки yfinance?

    Демо с одним тикером

    Во-первых, давайте импортируем yfinance как yf и создадим себе объект тикера для определенного тикера (акции):

     импортировать yfinance как yf
    aapl=yf. Ticker("aapl")
    аапл 
     yfinance.Ticker объект 
     

    Помните, что теперь мы используем этот объект тикера aapl почти для всего — вызывая для него различные методы.

    Чтобы получить исторические данные, мы хотим использовать метод history() , который является самым «сложным» методом в библиотеке yfinance.

    На вход принимаются следующие параметры:

    • период : период данных для загрузки (используйте параметр периода или используйте начало и конец) Допустимые периоды:
      • 1д”, “5д”, “1мес”, “3мес”, “6мес”, “1г », «2y», «5y», «10y», «ytd», «max»
    • interval : интервал данных (данные 1 м доступны только за последние 7 дней, а интервал данных <1d для последние 60 дней) Допустимые интервалы:
      • « 1 мин», «2 мин», «5 мин», «15 мин», «30 мин», «60 мин», «9 мин».0м», «1ч», «1д», «5д», «1нед», «1мес», «3мес»
    • начало : Если точка не используется – в формате (гггг-мм-дд) или дата и время.
    • конец : Если точка не используется – в формате (гггг-мм-дд) или дата/время.
    • препост : Включить в результаты обычные рыночные данные до и после? (По умолчанию  False ) – обычно нет необходимости изменять это значение с False
    • auto_adjust : автоматически настроить все OHLC (цены открытия/максимума/минимума/закрытия)? (по умолчанию True )- просто оставьте это всегда как true и не беспокойтесь об этом
    • действия : Загрузить дивиденды по акциям и события дробления акций? (По умолчанию True )

    Это может показаться немного сложным, но в основном вы будете просто изменять период (или начало и конец) и параметры интервала.

    Итак, например, чтобы получить 1-минутные исторические данные для Apple между 06.02.2020 и 06.07.2020 (британский формат), мы просто используем объект тикера, который мы создали и запустили:

     aapl_historical = aapl. history(start="2020-06-02", end="2020-06-07", interval="1m")
    aapl_исторический 

    Это так просто!

    Демо с несколькими бегущими строками

    Чтобы загрузить исторические данные для нескольких тикеров одновременно, вы можете использовать модуль загрузки .

    Он принимает в основном те же аргументы, что и метод history() для объекта тикера, но дополнительно:

    • group_by : группировка по столбцу или бегущей строке («столбец»/«бегущая строка», по умолчанию — «столбец»)
    • темы : использовать темы для массовой загрузки? (True/False/Integer)
    • proxy : URL-адрес прокси-сервера, если вы хотите использовать прокси-сервер для загрузки данных (необязательно, по умолчанию — None)

    Apple и Google одновременно мы можем запустить:

     data = yf.download("AMZN AAPL GOOG", start="2017-01-01", end="2017-04-30")
    данные 

    Обратите внимание, что по умолчанию без указания интервала используются ежедневные данные.

    Затем, если мы хотим сгруппировать по тикеру вместо Open/High/Low/Close, мы можем сделать:

     data = yf.download("AMZN AAPL GOOG", start="2017-01-01",
                        end="2017-04-30", group_by='тикеры')
    данные 

    Как загрузить фундаментальные данные с помощью библиотеки yfinance?

    Отношение цены к прибыли

    Вы можете получить отношение цены к доходу с помощью метода Ticker.info() .

    Ticker.info() возвращает словарь с широким спектром информации о тикере, включая такие сведения, как сводное описание, количество сотрудников, рыночная капитализация, объем, соотношение P/E, дивиденды и т. д. — рекомендуем ознакомиться с ним. себя, так как это занимает много места, чтобы показать, но, короче говоря, если вы не можете найти информацию, которую ищете, с помощью других методов, попробуйте метод info ()!

    Чтобы получить точное соотношение цены и прибыли, найдите в словаре слово «forwardPE»:

     aapl = yf.Ticker("aapl")
    aapl. info['forwardPE'] 
     22.799461 
    Дивиденды

    Вы также можете получить годовой дивиденд в % с помощью info():

     aapl.info['дивидендрейт'] 
     3.2800000000000002 

    А если вам нужна разбивка каждой выплаты дивидендов по мере ее возникновения и даты, вы можете использовать Тикер . дивиденды() :

     апл.дивиденды 
     Дата
    11 мая 1987 г. 0,00214
    10 августа 1987 г. 0,00214
    1987-11-17 0,00286
    12 февраля 1988 г. 0,00286
    1988-05-16 0,00286
                   ...
    2019-05-10 0.77000
    2019-08-09 0.77000
    2019-11-07 0.77000
    07.02.2020 0.77000
    08.05.2020 0.82000
    Имя: Дивиденды, Длина: 67, dtype: float64 
    Основные данные с несколькими тикерами одновременно

    Мы также можем захотеть получить основные (или другие) данные сразу для нескольких тикеров.

    Давайте попробуем это сделать, а затем попробуем сравнить наши тикеры по определенному атрибуту!

    Для этого мы можем начать с создания списка тикеров, для которых мы хотим получить данные, и пустого словаря для хранения всех данных.

    Нам нужно будет использовать библиотеку pandas для управления фреймами данных:

     импортировать панд как pd
    tickers_list = ["aapl", "goog", "amzn", "BAC", "BA"] # список примеров
    tickers_data= {} # пустой словарь 

    Затем мы просматриваем список тикеров, в каждом случае добавляя в наш словарь пару ключей , значений , где ключ — это тикер, а значение — кадр данных, возвращаемый метод info() для этого тикера:

     для тикера в tickers_list:
        ticker_object = yf.Ticker(тикер)
        #конвертировать вывод информации() из словаря в фрейм данных
        temp = pd.DataFrame.from_dict(ticker_object.info, orient="index")
        temp.reset_index (на месте = Истина)
        temp.columns = ["Атрибут", "Последние"]
        
        # добавить (тикер, кадр данных) в основной словарь
        tickers_data[тикер] = темп.
    тикеры_данные 

    Затем мы объединяем этот словарь фреймов данных в один фрейм данных:

     comb_data = pd.concat(tickers_data)
    комбинированные_данные = комбинированные_данные. reset_index()
    комбинированные_данные 

    Затем удалите ненужный столбец «level_1» и очистите имена столбцов:

     del Combined_data["level_1"] # очистить ненужный столбец
    Combined_data.columns = ["Ticker", "Attribute", "Recent"] # обновить имена столбцов
    комбинированные_данные 

    Отлично, теперь мы знаем, как получить любые данные, которые мы хотим для нескольких тикеров одновременно, в один и тот же фрейм данных!

    Но как легко сравнивать по определенному признаку?

    Сравнение по определенному атрибуту

    На самом деле это довольно просто, давайте попробуем использовать один из атрибутов в info() fullTimeEmployees count:

     сотрудников = комбинированные_данные[комбинированные_данные["Атрибут"]=="fullTimeEmployees"].reset_index()
    del employee["index"] # очищаем ненужную колонку
    сотрудников 

    Итак, теперь у нас есть кадр данных только с подсчетами сотрудников — одна запись на тикер — и теперь мы можем упорядочивать по столбцу «Последние»:

     employee_sorted = employee. sort_values ​​(«Последние», по возрастанию = Ложь)
    сотрудники_сортированные 

    Бум! Очевидно, что это не требуется, если в нашем списке всего 5 тикеров, но это фантастически простой и мощный способ быстрого сравнения по определенному атрибуту, если бы у нас был список тикеров всего рынка!

    Вы можете легко использовать этот же метод для сравнения любого атрибута, который вы хотите!

    Как загрузить торговые данные с помощью библиотеки yfinance?

    Вы можете найти данные для всех трех показателей рыночной капитализации, объема и максимумов и минимумов с помощью метода info().

    Рыночная капитализация

    Чтобы получить рыночную капитализацию, используйте:

     aapl.info["marketCap"] 
     1525510701056
     
    Том

    Чтобы найти текущий том, выполните:

     aapl.info["том"] 
     8021292 

    Если вам нужен средний объем за последние 24 часа, введите:

     aapl.info["среднийобъем"] 
     42532806 

    И, наконец, если вам нужен средний объем за последние 10 дней:

     aapl. info["averageVolume10days"] 
     39594100 
    Взлеты и падения

    Помните, что вы можете найти максимумы и минимумы для любого временного интервала:

    • " 1м", "2м", "5м", "15м", "30м", "60м", "90м", "1ч", "1д", "5д", "1нед", "1мес" , «3mo»

    в течение желаемого периода с помощью метода history() и настройки интервала.

    Например, чтобы получить еженедельные максимумы и минимумы для всех существующих исторических данных, используйте:

     aapl_historical = aapl.history(период="макс", интервал="1 нед")
    aapl_исторический 

    Вау, данные почти за 40 лет!

    Просто отфильтруйте кадр данных с помощью:

    • aapl_исторический["Высокий"]
    • aapl_исторический["Низкий"]

    И так далее, чтобы получить отдельные столбцы.

    Кроме того, вы можете использовать info() для получения следующей полезной информации о максимуме/минимуме:

    • dayHigh
    • dayLow
    • FiveTwoWeekHigh
    • FiveTwoWeekLow

    Например:

     aapl. info["fiftyTwoWeekHigh"] 
     354,77 

    Как загрузить данные опционов с помощью библиотеки yfinance?

    Вкратце, опционы — это контракты, дающие трейдеру право, но не обязательство , купить (колл) или продать (пут) базовый актив, который они представляют, по определенной цене в определенную дату или до нее.

    Для загрузки данных опционов мы можем использовать option_chain() 9Метод 0004. На вход принимает параметр:

    • дата : (ГГГГ-ММ-ДД), срок годности. Если Нет, вернуть все данные опций.

    И имеет методы opt.call и opt.puts .

    Как узнать даты истечения срока действия?

    Чтобы получить различные даты истечения опционов для определенного тикера, это так же просто, как:

     аапл.опции 
    Как получить данные о вызовах?

    Чтобы получить данные о звонках, мы можем сделать:

     # получить данные вызовов цепочки опционов на конкретную дату экспирации
    opt = aapl. option_chain (дата = '2020-07-24')
    опт.вызовы 
    Как получить данные путов?

    Чтобы получить данные о путах, делаем:

     опт.путы 

    Наконец, opts сам по себе возвращает объект тикера, содержащий как вызовы, так и данные, если это вам полезно!

    Распространенные ошибки

    Как мы уже отмечали в начале этой статьи, yfinance — это неофициальное решение для сбора данных из Yahoo Finance, поэтому оно может быть взломано, если Yahoo Finance изменит какой-либо из его макетов.

    К сожалению, частично это уже произошло, и при написании этого руководства были обнаружены следующие проблемы:

    • Тикеры , объект нескольких тикеров для одновременного взаимодействия с несколькими тикерами, похоже, не работает. Мы предоставили более ручной обходной путь для этого в разделе «Основные данные с несколькими тикерами одновременно».
    • финансовые отчеты , квартальные_финансовые отчеты , баланс_отчет , квартальный_баланс_лист , денежный поток , квартальный_денежный поток , прибыль , квартальный_заработок Тикер методы не работают и возвращают пустые кадры данных.

    Это большая проблема, так как во многих случаях нет альтернативного пути к данным в некоторых из этих методов из других методов в yfinance.

    Если вы создаете что-то, для чего требуются какие-либо из этих данных, например, балансовые отчеты и отчеты о доходах и движении денежных средств, и при этом вам нужен бесплатный доступ к данным Yahoo Finance, ознакомьтесь с yahoo_fin library в разделе примеров нашего руководства https://algotrading101.com/learn/yahoo-finance-api/, в котором есть рабочие методы для получения всех этих данных!

    Заключительные мысли

    Как мы только что продемонстрировали, yfinance НЕ является надежной ставкой для создания критической инфраструктуры.

    Если вы хотите создавать алгоритмы, торгующие реальными деньгами, мы настоятельно рекомендуем вам использовать официальный источник данных/API, желательно напрямую подключенный к обмену данными и с низкой задержкой. Что-то вроде Polygon.io или IEX может подойти вам больше.

    Если вы абсолютно ДОЛЖНЫ использовать данные Yahoo Finance специально, мы рекомендуем, по крайней мере, заплатить за неофициальный API, такой как RapidAPI, где вы делаете хорошую ставку на то, что активная команда разработчиков постоянно поддерживает API. Помните, что у RapidAPI все еще есть бесплатный уровень ограниченного использования!

    Тем не менее, yfinance может быть полезно использовать для создания тестовых приложений новичкам, так как его разделы, которые действительно работают, фантастически легко начать и использовать.

    Особая сильная сторона yfinance заключается в том, что threads Параметр yf.download позволяет очень быстро загружать историю для нескольких тикеров, если установлено значение True !

    Вы можете найти код, использованный в этой статье здесь.

    10001268611_02_PN-264521

    %PDF-1.6 % 1 0 объект >/OCGs[22 0 R]>>/Страницы 3 0 R/Тип/Каталог>> эндообъект 2 0 объект >поток application/pdf

  • 25-1/2" Ш x 11" В - 20# белая высокосортная бумага - чернила черные 6 страниц - Z-фальцовка или (3) листа 8-1/2" Ш x 11" В - сшитые Окончательный сгиб — 8-1/2" Ш x 5-1/2" В
  • Гэри Ушаков
  • 10001268611_02_PN-264521
  • 1492-AIFM8-3
  • 1492-РАИФМ8-3
  • Adobe Illustrator 24. 3 (Windows)2021-04-12T15:47:34+02:002021-04-12T15:47:34+02:002021-04-12T15:47:34+02:00
  • 25644JPEG/9j/4AAQSkZJRgABAgEASABIAAD/ 7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGHURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgALAEAAWER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDagQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fh2+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fh2+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Ak3n/AE+40/zNfxxXdwlv GytxFZW4GIOTXix7E+2SQmfk3z/e+WbSeC/S61GJyn1dXLKkQDHlwVY2+20lTgpWYWn5tQTtR7Bb deQQPJM5HM/sUjhc8voxpbZDp3m3SdSiS39YRXs4K+kqyOFJPEfGyID2xpLEtNhu/KNwlxqvmENp 9hEwurOK2uGVqJV29OINUqqfDQHAqaX/AJ20DzNYz6NoF7KdRuljWKc2twkcXNqrI7SxxqV+Gmxw qkmiHRfJuofpDVdXSS1kUW8Mcdnckoakg/ArcWLykbjpits60DzbofmBpl0t5ZkhALySQTQqasyE D1VQk1Q9sCvjjUfzI87aU72yazZXyPAhjktVQoikPRf3sMbckJNdvlildB+dP5hRrIsWsgRRzp6a VQqtOHwqDHsonNdhtucUKs/57/miYZf8Ac+wPp3ABVkBHxbEUTqP2cUvR/wAjfzR87+ZfzCj03WNV N1ZenNKYAUoSsIpsqLsCa/PFWaeW9T/Me98p3lzpM11fapJcFIvrBiASPiKSKbpIlI5cgQtdxhYp q2reerGyUavqh2e7lioFKWgb1VjBPpJT951Ne1R4YqjbLUPO2pW6XFldlrZ3HGVI4DVVYkkckoyu vGlPGoOKsu0dtR+q+nqBL3CEj1iix81JNPhVmFademBKRQ6p5ksNXmhv1sxp0jO8TyXYEwVa0KoV rRvh37YrSZ2/nDyzOs7rqMUaW5AmecmBQWAIoZQgPXtimiirvXdHtFZri8iXgaOobmwJ/wAlat+G K01p2v6NqSQtZ3ccpnQyRRE8JSq9T6b8XFK9xiimOLrPmDT9buI7p7JtO50b1LotMgqStIwKryUj anvjstFkdvr+iXCwmK+hJuNoEZwjsaFqBGo1aAmlMU0oXvm3y5ZhDNfRkOQFMXKYVLBd/SD03PfF aRttqem3UzwW13DPNGoeSKORXZVYkKxVSSASppiimOXus69Y+YJwDZvptY+SzXYWUI32nWLiSvGh FP2voxWinlr5h0O69IQ30JaduEMbMEd248+Ko/FieIJpTFNKkus6XGZFNyjyRAtLHFWV1C9apHyb 8MUImORJYw6V4tWlQVPh0NDirzHz3+nNF1mE2Gs6kUvYmdIWkR4omWZaBB6YJBMgrydjTYbdSEJf YecdcsmMl2Ly6LAKGuJmjUVLSueKcV+Fdvop0wqnttrmsokTMWjiZgJHl+vSkhmWOMIVr1h3idq7 4FZFoWr6pdPBFKkaJ8RnBFwz8fjAo8iqK8l79voxS85/Mv8AKvzlr/m7UtT0tYWsr22t4U5X01ow eFHUlliRuQ/edziqAsdHt5by9023vopru2DQ3UCyoUtHjNJVMofgrx8vssa9NsKGTw/l3eyKrpBF EByIeNY5CX5VDcjN2q4I98FqmemeRb2DVbG6dYkFs6SSSGJAzGPp9mVqdT0HX2xtUg/MX8wfLmga /bp+k4LUtFI95bCCO5KiNqLJJQSKod5KbshIB3rTFLO9Maz1Hy3pmpm1t45rxLSWQQhGQNIyF1Vl 5VXcjrgV5l5s/MzQ9L8+3eizTLpD6ekTTxyQLMjvMpMe3Bo+HHi7/GjcTUciDxKvXdA/e6VZ3klm lld3NvFJcQqgjKOyhmQjqKE9DgV8K+dtI0TS763g0mczQzWMc0xlf1CsxLggM1ra0HEVoFb/AFq4 pSKFQFmqUX9+Ni6Haq7/AGOMKulC+jJ8cf2J/wBpP5v9TFXrP/ONBX/la8a8lP8Ao1wRxKn/AHUP BVxV9E+Z10zyJ5Mvp9B01Vc8Rwjf0WYs4Xk0zbkpzqBWtPatCh5pPpnmbzRq0uo2QbUIf9ФсИ7йС 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 НрдфВаСД6схА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 0ajnxr25Ur+OKv8A/9k=
  • xmp. did:7d8cc89b-270c-fc4f-a71d-8e110d16bdceuuid:d62424e7-1ba5-49db-b988-7a35f2164b4fuuid:07E820445085E011BDFA8CE4A8583EE7proof:pdfuuid:27a67334-6cb2-4d0b-aad6-271b873ded1bxmp.did:A27CF35A384AE41199938B9CC789991Duuid:07E820445085E011BDFA8CE4A8583EE7default
  • сохраненоxmp.iid:A27CF35A384AE41199938B9CC789991D2014-10-03T09:05:47-05:00Adobe Illustrator CS5/
  • сохраненоxmp.iid:7d8cc89b-270c-fc4f-a71d-8e110d16bdce2021-04-12T15:47:30+02:00Adobe Illustrator 24.3 (Windows)/
  • PrintAdobe Illustrator1FalseTrue8.50000011.000000Inches
  • ArialMTArialRegularOpen TypeVersion 7.00Falserial.ttf
  • ArialNarrow-BoldArialNarrow BoldOpen TypeВерсия 2.40FalseARIALNB.TTF
  • Wingdings-RegularWingdingsRegularOpen TypeVersion 5.01Falsewingding.ttf
  • BarlowCondensed-RegularBarlow CondensedRegularOpen TypeVersion 1. 422; ttfaautohint (v1.8) Ложь
  • Barlow-RegularBarlowRegularOpen TypeVersion 1.422False
  • BarlowCondensed-BoldBarlow CondensedBoldOpen TypeVersion 1.422; ttfaautohint (v1.8) Ложь
  • CalibriCalibriRegularOpen TypeVersion 6.23FalseCalibri.ttf
  • MyriadPro-RegularMyriad ProRegularOpen TypeВерсия 2.106;PS 2.000;hotconv 1.0.70;makeotf.lib2.5.58329FalseMyriadPro-Regular.otf
  • MyriadPro-BoldMyriad ProBoldОткрытый типВерсия 2.115;PS 2.000;hotconv 1.0.81;makeotf.lib2.5.63406False6846
  • Голубой
  • Пурпурный
  • Желтый
  • Черный
  • Образец по умолчанию Group0
  • БелыйCMYKPROCESS0.0000000.0000000. 0000000.000000
  • ЧерныйCMYKPROCESS0.0000000.0000000.000000100.000000
  • 80% черныйCMYKПРОЦЕСС0.0000000.0000000.00000080.000000
  • 60% черныйCMYKPROCESS0.0000000.0000000.00000060.000000
  • 40% черныйCMYKPROCESS0.0000000.0000000.00000040.000000
  • 20% черныйCMYKPROCESS0.0000000.0000000.00000020.000000
  • Красный M=100 Y=100CMYKPROCESS0.000000100.000000100.0000000.000000
  • 75% Красный M=75 Y=75CMYKPROCESS0.00000075.00000075.0000000.000000
  • 50% Красный M=50 Y=50CMYKPROCESS0.00000050.00000050.0000000.000000
  • 25% Красный M=25 Y=25CMYKPROCESS0. 00000025.00000025.0000000.000000
  • Зеленый C=80 Y=100CMYKPROCESS80.0000000.000000100.0000000.000000
  • 75% Зеленый C=60 Y=75CMYKPROCESS60.0000000.00000075.0000000.000000
  • 50% Зеленый C=40 Y=50CMYKPROCESS40.0000000.00000050.0000000.000000
  • 25% Зеленый C=20 Y=25CMYKPROCESS20.0000000.00000025.0000000.000000
  • Синий C=100 M=50CMYKPROCESS100.00000050.0000000.0000000.000000
  • 75% Синий C=75 M=37.5CMYKPROCESS75.00000037.5000000.0000000.000000
  • 50% Синий C=50 M=25CMYKPROCESS50.00000025.0000000.0000000.000000
  • 25% Синий C=25 M=12,5CMYKPROCESS25. 00000012.5000000.0000000.000000
  • Оранжевый M=50 Y=100CMYKPROCESS0.00000050.000000100.0000000.000000
  • 75% Оранжевый M=37,5 Y=75CMYKPROCESS0.00000037.50000075.0000000.000000
  • 50% Оранжевый M=25 Y=50CMYKPROCESS0.00000025.00000050.0000000.000000
  • 25% Оранжевый M=12,5 Y=25CMYKPROCESS0.00000012.50000025.0000000.000000
  • Фиолетовый C=50 M=90CMYKPROCESS50.00000090.0000000.0000000.000000
  • 75% Фиолетовый C=37,5 M=67,5CMYKPROCESS37.50000067.5000000.0000000.000000
  • 50% Фиолетовый C=25 M=45 CMYKPROCESS25.00000045.0000000.0000000.000000
  • 25% Фиолетовый C=12,5 M=22,5CMYKPROCESS12. 50000022.5000000.0000000.000000
  • Azure C=80CMYKPROCESS80.0000000.0000000.0000000.000000
  • 75% Azure C=60CMYKPROCESS60.0000000.0000000.0000000.000000
  • 50% Azure C=40CMYKPROCESS40.0000000.0000000.0000000.000000
  • 25% Azure C=20CMYKPROCESS20.0000000.0000000.0000000.000000
  • ЖелтыйCMYKPROCESS0.0000000.000000100.0000000.000000
  • 75% ЖелтыйCMYKPROCESS0.0000000.00000075.0000000.000000
  • 50% ЖелтыйCMYKPROCESS0.0000000.00000050.0000000.000000
  • 25% ЖелтыйCMYKPROCESS0.0000000.00000025.0000000.000000
  • Новый образец цвета 83PROCESS100. 000000CMYK0.0000000.0000000.000000100.000000
  • Библиотека Adobe PDF 15.00 конечный поток эндообъект 3 0 объект > эндообъект 5 0 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Свойства>>>/Thumb 290 R/TrimBox[0. 0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 6 0 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Свойства>>>/Thumb 31 0 R/TrimBox[0.0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 7 0 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Свойства>>>/Thumb 33 0 R/TrimBox[0.0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 8 0 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Свойства>>>/Thumb 35 0 R/TrimBox[0.0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 90 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Свойства>>>/Thumb 37 0 R/TrimBox[0.0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 10 0 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Свойства>>>/Thumb 39 0 R/TrimBox[0.0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 11 0 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Свойства>>>/Thumb 41 0 R/TrimBox[0.0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 24 0 объект >/Ресурсы>/Шрифт>/ProcSet[/PDF/Text]/Properties>>>/Thumb 44 0 R/TrimBox[0.0 0.0 612.0 792.0]/Тип/Страница>> эндообъект 42 0 объект >поток HWkoH ОД H :3V)BM#LͿ d{;Iٮ{suq;EW#\-:?;=?~XuECۥзZ-6P:. c:[r}aOf1Ϳfw|r;lήhT\KJU)rILf#e\*Wf6zY% E}[8Xvzc*dho9\s

    Высокоэффективный фотокатализатор для разложения газа, извлеченного из почвы под действием видимого света

    3 , Шых-Вэй Чен 4 , Жэнь-Цзе Вэй 2 , Шэн-Цзе Ю 2 , Ya-Fen Wang  2

    + Показать информацию об авторах

    Факультет гражданского строительства, Христианский университет Чунг Юань, Таоюань 32023, Тайвань
    Факультет экологического проектирования им. 32023, Тайвань
    Бюро по охране окружающей среды, правительство города Цзяи, Цзяи 60045, Тайвань
    Администрация по охране окружающей среды Исполнительный юань, город Тайбэй 10042, Тайвань


    Получено: 6 октября 2019 г.
    Пересмотрено: 27 октября 2019 г.
    Принято: 9 ноября 2019 г.
    Скачать Цитата: ||https://doi.org/10.4209/aaqr.2019.10.0499

    • Скачать: PDF


    Цитировать эту статью:

    Фенелон, Э. , Хуссейн, А., Ян, Т.Х., Чанг, Г.М., Чен, С.В., Вэй, Р.Дж., Ю, С.Дж. и Ван, Ю.Ф. (2019). Модуль высокого фотокатализатора по деградации извлеченного газа из почвы под видимым светом. Аэрозоль Air Qual. Рез. 19: 2865-2878. https://doi.org/10.4209/aaqr.2019.10.0499


    Основные моменты
    • Коммерческий фотокаталитический модуль потенциально может обрабатывать добычу почвенного газа.
    • Коммерческий фотокаталитический модуль очень стабилен в течение длительного времени эксперимента.
    • Оптимальная влажность окружающей среды для всего модуля составляла 4 %.

    РЕЗЮМЕ

    Фотокаталитическое окисление (ФКО) является многообещающей технологией очистки воздуха благодаря низким эксплуатационным расходам, потенциально длительному сроку службы и простоте обслуживания. С целью установления высокой эффективности удаления твердофазной экстракции (SVE) в данном исследовании использовали активированный уголь для адсорбции SVE и диоксид титана, легированный лантаном, в качестве фотокатализатора. Фотокатализатор наносили на ткань из стекловолокна и наносили на фотокаталитический модуль, а затем проводили разложение толуола с концентрацией 15 частей на миллион. Адсорбционный модуль использовался для устранения остаточных загрязнений. Рентгеновская дифракция (XRD), сканирующая электронная микроскопия (SEM) и спектроскопия диффузного отражения (DRS) показали, что синтез катализатора был успешно подготовлен, и фотокаталитический коммерческий модуль был разработан из четырех фотокаталитических тканей из стекловолокна под видимым светом. Адсорбционный модуль был выполнен из пяти слоев активированного угля, каждый слой содержал 30 г наборов активированного угля в фотокаталитическом модуле. Когда относительная влажность окружающей среды составляет менее 4%, эффективность удаления превышает 9%.5% в течение 1 часа. Экспериментальные результаты показывают, что фотокаталитический коммерческий модуль собран с расходом менее 3 литров в минуту, а эффективность удаления может быть стабильной в течение более 72 часов.


    Ключевые слова: фотокатализ; Добыча почвенного газа; Диоксид титана; Толуол; Видимый свет.

    ВВЕДЕНИЕ

    Большое значение имеет качество воздуха в помещении, особенно в общественных местах, таких как школы, офисы, торговые центры. в основном из-за герметичности зданий для энергосбережения и в некоторых случаях из-за плохой вентиляции. Однако в большинстве систем не учитывается концентрация загрязняющих веществ в помещении, которая может колебаться во времени (Li and Biswas, 2017).

    Фотокатализатор

    — это метод, использующий световую энергию с потенциальным уровнем для обеспечения энергии для химической реакции (Feng et al. , 2019). В последние годы, в связи с развитием науки и техники, состоянием уровня жизни людей, в основном у людей есть собственные автомобили; люди используют все больше и больше топлива в транспорте. Подземные нефтяные резервуары и большие резервуары для хранения нефтехимических продуктов на бытовых заправочных станциях устарели из-за ослабления трубопроводов или оседания грунта, что приводит к утечке хранящегося в резервуаре материала и приводит к загрязнению почвы и грунтовых вод. Некоторые предварительные исследования показали, что наиболее распространенными загрязняющими веществами в почве и грунтовых водах, загрязненных нефтью, являются общее количество нефтяных углеводородов (TPH), бензол, толуол, ксилолы, этилбензол, фенол (Irie и др. , 2003) и других летучих органических углеродов (ЛОС), которые вызывают повреждение центральной нервной системы (Lerner et al. , 2012; Hua et al. , 2018; Juuti et al. , 2019) человеческого организма а также ухудшение состояния окружающей среды. Кроме того, источниками ЛОС являются промышленность, коммерческие объекты, государственные учреждения, жилые домохозяйства, добыча и переработка ископаемого топлива и сжигание биомассы (Ou-Yang et al. , 2017; Widiana et al. , 2017; Алвим и др. , 2018; Ху и др. , 2018). Тем не менее комплексная глобальная оценка характера и концентрации выбросов ЛОС, связанных с операциями по переработке, никогда не проводилась (Guerra et al. , 2017). ЛОС — это всеобъемлющий термин для многочисленных органических соединений с достаточно низкой температурой кипения и, следовательно, высокой летучестью (Ishikawa et al. , 2018; Wang et al. , 2018). Из-за сложности и уникальности мебельной промышленности, а также различий в технологиях контроля выбросов между предприятиями ни один коэффициент выбросов не может эффективно измерять выбросы ЛОС (Cheng и др. , 2018).

    Для удаления летучих органических соединений (ЛОС) из почвы или грунтовых вод общепринятой бытовой технологией очистки является удаление твердых паров (SVE) (Yu et al. , 2019). Принцип заключается в непрерывном использовании вакуумной откачки через насосную скважину для создания отрицательного давления из загрязненной почвы (Ратфельдер и др. , 1995), вызываемого загрязняющими веществами, хранящимися в почве, и переноса загрязнителей из твердой или жидкой фазы в газовая фаза, загрязняющие вещества могут быть извлечены в направлении насосной скважины с различным давлением для извлечения газа в почве. Наконец, газ в почве можно удалить и сбросить после обработки.

    В целях соблюдения правил, большая часть внутреннего применения используется под башнями с активированным углем для обработки загрязняющих веществ. Таким образом, это исследование было предназначено для разработки коммерческого модуля, который может быть напрямую подключен к отработке метода SVE с использованием диоксида титана, легированного лантаном, и небольшого количества активированного угля.

    Хотя диоксид титана обладает высокой фотокаталитической активностью, однако он может вступать в реакцию только в ультрафиолетовом свете. Многие ученые стремятся улучшить фотокаталитическую активность диоксида титана в видимом свете, чтобы решить проблему загрязнения окружающей среды для экономии энергии и повышения эффективности. Результаты видны сквозь металл (Eshaghi and Moradi, 2018; Gao и др. , 2019; Матос и др. , 2019; Цю и др. , 2019) неметалл (Hoseini et al. , 2017; Barmeh et al. , 2018; Ho et al. , 2019; Shafei and Sheibani, 2019; Tbessi 909 3 , 209 9000.9000. и редкоземельные элементы (Chiou and Juan, 2007; Yajun et al. , 2011; Shao et al. , 2018; Thiruppathi et al. , 2018; Singh et al. , 2018) peded с титаном диоксид может эффективно улучшить эффективность разложения диоксида титана на загрязнители.

    В этом исследовании элемент лантана был подмешан к коммерческому диоксиду титана и приготовлен золь-гель методом покрытия из диоксида титана, легированного лантаном, для уменьшения ширины запрещенной зоны катализатора и улучшения фотокаталитической активности материала в видимом свете. Кроме того, TiO 2 , легированный La, может способствовать разделению электронов и дырок, поскольку La 3+ может оказывать синергетический эффект и захватывать фотоиндуцированные электроны (Huang et al. , 2017). Кроме того, фотокатализатор был нанесен на ткань из стекловолокна и нанесен на фотокаталитический модуль. Наконец, процесс адсорбции остаточного выхлопного газа осуществлялся через адсорбционный модуль. В этой статье фотокаталитический коммерческий модуль был собран из адсорбционного модуля и фотокаталитического модуля, которые используются для уменьшения содержания толуола как опасного газа, присутствующего в почве, посредством процесса извлечения паров почвы (SVE) для обработки почвенных газов. Наконец, обработка производительности фотокаталитического коммерческого модуля была протестирована в реальных условиях.


    ЭКСПЕРИМЕНТАЛЬНЫЙ


    Материалы

    Следующие химические вещества, использованные в этом исследовании, были аналитической чистоты (Huang et al. , 2017). Его не нужно очищать, и его можно использовать напрямую, все разведения были обработаны деионизированной водой, приготовленной Lab Water Purification Systems (ELGA Lab Water, Великобритания). Используются следующие химикаты: тетрабутилтитанат (ТБОТ) от Alfa Aesar, безводный этанол из Японии (990,5%), азотная кислота от Panreac AppliChem, нитрат лантана от FERAK, стандартный газ толуол от Ming yang Special Gas Company.


    Подготовка ткани из стекловолокна, покрытой диоксидом титана, легированным лантаном (La-TiO 2 )

    Метод получения La-TiO 2 относится к методу (Hoseini et al. , 2017). Сначала тщательно перемешивали 50 мл этанола и 10 мл тетрабутилтитаната при 400 об/мин в течение 10 минут. Это была реакция предшественника; Затем 5M 4,5 мл раствора азотной кислоты медленно добавляли к 4,5 мл деионизированной воды и растворяли в 1,864 г лантана (1% по массе). Это решение было реакцией катализатора; реакционный катализатор медленно добавляли по каплям к реакционному предшественнику и перемешивали при 800 об/мин в течение 10 минут. Кроме того, парафиновую пленку герметизировали, скорость доводили до 400 об/мин и перемешивали в течение 2 часов. После этого раствор геля помещали в печь при 60°С на 12 часов, затем гель удаляли и помещали при комнатной температуре. Для приготовления ткани из стекловолокна с покрытием золь-гель заливали в сосуд, а затем ткань из стекловолокна погружали в раствор для равномерного покрытия диоксидом титана, легированным лантаном. После сушки ее помещали в печь при 400°С на 2 часа для получения фотокаталитической ткани из стекловолокна.


    Разработка фотокаталитического модуля

    В этом исследовании была собрана конструкция фотокаталитического модуля, показанная на рис. 1, модуль представлял собой цилиндрический бак-реактор с внутренним диаметром 19 см и внутренней емкостью 6785,84 мл. Внутри модуля находятся 5 патронов для ламп, регулируемых в разных положениях; спереди, сзади, слева, справа и посередине модуля соответственно. В окружающей части средней лампы имелся трубчатый каркас, реакционный с камерой, куда отводился загрязнённый газ. В камере также размещена для реакции фотокаталитическая ткань из стекловолокна. Средний объем покрытия каждой ткани из стекловолокна составляет 80,62 мл легированного латанием золя диоксида титана. В этом исследовании в тесте модуля использовалась различная влажность окружающей среды и фотокаталитическое стекловолокно.


    Рис. 1. Фотокаталитический модуль.


    Разработка модуля адсорбции

    Спецификация адсорбционного модуля на рис. 2, общая спецификация адсорбционного модуля представляет собой акриловый модуль длиной 22 см, шириной 21 см и высотой 23,5 см. В конце нижней стороны устроена подставка длиной 2 см, шириной 2 см и высотой 10 см, а в верхней части модуля диаметр входного отверстия для воздуха составляет 1/4 дюйма. Внизу имеется вентиляционное отверстие диаметром 1/4 дюйма, а над и под модулем расположены расходящиеся каналы для облегчения быстрой диффузии загрязненного газа. Верхняя часть была снабжена ректификационной пластиной, а внутренняя спецификация ректификационной пластины составляла 14 × 12 отверстий с радиусом 0,2 см, и во избежание утечки внутренних загрязнений во время использования модуля каждый внутренний компонент снабжен с 8 отверстиями под винты (М3) и на внутреннюю поверхность нанесена смола.


    Рис. 2. Конструкция корпуса адсорбционного модуля .

    Технические характеристики внутреннего носителя адсорбционного модуля ректификационной пластины показаны на Рис. 3. Общая спецификация носителя представляет собой акриловый модуль длиной 20 см, шириной 16,5 см и высотой 3 см, а также ректификационным модулем. плита расположена внизу. Внутренняя спецификация пластины выпрямителя — 1412 отверстий радиусом 0,2 см.

    В этом исследовании были проверены оптимальные параметры адсорбционного модуля путем тестирования количества слоев в носителе, количества активированного угля и потока загрязняющих веществ. Каждый эксперимент был протестирован путем равномерного распределения активированного угля на носителе.


    Рис. 3. Конструкция носителя адсорбционного модуля.


    Поле для экспериментального режима

    Испытание использованного оборудования показано на Рис. 4. Трубопровод, используемый в системе, был присоединен к тефлоновой трубке диаметром 1/4. Сначала стандартный газ толуол в баллоне обрабатывался генераторами газа с нулевым значением при высокой температуре и через два поплавковых расходомера. Затем смешанный газ использовали для регулирования относительной влажности через другой поплавковый расходомер. Загрязняющие вещества тестируются с помощью модулей предварительного тестирования. Наконец, фотоионизационный детектор (ФИД) использовался для расчета скорости удаления загрязняющих веществ.

    Рис. 4. Лабораторная модель поля.


    РЕЗУЛЬТАТЫ И ОБСУЖДЕНИЕ


    Результат SEM

    Результат СЭМ показан на рис. 5(а) и 5(б) фотокатализатор, нанесенный на стекловолокно. Показано, что поверхность катализатора гладкая и имеет малое количество примесей. Было показано, что поверхность материала была покрыта катализатором, но катализатор имел крупный размер частиц, неравномерную дисперсию и агломерацию, а связывание было невысоким, а нагрузка была небольшой на рис. 5(c) и 5(d) фотокатализатор, покрытый активированным углем. В результате было доказано, что присутствие всего материала в композите и четкое признание того, что активированный уголь, нанесенный на фотокатализатор, показал наилучшую площадь поверхности, больший размер пор, более гладкую и более правильную форму. Это может быть объяснением того, почему фотокаталитические модули очень хорошо работают при фотодеградации толуола.

    Рис. 5. (а, б) Фотокатализатор, нанесенный на стекловолокно и (в, г) Фотокатализатор, нанесенный на активированный уголь.


    Результаты рентгенофазового анализа

    На Рис. 6 показан рентгеноструктурный анализ диоксида титана, легированного лантаном. Справочный номер диоксида титана JCPDS Card No. 21–1272, которые видны под углами 2θ (27.0, 35.6, 40.8, 54.0, 53.9, 56.1 и 61.0, соответствующие (110), (101), (200), (111), грани кристалла (210 ), (211), (220), (002) и (310), а также номер карты JCPDS для рутила 65–019. 1, и видно, что кристаллическая форма легированного диоксида титана претерпевает множество изменений. Кроме того, 1% диоксида титана, легированного лантаном, может показать, что все пики его кристаллической формы основаны на чистом диоксиде титана, из чего можно сделать вывод, что кристаллическая форма анатаза все еще была неповрежденной, до количества легирования 3% или более. показывает, что кристаллическая форма титана была разрушена. Кристаллическая форма анатаза диоксида титана также анализируется с помощью Search-Match программного обеспечения для XRD-анализа на фиг. 4.5.1-2 и по сравнению с pdf № 84–1286 библиотеки XRD. Можно видеть, что нелегированная кристаллическая форма диоксида титана является относительно полной, и все пики различных кристаллических форм анатаза в библиотеке являются обратной связью с кристаллической формой анатаза в этом исследовании.


    Рис. 6.
    Рентгенограмма диоксида титана, легированного лантаном.

    Можно сделать вывод, что экспериментальный метод позволяет эффективно производить диоксид титана, который можно использовать, а диоксид титана, легированный 1% церием, все еще может воспроизводить пик кристаллической формы анатаза.


    Результаты анализа DRS

    Ультрафиолетово-видимая спектроскопия диффузного отражения и поглощения анализ различных количеств легирования диоксида титана, ультрафиолетовый свет-видимый интервал электромагнитных волн непрерывного спектра в качестве источника света для освещения образца, для изучения относительной силы молекулы материала для спектрального поглощения и путем спектр наблюдения для анализа диапазона поглощения света образцом и качественного анализа материала.

    ( αHV ) 1/N = A ( HV - E G ) (1)

    Два способа получить ширину запрещенной зоны полупроводника из спектра DRS UV-Vis: метод перехвата; другой, который появляется чаще, — это метод Tauc polt из метода Tauc polt, в основном основанный на Tauc, Davis and Mott et al.  Предлагаемая формула, широко известная как график Тауца. Единицы формулы следующие: α — значение поглощения, h — постоянная Планка, v — частота, A — постоянная, Eg — ширина запрещенной зоны полупроводника. Показатель n напрямую связан с типом полупроводника: прямозонный полупроводник: n = 1/2; полупроводник с непрямой запрещенной зоной: n = 2. После построения графика (αhv)1/n для hv можно получить карту измерений ширины запрещенной зоны, а затем оценить изменение ширины запрещенной зоны.

    Согласно литературным данным, фотокатализатор, легированный эрбием, является полупроводником с непрямой запрещенной зоной, поэтому формула (αhv) 1/2 = A(hv – E g ), а данные спектра поглощения диффузного отражения в ультрафиолетовой и видимой областях используется в качестве эталона, а затем рассчитывается конверсия. Для данных о ширине запрещенной зоны и нарисуйте два графика в виде графика, чтобы наблюдать за изменением способности поглощения света.

    На рис. 7 показан анализ поглощения диффузного отражения в УФ-видимом диапазоне для различных количеств легирования диоксида титана. Легирование диоксида титана вызывает изменение диапазона поглощения образца. Огромное поглощение может быть связано с энергией, необходимой для возбуждения валентной зоны диоксида титана в зону проводимости, и было высказано предположение, что нелегированный диоксид титана находится в ультрафиолетовом диапазоне, поэтому световой интервал имеет хорошие характеристики поглощения.


    Рис. 7. Анализ поглощения диффузного отражения в УФ-видимом диапазоне различных количеств легирующих добавок на диоксиде титана.

    На Рис. 8 можно понять ширину полосы различных количеств легирования диоксида титана. Вспомогательное наблюдение за изменением ширины полосы, ширина полосы нелегированного диоксида титана 3,06 эВ; однако, 1 мас.% La-TiO 2  ширина полосы 2,57 эВ, 3 мас.% La-TiO 2  ширина полосы 2,3 эВ, 5 мас.% La-TiO 2  имеет ширину полосы 1,85 эВ. В соответствии с изменением ширины полосы чем меньше ширина запрещенной зоны, тем выше степень красного смещения, так что можно получить легированный фотокатализатор. Он способен изменять свою светопоглощающую способность и вызывать эффект красного смещения. Его легирование может уменьшить размер наночастиц образца, а фотокаталитическая реакция может быть направлена ​​из исходной области, поглощающей ультрафиолет, в область поглощения, видимую.


      Рис. 8.  Различное количество легирования ширины полосы диоксида титана.


    Тест на влажность фотокатализатора

    Влияние различной влажности окружающей среды на эффективность удаления толуола с 1 мас. % La-TiO 2 показан на рис. 9. Экспериментальные результаты подтвердили, что повышение влажности (Кавар и Андерхилл, 1999) влияет на эффективность разложения толуола с использованием диоксида титана, легированного лантаном. Когда влажность окружающей среды превышает 4 % относительной влажности, максимальная мгновенная эффективность разложения достигает 24 %, если влажность окружающей среды составляет 60 % относительной влажности и 80 % относительной влажности, максимальная мгновенная эффективность разложения достигает 23,21 % и 18,18 % соответственно. Это явление происходит из-за того, что фотокатализатор облучали светом для получения энергии, превышающей ширину запрещенной зоны. Индуцированные электроны на фотокатализаторе вызывают переход электронов из валентной зоны в зону проводимости. Супероксидные радикалы ( O 2 ) и гидроксильные радикалы ( OH) образуются под действием генерируемых электронов и дырок, перенесенных на поверхность фотокатализатора. Следовательно, повышение влажности окружающей среды может также увеличить образование супероксидных радикалов ( O 2 ) и гидроксильных радикалов ( OH). Добавление определенной доли влажности окружающей среды к загрязняющим веществам повышало эффективность удаления фотокатализатора загрязняющих веществ. Однако при высокой влажности окружающей среды большое количество молекул воды прикрепляется к поверхности фотокатализатора. Вероятность контакта между фотокатализатором и загрязняющим веществом меньше, в результате чего обычно снижается эффективность удаления (Тируппати и др. , 2018).


    Рис. 9.  Влияние различной влажности окружающей среды на удаление толуола на 1 мас. % La-TiO 2 .


    Тестирование фотокаталитического модуля

    Сравнение эффективности удаления толуола в фотокаталитическом модуле с использованием различного количества волокон фотокаталитического стекла в видимом свете показано на рис. 10. Экспериментальный результат показывает, что фотокаталитический модуль состоял из 4 кусков ткани из фотокаталитического стекловолокна (1 ,2,3,4) соответственно эффективность удаления 4-го куска достигала 66,9%, что является лучшей эффективностью удаления по сравнению с другими частями.


    Рис. 10. Влияние количества комбинаций фотокаталитического стекловолокна на эффективность удаления толуола.


    Конструкция адсорбционного модуля

    Чтобы избежать явления короткого потока внутри адсорбционного модуля, используйте программное обеспечение ANSYS для анализа методом конечных элементов для анализа поля внутреннего потока модуля. Настройка аналитической модели в этом исследовании представляла собой модель внутренней жидкости адсорбционного модуля 1/4, граничные условия модели для скорости притока, скорости оттока, были установлены симметричные все поверхности и неизменяемые стенки, скорость потока всасываемого воздуха была рассчитана следующим образом. Формула параметров жидкости использует параметры газа толуола из встроенной базы данных ANSYS.

    Результаты анализа поля потока адсорбционного модуля показаны на Рис. 11. Результаты анализа показали, что из-за конструкции выпрямляющей пластины внутри адсорбционного модуля, внутри твердого адсорбционного модуля практически отсутствует явление короткого потока. После поступления загрязненного газа в адсорбционный модуль он сначала ректифицируется через первый слой ректификационной плиты и закрепляется на корпусе модуля. Таким образом, загрязняющий газ проходит через каждое маленькое отверстие в ректификационной пластине соответственно, и ректификационная пластина одновременно рассеивает загрязняющие вещества. Ректифицирующая пластина может одновременно рассеивать скорость потока всасываемого загрязненного газа, а когда скорость потока жидкости была низкой, возникновение короткого потока также уменьшалось. Эта конструкция эффективно уменьшила явление короткого потока, которое может возникнуть внутри адсорбционного модуля 9. 0009

    Рис. 11. Анализ внутренней жидкости адсорбционного модуля.


    Влияние количества носителей на концентрацию разложения толуола

    При анализе влияния различного количества носителей активированный уголь помещали в среднем 60 г на различное количество носителей и распределяли его по различному количеству носителей, дополнительно проверяя, влияет ли количество носителей на эффективность удаления адсорбции. модуль. Экспериментальные результаты показаны на Фиг.12, лучший эффект от несущего слоя был у 3-го слоя носителя, и где в каждом слое носителя используется количество активированного угля 20 г/слой. Адсорбционный эффект на толуоле достигал около 92,4%. Наименьший адсорбционный эффект обнаружен при использовании 1-го слоя, который имеет адсорбционное действие по толуолу 84,7%, хотя его можно покрыть активированным углем, используя только один слой носителя. Однако экспериментальные результаты показывают, что большое количество активированного угля может вызвать плохую внутреннюю ректификацию. Таким образом, общий эффект адсорбции был низким, эффект адсорбции был снижен, а загрязняющее вещество не полностью контактировало с активированным углем при использовании небольшого количества активированного угля. Кроме того, при использовании большего количества слоев количество активированного угля становится выше, фотокаталитическая активность модулей влияла, когда активированный уголь был выше оптимального. Однако оптимальное количество слоев равно 2 или 3, поэтому эффективность удаления снижается при увеличении количества слоев более чем на 3, поскольку количество активированного угля увеличивается при увеличении количества слоев.


    Рис. 12.
    Влияние количества носителей на концентрацию разложения толуола.


    Эффект количества активированного угля в тесте однослойного носителя

    Как показывают экспериментальные результаты на Рис. 13, размещение активированного угля разного веса на 1-м слое носителя для подтверждения того, было ли добавлено количество активированного угля для эффективности удаления адсорбционного модуля. Наилучшая скорость деградации обнаружена при 30 г активированного угля в однослойном носителе, эффект удаления толуола достигается при 92,6%, в то время как другие скорости разложения были обнаружены при 60 г, 50 г, 40 г и 20 г активированного угля в однослойном носителе, эффект удаления толуола достигался 84,7%, 85,1%, 90,2% и 85,2% соответственно. По этому результату был сделан вывод, что 60 г активированного угля в однослойном носителе имеют самый низкий показатель эффективности из-за избыточного количества активированного угля на ректификационной пластине по сравнению с другим количеством активированного угля. Следовательно, соответствующее количество активированного угля может только повысить эффективность удаления адсорбционного модуля.


    Рис. 13. Различное количество активированного угля в тесте однослойного носителя.


    Влияние различной скорости потока загрязнителя

    На скорость потока загрязнителя влияло удаление всего модуля адсорбции в единицу времени. Поэтому скорость потока является важным параметром в адсорбционном модуле. Путем тестирования потока загрязняющих веществ определяется максимальное количество загрязняющих веществ, которое может быть удалено адсорбционным модулем в единицу времени. Сравнение эффективности удаления адсорбционного модуля при различных расходах загрязняющих веществ показано на рис. 14. Согласно экспериментальным результатам, адсорбционный модуль показывает, что эффективность удаления была незначительной при расходах 1 л мин 1 , мин. 2 л 1  и мин. 3 л 1 . Эффект удаления был достигнут до 92,6%, 93,3% и 93,5% для 1 л мин 1 , 2 л мин 1 и 3 л мин 1 соответственно. Таким образом, после общей оценки модуль адсорбции использует скорость потока 3 л мин 1 в качестве наилучшего параметра.


    Рис. 14. Влияние различных расходов загрязняющих веществ на эффективность удаления адсорбционного модуля.


    Тестирование фотокаталитического коммерческого модуля

    Механизм фотокаталитической реакции облучали видимым светом. Для получения большей энергии, чем ширина полосы; тем самым электроны фотокатализатора перемещались из валентной зоны в зону проводимости. Супероксидные радикалы O 2 и гидроксильные радикалы OH генерируются под действием сгенерированных электронов и дырок, переносимых на поверхность фотокатализатора. Следовательно, образование супероксидных радикалов O 2 и гидроксильные радикалы OH увеличивались при увеличении влажности окружающей среды. Таким образом, влажность является важным параметром фотокаталитических реакций. Однако влажность окружающей среды снижала адсорбционную способность активированного угля (Barmeh et al. , 2018), поскольку активированный уголь не только адсорбирует загрязняющие вещества, но и молекулы воды также адсорбируются. Как только молекулы воды конденсируются на поверхности активированного угля, скорость адсорбции снижается. Фотокаталитический коммерческий модуль состоит из фотокаталитического модуля и адсорбционного модуля, поэтому стоит изучить влияние влажности окружающей среды на его параметры.


    Скорость удаления толуола из фотокаталитических коммерческих модулей при различной влажности

    Результаты испытаний фотокаталитического коммерческого модуля при различной влажности окружающей среды представлены на рис. 15. Экспериментальные результаты подтвердили, что фотокаталитический коммерческий модуль демонстрирует наилучшую эффективность удаления выше 95% при относительной влажности окружающей среды ниже 4%. концентрация толуола внутри фотокаталитического коммерческого модуля также была низкой и не определялась фотоионизационным детектором (ФИД) через 58 минут при влажности окружающей среды ниже 4%. Эффективность удаления фотокаталитического коммерческого модуля достигла более 90% при влажности окружающей среды ниже 10% относительной влажности и 77,12% при влажности окружающей среды 60% относительной влажности соответственно.


    Рис. 15. Скорость удаления толуола из фотокаталитических коммерческих модулей при различной влажности.


    Влияние различной скорости потока загрязнителя в фотокаталитических коммерческих модулях

    Параметр скорости потока на входе контролирует время контакта загрязняющих веществ, фотокатализатора и активированного угля. Чем выше скорость потока, тем больше загрязняющих веществ может быть переработано в единицу времени. Скорость потока загрязняющего вещества является важнейшим параметром в фотокаталитическом коммерческом модуле. Поэтому в этом исследовании проверялась эффективность удаления толуола из фотокаталитических коммерческих модулей при различных концентрациях загрязнителя. Влияние фотокаталитических коммерческих модулей на эффективность разложения толуола при различных скоростях потока показано на Рис. 16. Экспериментальные результаты показывают, что фотокаталитический коммерческий модуль собирается при скорости потока менее 3 литров в минуту. У лучшего для фотокаталитического коммерческого модуля эффективность удаления толуола достигалась выше 95%. В дальнейшем расход загрязняющего вещества поддерживали, используя 3 л мин 1  для дальнейших экспериментов.

    Рис. 16. Сравнение эффективности удаления загрязнений различной скорости потока в фотокаталитических коммерческих модулях.


    Испытание фотокаталитических коммерческих модулей длительного действия

    Долгосрочные испытания показали, что фотокаталитические коммерческие модули могут быть практически применены для восстановления почвенных паров (SVE) в будущем. Продолжительность этого экспериментального испытания составила 3 ​​дня. Экспериментальный результат показал, что фотокаталитический коммерческий модуль обладал хорошей устойчивостью к разложению загрязняющих веществ в течение длительного времени в будущем; вероятность применения фотокаталитических коммерческих модулей в оборудовании для восстановления SVE может быть значительно повышена.

    Результаты длительных испытаний фотокаталитического коммерческого модуля представлены на рис. 17, результаты экспериментов показали, что фотокаталитический коммерческий модуль может удалять около 90% загрязняющих веществ в течение 22 мин. На 58-й минуте концентрация внутренних загрязняющих веществ в модуле была ниже 5%, и, наконец, на 59-й минуте концентрация толуола полностью ухудшилась. Внутренняя концентрация толуола в модуле была ниже предела обнаружения фотоионизационного детектора (ФИД) и сохранялась до конца эксперимента. Благодаря этому эксперименту стало известно, что собранный фотокаталитический коммерческий модуль может удалять загрязняющие вещества в течение длительного времени эксперимента. Также была проверена возможность применения модуля к реальному сайту.


    Рис. 17.  Испытание фотокаталитических коммерческих модулей длительного действия.


    Фотокаталитический коммерческий модуль Испытание на месте

    Чтобы проверить, был ли собран фотокаталитический коммерческий модуль в этом исследовании, его можно практически применить к оборудованию для восстановления паров почвы (SVE). Фактические испытания проводились на заправочной станции на севере Тайваня. Результаты испытаний фотокаталитического коммерческого модуля на фактическом участке показаны на Рис. 18. Экспериментальные результаты показали, что удаление загрязняющих веществ внутри фотокаталитического модуля было ниже предела прибора фотоионизационного детектора (ФИД) во время первого 15 минут эксперимента. Таким образом, он может быть известен как фотокаталитический коммерческий модуль, установленный научно-исследовательским институтом, который может эффективно и быстро удалять загрязняющие вещества в реальном поле загрязнения.


    Рис. 18.  Фотокаталитический коммерческий модуль Испытание на месте.


    Эксперимент на реальном сайте

    Модуль предварительного тестирования газообразного толуола на первом этапе был пропущен через фотоионизационный детектор (ФИД) для расчета начальной концентрации газообразного толуола, которая после расчета концентрации на объекте составила 30 частей на миллион. На этапе 2 и коммерческий фотокаталитический модуль вводили в газообразный толуол. В этом процессе газообразный толуол был соединен с фотокаталитическим модулем, затем прошел через адсорбционный модуль, а затем газ из точки выпуска был соединен с фотоионизационным детектором (ФИД) для расчета общего разложения газообразного толуола.

    После прохождения газообразного толуола через фотокаталитический коммерческий модуль он был подключен к ФИД. Реальное показано на Рис. 19, в первые 2 минуты концентрация газообразного толуола постепенно снижалась, через 2 минуты разложение достигло 100% и остается таким же до 30 минут.


    Рис. 19. Эксперимент на реальной площадке.


    Уравнение реакции фотокаталитического механизма деградации

    Механизм разложения толуола показан на Рис. 20. Посредством которого La-TiO 2  под видимым светом образовывал гидроксильные и супероксидные радикалы, описывается следующими реакциями:

    La-TiO 2  → e + h +
    e  + O 2  →  O 2
    h +  + H 2 O → H +  +  OH
    2h +  + 2H 2 O → 2H + + H 2 O 2
    H 2 O 2 → 2 OH
    36 ● 9174 OH + C OH
    36 ● 9174 OH + C OH
    36 ● 9174 OH + C OH
    36 ● 9174 OH + C OH
    36 ● 9174 OH + C OH
    36 . + 22ч 2 О


    Рис. 20. Механизм фотокаталитического разложения.


    Удаление толуола из предварительных исследований Исследователи сравнили с нашим исследованием

    Большая часть удаления толуола у предварительных исследователей была реализована под воздействием УФ-излучения, поскольку УФ-свет показал лучшие результаты, чем видимый свет. но УФ-метод требует больше энергии и также более опасен для человека, однако в нашем исследовании мы использовали видимый свет с низкой энергией и высокой эффективностью удаления, кроме того, видимый свет является более легким источником света, доступным для нас, поэтому те Сравнение показало в Таблице 1 , что наш метод можно было использовать везде для восстановления газообразного толуола.



    ЗАКЛЮЧЕНИЕ

    В этом исследовании был подготовлен фотокаталитический коммерческий модуль, состоящий из фотокаталитического модуля с адсорбционным модулем и фотокаталитическим методом под видимым светом для деградации извлечения паров почвы (SVE), сравните и выберите лучшие параметры фотокаталитического коммерческого модуля, регулируя различные параметры . Рентгеновская дифракция (XRD), сканирующая электронная микроскопия (SEM) и спектроскопия диффузного отражения (DRS) показали, что синтез катализатора прошел успешно. После завершения использования оптимальных параметров фотокаталитического коммерческого модуля с этим параметром было проведено испытание на месте фактического загрязнения. Результаты испытаний показали, что наилучшие параметры фотокаталитического коммерческого модуля расположены из 4 отрезков фотокаталитического стекловолокна в фотокаталитический модуль. В адсорбционном модуле использовалось 5 слоев носителя и 30 г активированного угля в каждом носителе, а оптимальная влажность окружающей среды всего модуля составляла <4% относительной влажности. Используя вышеуказанные параметры, можно поддерживать эффективность удаления газообразного толуола более чем в 9 раз.5% в течение 1 часа, а эффективность удаления может оставаться стабильной более 72 часов. Таким образом, по результатам различных экспериментов стало известно, что фотокаталитический коммерческий модуль может улучшить оборудование для очистки выхлопных газов и существующего метода извлечения почвенного газа.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *