💼Building a Trading Strategy with Machine Learning Models and Yahoo Finance in Python.
Создаем алгоритм для торговли с помощью моделей машинного обучения и Yahoo Finance на Python.
@pythonl
Создаем алгоритм для торговли с помощью моделей машинного обучения и Yahoo Finance на Python.
import yfinance as yf
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
import matplotlib.pyplot as plt
# Step 1: Data Collection
ticker = "AAPL"
start_date = "2021-01-01"
end_date = "2023-01-06"
data = yf.download(ticker, start=start_date, end=end_date, progress=False)
# Step 2: Data Preprocessing
data["Return"] = data["Close"].pct_change()
data.dropna(inplace=True)
# Step 3: Feature Engineering
data["SMA_5"] = data["Close"].rolling(window=5).mean()
data["SMA_20"] = data["Close"].rolling(window=20).mean()
# Step 4: Model Selection and Training
X = data[["SMA_5", "SMA_20"]]
y = (data["Return"] > 0).astype(int)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
pipeline = Pipeline([
('imputer', SimpleImputer(strategy='mean')),
('classifier', RandomForestClassifier(n_estimators=100, random_state=42))
])
pipeline.fit(X_train, y_train)
# Step 5: Model Evaluation
y_pred_train = pipeline.predict(X_train)
train_accuracy = accuracy_score(y_train, y_pred_train)
y_pred_test = pipeline.predict(X_test)
test_accuracy = accuracy_score(y_test, y_pred_test)
print("Train Accuracy:", train_accuracy)
print("Test Accuracy:", test_accuracy)
# Step 6: Strategy Design
data["Predicted_Return"] = pipeline.predict(X)
data["Signal"] = data["Predicted_Return"].diff()
data.loc[data["Signal"] > 0, "Position"] = 1
data.loc[data["Signal"] < 0, "Position"] = -1
data["Position"].fillna(0, inplace=True)
# Step 7: Backtesting
data["Strategy_Return"] = data["Position"] * data["Return"]
cumulative_returns = (data["Strategy_Return"] + 1).cumprod()
plt.figure(figsize=(10, 6))
plt.plot(data.index, cumulative_returns)
plt.xlabel("Date")
plt.ylabel("Cumulative Returns")
plt.title("Trading Strategy Performance")
plt.grid(True)
plt.show()
@pythonl
🔭 Daily Useful Scripts
Daily.py is a repository that provides a collection of ready-to-use Python scripts for automating common daily tasks.
Daily.py - это репозиторий, который предоставляет коллекцию готовых к запуску скриптов Python для автоматизации обычных повседневных задач.
▪ Github
@pythonl
Daily.py is a repository that provides a collection of ready-to-use Python scripts for automating common daily tasks.
Daily.py - это репозиторий, который предоставляет коллекцию готовых к запуску скриптов Python для автоматизации обычных повседневных задач.
git clone https://github.com/Chamepp/Daily.py.git
▪ Github
@pythonl
Machine learning — обучающий для тех, кто хочет погрузится в волшебный мир Нейронауки!
Нейронные сети, машинное обучение, Data Science, изучаем базу, объясняем код, изучаем лучшие проекты, выкладываем бесплатные курсы и книги из области Машинного обучения.
Начать учиться
Нейронные сети, машинное обучение, Data Science, изучаем базу, объясняем код, изучаем лучшие проекты, выкладываем бесплатные курсы и книги из области Машинного обучения.
Начать учиться
🖥 Create a Mock SQL DB in Python from CSV for unit testing
Создание макета SQL-базы данных в Python из CSV для модульного тестирования.
@pythonl
Создание макета SQL-базы данных в Python из CSV для модульного тестирования.
pip install pandas
pip install sqlglot
pip install sqlalchemy
from sqlalchemy import create_engine, text
import sqlglot
import pandas as pd
def execute_sql_query(sql):
query_as_sqlite = sqlglot.transpile(sql, read="postgres", write="sqlite")[0]
mocked_db = create_engine('sqlite://')
pd.read_csv('data.csv').to_sql('table_name', con=mocked_db)
with mocked_db.connect() as connection:
result = connection.execute(text(query_as_sqlite))
return result
@pythonl
🐍 10 Useful python scripts
10 интересных скриптов Python.
• Создавайте веб-бота
• Улучшение изображений на Python
• Парсинг текстов песен
• Получение данных Exif для фотографий
• Поиск в Google
• Преобразование: шестнадцатеричная система в RGB
• Конвертация фотографий в формат Cartonize
• Тестирование скорости соединения с помощью Python.
• Проверка состояния сайта
• Извлечение текста OCR из изображений
@pythonl
10 интересных скриптов Python.
• Создавайте веб-бота
# pip install selenium
import time
from selenium import webdriver
from selenium.webdriver.common.keys
import Keysbot = webdriver.Chrome("chromedriver.exe")
bot.get('http://www.google.com')
search = bot.find_element_by_name('q')
search.send_keys("@codedev101")
search.send_keys(Keys.RETURN)
time.sleep(5)
bot.quit()
• Улучшение изображений на Python
# pip install pillow
from PIL import Image,ImageFilter
from PIL import ImageEnhance
im = Image.open('img.jpg')
# Choose your filter
# add Hastag at start if you don't want to any filter below
en = ImageEnhance.Color(im)
en = ImageEnhance.Contrast(im)
en = ImageEnhance.Brightness(im)
en = ImageEnhance.Sharpness(im)# result
en.enhance(1.5).show("enhanced")
• Парсинг текстов песен
# pip install lyricsgenius
import lyricsgenius
api_key = "xxxxxxxxxxxxxxxxxxxxx"
genius = lyricsgenius.Genius(api_key)
artist = genius.search_artist("Pop Smoke",
max_songs=5,sort="title")
song = artist.song("100k On a Coupe")
print(song.lyrics)
• Получение данных Exif для фотографий
# Get Exif of Photo
# Method 1
# pip install pillow
import PIL.Image
import PIL.ExifTags
img = PIL.Image.open("Img.jpg")
exif_data =
{
PIL.ExifTags.TAGS[i]: j
for i, j in img._getexif().items()
if i in PIL.ExifTags.TAGS
}
print(exif_data)
# Method 2
# pip install ExifRead
import exifread
filename = open(path_name, 'rb')
tags = exifread.process_file(filename)
print(tags)
• Поиск в Google
# pip install google
from googlesearch import search
query = "Medium.com"
for url in search(query):
print(url)
• Преобразование: шестнадцатеричная система в RGB
# Conversion: Hex to RGB
def Hex_to_Rgb(hex):
h = hex.lstrip('#')
return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))
print(Hex_to_Rgb('#c96d9d')) # (201, 109, 157)
print(Hex_to_Rgb('#fa0515')) # (250, 5, 21)
• Конвертация фотографий в формат Cartonize
# pip install opencv-python
import cv2
img = cv2.imread('img.jpg')
grayimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
grayimg = cv2.medianBlur(grayimg, 5)
edges = cv2.Laplacian(grayimg , cv2.CV_8U, ksize=5)
r,mask =cv2.threshold(edges,100,255,cv2.THRESH_BINARY_INV)
img2 = cv2.bitwise_and(img, img, mask=mask)
img2 = cv2.medianBlur(img2, 5)
cv2.imwrite("cartooned.jpg", mask)
• Тестирование скорости соединения с помощью Python.
# pip install pyspeedtest
# pip install speedtest
# pip install speedtest-cli
#method 1
import speedtest
speedTest = speedtest.Speedtest()
print(speedTest.get_best_server())
#Check download speed
print(speedTest.download())
#Check upload speed
print(speedTest.upload())
# Method 2
import pyspeedtest
st = pyspeedtest.SpeedTest()
st.ping()
st.download()
st.upload()
• Проверка состояния сайта
# pip install requests
#method 1
import urllib.request
from urllib.request import Request, urlopenreq = Request('https://medium.com/@pythonians', headers={'User-Agent': 'Mozilla/5.0'})
webpage = urlopen(req).getcode()
print(webpage) # 200
# method 2
import requests
r = requests.get("https://medium.com/@pythonians")
print(r.status_code) # 200
• Извлечение текста OCR из изображений
# pip install pytesseract
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
t=Image.open("img.png")
text = pytesseract.image_to_string(t, config='')
print(text)
@pythonl
🕸 Python Web Scraping
Этот исчерпывающий список содержит библиотеки python, связанные с веб-парсингом и обработкой данных.
Web Scraping: Frameworks
scrapy - web-scraping framework (twisted based).
•pyspider - A powerful spider system.
•autoscraper - A smart, automatic and lightweight web scraper
•grab - web-scraping framework (pycurl/multicurl based)
•ruia - Async Python 3.6+ web scraping micro-framework based on asyncio
•cola - A distributed crawling framework.
•frontera - A scalable frontier for web crawlers
•dude - A simple framework for writing web scrapers using decorators.
•ioweb - Web scraping framework based on gevent and lxml
Web Scraping : Tools
•portia - Visual scraping for Scrapy.
•restkit - HTTP resource kit for Python. It allows you to easily access to HTTP resource and build objects around it.
•requests-html - Pythonic HTML Parsing for Humans.
•ScrapydWeb - A full-featured web UI for Scrapyd cluster management, which supports Scrapy Log Analysis & Visualization, Auto Packaging, Timer Tasks, Email Notice and so on.
•Starbelly - Starbelly is a user-friendly and highly configurable web crawler front end.
•Gerapy - Distributed Crawler Management Framework Based on Scrapy, Scrapyd, Django and Vue.js
Web Scraping : Bypass Protection
•cloudscraper - A Python module to bypass Cloudflare's anti-bot page.
▪ GIthub
@pythonl
Этот исчерпывающий список содержит библиотеки python, связанные с веб-парсингом и обработкой данных.
Web Scraping: Frameworks
scrapy - web-scraping framework (twisted based).
•pyspider - A powerful spider system.
•autoscraper - A smart, automatic and lightweight web scraper
•grab - web-scraping framework (pycurl/multicurl based)
•ruia - Async Python 3.6+ web scraping micro-framework based on asyncio
•cola - A distributed crawling framework.
•frontera - A scalable frontier for web crawlers
•dude - A simple framework for writing web scrapers using decorators.
•ioweb - Web scraping framework based on gevent and lxml
Web Scraping : Tools
•portia - Visual scraping for Scrapy.
•restkit - HTTP resource kit for Python. It allows you to easily access to HTTP resource and build objects around it.
•requests-html - Pythonic HTML Parsing for Humans.
•ScrapydWeb - A full-featured web UI for Scrapyd cluster management, which supports Scrapy Log Analysis & Visualization, Auto Packaging, Timer Tasks, Email Notice and so on.
•Starbelly - Starbelly is a user-friendly and highly configurable web crawler front end.
•Gerapy - Distributed Crawler Management Framework Based on Scrapy, Scrapyd, Django and Vue.js
Web Scraping : Bypass Protection
•cloudscraper - A Python module to bypass Cloudflare's anti-bot page.
▪ GIthub
@pythonl
Building an Image Recognition API using Flask
Создание API для распознавания изображений с помощью Flask.
Шаг 1: Настройка среды проекта
1. Создайте новый каталог для вашего проекта и перейдите в него.
2. Создайте виртуальную среду (необязательно, но рекомендуется):
(Изображение 1.)
3. Установите необходимые библиотеки (изображение 2.)
Шаг 2: Создайте веб-приложение Flask
Создайте новый файл с именем app.py в каталоге проекта (изображение 3.)
Шаг 3: Запустите приложение Flask
Сохраните изменения и запустите приложение Flask (изображение 4.)
Шаг 4: Протестируйте API
Теперь ваш API запущен, и вы можете отправлять изображения на адрес /predict с помощью HTTP POST запросов.
Для тестирования API можно использовать такие инструменты, как curl или Postman.
• Пример использования curl (изображение 5.)
• Пример с использованием запросов Python (изображение 6.)
@pythonl
Создание API для распознавания изображений с помощью Flask.
Шаг 1: Настройка среды проекта
1. Создайте новый каталог для вашего проекта и перейдите в него.
2. Создайте виртуальную среду (необязательно, но рекомендуется):
(Изображение 1.)
3. Установите необходимые библиотеки (изображение 2.)
Шаг 2: Создайте веб-приложение Flask
Создайте новый файл с именем app.py в каталоге проекта (изображение 3.)
Шаг 3: Запустите приложение Flask
Сохраните изменения и запустите приложение Flask (изображение 4.)
Шаг 4: Протестируйте API
Теперь ваш API запущен, и вы можете отправлять изображения на адрес /predict с помощью HTTP POST запросов.
Для тестирования API можно использовать такие инструменты, как curl или Postman.
• Пример использования curl (изображение 5.)
• Пример с использованием запросов Python (изображение 6.)
@pythonl
Парсим данные в Telegram на Python. Читаем и анализируем сообщения из чатов.
from xmlrpc.client import DateTime
from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty
from telethon.tl.functions.messages import GetHistoryRequest
from telethon.tl.types import PeerChannel
import csv
api_id = 'api id'
api_hash = "api_hash"
phone = "phone number"
client = TelegramClient(phone, api_id, api_hash)
client.start()
chats = []
last_date = None
chunk_size = 200
groups=[]
result = client(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size,
hash = 0
))
chats.extend(result.chats)
for chat in chats:
try:
if chat.megagroup== True:
groups.append(chat)
except:
continue
print("Выберите группу для парсинга сообщений и членов группы:")
i=0
for g in groups:
print(str(i) + "- " + g.title)
i+=1
g_index = input("Введите нужную цифру: ")
target_group=groups[int(g_index)]
print("Узнаём пользователей...")
all_participants = []
all_participants = client.get_participants(target_group)
print("Сохраняем данные в файл...")
with open("members.csv", "w", encoding="UTF-8") as f:
writer = csv.writer(f,delimiter=",",lineterminator="\n")
writer.writerow(["username", "name","group"])
for user in all_participants:
if user.username:
username= user.username
else:
username= ""
if user.first_name:
first_name= user.first_name
else:
first_name= ""
if user.last_name:
last_name= user.last_name
else:
last_name= ""
name= (first_name + ' ' + last_name).strip()
writer.writerow([username,name,target_group.title])
print("Парсинг участников группы успешно выполнен.")
offset_id = 0
limit = 100
all_messages = []
total_messages = 0
total_count_limit = 0
while True:
history = client(GetHistoryRequest(
peer=target_group,
offset_id=offset_id,
offset_date=None,
add_offset=0,
limit=limit,
max_id=0,
min_id=0,
hash=0
))
if not history.messages:
break
messages = history.messages
for message in messages:
all_messages.append(message.message)
offset_id = messages[len(messages) - 1].id
if total_count_limit != 0 and total_messages >= total_count_limit:
break
print("Сохраняем данные в файл...")
with open("chats.csv", "w", encoding="UTF-8") as f:
writer = csv.writer(f, delimiter=",", lineterminator="\n")
for message in all_messages:
writer.writerow([message])
print('Парсинг сообщений группы успешно выполнен.')
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Подборка обучающих каналов для программистов.
🖥 Machine learning
ai_ml – крупнейши канал по ии, нейросетям и науке о данных.
datasc - дата сайнс обучение самой востребованной профессии.
@bigdatai - Big Data
@machinelearning_ru – гайды по машинному обучению
@machinelearning_interview – подготовка к собеседованию мл.
@datascienceiot – бесплатные книги ds
@ArtificialIntelligencedl – ИИ
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - вакансии ds, ml
@Machinelearning_Jobs - чат с вакансиями
🖥 Python
@pythonl - крупнейший канал для Python программистов.
@pro_python_code – учим python с ментором.
@python_job_interview – подготовка к Python собеседованию.
@python_testit - проверочные тесты на python
@pythonlbooks - современные книги Python
@python_djangojobs - работа для Python программистов
@python_django_work - чат обсуждения вакансий
#️⃣ c#
C# - канал для изучения C# на практике.
@csharp_cplus - C# чат
@csharp_1001_notes - инструменты C#
🖥 C++
@cpluspluc - C++ кодинг
🖥 SQL базы данных
@sqlhub - Повышение эффективности кода с грамотным использованием бд.
@chat_sql - чат изучения бд.
👣 Golang
@Golang_google - восхитительный язык от Google, мощный и перспективный.
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@golangtests - интересные тесты и задачи GO
@golangl - чат изучающих Go
@GolangJobsit - отборные вакансии и работа GO
@golang_jobsgo - чат для ищущих работу.
@golang_books - полезные книги Golang
@golang_speak - обсуждение языка Go
@golangnewss - новости go
🖥 Linux
linux - kali linux ос для хакинга
linux chat - чат linux для обучения и помощи.
@linux_read - бесплатные книги linux
🖥 Javascript / front
@react_tg - - 40,14% разработчиков сайтов использовали React в 2022 году - это самая популярная библиотека для создания сайтов.
@javascript -канал для JS и FrontEnd разработчиков. Лучшие практики и примеры кода. Туториалы и фишки JS
@Js Tests - каверзные тесты JS
@hashdev - погружение в web разработку.
@javascriptjobjs - отборные вакансии и работа FrontEnd.
@jsspeak - чат поиска FrontEnd работы.
🖥 Java
@javatg - выучить Java с senior разработчиком на практике
@javachats - чат для ответов на вопросы по Java
@java_library - библиотека книг Java
@android_its - Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
👷♂️ IT работа
https://yangx.top/addlist/_zyy_jQ_QUsyM2Vi -ит каналы по яп с вакансиями
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - Rust избавлен от болевых точек, которые есть во многих современных яп
@rust_chats - чат rust
📓 Книги
https://yangx.top/addlist/HwywK4fErd8wYzQy - актуальные книги по всем яп
⭐️ Нейронные сети
@vistehno - chatgpt ведет блог, решает любые задачи и отвечает на любые ваши вопросы.
@aigen - сети для генерации картинок. видео, музыки и многого другого.
@neural – погружение в нейросети.
📢 English for coders
@english_forprogrammers - Английский для программистов
🖥 PHP
@phpshka - PHP академия для программистов.
🖥 Devops
Devops - канал для DevOps специалистов.
🔥 Папки для программитов
https://yangx.top/addlist/_FjtIq8qMhU0NTYy - машинное обучение, нейросети, глубокое обучение
https://yangx.top/addlist/eEPya-HF6mkxMGIy - папка для Python разработчиков
https://yangx.top/addlist/MUtJEeJSxeY2YTFi - папка для Golang разработчиков
ai_ml – крупнейши канал по ии, нейросетям и науке о данных.
datasc - дата сайнс обучение самой востребованной профессии.
@bigdatai - Big Data
@machinelearning_ru – гайды по машинному обучению
@machinelearning_interview – подготовка к собеседованию мл.
@datascienceiot – бесплатные книги ds
@ArtificialIntelligencedl – ИИ
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - вакансии ds, ml
@Machinelearning_Jobs - чат с вакансиями
@pythonl - крупнейший канал для Python программистов.
@pro_python_code – учим python с ментором.
@python_job_interview – подготовка к Python собеседованию.
@python_testit - проверочные тесты на python
@pythonlbooks - современные книги Python
@python_djangojobs - работа для Python программистов
@python_django_work - чат обсуждения вакансий
#️⃣ c#
C# - канал для изучения C# на практике.
@csharp_cplus - C# чат
@csharp_1001_notes - инструменты C#
@cpluspluc - C++ кодинг
@sqlhub - Повышение эффективности кода с грамотным использованием бд.
@chat_sql - чат изучения бд.
@Golang_google - восхитительный язык от Google, мощный и перспективный.
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@golangtests - интересные тесты и задачи GO
@golangl - чат изучающих Go
@GolangJobsit - отборные вакансии и работа GO
@golang_jobsgo - чат для ищущих работу.
@golang_books - полезные книги Golang
@golang_speak - обсуждение языка Go
@golangnewss - новости go
linux - kali linux ос для хакинга
linux chat - чат linux для обучения и помощи.
@linux_read - бесплатные книги linux
@react_tg - - 40,14% разработчиков сайтов использовали React в 2022 году - это самая популярная библиотека для создания сайтов.
@javascript -канал для JS и FrontEnd разработчиков. Лучшие практики и примеры кода. Туториалы и фишки JS
@Js Tests - каверзные тесты JS
@hashdev - погружение в web разработку.
@javascriptjobjs - отборные вакансии и работа FrontEnd.
@jsspeak - чат поиска FrontEnd работы.
@javatg - выучить Java с senior разработчиком на практике
@javachats - чат для ответов на вопросы по Java
@java_library - библиотека книг Java
@android_its - Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
👷♂️ IT работа
https://yangx.top/addlist/_zyy_jQ_QUsyM2Vi -ит каналы по яп с вакансиями
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - Rust избавлен от болевых точек, которые есть во многих современных яп
@rust_chats - чат rust
📓 Книги
https://yangx.top/addlist/HwywK4fErd8wYzQy - актуальные книги по всем яп
@vistehno - chatgpt ведет блог, решает любые задачи и отвечает на любые ваши вопросы.
@aigen - сети для генерации картинок. видео, музыки и многого другого.
@neural – погружение в нейросети.
@english_forprogrammers - Английский для программистов
@phpshka - PHP академия для программистов.
Devops - канал для DevOps специалистов.
🔥 Папки для программитов
https://yangx.top/addlist/_FjtIq8qMhU0NTYy - машинное обучение, нейросети, глубокое обучение
https://yangx.top/addlist/eEPya-HF6mkxMGIy - папка для Python разработчиков
https://yangx.top/addlist/MUtJEeJSxeY2YTFi - папка для Golang разработчиков
Please open Telegram to view this post
VIEW IN TELEGRAM
🦸♂Python DSA шпаргалка для супергероев
▪ List Methods
изображение 2.
▪ Dictionary Operations
изображение 3.
▪ Dictionary methods
изображение 4.
▪ Set Operations
изображение 5.
▪ String Methods
изображение 6.
@pythonl
▪ List Methods
изображение 2.
▪ Dictionary Operations
изображение 3.
▪ Dictionary methods
изображение 4.
▪ Set Operations
изображение 5.
▪ String Methods
изображение 6.
@pythonl